CivilKit Calcs · MCP server
CivilKit Calcs MCP server
This is a public Model Context Protocol server. It lets an AI assistant run engineering calculations with real units in the same engine as the CivilKit Calcs app: evaluate a sheet or a Calcpad worksheet, check a hand calculation, convert units, and look things up in the function reference, the user guide and the samples. It is read only and needs no account.
Endpoint: https://civilkit.io/mcp (Streamable HTTP)
Add it to your assistant
Claude Code:
claude mcp add --transport http civilkit-calcs https://civilkit.io/mcp
Claude Desktop, Cursor, VS Code and other clients that take a remote server: add a custom connector or server with the URL
https://civilkit.io/mcp, or in a JSON configuration:
{
"mcpServers": {
"civilkit-calcs": {
"type": "http",
"url": "https://civilkit.io/mcp"
}
}
}
A client that only runs local (stdio) servers can reach it through the mcp-remote bridge:
{
"mcpServers": {
"civilkit-calcs": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://civilkit.io/mcp"
]
}
}
}
Then ask, for example: "Use CivilKit Calcs to check a 6 m simply supported beam with 12 kN/m: is M = 54 kN·m right?"
Tools
| Tool | What it does |
|---|---|
calcs_evaluate_sheet | Evaluate a CivilKit Calcs sheet. Runs a CivilKit Calcs sheet through the same compiler and engine as the app at https://civilkit.io/calcs/ and returns every quantity with its value and unit, the errors with their line numbers, and the calculation as plain text. |
calcs_evaluate_calcpad | Evaluate a Calcpad worksheet. Runs a Calcpad worksheet (the .cpd language of CalcpadCE: `a = 2*m`, `#if`/`#for`/`#loop`, `$Plot{...}`, `'comments`) through the CivilKit Calcs engine and returns every variable with its value and unit, the errors with line numbers, and the calculation as plain text. |
calcs_convert_units | Convert units. Evaluates one expression with units and converts the result: "25 kN/m^2 -> kPa", "3 ft + 4 in -> mm", "60 mph -> m/s", "1.2 kN*m / (0.1 m * 0.2 m^2) -> MPa". |
calcs_check_hand_calc | Check a hand calculation. Recomputes a hand calculation with real units and compares it with your answer. |
calcs_search_functions | Search functions, units and commands. Searches the reference of built-in functions, vector and matrix functions, units, constants, operators, commands (#if, #for, $Plot, $Root, ...) and settings by name or description, e.g. |
calcs_function_help | Function documentation. The full documentation of one built-in function, unit, constant, operator, command or setting, by its name (sqrt, lsolve, interp, $Root, #for, kN): signature, description, documentation, parameters with types, return value and an example. |
calcs_search_docs | Search the user guide. Searches the CivilKit Calcs user guide (https://civilkit.io/calcs/guide/) and the sheet syntax reference. |
calcs_get_guide_page | Read a guide chapter. Returns the Markdown of one chapter of the user guide by its page name ("units", "sheet/quantities", "templates", "vectors-matrices", "plots"), its title, or its URL. |
calcs_list_samples | List the sample sheets. Lists the sample sheets shipped with the app (beam bending, columns, footings, frames, principal stresses, templates with inputs, plots and diagrams), optionally for one group. |
calcs_get_sample | Get a sample sheet. Returns one sample sheet by id (from calcs_list_samples), file name or title: its text, description and the link that opens it in the app (https://civilkit.io/calcs/?sample=<id>). |
calcs_sheet_syntax | Sheet syntax reference. Returns the complete reference of the sheet syntax (Markdown): quantity lines, units and conversions, notes, conditions, loops and blocks, functions, plots, inputs and templates, key results, Calcpad pass-through, and the limits. |
It also offers the guide chapters, the samples and the syntax reference as resources, and two prompts:
check_my_hand_calc and write_a_sheet.
Limits
- A sheet or worksheet up to 64 KB; an expression up to 4 KB.
- 120 requests and 30 calculations a minute per IP address.
- A calculation that runs longer than a few seconds is stopped. Loops with literal bounds may make up to 200,000 passes.
- No Python blocks, no
#include,#read,#writeor#append: the server has no files and no network. Open such a worksheet in the app instead, where everything runs in your browser. - Results are text and numbers; plots and diagrams are not drawn.
Privacy
The server is stateless. What you send is calculated and answered, and nothing is stored: no request bodies are logged, there are no cookies, accounts or sessions. Each request runs in a fresh copy of the engine. Requests are counted per IP address only for the rate limit.
For developers
Protocol versions 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26 (the handshake versions with initialize, and the per-request
metadata of 2026-07-28 with server/discover). Responses are JSON, never streams; there are no sessions.
Server card: https://civilkit.io/mcp/server-card. This page as JSON: send
Accept: application/json. Source code: github.com/mageaustralia/civilkit-calcs/mcp.
Guide: MCP server.
Version 26.10.21.