关于 Jarroba Tools · Calculation
Jarroba Tools · Calculation 是本地 MCP 服务,用于处理看似合理却可能悄然出错的计算,面向需要单位运算、方程求解、求导或验证步骤的 AI 系统和用户。
主要功能
- 01支持带单位运算和量纲检查
- 02求解方程与线性方程组
- 03运行多行计算表
- 04计算保留单位的精确符号导数
- 05提供特定问题的验证步骤
适用场景
- 01换算数值并保留单位
- 02求解方程并查看搜索区间
- 03使用可复用变量执行计算
- 04检查导数或方程的推导步骤
MCP 相关
通过本地 stdio 向 MCP 客户端提供五种计算工具。可用 npx 将此包添加到 MCP 主机,并在用户机器上运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @jarroba/mcp-calcJARROBA_MCP_DOMAINSWhich tool domains to publish, comma-separated. Defaults to what this package is for. Valid: core, calc, diagram, kg, db, ai, logs, queue, project, tests, api, chip, chem, access, archsim, security, experiments, payroll. Fewer domains means less of your context window spent on tool definitions.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
5收录的工具列表 · 更新于 2 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| expression | string | 是 | 例如:"100 km/h to m/s" 或 "sqrt(2)^2 + 2^10" |
详细介绍
@jarroba/mcp-calc
为语言模型常算错的数学问题提供 MCP 服务——尤其是那些错得 悄无声息 的问题。
claude mcp add jarroba-calc -- npx -y @jarroba/mcp-calc
// Claude Desktop, Cursor, Cline, VS Code…
{ "mcpServers": { "jarroba-calc": { "command": "npx", "args": ["-y", "@jarroba/mcp-calc"] } } }
5 个工具 · 约 1.6k 个上下文 token · stdio,在你的机器上运行 · 不会上传任何内容,也不需要 API 密钥。
为什么要做这个项目
模型算错 17 * 23 并不是问题:这种错误很容易发现。真正的问题是答案看起来正确。
5 km + 300 m。 这不是什么难题——但答案是 305、5.3,还是 5300?单位换算错误会产生一个数字,而不是报错;这个数字还会进入下一个公式。x^3 - 1 = 0。「x = 1」确实正确,但也只占答案的三分之一。工具如果到这里就停下,什么也不说,就会让调用者以为没有其他解。9.8 m/s^2 * t^2 / 2。 这里的m、s和t既是单位名称,也是普通的变量名。读错它们,就会得到一个看似合理、但量纲错误的量。
因此,这里的每个工具都会报告结果有多可靠,而不只是报告它找到了什么:结果是精确还是近似、搜索区间是什么、还有多少个复根未显示,以及哪些名称被识别为单位。它们绝不会用看似合理的内容来填补空缺。
工具
calc_eval | 带单位的算术运算和量纲检查:100 km/h to m/s、5 km + 300 m、70 kg to lbs、det([[1,2],[3,4]])。米和千克相加会报错,而不是悄悄给出一个数字。会标记非有限结果(NaN、±∞),并说明哪些名称被识别为单位 |
calc_solve | 单个方程(x^2 - 5x + 6 = 0、sin(x) = 0.5)或线性方程组,每行一个方程。会说明答案是精确还是近似、搜索区间、所用多项式的次数,以及未显示的复根数量。绝不虚构它没有找到的根 |
calc_sheet | 多行计算表,每行都显示结果。变量会向下传递,单位会随数值一起传递,# 用于开始注释,ans 表示上一个结果;即使出错,也只会影响对应行,不会让整张表停止运行。使用 # @moneda USD = 1.08 EUR 声明货币——汇率由你提供,因此明年计算结果仍然相同。可选输出 Markdown 表格 |
calc_derive | 精确的符号求导,保留单位:d/dx (3 m * x) 的结果是 3 m,而不是 3。支持高阶求导,也可以计算某个点上的结果。当变量不在表达式中时,不会回答「0」,因为对错误的问题给出正确的零,是最糟糕的答案 |
calc_steps | 经过验证的解题步骤:线性或二次方程、导数(注明使用的法则),或逐行高斯消元。如果无法解释某种情况,会返回 covered: false,而不是编造看似合理的推导——如果要给人阅读,这一点至关重要 |
不支持的功能
- 不支持符号化简。 这原本是显而易见的第六个工具,但经过测试后被放弃了:引擎不会处理
(x+1)^2 - (x-1)^2(结果是4x),也不认识sin²+cos²=1。如果工具把用户输入原样返回,却标成 “已化简”,那还不如没有这个工具,因为调用者无法分辨这是「已经最简」还是「我做不到」。 - 不支持积分、极限和不等式。 这些功能不受支持;我们在这里直接说明,而不是让你在不合适的时候才发现。
- 方程次数高于 2 时不提供步骤。
calc_solve仍然会给出精确答案;缺少的是解题说明,而calc_steps会在每次响应中指出它支持哪些情况。
来源
引擎使用的代码与 jarroba.com/tools 上的计算器相同——纯 TypeScript,约 200 个单元测试,无需服务端。这个包是完整工具目录中筛选出的计算领域工具;如果你需要其他 95 个工具(日志、测试、SQL、SPARQL、图表等),请改为安装 @jarroba/mcp。你也可以不切换包,直接扩展当前包:JARROBA_MCP_DOMAINS=calc,core。
MIT 许可。这里的任何内容都不会与网络通信。源码:github.com/Invarato/jarroba-mcp。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。