PY计算器
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"pycalc": {
"args": [
"server_sse.py",
"--transport",
"sse",
"--host",
"0.0.0.0",
"--port",
"18000"
],
"command": "python"
}
}
}
服务介绍
PyCalc-SSE
PyCalc-SSE 是一个基于 FastMCP 框架的简单计算器服务,通过 Server-Sent Events (SSE) 方式暴露 HTTP 服务。该服务提供了一个安全的算术表达式计算功能,支持基本的数学运算符,包括加法、减法、乘法、除法、整除、取模和幂运算。
服务配置
{
"mcpServers": {
"command": "uvx",
"args": ["pycalc-sse@latest", "--transport", "sse", "--host", "0.0.0.0", "--port", "18000"]
}
}
功能
- 提供安全的算术表达式计算功能
- 支持的运算符:
- 基本运算:
+,-,*,/,//,%,** - 括号:
() - 一元运算符:
+,-
- 基本运算:
- 仅接受数字常量,不支持变量或其他 Python 语法
- 通过 SSE 方式提供 HTTP 服务
使用方法
-
安装依赖:
pip install fastmcp -
运行服务:
python server_sse.py服务将在
http://0.0.0.0:18000/sse上启动 -
连接服务并调用工具:
- 使用支持 SSE 的客户端连接到
/sse端点 - 调用
calc工具,传入expr参数进行计算 - 示例表达式:
"789798*6786786/321321"
- 使用支持 SSE 的客户端连接到
安全特性
- 使用 Python
ast模块解析表达式,避免eval的安全风险 - 限制只允许特定的二元运算符和一元运算符
- 只接受数字常量,拒绝其他类型的表达式节点
- 对不支持的表达式或语法抛出明确的错误
代码结构
server_sse.py: 主服务文件_ALLOWED_BINOPS: 允许的二元运算符映射_ALLOWED_UNARYOPS: 允许的一元运算符映射_eval_node(): 递归计算 AST 节点safe_eval(): 安全的表达式求值函数calc(): 作为 MCP 工具暴露的计算函数