Wolfram Alpha计算服务

基于Go的MCP服务器,通过Wolfram Alpha API提供高精度计算、科学数据查询和结构化知识检索服务,帮助大型语言模型解决数值计算难题。

  • by cnosuke
  • Go
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 cnosuke/mcp-wolfram-alpha

使用说明

MCP Wolfram Alpha服务器

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

此MCP服务器的用途和优点

目的

此MCP服务器委派 数值计算任务 大型语言模型(LLM)难以适应高精度计算引擎 知识引擎.

了解LLM的局限性

LLM在自然语言处理、文本生成和翻译方面表现出卓越的能力,但它们的架构并没有针对精确的数值计算或公式处理进行优化。

  • 计算精度: 除了基本的心算(例如2+3)之外,LLM可能会出现计算错误,特别是在处理多位数字或复杂公式(微积分、矩阵计算等)时。
  • 代币消费: 当LLM在内部尝试复杂的计算时,它们需要许多步骤和推理,可能 **低效地消耗有价值的代币(计算资源)**在某些情况下,他们可能会在得出正确答案之前达到令牌限制。

此MCP服务器的作用和优势

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

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

推荐使用案例

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

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

但是,不需要查询外部API来进行极其简单的计算,例如 1+1 这显然在LLM的能力范围内。 对于LLM可以可靠处理的计算,应该直接进行。

总之,这个MCP服务器是一个必不可少的支持工具,可以帮助LLM克服计算准确性和令牌效率方面的挑战,实现更可靠、更高效的响应。当需要计算时(除了非常简单的计算),积极使用此MCP服务器API,以避免不必要的令牌消耗。

特性

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

需求

配置

服务器是通过一个YAML文件(默认:config.yml)配置的:

log: 'path/to/mcp-wolfram-alpha.log' # Log file path (empty for no logging)
debug: false # Enable debug mode

wolfram:
  app_id: 'YOUR_WOLFRAM_ALPHA_APP_ID' # Required: Wolfram Alpha API ID
  timeout: 30 # API timeout in seconds
  use_bearer: false # Use Bearer token authentication
  default_max_chars: 2000 # Default maximum characters in responses

您可以使用环境变量覆盖配置:

  • LOG_PATH:日志文件的路径
  • DEBUG:启用调试模式(真/假)
  • WOLFRAM_APP_ID:Wolfram Alpha API ID
  • WOLFRAM_TIMEOUT:超时时间(秒)
  • WOLFRAM_USE_BEARER:使用承载身份验证(真/假)
  • WOLFRAM_DEFAULT_MAX_CHARS:默认最大字符数

建立和运行

# Download dependencies
make deps

# Build the server
make build

# Run the server
./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:要使用的单位制(metric 或 nonmetric)
  • 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/cnosuke)