npm package: @orraly/math-mcp-server
Description: 为LLM提供数学运算能力的MCP服务器
Author: Your Name
Latest version: 0.1.0

# 数学运算MCP服务器

这是一个为LLM提供复杂数学运算能力的MCP（Model Context Provider）服务器。它可以帮助LLM进行各种数学计算，包括统计分析、概率计算、代数运算等。

## 功能特点

- **统计分析**：均值、方差、标准差、相关系数、协方差等
- **概率计算**：贝叶斯定理、二项分布、正态分布、泊松分布等
- **代数运算**：矩阵运算、线性方程组求解、多项式求根等
- **JSON配置**：通过简单的JSON配置进行函数调用
- **批量计算**：支持一次请求中进行多个计算

## 安装与依赖

### 通过NPM安装（推荐）

```powershell
# 使用npx一键运行（无需安装）
npx @yourusername/math-mcp-server

# 或全局安装
npm install -g @yourusername/math-mcp-server
math-mcp-server
```

### 通过uvx安装

```powershell
# 使用uvx一键安装和启动
uvx math-mcp
```

### 手动安装

本项目使用uv作为Python包管理工具。

```powershell
# 安装uv（如果尚未安装）
pip install uv

# 创建虚拟环境并安装依赖
uv venv
uv pip install -e .
```

## 使用方法

### 通过NPM启动

```powershell
# 使用默认配置启动
npx @yourusername/math-mcp-server

# 指定主机和端口
npx @yourusername/math-mcp-server --host 0.0.0.0 --port 8888

# 启用热重载（开发时使用）
npx @yourusername/math-mcp-server --reload
```

### 通过uvx启动

```powershell
# 使用默认配置启动
uvx math-mcp

# 指定主机和端口
uvx math-mcp --host 0.0.0.0 --port 8888

# 启用热重载（开发时使用）
uvx math-mcp --reload
```

### 手动启动服务器

```powershell
# 使用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客户端示例：

```powershell
# 运行客户端示例
python src/client_example.py
```

### 在Cherry Studio中配置

在Cherry Studio的配置文件中添加以下内容：

```json
"math-npm": {
  "name": "数学计算",
  "description": "为 LLM 提供工具，进行简单的数学计算",
  "isActive": true,
  "command": "npx",
  "args": [
    "-y",
    "@yourusername/math-mcp-server"
  ]
}
```

### LLM调用示例

以下是在LLM中调用MCP服务器的JSON配置示例：

```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可以通过以下方式使用该工具：

```json
{
  "function": "math_compute",
  "arguments": {
    "function": "variance",
    "params": {
      "data": [1, 2, 3, 4, 5],
      "ddof": 1
    }
  }
}
```

## 单元测试

运行单元测试：

```powershell
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
```

## 扩展

可以通过以下方式扩展服务器功能：

1. 在`math_operations`目录下添加新的数学运算模块
2. 在`server.py`中注册新模块中的函数
3. 重启服务器以应用更改

## 许可证

MIT