modelscope·@sdiehl/sympy-mcp
暂无描述。
Sympy-MCP是一个模型上下文协议(Model Context Protocol, MCP)服务器,允许大型语言模型(LLMs)自主执行符号数学和计算机代数。它向MCP客户端暴露了SymPy核心功能中的许多工具,用于操作数学表达式和方程。
语言模型在符号操作方面表现非常糟糕。它们会臆造变量、随机常数,重新排列项,并且通常会制造混乱。但我们有专门用于符号操作的计算机代数系统,因此我们可以使用工具调用来编排一系列变换,让符号内核完成所有繁重的工作。
虽然你可以让一个LLM生成Mathematica或Python代码,但如果你想将LLM用作代理或即时计算器,使用MCP服务器并直接暴露符号工具会提供更好的体验。
该服务器暴露了一部分符号数学能力,包括代数方程求解、积分和微分、矢量微积分、广义相对论的张量微积分,以及常微分方程和偏微分方程。
例如,你可以用自然语言要求它解一个微分方程:
解决带有强迫项的阻尼谐振子问题:由微分方程描述的质量-弹簧-阻尼系统,其中m是质量,c是阻尼系数,k是弹簧常数,F(t)是外部力。
$$ m\frac{d^2x}{dt^2} + c\frac{dx}{dt} + kx = F(t) $$
或者涉及广义相对论的问题:
使用反德西特时空的逆度规$g^{\mu\nu}$计算里奇张量$R_{\mu\nu}$的迹,以确定其常数标量曲率$R$。
首先你需要uv。
brew install uvcurl -LsSf https://astral.sh/uv/install.sh | sh然后你可以通过以下命令安装并运行服务器:
shell
git clone https://github.com/sdiehl/sympy-mcp.git cd sympy-mcp uv sync
uv run mcp install server.py
uv run mcp run server.py
现在你应该能在Claude Desktop应用程序中看到这个服务器了。对于其他客户端,请参见下文。
如果你想要一个完全独立版本,只需一条命令即可运行,可以使用以下命令。注意这正在从GitHub运行任意代码,请小心。
shell uv run --with https://github.com/sdiehl/sympy-mcp/releases/download/0.1/sympy_mcp-0.1.0-py3-none-any.whl python server.py
如果你想进行广义相对论计算,需要安装einsteinpy库。
shell uv sync --group relativity
sympy-mcp服务器提供了以下符号数学工具:
| 工具 | 工具ID | 描述 |
|---|---|---|
| 变量引入 | intro | 引入具有指定假设的变量并存储它 |
| 多个变量 | intro_many | 同时引入多个具有指定假设的变量 |
| 表达式解析器 | introduce_expression | 使用可用的局部变量解析表达式字符串并存储它 |
| LaTeX打印机 | print_latex_expression | 以LaTeX格式打印存储的表达式及其变量假设 |
| 代数求解器 | solve_algebraically | 在给定域上为给定变量代数地求解方程 |
| 线性求解器 | solve_linear_system | 求解线性方程组 |
| 非线性求解器 | solve_nonlinear_system | 求解非线性方程组 |
| 函数变量 | introduce_function | 引入用于微分方程的函数变量 |
| ODE求解器 | dsolve_ode | 求解常微分方程 |
| 标准度规 | create_predefined_metric | 创建预定义的时空度规(例如:史瓦西、克尔、闵可夫斯基) |
| 度规搜索 | search_predefined_metrics | 搜索可用的预定义度规 |
| 张量计算器 | calculate_tensor | 从度规计算张量(里奇、爱因斯坦、韦尔张量) |
| 自定义度规 | create_custom_metric | 从提供的组件和符号创建自定义度规张量 |
| 张量 LaTeX 输出 | print_latex_tensor | 以 LaTeX 格式打印存储的张量表达式 |
| 简化器 | simplify_expression | 使用 SymPy 的规范化函数简化数学表达式 |
| 替换 | substitute_expression | 在另一个表达式中用一个表达式替换变量 |
| 积分 | integrate_expression | 对变量积分表达式 |
| 微分 | differentiate_expression | 对变量微分表达式 |
| 坐标系 | create_coordinate_system | 创建用于矢量微积分操作的3D坐标系 |
| 矢量场 | create_vector_field | 在指定坐标系中创建矢量场 |
| 旋度 | calculate_curl | 计算矢量场的旋度 |
| 散度 | calculate_divergence | 计算矢量场的散度 |
| 梯度 | calculate_gradient | 计算标量场的梯度 |
| 单位转换器 | convert_to_units | 将数量转换为目标单位 |
| 单位简化器 | quantity_simplify_units | 简化带有单位的数量 |
| 矩阵创建器 | create_matrix | 从提供的数据创建 SymPy 矩阵 |
| 行列式 | matrix_determinant | 计算矩阵的行列式 |
| 矩阵逆 | matrix_inverse | 计算矩阵的逆 |
| 特征值 | matrix_eigenvalues | 计算矩阵的特征值 |
| 特征向量 | matrix_eigenvectors | 计算矩阵的特征向量 |
默认情况下,变量会预先定义假设(类似于 symbols() 函数在 SymPy 中的工作方式)。除非另有说明,默认假设是变量是复数、可交换的,并且是在复数域 (\mathbb{C}) 上的项。
| 属性 | 值 |
|---|---|
commutative | true |
complex | true |
finite | true |
infinite | false |
通常,mcp install 命令会自动将服务器添加到 claude_desktop_config.json 文件中。如果它没有这样做,你需要找到配置文件并添加以下内容:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%Claudeclaude_desktop_config.json在 mcpServers 对象中添加以下内容,将 /ABSOLUTE_PATH_TO_SYMPY_MCP/server.py 替换为 sympy-mcp server.py 文件的绝对路径。
json { "mcpServers": { "sympy-mcp": { "command": "/opt/homebrew/bin/uv", "args": [ "run", "--with", "einsteinpy", "--with", "mcp[cli]", "--with", "pydantic", "--with", "sympy", "mcp", "run", "/ABSOLUTE_PATH_TO_SYMPY_MCP/server.py" ] } } }
在你的 ~/.cursor/mcp.json 中,添加以下内容,其中 ABSOLUTE_PATH_TO_SYMPY_MCP 是指向 sympy-mcp server.py 文件的路径。
json { "mcpServers": { "sympy-mcp": { "command": "/opt/homebrew/bin/uv", "args": [ "run", "--with", "einsteinpy", "--with", "mcp[cli]", "--with", "pydantic", "--with", "sympy", "mcp", "run", "/ABSOLUTE_PATH_TO_SYMPY_MCP/server.py" ] } } }
Chat > Agent: Enable。或者手动将配置添加到您的 settings.json(全局):
json { "mcp": { "servers": { "sympy-mcp": { "command": "uv", "args": [ "run", "--with", "einsteinpy", "--with", "mcp[cli]", "--with", "pydantic", "--with", "sympy", "mcp", "run", "/ABSOLUTE_PATH_TO_SYMPY_MCP/server.py" ] } } } }
#…
后端服务,实现了模型控制面板协议,可连接到 Apache Doris 数据库,允许用户执行 SQL 查询、管理元数据,并且有可能利用大语言模型(LLMs)完成自然语言到 SQL 的转换等任务。
实现模型上下文协议(MCP)的 Node.js 服务器,用于文件系统操作,允许人工智能系统在指定的允许路径内读取、写入、编辑文件和管理目录。
暂无描述。
暂无描述。
暂无描述。
暂无描述。