关于 calcport
calcport 是供命令行用户和 MCP 客户端使用的算术工具。手写表达式解析器仅接受指定的运算符、函数和常量,不会将表达式作为代码执行。
主要功能
- 01安全计算表达式
- 02支持算术运算符和括号
- 03支持 sqrt、abs、floor、ceil、round
- 04支持 pi 和 e 常量
- 05独立加减乘除操作
- 06命令行与 stdio MCP 模式
适用场景
- 01计算复合算术表达式
- 02执行单项算术运算
- 03向 MCP 客户端提供计算工具
MCP 相关
其 stdio MCP 服务提供五种工具:表达式计算,以及加、减、乘、除。除以零或表达式格式错误时会返回错误。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 1 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| expression | string | 是 | 要计算的算术表达式 |
详细介绍
calcport
calcport 可安全地进行算术运算。它的核心是一个表达式求值器,支持常见运算符、括号、少量函数以及常量 pi 和 e,除此之外不支持其他内容。求值器采用手写解析器,因此表达式绝不会变成代码执行、shell 调用或属性查找。除此之外,它还提供四个单一用途的操作,供只需计算一个和、差、积或商的调用方使用。
安装
npx @reneturcios/calcport calculate "2+3*4"
或者运行容器镜像:
docker run -i ghcr.io/cloudcorprecords/calcport
容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。
CLI
# Evaluate an expression
calcport calculate "sqrt(3^2 + 4^2) + pi"
# 8.141592653589793
# Single operations
calcport add 2 3 # 5
calcport subtract 10 4 # 6
calcport multiply 2.5 4 # 10
calcport divide 7 2 # 3.5
# Machine-readable output
calcport calculate "2^10" --json
calcport add 2 3 --json
calcport --version
表达式可以使用 + - * / % ^、括号、一元负号、函数 sqrt、abs、floor、ceil 和 round,以及常量 pi 和 e。^ 是右结合运算符,因此 2^3^2 的结果为 512。
退出码:成功时为 0;无法完成计算时为 1(例如除以零或表达式格式错误,错误信息会说明原因);用法错误时为 2。
MCP 服务
一个二进制文件提供两种使用方式。mcp 子命令会启动一个 stdio MCP 服务:
npx -y @reneturcios/calcport mcp
MCP 客户端配置:
{
"mcpServers": {
"calcport": {
"command": "npx",
"args": ["-y", "@reneturcios/calcport", "mcp"]
}
}
}
工具
| 工具 | 输入 | 返回内容 |
|---|---|---|
calculate | expression(字符串,必填) | 表达式的数值结果,并回显表达式。 |
add | a、b(数字,必填) | a + b,并返回两个操作数。 |
subtract | a、b(数字,必填) | a - b,并返回两个操作数。 |
multiply | a、b(数字,必填) | a * b,并返回两个操作数。 |
divide | a、b(数字,必填) | a / b,并返回两个操作数。除以零会报错。 |
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network
npm run dev # run the CLI from source via tsx
许可证
MIT — 参见 LICENSE。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。