使用说明
计算器MCP服务器
计算器MCP服务器是一种后端服务,旨在通过模型上下文协议(MCP)为人工智能模型,特别是大型语言模型(LLM)提供算术计算能力。它允许LLM卸载数学计算,确保数值查询的准确性和可靠性。 例如,当用户询问LLM“3.8-3.11的结果是什么?”时,LLM将使用“3.8-3.11”调用服务器先执行计算,然后回答用户。
此服务器建立在官方 MCP Python SDK 并实现了一个名为 calculator_tool 其接受基于字符串的算术表达式并返回计算的数值结果。
服务器打包为Docker镜像。
特性
- 符合MCP标准: 遵守模型上下文协议以实现无缝集成。
- 精确计算: 为基本算术运算(+、-、*、/)提供精确的结果。
- 安全评估: 使用安全方法解析和计算数学表达式,防止任意代码执行。
- 标准化API: 通过展示功能
tools/callMCP方法。 - 码头化: 包含一个Dockerfile,便于容器化、部署和测试。
- 全面的错误处理: 返回无效输入或计算问题的结构化JSON-RPC错误。
先决条件
- 码头工人
bash(用于运行辅助脚本)- Python 3.12(用于理解代码,如果使用Docker进行所有操作,则不严格用于运行)
设置和安装
1.克隆存储库(如果适用)
如果此项目位于Git存储库中,请克隆它:
git clone <repository-url>
cd calculator-mcp-server
2.构建Docker镜像(可选-由以下人员处理 run-tests.sh 和 start-mcp-server.sh 如果需要)
您可以手动构建映像:
./build-image.sh
然而, ./run-tests.sh 如果映像不存在,或者您想在测试前确保它是最新的,它将自动构建映像。同样地, start-mcp-server.sh 可能会包含这一点。
3.运行服务器
要启动服务器,请执行以下操作:
./start-mcp-server.sh
此脚本将确保映像已构建,在Docker容器中启动服务器,并检查其状态。默认情况下,服务器在端口8000上侦听。
用法
计算器MCP服务器通过MCP公开其功能。MCP客户端(例如LLM主机应用程序)将按如下方式与其交互:
-
初始化连接: 客户端与服务器(在Docker中运行)建立连接。
-
工具发现(可选但推荐): 客户端发送
tools/list请求。 -
工具调用: 客户端发送
tools/call请求使用calculator_tool.请求:
{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "calculator_tool", "arguments": { "expression": "10 * (2 + 3) - 5 / 2" } }, "id": "request-id-123" }成功响应:
{ "jsonrpc": "2.0", "result": { "value": 47.5 }, "id": "request-id-123" }
测试与 test-mcp-client.sh
提供了一个简单的CLI客户端脚本来测试正在运行的服务器。确保服务器正在通过运行 ./start-mcp-server.sh.
./test-mcp-client.sh list"
./test-mcp-client.sh call "2+2"
运行测试
单元测试在Docker容器中运行。如有必要,该脚本将处理图像的构建。
./run-tests.sh
此脚本首先调用 ./build-image.sh 确保Docker镜像是最新的,然后执行 pytest 在一个新的容器实例中。
停止服务器(Docker)
如果您使用启动服务器 ./start-mcp-server.sh,您可以通过以下方式阻止它:
./stop-mcp-server.sh
贡献
请参阅 developer_guide.md.
