项目简介

MathJS计算器MCP服务器是一个基于Model Context Protocol (MCP) 实现的后端服务,它利用强大的MathJS库,为大型语言模型(LLM)客户端提供实用的数学计算能力。通过此服务器,LLM可以调用工具执行复杂的数学运算,例如表达式求值和符号求导,从而扩展LLM在数学和科学计算方面的应用场景。

主要功能点

  • 表达式计算: 支持各种数学表达式的计算,包括基本运算、函数、常量等。
  • 符号求导: 能够计算数学表达式的导数,支持对不同变量求导。
  • 清晰的错误提示: 对于无效的数学表达式或输入,提供明确的错误信息,方便调试和使用。
  • 易于集成: 遵循MCP协议,可以方便地与支持MCP协议的LLM客户端集成,例如Claude Desktop。

安装步骤

  1. 安装 Node.js 和 npm: 确保您的系统已安装 Node.js 和 npm (Node Package Manager)。您可以从 https://nodejs.org/ 下载并安装。

  2. 下载仓库代码: 从 GitHub 仓库 https://github.com/edwardpwtsoi/mathjs-mcp 克隆或下载源代码。

  3. 安装依赖: 在仓库根目录下,打开终端并运行以下命令安装项目依赖:

    npm install
  4. 构建项目: 运行以下命令构建项目,生成可执行的服务器代码:

    npm run build

    构建成功后,会在 'build' 目录下生成 'index.js' 文件。

服务器配置

对于 MCP 客户端(例如 Claude Desktop),您需要配置 MCP 服务器的启动命令。以下是使用 'npx' 启动 MathJS 计算器 MCP 服务器的配置示例,添加到 'claude_desktop_config.json' 文件中:

{
  "mcpServers": {
    "mathjs-calculator": {
      "command": "npx",
      "args": [
        "-y",
        "mathjs-mcp-server"
      ]
    }
  }
}

配置参数说明:

  • '"mathjs-calculator"': 服务器名称,您可以自定义,用于在客户端中引用。

  • '"command": "npx"': 指定启动服务器的命令为 'npx',它会自动查找并执行 'mathjs-mcp-server' 包。

  • '"args": ["-y", "mathjs-mcp-server"]': 'npx' 命令的参数。

    • '"-y"': (可选) 自动确认 'npm install' 提示 (如果 'mathjs-mcp-server' 包尚未全局安装)。
    • '"mathjs-mcp-server"': 指定要执行的包名称,这里假设您已将项目发布到 npm 并命名为 'mathjs-mcp-server'。 【重要提示】 实际使用时,如果直接运行本地构建的代码,您可能需要将 'command' 和 'args' 修改为直接执行 'build/index.js' 文件,例如:
    {
      "mcpServers": {
        "mathjs-calculator": {
          "command": "node",
          "args": [
            "build/index.js"
          ]
        }
      }
    }

    请根据您的实际部署情况选择合适的配置。

基本使用方法

  1. 启动服务器: 根据您的配置,启动 MathJS 计算器 MCP 服务器。如果使用 'npx mathjs-mcp-server' (假设已发布到 npm),则在终端中运行此命令即可。 如果使用 'node build/index.js' (本地运行),则在仓库根目录下运行 'npm run build' 后,再运行 'node build/index.js'。 服务器启动成功后,会在控制台输出 'MathJS MCP Server started'。

  2. 在 MCP 客户端中使用: 在支持 MCP 协议的客户端(如 Claude Desktop)中,配置并启用 "mathjs-calculator" 服务器。

  3. 调用工具: 在客户端中,您可以通过自然语言指令或特定方式指示 LLM 调用服务器提供的工具。

    • 'calculate' 工具: 用于计算数学表达式。例如,您可以指示 LLM "计算 2 乘以 (3 加 4)",客户端会将请求发送到服务器,服务器返回计算结果 "14"。

    • 'derivative' 工具: 用于计算导数。例如,您可以指示 LLM "求 x 平方加 2x 对 x 的导数",服务器会返回导数结果 "2*x + 2"。

    示例请求 (calculate 工具):

    {
      "expression": "2 * (3 + 4)"
    }

    示例请求 (derivative 工具):

    {
      "expression": "x^2 + 2*x",
      "variable": "x"
    }

    服务器会根据请求调用相应的 MathJS 功能,并将结果以 MCP 协议规定的格式返回给客户端。

信息

分类

AI与计算