返回市场
麦扑-沃尔夫拉姆阿尔法

麦扑-沃尔夫拉姆阿尔法

作者:cnosuke4 星标更新:2025-04-06

项目介绍

MCP Wolfram Alpha 服务器

MCP Wolfram Alpha 服务器是一个基于 Go 的 MCP 服务器,提供对 Wolfram Alpha API 的访问。它允许 MCP 客户端(例如 Claude Desktop)执行计算查询、访问科学数据并检索结构化知识。

此 MCP 服务器的目的和益处

目的

此 MCP 服务器将大型语言模型(LLMs)难以处理的数值计算任务委托给高精度计算引擎Wolfram Alpha

理解 LLM 的局限性

LLMs 在自然语言处理、文本生成和翻译方面表现出色,但其架构并不优化用于精确的数值计算或公式处理。

  • 计算准确性: 超出基本心算(如 2+3),LLMs 可能会犯计算错误,尤其是在多位数或复杂公式(微积分、矩阵计算等)的情况下。
  • 令牌消耗: 当 LLMs 尝试内部进行复杂计算时,它们需要许多步骤和推理,可能会低效地消耗宝贵的令牌(计算资源)。在某些情况下,它们可能在到达正确答案之前就达到了令牌限制。

此 MCP 服务器的角色和益处

此 MCP 服务器解决了这些挑战:

  • 高精度计算: 当 LLM 接收到需要计算的任务时,它将计算部分作为请求发送到此 MCP 服务器。服务器将请求转发给 Wolfram Alpha API,并返回准确的计算结果给 LLM,为用户提供可靠的计算输出。
  • 减少 LLM 工作负载: LLMs 不再需要自己执行计算,使它们能够专注于其在语言处理和上下文理解方面的优势。
  • 优化令牌使用: 该服务器防止了如果 LLMs 内部尝试不确定的计算时会发生低效的令牌消耗。 通过将计算任务委托给外部 API(通过此 MCP 服务器的 Wolfram Alpha),令牌使用仅限于 API 请求和响应交换,从而实现更高效的处理。

推荐使用场景

当 LLMs 需要执行以下计算时,鼓励积极利用此 MCP 服务器:

  • 算术运算(尤其是超出简单心算的多位数或小数运算)
  • 解代数方程
  • 微分和积分
  • 线性代数(矩阵计算等)
  • 统计计算
  • 物理或化学中的特定公式计算
  • 单位和货币转换(特别是需要当前汇率时)

然而,对于像 1+1 这样显然在 LLM 能力范围内的极其简单的计算,无需查询外部 API。 对于 LLMs 可以可靠处理的计算,它们应直接进行。

总之,此 MCP 服务器是帮助 LLMs 克服计算准确性挑战和提高令牌效率的重要支持工具,使它们能够提供更可靠和高效的响应。当需要计算(除了非常简单的计算外),积极使用此 MCP 服务器 API 以避免不必要的令牌消耗。

功能

  • 符合 MCP 规范:根据 MCP 规范实现基于 JSON-RPC 的接口
  • Wolfram Alpha 集成:提供对数学计算、科学数据和知识查询的访问
  • 可配置选项:支持单位系统、区域设置和语言选项

要求

配置

服务器通过 YAML 文件(默认:config.yml)进行配置:

log: 'path/to/mcp-wolfram-alpha.log' # 日志文件路径(为空则不记录日志)
debug: false # 启用调试模式

wolfram:
  app_id: 'YOUR_WOLFRAM_ALPHA_APP_ID' # 必需:Wolfram Alpha API ID
  timeout: 30 # API 超时时间(秒)
  use_bearer: false # 使用 Bearer 令牌认证
  default_max_chars: 2000 # 默认响应最大字符数

可以通过环境变量覆盖配置:

  • LOG_PATH:日志文件路径
  • DEBUG:启用调试模式(true/false)
  • WOLFRAM_APP_ID:Wolfram Alpha API ID
  • WOLFRAM_TIMEOUT:超时时间(秒)
  • WOLFRAM_USE_BEARER:使用 Bearer 认证(true/false)
  • WOLFRAM_DEFAULT_MAX_CHARS:默认最大字符数

构建和运行

# 下载依赖项
make deps

# 构建服务器
make build

# 运行服务器
./bin/mcp-wolfram-alpha server --config config.yml

MCP 工具

实现了以下 MCP 工具:

  • wolfram_query:执行 Wolfram Alpha 查询,带有自定义选项

工具参数

wolfram_query 工具接受以下参数:

{
  "query": "integrate x^2",
  "max_chars": 2000,
  "units": "metric",
  "country_code": "JP",
  "language_code": "en",
  "show_steps": true
}
  • query(必需):要执行的 Wolfram Alpha 查询
  • max_chars:响应的最大字符数(默认:2000)
  • units:使用的单位系统(metricnonmetric
  • country_code:本地化的国家代码(例如 'JP')
  • language_code:本地化的语言代码(例如 'ja')
  • show_steps:请求数学问题的逐步解决方案(布尔值)

与 Claude Desktop 集成

要与 Claude Desktop 集成,请编辑您的 claude_desktop_config.json 文件:

{
  "mcpServers": {
    "wolfram-alpha": {
      "command": "/path/to/bin/mcp-wolfram-alpha",
      "args": ["server", "--config", "/path/to/config.yml"],
      "env": {
        "LOG_PATH": "/path/to/logs/mcp-wolfram.log",
        "WOLFRAM_APP_ID": "YOUR_WOLFRAM_ALPHA_APP_ID"
      }
    }
  }
}

示例用法

当 Claude Desktop 正确配置后,您可以向 Claude 提问如下问题:

  • "x^3 的导数是什么?"
  • "计算地球到火星的距离"
  • "金的原子量是多少?"
  • "将 100 公里转换为英里"
  • "求解方程 x^2 + 3x - 4 = 0"

Claude 将自动通过此 MCP 服务器使用 Wolfram Alpha API 来计算答案。

错误处理

服务器为各种失败情况提供了信息丰富的错误消息:

  • 认证错误(无效的 API ID)
  • 输入错误
  • 网络连接问题
  • 超时错误
  • 服务器端 Wolfram Alpha 错误

所有错误都带有详细信息进行记录,有助于故障排除。

许可证

本项目采用 MIT 许可证。

作者

cnosuke (github.com/cnosuke)