article
README
🚀 Desmos-MCP 服务器
这是一个标准的模型上下文协议(MCP)服务器,旨在为大语言模型(LLMs)提供强大的数学公式可视化和分析能力。它利用 sympy 进行本地渲染和计算,还可以选择集成 Desmos API。
🚀 快速开始
若要独立运行服务器进行测试,请在项目根目录执行以下命令:
uv run src/main.py
服务器将通过标准输入/输出(stdio)启动,并准备好由 MCP 客户端(如 Gemini CLI)连接。
✨ 主要特性
- 交互式公式验证:使用
validate_formula工具检查数学公式的语法。如果公式无效,它会利用大语言模型的采样功能,以通俗易懂的方式解释错误原因。 - 单函数绘图:使用
plot_math_function工具从公式生成二维绘图。它支持使用 Desmos API(可通过config.json配置),若不可用则回退到本地matplotlib渲染,并在执行过程中提供进度报告。 - 多函数绘图:使用
plot_multiple_functions工具在同一图表上绘制多个函数。 - 符号分析:使用
analyze_formula工具计算公式的数学属性,如定义域、值域和临界点。 - 将绘图保存到文件:自动将生成的绘图以 PNG 文件形式保存到桌面的
Desmos-MCP文件夹中。
🔧 技术细节
- Python 3.10+
- FastMCP
- Sympy
- Matplotlib
- HTTPX
📦 安装指南
- 克隆项目(若尚未完成)
- 安装
uv若未安装uv,请在终端运行以下命令:powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" - 创建虚拟环境
在项目根目录下运行:
uv venv - 安装依赖项
此命令将根据uv syncpyproject.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"
📝 待办事项
- [ ] 添加 3D 绘图支持。
- [ ] 实现实时公式分析和交互式绘图,类似于 Desmos。
📄 许可证
本项目采用 Apache 2.0 许可证。详情请参阅 LICENSE 文件。
微信扫一扫