Wolfram|Alpha MCP服务器
模型上下文协议(MCP)服务器,提供对Wolfram|Alpha LLM API的访问,允许人工智能助手执行计算查询并获得结构化的数学、科学和事实信息。
特性
- 用自然语言查询Wolfram|Alpha LLM API
- 单位转换提示 带有智能单元建议
- 智能完成 适用于40+物理量类别(769+单位)
- 支持缩写、复数和技术单位
- 针对常见API问题的正确错误处理
- 支持可选参数(字符限制、单位、位置)
- 轻松集成Claude Desktop和其他MCP客户端
用法
设置
获取Wolfram|Alpha应用程序ID
- 访问https://developer.wolframalpha.com/portal/myapps/
- 使用您的Wolfram ID注册或登录
- 创建新应用程序并复制应用程序ID
配置示例
添加到您的Claude Desktop配置文件(claude_desktop_config.json):
{
"mcpServers": {
"wolframalpha": {
"command": "uv",
"args": [
"--directory",
"path/to/server",
"run",
"python",
"-m",
"wolframalpha_mcp_server.server"
],
"env": {
"WOLFRAM_APP_ID": "your_app_id_here"
}
}
}
}独立
- 配置环境变量
cp .env.example .env
# Edit .env and add your Wolfram|Alpha App ID- 运行服务器
# Using uv
uv run python -m wolframalpha_mcp_server.server
# Or directly
python -m wolframalpha_mcp_server.server可用工具
query_wolfram
查询Wolfram|Alpha LLM API以获取跨多个域的计算结果和知识。
支持的主题:
- 数学:计算、导数、积分、方程式、统计学
- 物理学:常数、公式、单位转换、物理性质
- 化学:元素、化合物、反应、分子性质
- 地理学:国家、城市、人口、地理数据
- 历史:日期、事件、历史人物、时间表
- 艺术:艺术家、艺术品、文化信息
- 天文学:天体、天文数据、空间事实
- 常识:事实、比较、数据分析
参数:
query(必填):英语自然语言查询maxchars(可选):最大响应字符数(默认值:6800)units(可选):单位制首选项(“公制”、“英制”等)location(可选):位置相关查询的地理上下文
最佳实践:
- 简化查询“法国有多少人?”→ “法国人口”
- 使用正确的符号:“6\*10^14”(从不使用“6e14”)
- 单字母变量:x,y,n,n1,n1
- 命名常量:“光速”(非数值)
- 复合单元“Ω m”(含空格)
- 多个属性:为每个数据属性单独调用
示例:
# Mathematical queries
query_wolfram("derivative of x^2")
query_wolfram("solve x^2 + 3x + 2 = 0")
query_wolfram("integral sin(x) from 0 to pi")
# Scientific queries
query_wolfram("speed of light in km/s")
query_wolfram("molecular weight of caffeine")
query_wolfram("density of gold")
# Data queries
query_wolfram("France population", maxchars=1000)
query_wolfram("largest countries by area")
query_wolfram("weather in Paris", location="Paris, France")
# Unit conversions
query_wolfram("100 fahrenheit to celsius", units="metric")
query_wolfram("50 miles to kilometers")错误处理
服务器正常处理常见的API错误:
- 501:无法解释输入(可能包括建议)
- 400:请求错误或缺少参数
- 403:身份验证错误(无效或缺少应用程序ID)
- 网络超时和连接错误
发展
设置
安装依赖项:
# Using uv (recommended)
uv sync --dev
# Or using pip
pip install -e .[dev]代码质量
此项目使用 ruff 用于修剪和格式化:
# Check and fix linting issues
uv run ruff check --fix .
# Format code
uv run ruff format .
# Run both checks
uv run ruff check . && uv run ruff format .预提交钩子
预提交钩子被配置为自动运行linting和格式化:
# Install pre-commit hooks
uv run pre-commit install
# Run manually on all files
uv run pre-commit run --all-files测试
该项目使用双重测试方法来优化测试执行和API使用:
Wolfram|Alpha API测试
需要实时API调用以进行全面功能验证的测试:
# Run full integration tests (requires WOLFRAM_APP_ID)
uv run python test.py包括:
- MCP服务器配置
- 具有8个测试用例(算术、导数、科学常数等)的查询功能
- 错误处理和边缘情况
- 实时API连接和响应验证
单元测试(无需API)
不需要API调用的快速隔离测试:
# Run unit tests with pytest
uv run pytest tests/ -v包括(16项测试):
- 单元完成功能(9次测试)
- 单位转换提示生成(5次测试)
- 单元类别结构验证(1次测试)
- 单元重复检测(1次测试)
所有单元转换测试均在 tests/test_unit_conversion.py
测试覆盖率
- 集成测试:使用Wolfram | Alpha API验证端到端功能
- 单元测试:确保核心逻辑正确无需外部依赖
- 总覆盖范围:所有服务器功能都在两种方法中进行了测试
CI/CD
GitHub操作会自动运行:
- 用Linting
ruff check - 格式验证
ruff format --check - 跨Python 3.10、3.11和3.12的测试
- 对所有文件进行预提交检查
许可证
这个项目是开源的。有关使用限制,请参阅Wolfram|Alpha API服务条款。
