Desmos-MCP 服务器
______________________________________________________________________
英语 | 中文
______________________________________________________________________
这是一个标准的模型上下文协议(MCP)服务器,旨在为大型语言模型(LLMs)提供强大的数学公式可视化和分析能力。它利用了 sympy 用于本地渲染和计算,并且可以选择性地与Desmos API集成。
✨ 特点
- 交互式公式验证使用
validate_formula用于检查数学公式语法的工具。如果公式无效,它会使用大型语言模型(LLM)的采样功能来提供易于理解的错误解释。 - 单功能绘图使用
plot_math_function工具用于根据公式生成二维图表。它支持使用Desmos API(可通过配置使用)config.json) 或回退到本地matplotlib渲染,并在执行过程中提供进度报告。 - 多函数绘图使用
plot_multiple_functions在同一图表上绘制多个函数的工具。 - 符号分析使用
analyze_formula用于计算公式的数学属性(如定义域、值域和临界点)的工具。 - 将图表保存到文件自动将生成的图表保存为PNG文件至
Desmos-MCP你桌面上的文件夹。
⚙️ 技术栈
- Python 3.10+
- FastMCP
- Sympy(注:这是一个用于符号计算的Python库名称,直接翻译为中文并无实际意义,但在此保留原样以展示其作为专有名词的特性)
- Matplotlib
- HTTPX(注:在中文中,"HTTPX"通常直接保留原样,不进行翻译,因为它是一个专有名词或特定技术术语。不过,为了说明其含义,可以解释为“一种增强型的HTTP协议或工具”,但具体含义需根据上下文确定。)
🚀 安装与设置
- 克隆该项目 (如果你还没有的话)
- 安装
uv
如果你没有 uv 安装完成后,在终端中运行以下命令:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"- 创建一个虚拟环境
在项目根目录下,运行:
uv venv- 安装依赖项
uv sync这个命令将根据(相关配置/需求)安装所有必要的依赖项 pyproject.toml 文件。
🔧 配置
服务器的行为由……控制 config.json 项目根目录下的文件。
{
"desmos": {
"use_api": true,
"api_key_env_var": "DESMOS_API_KEY",
"fallback_to_local": true
},
"rendering": {
"default_width": 600,
"default_height": 400
}
}desmos.use_api如果true服务器将首先尝试使用Desmos API进行绘图。desmos.api_key_env_var指定用于获取Desmos API密钥的环境变量的名称。desmos.fallback_to_local如果use_api是true但是API调用失败,这决定了服务器是否应自动回退到本地渲染。
设置Desmos API密钥(可选)
要使用Desmos API功能,您需要设置一个环境变量。例如,在PowerShell中:
$env:DESMOS_API_KEY="your_actual_api_key_here"▶️ 运行服务器
为了独立运行服务器进行测试,请在项目根目录下执行以下命令:
uv run src/main.py服务器将通过标准输入/输出(stdio)启动,并准备好接受MCP客户端(如Gemini CLI)的连接。
📝 待办事项
- \[ \] 添加3D绘图支持。
- \[ \] 实现类似Desmos的实时公式分析和交互式绘图功能。
📄 许可证
此项目遵循Apache 2.0许可证。详见 许可证 详情请查阅文件。
