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

ToolWhat it does
calcs_evaluate_sheetEvaluate 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_calcpadEvaluate 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_unitsConvert 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_calcCheck a hand calculation. Recomputes a hand calculation with real units and compares it with your answer.
calcs_search_functionsSearch 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_helpFunction 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_docsSearch the user guide. Searches the CivilKit Calcs user guide (https://civilkit.io/calcs/guide/) and the sheet syntax reference.
calcs_get_guide_pageRead 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_samplesList 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_sampleGet 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_syntaxSheet 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

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.