mcpField
M
MCP Calculate Server

MCP Calculate Server

本地服务
github.com/611711Dark科研与教育627 周前更新

关于 MCP Calculate Server

基于 SymPy 的数学计算 MCP 服务,支持符号代数、微积分、方程求解和矩阵运算。受限求值器会拒绝任意 Python,并验证高开销表达式和结果。

主要功能

  1. 01算术与符号代数
  2. 02求导、积分与极限
  3. 03求解方程和方程组
  4. 04矩阵运算与特征值
  5. 05泰勒级数展开
  6. 06受限表达式求值

适用场景

  1. 01化简或因式分解符号表达式
  2. 02计算导数、积分或极限
  3. 03求解方程和方程组
  4. 04检查矩阵逆和特征值

MCP 相关

向 MCP 客户端提供 `calculate_expression` 工具,用于计算受支持的 SymPy 表达式。求值器限制可用名称和操作,并可能拒绝过大或复杂度过高的计算。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP 计算服务

smithery 徽章

基于 MCP 协议和 SymPy 库的数学计算服务,提供强大的符号计算能力。

安全性

从版本 0.1.1 开始,服务通过受限的 SymPy 专用求值器解析表达式。它不会执行任意 Python 代码,且仅支持一组经过筛选的数学符号、函数和矩阵方法。

此版本还新增了对超长表达式和大型结果的验证,以降低耗时符号计算带来的拒绝服务风险。

主要功能

  • 基本运算:加法、减法、乘法、除法、乘方
  • 代数运算:表达式展开、因式分解、化简
  • 微积分:求导、积分(定积分/不定积分)、极限计算
  • 方程求解:代数方程、方程组
  • 矩阵运算:矩阵求逆、特征值/特征向量计算
  • 级数展开:泰勒级数展开
  • 特殊函数:三角函数、对数函数、指数函数

使用示例

# Basic operations
"2 + 3*5" → 17

# Algebraic operations
"expand((x + 1)**2)" → x² + 2x + 1
"factor(x**2 - 2*x - 15)" → (x - 5)(x + 3)

# Calculus
"diff(sin(x), x)" → cos(x)
"integrate(exp(x), (x, 0, 1))" → E - 1
"integrate(exp(-x**2)*sin(x), (x, -oo, oo))" → 0
"limit(tan(x)/x, x, 0)" → 1

# Equation solving
"solve(x**2 - 4, x)" → [-2, 2]
"solve([x**2 + y**2 - 1, x + y - 1], [x, y])" → [(0, 1), (1, 0)]

# Matrix operations
"Matrix([[1, 2], [3, 4]]).inv()" → [[-2, 1], [3/2, -1/2]]
"Matrix([[1, 2, 3], [4, 5, 6]]).eigenvals()" → {9/2 - sqrt(33)/2: 1, 9/2 + sqrt(33)/2: 1}
"Sum(k, (k, 1, 10)).doit()" → 55
"series(cos(x), x, 0, 4)" → 1 - x²/2 + O(x⁴)

安装

通过 Smithery 安装

通过 Smithery 为 Claude Desktop 自动安装 Calculate Server:

npx -y @smithery/cli install @611711Dark/mcp_sympy_calculate_server --client claude
本地安装
  1. 克隆仓库:

    git clone https://github.com/611711Dark/mcp_calculate_server.git
    cd mcp_calculate_server
    
  2. 创建虚拟环境并安装依赖:

    uv venv
    source .venv/bin/activate
    uv pip install -e .
    
  3. 配置:

    "calculate_expression1": {
       "isActive": false,
       "command": "python",
       "args": [
         "server.py"
       ],
       "cwd": "/path/to/mcp_calculate_server"
     }
    

API 用法

通过 MCP 协议调用 calculate_expression 工具,并传入数学表达式字符串。解析器接受一组受限的 SymPy 表达式,例如算术运算、expand、factor、simplify、diff、integrate、limit、series、solve、Matrix(...).det()/inv()/eigenvals()/eigenvects() 和 Sum(...).doit()。

支持的名称
  • 符号:x、y、z 和 k 等小写变量
  • 常量:pi、E、oo、I
  • 函数:Abs、sin、cos、tan、log、exp、sqrt、expand、factor、simplify、diff、integrate、limit、series、solve、Sum、Matrix
  • 矩阵方法:.det()、.inv()、.eigenvals()、.eigenvects()
  • SymPy 方法:对 Sum(...) 等受支持的对象使用 .doit()
验证规则

依赖任意 Python 功能、导入、文件系统访问或其他非数学结构的表达式将被拒绝。 为降低拒绝服务风险,超大规模展开、高复杂度求解和过大的结果也可能被拒绝。 关键字参数、私有属性、不支持的矩阵方法、格式错误的矩阵以及不支持的名称都会触发错误消息。

依赖项

  • mcp>=1.5.0
  • sympy>=1.13.3

致谢

感谢这篇博客文章提供介绍,也感谢 Stefano 的帮助和负责任的漏洞披露。

许可证

本项目采用 MIT 许可证。请参阅 LICENSE 文件。

中文版

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。