About Jarroba Tools · Calculation
Jarroba Tools · Calculation is a local MCP server for calculations where plausible-looking errors can go unnoticed. It is aimed at AI systems and users who need unit-aware arithmetic, equation solving, derivatives, or verified worked steps.
Key features
- 01Arithmetic with units and dimensional checks
- 02Solve equations and linear systems
- 03Multi-line calculation sheets
- 04Exact symbolic derivatives with units
- 05Verified steps for selected problems
Use cases
- 01Convert quantities while preserving units
- 02Solve equations and review searched intervals
- 03Run calculations with reusable variables
- 04Inspect steps for a derivative or equation
MCP support
Exposes five calculation tools to MCP clients over local stdio. The package can be added to an MCP host with npx and runs on the user's machine.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
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.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
5Saved tool list · updated 3d ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| expression | string | Yes | e.g. "100 km/h to m/s" or "sqrt(2)^2 + 2^10" |
Details
From the project README@jarroba/mcp-calc
An MCP server for the maths a language model gets wrong — and, above all, for the ones it gets wrong silently.
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 tools · ~1.6k tokens of context · stdio, runs on your machine · nothing is uploaded, no API key.
Why this exists
A model that gets 17 * 23 wrong is not the problem: that one is easy to catch. The problem is the
answer that looks right.
5 km + 300 m. Not a hard sum — but is the answer 305, 5.3, or 5300? A dimensional slip produces a number, not an error, and the number travels into the next formula.x^3 - 1 = 0. «x = 1» is true, and it is also only a third of the answer. A tool that stops there and says nothing teaches the caller that there was nothing else.9.8 m/s^2 * t^2 / 2. Herem,sandtare all names of units and perfectly ordinary variable names. Read them wrong and you get a plausible quantity in the wrong dimension.
So every tool here reports how sure it is, not just what it found: exact or approximate, over which interval it searched, how many complex roots it is not showing, and which names it read as units. The one thing none of them will do is fill a gap with something plausible.
The tools
calc_eval | Arithmetic with units and dimensional checking: 100 km/h to m/s, 5 km + 300 m, 70 kg to lbs, det([[1,2],[3,4]]). Adding metres to kilos is an error, not a silent number. Flags results that are not finite (NaN, ±∞), and says which names it read as units |
calc_solve | One equation (x^2 - 5x + 6 = 0, sin(x) = 0.5) or a linear system, one equation per line. Says whether the answer is exact or approximate, over which interval it searched, the degree of the polynomial and how many complex roots are not shown. Never invents a root it did not find |
calc_sheet | A multi-line calculation sheet with the result of every line. Variables carry downwards, units travel with the value, # starts a comment, ans is the previous result, and an error stays on its own line instead of killing the sheet. Declare currencies with # @moneda USD = 1.08 EUR — you supply the rate, so the sheet still computes the same thing next year. Optional Markdown table out |
calc_derive | Exact symbolic derivatives that keep the units: d/dx (3 m * x) is 3 m, not 3. Higher orders, and can evaluate the result at a point. Refuses to answer «0» when the variable is not in the expression, because a correct zero for the wrong question is the worst answer there is |
calc_steps | The worked steps, verified: a linear or quadratic equation, a derivative (naming the rule), or Gaussian elimination row by row. When it cannot explain a case it returns covered: false instead of writing a plausible derivation — which is the point, if a person is going to read it |
What it will not do
- No symbolic simplification. It was the obvious sixth tool and it was dropped after measuring:
the engine leaves
(x+1)^2 - (x-1)^2untouched (it is4x) and does not knowsin²+cos²=1. A tool that hands back your own input under the label "simplified" is worse than no tool, because the caller cannot tell «already simplest» from «I could not do it». - No integrals, no limits, no inequalities. Not supported, and said so here rather than discovered at the wrong moment.
- Steps beyond degree 2 for equations.
calc_solvestill answers exactly; what is missing is the explanation, andcalc_stepssays which cases it covers in every response.
Where it comes from
The engine is the same code that runs the calculator at
jarroba.com/tools — pure TypeScript, ~200 unit tests, no server. This
package is the whole catalogue filtered down to the calculation domain; if you want the other 95
tools (logs, tests, SQL, SPARQL, diagrams…), install
@jarroba/mcp instead. You can also widen this one
without switching packages: JARROBA_MCP_DOMAINS=calc,core.
MIT. Nothing here talks to the network. Source: github.com/Invarato/jarroba-mcp.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.