计算器MCP服务

一个简单的模型上下文协议(MCP)服务器,为Claude Desktop和其他MCP客户端提供基本计算器操作工具。

  • by snedea
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 snedea/calc-mcp-server

使用说明

计算器MCP服务器

一个简单的模型上下文协议(MCP)服务器,为Claude Desktop和其他MCP客户端提供基本的计算器操作工具。

特性

  • 添加:将两个数字相加
  • 减去:找出两个数字之间的差异
  • 乘:计算两个数字的乘积
  • 分割:用适当的零除法处理来除法

所有操作都支持整数、浮点数和负数。

安装

先决条件

  • Python 3.10或更高版本
  • pip(Python包管理器)

步骤

  1. 克隆或下载此存储库
git clone https://github.com/snedea/calc-mcp-server.git
cd calc-mcp-server
  1. 安装依赖项
pip install -r requirements.txt

这将安装:

  • fastmcp>=2.0.0 -MCP框架
  • pytest>=7.0.0 -测试框架

用法

测试服务器

独立运行服务器以验证其是否正常工作:

python3 calc_server.py

您应该看到:

🧮 Calculator MCP Server Starting

📋 Available tools:
   - add(a, b): Add two numbers
   - subtract(a, b): Subtract b from a
   - multiply(a, b): Multiply two numbers
   - divide(a, b): Divide a by b (handles zero)

💡 Configure in Claude Desktop to use these tools!

按 Ctrl+C 停止服务器。

在Claude Desktop中配置

要在Claude Desktop中使用这些计算器工具:

  1. 找到您的Claude Desktop配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  2. 编辑配置文件 (如果它不存在,请创建它):

{
  "mcpServers": {
    "calculator": {
      "command": "python3",
      "args": ["/absolute/path/to/calc-mcp-server/calc_server.py"]
    }
  }
}

重要:替换 /absolute/path/to/calc-mcp-server/ 此目录的实际完整路径。

  1. 重新启动克劳德桌面

计算器工具现在可用!当你问涉及计算的问题时,克劳德可以自动使用它们。

可用工具

添加(a,b)

将两个数字相加。

参数:

  • a (浮点数):第一个数字
  • b (浮点数):第二个数字

退货: 带有操作细节和结果的JSON

例子:

Input: add(5, 3)
Output: {
  "operation": "add",
  "a": 5,
  "b": 3,
  "result": 8
}

减去(a,b)

从第一个数字中减去第二个数字。

参数:

  • a (浮点数):要减去的数字
  • b (浮点数):要减去的数字

退货: 带有操作细节和结果的JSON

例子:

Input: subtract(10, 3)
Output: {
  "operation": "subtract",
  "a": 10,
  "b": 3,
  "result": 7
}

乘(a,b)

将两个数字相乘。

参数:

  • a (浮点数):第一个数字
  • b (浮点数):第二个数字

退货: 带有操作细节和结果的JSON

例子:

Input: multiply(4, 5)
Output: {
  "operation": "multiply",
  "a": 4,
  "b": 5,
  "result": 20
}

分割(a,b)

将第一个数字除以第二个数字。

参数:

  • a (浮点数):数字
  • b (浮点数):分母

退货: JSON,包含操作细节和结果,如果除以零则出错

例子:

Input: divide(10, 2)
Output: {
  "operation": "divide",
  "a": 10,
  "b": 2,
  "result": 5
}

Input: divide(10, 0)
Output: {
  "error": "Cannot divide by zero"
}

测试

运行测试套件以验证所有操作是否正常工作:

pytest tests/test_calculator.py -v

预期产量:

tests/test_calculator.py::TestAddition::test_add_positive_numbers PASSED
tests/test_calculator.py::TestAddition::test_add_negative_numbers PASSED
... (30+ tests)
================================ 30 passed in 0.XX s ================================

所有测试均应通过,包括:

  • 基本的算术运算
  • 边缘情况(零、负数、小数)
  • 错误处理(除以零)
  • JSON响应格式验证

项目结构

calc-mcp-server/
├── calc_server.py          # Main MCP server with calculator tools
├── requirements.txt        # Python dependencies
├── tests/
│   └── test_calculator.py  # Comprehensive unit tests
├── README.md               # This file
└── .gitignore              # Git exclusions

故障排除

工具未出现在Claude Desktop中

  • ✅ 检查配置文件路径是否适合您的操作系统
  • ✅ 验证 args 路径是 绝对的 (非相对)
  • ✅ 确保已安装Python 3.10+: python3 --version
  • ✅ 确认已安装FastMCP: pip show fastmcp
  • ✅ 完全重新启动克劳德桌面

运行服务器时出现导入错误

  • ✅ 安装依赖项: pip install -r requirements.txt
  • ✅ 使用Python 3.10或更高版本
  • ✅ 考虑使用虚拟环境:
    python3 -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install -r requirements.txt
    

测试失败

  • ✅ 确保安装了pytest: pip install pytest
  • ✅ 从项目根目录运行
  • ✅ 检查Python版本是否为3.10+

使用的技术

  • Python 3.10+:带有类型提示的现代Python
  • FastMCP 2.0+:Python官方MCP框架
  • pytest:测试框架

运作原理

MCP(模型上下文协议)是将Claude等AI助手连接到外部工具和数据源的标准。此服务器:

  1. 将计算器操作定义为Python函数
  2. 用 @mcp.tool() 通过MCP暴露它们
  3. 使用标准输入/输出(stdio传输)与Claude Desktop通信
  4. 返回结构化JSON响应以进行可靠解析

然后,克劳德可以在需要计算时自动调用这些工具!

许可证

麻省理工学院

贡献

欢迎投稿!请随意:

  • 报告错误
  • 建议新的计算器功能
  • 改进文档
  • 添加更多测试

由...创建

🤖 生成于 上下文铸造厂 -自主开发平台