此仓库包含一个模型上下文协议(MCP)服务器,允许MCP客户端(如Cursor)通过wolframscript执行Mathematica代码并验证数学推导。
该服务器充当桥梁,使支持MCP的应用程序能够利用本地安装的Mathematica进行以下任务:
wolframscript命令行工具。您可以通过在终端中运行wolframscript -help来测试这一点。tsconfig.json目标ES2022推断)。git clone <repository-url>
cd <repository-directory>
npm install
npm run build
此命令将从src/目录中的TypeScript源代码编译成build/目录中的JavaScript,并使主脚本可执行。要启动MCP服务器,请在终端中运行以下命令:
node build/index.js
服务器将启动并通过标准输入/输出(stdio)监听来自MCP客户端的连接。在使用服务器期间,请保持此终端窗口打开。
对于更健壮的部署,考虑使用进程管理器如pm2在后台运行服务器并管理重启。
MCP客户端通常会发现并与其运行的MCP服务器通信。具体的配置步骤可能会因客户端应用程序而异。
一般步骤:
node build/index.js
客户端特定配置:
Cline:
根据Cline MCP服务器开发协议,您通常会在设置文件中配置服务器(通常是Cline配置目录中的settings.json)。您需要添加如下条目:
{
"mcpServers": {
"mathematica-server": {
"command": "node",
"args": ["/full/path/to/mcp-server-mathematica/build/index.js"], // 替换为实际绝对路径
"disabled": false,
"autoApprove": [] // 可选:添加自动批准的工具名称
}
// ... 其他服务器 ...
}
}
将/full/path/to/mcp-server-mathematica/build/index.js替换为您系统上构建的index.js文件的实际绝对路径。
Cursor:
Cursor可能需要编辑特定的设置文件,可能是类似于~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json(尽管此路径可能会改变)。其结构类似于上面的Cline示例。
其他客户端(例如Claude Desktop):
查看您特定MCP客户端的文档。查找“MCP服务器”、“工具配置”或“外部工具”部分。配置通常涉及指定命令(node)、服务器脚本的路径(build/index.js),以及如果需要的话指定环境变量。
服务器向MCP客户端暴露以下工具:
execute_mathematica执行任意Mathematica代码并返回结果。
输入模式:
{
type: "object",
properties: {
code: {
type: "string",
description: "要执行的Mathematica代码"
},
format: {
type: "string",
description: "输出格式(text、latex或mathematica)",
enum: ["text", "latex", "mathematica"],
default: "text"
}
},
required: ["code"]
}
示例用法(客户端请求):
{
"tool_name": "execute_mathematica",
"arguments": {
"code": "Integrate[x^2, {x, 0, 1}]",
"format": "latex"
}
}
verify_derivation验证一系列数学表达式,检查每个步骤是否逻辑上从前一步得出,使用Simplify[prev == current]。
输入模式:
{
type: "object",
properties: {
steps: {
type: "array",
description: "代表推导步骤的数学表达式数组(作为字符串)。至少需要两个步骤。",
items: {
type: "string"
}
},
format: {
type: "string",
description: "验证报告的输出格式(text、latex或mathematica)",
enum: ["text", "latex", "mathematica"],
default: "text"
}
},
required: ["steps"]
}
示例用法(客户端请求):
{
"tool_name": "verify_derivation",
"arguments": {
"steps": [
"x^2 - y^2",
"(x-y)*(x+y)"
],
"format": "text"
}
}
node build/index.js)。wolframscript是否已安装并在PATH中可用(wolframscript -help)。wolframscript错误消息。code或steps的语法。verify_derivation的steps数组至少有两个元素。src/:服务器的TypeScript源代码。build/:编译的JavaScript输出(由npm run build生成)。package.json:项目元数据和依赖项。tsconfig.json:TypeScript编译器配置。