9.3 KiB
9.3 KiB
Scientific Calculator MCP 服务器
一个生产级别的 Model Context Protocol(MCP)服务器,为 AI 模型提供高级数学计算功能。支持符号数学(SymPy)、数值计算(NumPy/SciPy)、数据分析(pandas)和图像处理。
📋 目录
🚀 快速开始
第一步:安装依赖
pip install sympy numpy scipy pandas
第二步:配置 Claude Desktop
编辑 Claude Desktop 的配置文件 claude_desktop_config.json:
Windows 用户:
{
"mcpServers": {
"scientific-calculator": {
"command": "python",
"args": ["-u", "F:\\AAchengguoofAI\\cuz_caculat\\mcp_server.py"]
}
}
}
macOS/Linux 用户:
{
"mcpServers": {
"scientific-calculator": {
"command": "python3",
"args": ["-u", "/path/to/mcp_server.py"]
}
}
}
第三步:重启 Claude Desktop
在 Claude 中就能使用计算工具了。
📦 安装指南
方式 1:通过 pip 安装(推荐)
pip install mcp-scientific-calculator
方式 2:从源码安装
git clone https://github.com/thinkitpossible/CalcMCP
cd CalcMCP
pip install -r requirements.txt
方式 3:本地开发安装
git clone https://github.com/thinkitpossible/CalcMCP
cd CalcMCP
pip install -e .
⚙️ 配置说明
基础配置
确保在 claude_desktop_config.json 中配置了服务器路径:
{
"mcpServers": {
"scientific-calculator": {
"command": "python",
"args": ["-u", "path/to/mcp_server.py"],
"env": {}
}
}
}
环境变量(可选)
# 设置日志级别(可选)
export LOG_LEVEL=DEBUG
# Windows PowerShell
$env:LOG_LEVEL = "DEBUG"
💡 使用示例
1. 符号数学运算
简化表达式:
用户:简化 (x**2 + 2*x + 1) / (x + 1)
工具调用:symbolic_tool
参数:
operation: "simplify"
expression: "(x**2 + 2*x + 1) / (x + 1)"
返回:x + 1
求导数:
用户:求 sin(x) + x^3 对 x 的导数
工具调用:symbolic_tool
参数:
operation: "derivative"
expression: "sin(x) + x**3"
variable: "x"
返回:cos(x) + 3*x**2
求积分:
用户:求 2*x 的不定积分
工具调用:symbolic_tool
参数:
operation: "integral"
expression: "2*x"
variable: "x"
返回:x**2
解方程:
用户:解方程 x^2 - 5*x + 6 = 0
工具调用:symbolic_tool
参数:
operation: "solve_equation"
equation: "x**2 - 5*x + 6"
variable: "x"
返回:[2, 3]
2. 数值计算
线性方程组求解:
用户:求解线性方程组:2x + y = 5, x + 3y = 7
工具调用:numpy_tool
参数:
operation: "linear_algebra"
array_data: [[2, 1], [1, 3]]
array_data_b: [5, 7]
返回:[2.0, 1.0]
矩阵运算:
用户:计算矩阵 [[1, 2], [3, 4]] 的行列式
工具调用:numpy_tool
参数:
operation: "determinant"
array_data: [[1, 2], [3, 4]]
返回:-2.0
3. 科学计算
常微分方程求解:
用户:求解 dy/dx = 2*x,初始条件 y(0)=0
工具调用:scipy_tool
参数:
operation: "solve_ode"
expression: "2*x"
initial_condition: 0
返回:数值解向量
函数积分:
用户:计算 ∫sin(x)dx 从 0 到 π
工具调用:scipy_tool
参数:
operation: "integrate"
expression: "sin(x)"
limits: "0:pi"
返回:2.0
🛠️ 工具参考
symbolic_tool(符号数学)
提供以下操作:
| 操作 | 参数 | 返回 | 说明 |
|---|---|---|---|
simplify |
expression | str | 简化数学表达式 |
expand |
expression | str | 展开表达式 |
factor |
expression | str | 因式分解 |
derivative |
expression, variable, order | str | 求导数(可指定阶数) |
integral |
expression, variable, lower_limit, upper_limit | str | 求积分(定积分或不定积分) |
limit |
expression, variable, point | str | 求极限 |
solve_equation |
equation, variable | str | 解方程 |
matrix_multiply |
matrix1, matrix2 | str | 矩阵乘法 |
matrix_inverse |
matrix | str | 矩阵求逆 |
使用示例:
{
"tool": "symbolic_tool",
"input": {
"operation": "simplify",
"expression": "x**2 + 2*x + 1"
}
}
numpy_tool(数值计算)
提供以下操作:
| 操作 | 参数 | 返回 | 说明 |
|---|---|---|---|
linear_algebra |
array_data, array_data_b | list | 求解线性方程组 Ax=b |
determinant |
array_data | float | 计算矩阵行列式 |
eigenvalues |
array_data | str | 计算特征值 |
eigenvectors |
array_data | str | 计算特征向量 |
statistics |
array_data | dict | 统计信息(均值、标准差等) |
fft |
array_data | list | 快速傅里叶变换 |
correlation |
array1, array2 | float | 计算两个数组的相关系数 |
pandas_read |
file_path, file_type | str | 读取数据文件 |
pandas_describe |
file_path | str | 数据摘要统计 |
使用示例:
{
"tool": "numpy_tool",
"input": {
"operation": "linear_algebra",
"array_data": [[2, 1], [1, 3]],
"array_data_b": [5, 7]
}
}
scipy_tool(科学计算)
提供以下操作:
| 操作 | 参数 | 返回 | 说明 |
|---|---|---|---|
solve_ode |
expression, initial_condition, t_span | str | 求解常微分方程 |
integrate |
expression, limits | float | 数值积分 |
optimize |
expression, initial_guess | str | 函数优化 |
interpolate |
x_data, y_data, x_new | str | 插值 |
fft |
array_data | list | 快速傅里叶变换 |
root_find |
expression, initial_guess | float | 求根 |
curve_fit |
x_data, y_data | str | 曲线拟合 |
special_function |
func_type, value | float | 特殊函数计算 |
使用示例:
{
"tool": "scipy_tool",
"input": {
"operation": "integrate",
"expression": "sin(x)",
"limits": "0:pi"
}
}
❓ 常见问题
Q1:如何添加到 Claude Desktop?
A:
-
打开 Claude Desktop 配置文件夹
- Windows:
%APPDATA%\Claude\ - macOS:
~/Library/Application Support/Claude/ - Linux:
~/.config/Claude/
- Windows:
-
编辑
claude_desktop_config.json -
在
mcpServers字段添加配置 -
保存并重启 Claude Desktop
Q2:提示 "Python not found" 怎么办?
A: 确保 Python 已正确安装并在系统 PATH 中:
python --version
# 或
python3 --version
如果没有找到,使用完整路径:
{
"command": "C:\\Python312\\python.exe",
"args": ["-u", "path/to/mcp_server.py"]
}
Q3:模块导入错误怎样修复?
A: 重新安装依赖:
pip install --upgrade sympy numpy scipy pandas
Q4:如何运行测试?
A:
python verify_production_readiness.py
Q5:如何调试问题?
A: 使用完整路径并添加日志:
{
"command": "python",
"args": ["-u", "-u", "path/to/mcp_server.py"]
}
📊 项目结构
.
├── calculator.py # 核心计算模块(3个工具函数)
├── mcp_server.py # MCP 服务器实现
├── mcp_protocols.py # MCP 协议定义(可选)
├── requirements.txt # 依赖列表
├── setup.py # 打包配置
├── pyproject.toml # 项目元数据
├── advanced_math_problems.py # 测试用例
├── advanced_math_problems.json# 测试数据
├── verify_production_readiness.py # 验证脚本
├── README.md # 英文文档
├── README_ZH.md # 中文文档(本文件)
├── QUICKSTART.md # 快速入门
├── DEPLOYMENT.md # 部署指南
└── .vscode/ # VS Code 配置
📝 版本信息
- 版本: 1.0.0(初始版本)
- 发布日期: 2025 年 12 月 7 日
- Python 版本: 3.8+
- MCP 版本: 兼容最新版本
- 许可证: MIT
🔗 相关链接
- GitHub: https://github.com/thinkitpossible/CalcMCP
- PyPI: https://pypi.org/project/mcp-scientific-calculator/
- MCP 协议: https://modelcontextprotocol.io/
- SymPy 文档: https://docs.sympy.org/
- NumPy 文档: https://numpy.org/doc/
- SciPy 文档: https://docs.scipy.org/
📧 反馈与支持
如有问题或建议,请提出 Issue 或联系维护者。
GitHub Issues: https://github.com/thinkitpossible/CalcMCP/issues
祝您使用愉快! 🎉