# Wolfram Alpha MCP Server
Wolfram Alpha MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,提供对 Wolfram Alpha 移动端 API 的访问,支持科学计算、数学求解等功能。
## 功能特性
- 🔬 **科学计算**: 支持复杂的数学计算和科学问题求解
- 📝 **分步解答**: 提供详细的数学问题分步解答
- 🌐 **多格式输出**: 支持 plaintext、JSON 等多种输出格式
- 🚀 **高性能**: 基于 Wolfram Alpha 移动端 API,响应快速
- 📡 **流式响应**: 支持 Streamable HTTP 协议,提供实时流式数据
- ⚡ **实时体验**: 流式工具提供更好的用户交互体验
## 安装
### 从 PyPI 安装
```bash
pip install wolfram-alpha-mcp-server
```
### 从源码安装
```bash
git clone https://github.com/your-username/wolfram-alpha-mcp-server.git
cd wolfram-alpha-mcp-server
pip install -e .
```
## 使用方法
### 1. 启动 MCP 服务器
```bash
python server_remote.py
```
或者使用命令行工具:
```bash
wolfram-alpha-mcp
```
### 2. 配置 MCP 客户端
在您的 MCP 客户端配置文件中添加以下配置:
```json
{
"mcpServers": {
"wolfram-alpha": {
"command": "uvx",
"args": ["wolfram-alpha-mcp-server@latest"]
}
}
}
```
### 3. 使用工具
服务器提供以下5个工具:
#### `wolfram_alpha_query`
基础查询工具,用于科学和事实信息查询。
```python
# 示例查询
result = await wolfram_alpha_query("What is the derivative of x^2?")
```
#### `wolfram_mobile_query`
高级查询工具,支持自定义格式和参数。
```python
# 示例查询
result = await wolfram_mobile_query(
query="plot sin(x)",
format_type="plaintext",
output_type="json"
)
```
#### `wolfram_step_by_step`
分步解答工具,专门用于数学问题的详细解答。
```python
# 示例查询
result = await wolfram_step_by_step("solve x^2 + 5x + 6 = 0")
```
#### `wolfram_streaming_query`
流式查询工具,支持实时流式响应,提供更好的用户体验。
```python
# 示例流式查询
result = await wolfram_streaming_query("What is the integral of x^2?")
import json
data = json.loads(result)
for chunk in data['streaming_chunks']:
print(f"[{chunk['type']}] {chunk['content']}")
```
#### `wolfram_streaming_step_by_step`
流式分步解答工具,实时显示数学问题的分步求解过程。
```python
# 示例流式分步解答
result = await wolfram_streaming_step_by_step("solve x^2 + 5x + 6 = 0")
import json
data = json.loads(result)
for chunk in data['streaming_chunks']:
print(f"[{chunk['type']}] {chunk['content']}")
```
## 服务配置
### Server Config
```json
{
"command": "uvx",
"args": ["wolfram-alpha-mcp-server@latest"]
}
```
### 环境变量
当前版本使用内置的移动端 API 配置,无需额外环境变量。
## 开发
### 项目结构
```
wolfram-alpha-mcp-server/
├── server_remote.py # 远程版本服务器
├── server.py # 本地版本服务器
├── setup.py # 包安装配置
├── pyproject.toml # 项目配置
├── requirements.txt # 依赖列表
├── README.md # 项目说明
└── mcp.json # MCP 客户端配置示例
```
### 依赖项
- `mcp-server>=0.1.0`: MCP 服务器框架
- `requests>=2.31.0`: HTTP 请求库
- `anyio>=3.7.0`: 异步 I/O 库
### 构建和发布
```bash
# 构建包
python -m build
# 发布到 PyPI
python -m twine upload dist/*
```
## 许可证
本项目采用 MIT 许可证。
## 贡献
欢迎提交 Issue 和 Pull Request!
## 支持
如果您遇到任何问题,请:
1. 查看 [Issues](https://github.com/xiaomayisjh/wolfram-alpha-mcp-server/issues) 页面
2. 创建新的 Issue 描述您的问题
## 更新日志
### v1.0.0
- 初始版本发布
- 支持基础查询、分步解答、高级查询等功能
- 支持远程部署和托管
Raw data
{
"_id": null,
"home_page": "https://github.com/your-username/wolfram-alpha-mcp-server",
"name": "wolfram-alpha-mcp-server-xiaomayisjh",
"maintainer": "Wolfram Alpha MCP Team",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "wolfram, alpha, mcp, mathematics, science, calculation, api",
"author": "Wolfram Alpha MCP Team",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/f7/b1/943d46c1cdc1ea415840c59bbe16835e5a6a13e578d8d9ee0bf0ecda2f90/wolfram_alpha_mcp_server_xiaomayisjh-1.0.1.tar.gz",
"platform": null,
"description": "# Wolfram Alpha MCP Server\r\n\r\nWolfram Alpha MCP Server \u662f\u4e00\u4e2a\u57fa\u4e8e Model Context Protocol (MCP) \u7684\u670d\u52a1\u5668\uff0c\u63d0\u4f9b\u5bf9 Wolfram Alpha \u79fb\u52a8\u7aef API \u7684\u8bbf\u95ee\uff0c\u652f\u6301\u79d1\u5b66\u8ba1\u7b97\u3001\u6570\u5b66\u6c42\u89e3\u7b49\u529f\u80fd\u3002\r\n\r\n## \u529f\u80fd\u7279\u6027\r\n\r\n- \ud83d\udd2c **\u79d1\u5b66\u8ba1\u7b97**: \u652f\u6301\u590d\u6742\u7684\u6570\u5b66\u8ba1\u7b97\u548c\u79d1\u5b66\u95ee\u9898\u6c42\u89e3\r\n- \ud83d\udcdd **\u5206\u6b65\u89e3\u7b54**: \u63d0\u4f9b\u8be6\u7ec6\u7684\u6570\u5b66\u95ee\u9898\u5206\u6b65\u89e3\u7b54\r\n- \ud83c\udf10 **\u591a\u683c\u5f0f\u8f93\u51fa**: \u652f\u6301 plaintext\u3001JSON \u7b49\u591a\u79cd\u8f93\u51fa\u683c\u5f0f\r\n- \ud83d\ude80 **\u9ad8\u6027\u80fd**: \u57fa\u4e8e Wolfram Alpha \u79fb\u52a8\u7aef API\uff0c\u54cd\u5e94\u5feb\u901f\r\n- \ud83d\udce1 **\u6d41\u5f0f\u54cd\u5e94**: \u652f\u6301 Streamable HTTP \u534f\u8bae\uff0c\u63d0\u4f9b\u5b9e\u65f6\u6d41\u5f0f\u6570\u636e\r\n- \u26a1 **\u5b9e\u65f6\u4f53\u9a8c**: \u6d41\u5f0f\u5de5\u5177\u63d0\u4f9b\u66f4\u597d\u7684\u7528\u6237\u4ea4\u4e92\u4f53\u9a8c\r\n\r\n## \u5b89\u88c5\r\n\r\n### \u4ece PyPI \u5b89\u88c5\r\n\r\n```bash\r\npip install wolfram-alpha-mcp-server\r\n```\r\n\r\n### \u4ece\u6e90\u7801\u5b89\u88c5\r\n\r\n```bash\r\ngit clone https://github.com/your-username/wolfram-alpha-mcp-server.git\r\ncd wolfram-alpha-mcp-server\r\npip install -e .\r\n```\r\n\r\n## \u4f7f\u7528\u65b9\u6cd5\r\n\r\n### 1. \u542f\u52a8 MCP \u670d\u52a1\u5668\r\n\r\n```bash\r\npython server_remote.py\r\n```\r\n\r\n\u6216\u8005\u4f7f\u7528\u547d\u4ee4\u884c\u5de5\u5177\uff1a\r\n\r\n```bash\r\nwolfram-alpha-mcp\r\n```\r\n\r\n### 2. \u914d\u7f6e MCP \u5ba2\u6237\u7aef\r\n\r\n\u5728\u60a8\u7684 MCP \u5ba2\u6237\u7aef\u914d\u7f6e\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff1a\r\n\r\n```json\r\n{\r\n \"mcpServers\": {\r\n \"wolfram-alpha\": {\r\n \"command\": \"uvx\",\r\n \"args\": [\"wolfram-alpha-mcp-server@latest\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\n### 3. \u4f7f\u7528\u5de5\u5177\r\n\r\n\u670d\u52a1\u5668\u63d0\u4f9b\u4ee5\u4e0b5\u4e2a\u5de5\u5177\uff1a\r\n\r\n#### `wolfram_alpha_query`\r\n\u57fa\u7840\u67e5\u8be2\u5de5\u5177\uff0c\u7528\u4e8e\u79d1\u5b66\u548c\u4e8b\u5b9e\u4fe1\u606f\u67e5\u8be2\u3002\r\n\r\n```python\r\n# \u793a\u4f8b\u67e5\u8be2\r\nresult = await wolfram_alpha_query(\"What is the derivative of x^2?\")\r\n```\r\n\r\n#### `wolfram_mobile_query`\r\n\u9ad8\u7ea7\u67e5\u8be2\u5de5\u5177\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u683c\u5f0f\u548c\u53c2\u6570\u3002\r\n\r\n```python\r\n# \u793a\u4f8b\u67e5\u8be2\r\nresult = await wolfram_mobile_query(\r\n query=\"plot sin(x)\",\r\n format_type=\"plaintext\",\r\n output_type=\"json\"\r\n)\r\n```\r\n\r\n#### `wolfram_step_by_step`\r\n\u5206\u6b65\u89e3\u7b54\u5de5\u5177\uff0c\u4e13\u95e8\u7528\u4e8e\u6570\u5b66\u95ee\u9898\u7684\u8be6\u7ec6\u89e3\u7b54\u3002\r\n\r\n```python\r\n# \u793a\u4f8b\u67e5\u8be2\r\nresult = await wolfram_step_by_step(\"solve x^2 + 5x + 6 = 0\")\r\n```\r\n\r\n#### `wolfram_streaming_query`\r\n\u6d41\u5f0f\u67e5\u8be2\u5de5\u5177\uff0c\u652f\u6301\u5b9e\u65f6\u6d41\u5f0f\u54cd\u5e94\uff0c\u63d0\u4f9b\u66f4\u597d\u7684\u7528\u6237\u4f53\u9a8c\u3002\r\n\r\n```python\r\n# \u793a\u4f8b\u6d41\u5f0f\u67e5\u8be2\r\nresult = await wolfram_streaming_query(\"What is the integral of x^2?\")\r\nimport json\r\ndata = json.loads(result)\r\nfor chunk in data['streaming_chunks']:\r\n print(f\"[{chunk['type']}] {chunk['content']}\")\r\n```\r\n\r\n#### `wolfram_streaming_step_by_step`\r\n\u6d41\u5f0f\u5206\u6b65\u89e3\u7b54\u5de5\u5177\uff0c\u5b9e\u65f6\u663e\u793a\u6570\u5b66\u95ee\u9898\u7684\u5206\u6b65\u6c42\u89e3\u8fc7\u7a0b\u3002\r\n\r\n```python\r\n# \u793a\u4f8b\u6d41\u5f0f\u5206\u6b65\u89e3\u7b54\r\nresult = await wolfram_streaming_step_by_step(\"solve x^2 + 5x + 6 = 0\")\r\nimport json\r\ndata = json.loads(result)\r\nfor chunk in data['streaming_chunks']:\r\n print(f\"[{chunk['type']}] {chunk['content']}\")\r\n```\r\n\r\n## \u670d\u52a1\u914d\u7f6e\r\n\r\n### Server Config\r\n\r\n```json\r\n{\r\n \"command\": \"uvx\",\r\n \"args\": [\"wolfram-alpha-mcp-server@latest\"]\r\n}\r\n```\r\n\r\n### \u73af\u5883\u53d8\u91cf\r\n\r\n\u5f53\u524d\u7248\u672c\u4f7f\u7528\u5185\u7f6e\u7684\u79fb\u52a8\u7aef API \u914d\u7f6e\uff0c\u65e0\u9700\u989d\u5916\u73af\u5883\u53d8\u91cf\u3002\r\n\r\n## \u5f00\u53d1\r\n\r\n### \u9879\u76ee\u7ed3\u6784\r\n\r\n```\r\nwolfram-alpha-mcp-server/\r\n\u251c\u2500\u2500 server_remote.py # \u8fdc\u7a0b\u7248\u672c\u670d\u52a1\u5668\r\n\u251c\u2500\u2500 server.py # \u672c\u5730\u7248\u672c\u670d\u52a1\u5668\r\n\u251c\u2500\u2500 setup.py # \u5305\u5b89\u88c5\u914d\u7f6e\r\n\u251c\u2500\u2500 pyproject.toml # \u9879\u76ee\u914d\u7f6e\r\n\u251c\u2500\u2500 requirements.txt # \u4f9d\u8d56\u5217\u8868\r\n\u251c\u2500\u2500 README.md # \u9879\u76ee\u8bf4\u660e\r\n\u2514\u2500\u2500 mcp.json # MCP \u5ba2\u6237\u7aef\u914d\u7f6e\u793a\u4f8b\r\n```\r\n\r\n### \u4f9d\u8d56\u9879\r\n\r\n- `mcp-server>=0.1.0`: MCP \u670d\u52a1\u5668\u6846\u67b6\r\n- `requests>=2.31.0`: HTTP \u8bf7\u6c42\u5e93\r\n- `anyio>=3.7.0`: \u5f02\u6b65 I/O \u5e93\r\n\r\n### \u6784\u5efa\u548c\u53d1\u5e03\r\n\r\n```bash\r\n# \u6784\u5efa\u5305\r\npython -m build\r\n\r\n# \u53d1\u5e03\u5230 PyPI\r\npython -m twine upload dist/*\r\n```\r\n\r\n## \u8bb8\u53ef\u8bc1\r\n\r\n\u672c\u9879\u76ee\u91c7\u7528 MIT \u8bb8\u53ef\u8bc1\u3002\r\n\r\n## \u8d21\u732e\r\n\r\n\u6b22\u8fce\u63d0\u4ea4 Issue \u548c Pull Request\uff01\r\n\r\n## \u652f\u6301\r\n\r\n\u5982\u679c\u60a8\u9047\u5230\u4efb\u4f55\u95ee\u9898\uff0c\u8bf7\uff1a\r\n\r\n1. \u67e5\u770b [Issues](https://github.com/xiaomayisjh/wolfram-alpha-mcp-server/issues) \u9875\u9762\r\n2. \u521b\u5efa\u65b0\u7684 Issue \u63cf\u8ff0\u60a8\u7684\u95ee\u9898\r\n\r\n## \u66f4\u65b0\u65e5\u5fd7\r\n\r\n### v1.0.0\r\n- \u521d\u59cb\u7248\u672c\u53d1\u5e03\r\n- \u652f\u6301\u57fa\u7840\u67e5\u8be2\u3001\u5206\u6b65\u89e3\u7b54\u3001\u9ad8\u7ea7\u67e5\u8be2\u7b49\u529f\u80fd\r\n- \u652f\u6301\u8fdc\u7a0b\u90e8\u7f72\u548c\u6258\u7ba1\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Wolfram Alpha MCP Server - \u4f7f\u7528\u79fb\u52a8\u7aefAPI\u7684\u79d1\u5b66\u8ba1\u7b97\u548c\u4e8b\u5b9e\u67e5\u8be2\u5de5\u5177",
"version": "1.0.1",
"project_urls": {
"Documentation": "https://github.com/your-username/wolfram-alpha-mcp-server#readme",
"Homepage": "https://github.com/your-username/wolfram-alpha-mcp-server",
"Issues": "https://github.com/your-username/wolfram-alpha-mcp-server/issues",
"Repository": "https://github.com/your-username/wolfram-alpha-mcp-server"
},
"split_keywords": [
"wolfram",
" alpha",
" mcp",
" mathematics",
" science",
" calculation",
" api"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "bf9fe034dc8003887b6432ef9333f6f999e3d5ac35e9de4861a314ee037fec67",
"md5": "6c316aba9bd141906453ab884824116c",
"sha256": "bcfc3b11f8f51cbc22bc18e0829e2eba03bb2b0a9aa8179347f4a26cb3beda3c"
},
"downloads": -1,
"filename": "wolfram_alpha_mcp_server_xiaomayisjh-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6c316aba9bd141906453ab884824116c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 69596,
"upload_time": "2025-10-12T06:13:51",
"upload_time_iso_8601": "2025-10-12T06:13:51.821359Z",
"url": "https://files.pythonhosted.org/packages/bf/9f/e034dc8003887b6432ef9333f6f999e3d5ac35e9de4861a314ee037fec67/wolfram_alpha_mcp_server_xiaomayisjh-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f7b1943d46c1cdc1ea415840c59bbe16835e5a6a13e578d8d9ee0bf0ecda2f90",
"md5": "c0a11078b5d96ad256677df2bca4f55d",
"sha256": "7ec70cd4a2bf9fc734d8e1192d6959e7771e95b6e4795c19126f9c7197f28e59"
},
"downloads": -1,
"filename": "wolfram_alpha_mcp_server_xiaomayisjh-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "c0a11078b5d96ad256677df2bca4f55d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 81185,
"upload_time": "2025-10-12T06:13:53",
"upload_time_iso_8601": "2025-10-12T06:13:53.476925Z",
"url": "https://files.pythonhosted.org/packages/f7/b1/943d46c1cdc1ea415840c59bbe16835e5a6a13e578d8d9ee0bf0ecda2f90/wolfram_alpha_mcp_server_xiaomayisjh-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-12 06:13:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "your-username",
"github_project": "wolfram-alpha-mcp-server",
"github_not_found": true,
"lcname": "wolfram-alpha-mcp-server-xiaomayisjh"
}