0.1.0 • Published 7 months ago
@orraly/math-mcp-server v0.1.0
数学运算MCP服务器
这是一个为LLM提供复杂数学运算能力的MCP(Model Context Provider)服务器。它可以帮助LLM进行各种数学计算,包括统计分析、概率计算、代数运算等。
功能特点
- 统计分析:均值、方差、标准差、相关系数、协方差等
- 概率计算:贝叶斯定理、二项分布、正态分布、泊松分布等
- 代数运算:矩阵运算、线性方程组求解、多项式求根等
- JSON配置:通过简单的JSON配置进行函数调用
- 批量计算:支持一次请求中进行多个计算
安装与依赖
通过NPM安装(推荐)
# 使用npx一键运行(无需安装)
npx @yourusername/math-mcp-server
# 或全局安装
npm install -g @yourusername/math-mcp-server
math-mcp-server
通过uvx安装
# 使用uvx一键安装和启动
uvx math-mcp
手动安装
本项目使用uv作为Python包管理工具。
# 安装uv(如果尚未安装)
pip install uv
# 创建虚拟环境并安装依赖
uv venv
uv pip install -e .
使用方法
通过NPM启动
# 使用默认配置启动
npx @yourusername/math-mcp-server
# 指定主机和端口
npx @yourusername/math-mcp-server --host 0.0.0.0 --port 8888
# 启用热重载(开发时使用)
npx @yourusername/math-mcp-server --reload
通过uvx启动
# 使用默认配置启动
uvx math-mcp
# 指定主机和端口
uvx math-mcp --host 0.0.0.0 --port 8888
# 启用热重载(开发时使用)
uvx math-mcp --reload
手动启动服务器
# 使用Python模块方式启动
python -m src.main
# 或使用uvicorn直接启动
uvicorn src.server:app --reload --host 0.0.0.0 --port 8000
服务器默认在 http://localhost:8000 启动,并提供以下API端点:
GET /
: 欢迎信息GET /functions
: 列出所有可用的数学函数GET /function/{function_name}
: 获取特定函数的详细信息POST /compute
: 执行单个数学计算POST /batch_compute
: 批量执行多个数学计算
客户端示例
服务器提供了一个简单的Python客户端示例:
# 运行客户端示例
python src/client_example.py
在Cherry Studio中配置
在Cherry Studio的配置文件中添加以下内容:
"math-npm": {
"name": "数学计算",
"description": "为 LLM 提供工具,进行简单的数学计算",
"isActive": true,
"command": "npx",
"args": [
"-y",
"@yourusername/math-mcp-server"
]
}
LLM调用示例
以下是在LLM中调用MCP服务器的JSON配置示例:
{
"tools": [
{
"type": "function",
"function": {
"name": "math_compute",
"description": "执行数学运算",
"parameters": {
"type": "object",
"properties": {
"function": {
"type": "string",
"description": "要调用的数学函数名"
},
"params": {
"type": "object",
"description": "函数参数"
}
},
"required": ["function", "params"]
}
}
}
]
}
LLM可以通过以下方式使用该工具:
{
"function": "math_compute",
"arguments": {
"function": "variance",
"params": {
"data": [1, 2, 3, 4, 5],
"ddof": 1
}
}
}
单元测试
运行单元测试:
python -m unittest discover src/tests
项目结构
math-mcp-server/
├── src/
│ ├── __init__.py
│ ├── server.py
│ ├── main.py
│ ├── client_example.py
│ ├── math_operations/
│ │ ├── __init__.py
│ │ ├── statistics.py
│ │ ├── probability.py
│ │ └── algebra.py
│ ├── utils/
│ │ ├── __init__.py
│ │ └── json_utils.py
│ └── tests/
│ └── test_operations.py
├── math_mcp_shim.py
├── npm-start.js
├── package.json
├── uvx-package.json
├── pyproject.toml
├── setup.py
└── README.md
扩展
可以通过以下方式扩展服务器功能:
- 在
math_operations
目录下添加新的数学运算模块 - 在
server.py
中注册新模块中的函数 - 重启服务器以应用更改
许可证
MIT
0.1.0
7 months ago