返回市场
MCP服务器数学计算

MCP服务器数学计算

作者:texra-ai15 星标更新:2025-10-20

项目介绍

Mathematica MCP 服务器

此仓库包含一个模型上下文协议(MCP)服务器,允许MCP客户端(如Cursor)通过wolframscript执行Mathematica代码并验证数学推导。

概述

该服务器充当桥梁,使支持MCP的应用程序能够利用本地安装的Mathematica进行以下任务:

  • 执行复杂的数学计算。
  • 验证由人类或AI模型提供的数学推导步骤。
  • 生成表达式的LaTeX或Mathematica字符串表示形式。

先决条件

  • 系统上必须安装Mathematica
  • 系统的PATH中必须可用wolframscript命令行工具。您可以通过在终端中运行wolframscript -help来测试这一点。
  • Node.js(推荐:v16或更高版本,根据tsconfig.json目标ES2022推断)。

安装

  1. 克隆仓库:
    git clone <repository-url>
    cd <repository-directory>
    
  2. 安装依赖项:
    npm install
    
  3. 构建服务器:
    npm run build
    
    此命令将从src/目录中的TypeScript源代码编译成build/目录中的JavaScript,并使主脚本可执行。

运行服务器

要启动MCP服务器,请在终端中运行以下命令:

node build/index.js

服务器将启动并通过标准输入/输出(stdio)监听来自MCP客户端的连接。在使用服务器期间,请保持此终端窗口打开。

对于更健壮的部署,考虑使用进程管理器如pm2在后台运行服务器并管理重启。

与MCP客户端(例如Cursor、Cline、Claude Desktop)集成

MCP客户端通常会发现并与其运行的MCP服务器通信。具体的配置步骤可能会因客户端应用程序而异。

一般步骤:

  1. 启动Mathematica MCP服务器: 确保服务器在终端中运行:
    node build/index.js
    
  2. 配置您的MCP客户端: 将服务器添加到客户端的配置中。这通常涉及编辑JSON设置文件。请参阅下面的客户端特定说明。
  3. 重启您的MCP客户端: 在启动服务器或更改配置后,重启客户端应用程序以确保它检测到Mathematica服务器。

客户端特定配置:

  • 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客户端暴露以下工具:

1. 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"]
}

示例用法(客户端请求):

  • 自然语言: “使用Mathematica计算从0到1的x^2积分,并以LaTeX格式输出”
  • 直接工具调用:
    {
      "tool_name": "execute_mathematica",
      "arguments": {
        "code": "Integrate[x^2, {x, 0, 1}]",
        "format": "latex"
      }
    }
    

2. 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"]
}

示例用法(客户端请求):

  • 自然语言: “验证这个推导:['x^2 - y^2', '(x-y)(x+y)']”
  • 直接工具调用:
    {
      "tool_name": "verify_derivation",
      "arguments": {
        "steps": [
          "x^2 - y^2",
          "(x-y)*(x+y)"
        ],
        "format": "text"
      }
    }
    

故障排除

  • 未找到服务器/无响应:
    • 确保服务器在终端中运行(node build/index.js)。
    • 检查wolframscript是否已安装并在PATH中可用(wolframscript -help)。
    • 重新启动您的MCP客户端应用程序。
    • 检查客户端的MCP配置。
  • 工具错误:
    • 检查服务器终端输出(stderr)中的日志和wolframscript错误消息。
    • 验证提供的Mathematica codesteps的语法。
    • 确保verify_derivationsteps数组至少有两个元素。
  • Mathematica问题: 确保您的Mathematica安装已授权且正常工作。

项目结构

  • src/:服务器的TypeScript源代码。
  • build/:编译的JavaScript输出(由npm run build生成)。
  • package.json:项目元数据和依赖项。
  • tsconfig.json:TypeScript编译器配置。