Skip to main content

MCP server exposing calcing engineering calculation apps (DIN/ISO/VDI, FEA) as tools for AI clients like Claude Desktop and Claude Code.

Project description

calcing-mcp

An MCP server that exposes the calcing engineering calculation apps as tools for external AI clients (Claude Desktop, Claude Code, and other MCP-capable hosts).

Each calcing app becomes two MCP tools:

  • calcing_solve_<app> — run the calculation,
  • calcing_validate_<app> — validate inputs without solving.

Plus one discovery tool:

  • calcing_list_apps — list all available apps with short descriptions.

Under the hood every tool call is a single HTTPS request to the calcing Agent API:

POST https://saas.calcing.de/api/elements/<app>/agent/solve
X-Agent-Token: <your token>
Content-Type: application/json

{ "input": { ... app-specific inputs ... } }

Available apps

Tool App
calcing_solve_shaft_strength_din Wellenfestigkeit / Shaft strength (DIN 743)
calcing_solve_bearing Waelzlager / Rolling bearing (ISO 281)
calcing_solve_passungen Passungen / Fits (ISO 286)
calcing_solve_waelzkontakte Waelzkontakte / Rolling contacts (Hertz)
calcing_solve_vawt Vertikalachsen-Windturbine (IEC 61400-2)
calcing_solve_screw Schraubenverbindung / Bolted joint (VDI 2230)
calcing_solve_passfeder Passfeder / Parallel key (DIN 6892)
calcing_solve_hawt Horizontalachsen-Windturbine (HAWT)
calcing_solve_pressverband Pressverband / Interference fit (DIN 7190)
calcing_solve_axial_fan Axialventilator / Axial fan
calcing_solve_bearing_contacts Waelzlager-Kontakte / Bearing contacts
calcing_solve_bearing_shaft_system Welle-Lager-System / Shaft-bearing system

Call calcing_list_apps at any time for the live list plus descriptions.

Installation

Requires Python >= 3.10.

From PyPI

Once published, install from PyPI with your tool of choice:

pip install calcing-mcp        # into the current environment
pipx install calcing-mcp       # isolated global CLI (recommended)
uvx calcing-mcp                # run without installing (uv)

From source with pipx (global CLI)

pipx install /path/to/clients/calcing-mcp

With pip (editable, for development)

cd clients/calcing-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e .

Either way you get a calcing-mcp console command that runs the server over stdio.

Create an agent token

  1. Sign in at accounts.calcing.de.
  2. Go to Billing → Tokens (accounts.calcing.de/billing/tokens).
  3. Create a new agent token:
    • Audience (aud): saas
    • Scopes: select the apps you want to expose (each solve tool needs the matching app scope). Grant only what you need.
  4. Copy the token — it is shown only once.

Export it in the environment where the MCP server runs:

export CALCING_AGENT_TOKEN="cai_agent_...."

Environment variables

Variable Required Default Purpose
CALCING_AGENT_TOKEN yes Agent token (aud=saas)
CALCING_API_BASE no https://saas.calcing.de/api Override the API base URL
CALCING_TIMEOUT no 120 HTTP timeout in seconds

Claude Desktop configuration

Add the server to your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "calcing": {
      "command": "calcing-mcp",
      "args": [],
      "env": {
        "CALCING_AGENT_TOKEN": "cai_agent_....",
        "CALCING_API_BASE": "https://saas.calcing.de/api"
      }
    }
  }
}

If calcing-mcp is not on Claude Desktop's PATH (e.g. it lives in a venv), use an absolute path or run it through the interpreter:

{
  "mcpServers": {
    "calcing": {
      "command": "/absolute/path/to/.venv/bin/python",
      "args": ["-m", "calcing_mcp.server"],
      "env": { "CALCING_AGENT_TOKEN": "cai_agent_...." }
    }
  }
}

Restart Claude Desktop; the calcing_* tools then appear in the tools list.

Claude Code configuration

claude mcp add calcing --env CALCING_AGENT_TOKEN=cai_agent_.... -- calcing-mcp

Usage

Ask your AI client to call a tool, e.g. "Use calcing_list_apps to see what's available, then solve a DIN 743 shaft with calcing_solve_shaft_strength_din."

The input argument holds the app-specific payload as a JSON object (a JSON string is also accepted). Use calcing_validate_<app> first if you want the app to check the payload before running the full calculation.

Errors are surfaced explicitly (no silent fallbacks):

  • 401 — token missing/expired,
  • 403 — token lacks the app scope, or plan/quota does not allow it,
  • 422 — the input payload failed validation,
  • 429 — rate limit / quota exceeded.

Privacy & quota

Every tool call sends your input payload to saas.calcing.de and is authenticated with your agent token. Calls count against your account's plan quota and are attributable to your token. Do not put secrets in input, and revoke the token in the billing panel if it is ever exposed.

Publishing (maintainers)

The package is built with hatchling and published to PyPI. Publishing requires maintainer credentials — either a configured PyPI Trusted Publisher for this repository, or a PyPI API token. Contributors without those cannot publish.

Automated (GitHub Actions)

.github/workflows/publish.yml runs on every push/PR (CI: install + import on Python 3.10–3.13, then python -m build + twine check). On a GitHub Release or a v* tag push it additionally uploads to PyPI via pypa/gh-action-pypi-publish.

By default it uses Trusted Publishing (OIDC, id-token: write, no secret needed once the project is registered as a Trusted Publisher on PyPI). To use a token instead, set a PYPI_API_TOKEN repository secret and switch the publish step to with: password: ${{ secrets.PYPI_API_TOKEN }} (see the comment in the workflow).

Cutting a release:

# bump version in pyproject.toml and calcing_mcp/__init__.py, update CHANGELOG.md
git tag v0.1.0 && git push origin v0.1.0
# or create a GitHub Release for the tag — either triggers the publish job.

This workflow lives under clients/calcing-mcp/ because the MCP package is published independently of the monorepo. It is written as if this folder were the repository root; when calcing-mcp is split into its own repo, this folder becomes the root and the workflow works unchanged.

Manual (local)

cd clients/calcing-mcp
python -m pip install --upgrade build twine
python -m build                 # -> dist/*.whl and dist/*.tar.gz
python -m twine check dist/*
python -m twine upload dist/*    # prompts for PyPI credentials / token

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

calcing_mcp-0.1.0.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

calcing_mcp-0.1.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file calcing_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: calcing_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for calcing_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dc156c9125c21f88bb2478b3f9191f1f58bc3129f8fd720c5fe05d0acab4ce7e
MD5 a33d140a34154473c7bb730c08bc29ba
BLAKE2b-256 ae2293a3e076f64594af4b0071ad4c28a93e499c7536c9572026f24eeedf57fe

See more details on using hashes here.

File details

Details for the file calcing_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: calcing_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for calcing_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 56e9815c9b6f09047e122b4d45ee38754be6edea0eaf83d4c74e83f0d4c2215f
MD5 558ed7d1258375fa944d9040787d8548
BLAKE2b-256 363a082c6e96d3243666d6de610d98caf4f0ebed0ae43aa51facacb91f01034a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page