MCP Server

Give your coding agent ECU intelligence. Your agent keeps its own model; CalibraLogic supplies the tools, the ECU knowledge base, and the engines — over the Model Context Protocol.

Endpoint (staging)https://website-staging.calibralogic.ai/api/mcp
Transportstreamable HTTP, stateless
AuthBearer sk-cl-...

Setup

Use the same API key as CL-Code and the REST API — create one under Settings → API keys. Keys start with sk-cl-.

Claude Code

bash
claude mcp add --transport http calibralogic \
  https://website-staging.calibralogic.ai/api/mcp \
  --header "Authorization: Bearer sk-cl-YOUR_API_KEY"

Codex CLI

toml
# ~/.codex/config.toml
[mcp_servers.calibralogic]
url = "https://website-staging.calibralogic.ai/api/mcp"
bearer_token_env_var = "CALIBRALOGIC_API_KEY"

Cursor

json
// .cursor/mcp.json
{
  "mcpServers": {
    "calibralogic": {
      "url": "https://website-staging.calibralogic.ai/api/mcp",
      "headers": { "Authorization": "Bearer sk-cl-YOUR_API_KEY" }
    }
  }
}

Cline

json
// cline_mcp_settings.json
{
  "mcpServers": {
    "calibralogic": {
      "type": "streamableHttp",
      "url": "https://website-staging.calibralogic.ai/api/mcp",
      "headers": { "Authorization": "Bearer sk-cl-YOUR_API_KEY" }
    }
  }
}

Tools

TOOL

cl_ask(engine, question, context?, ecu?)

Ask an ECU calibration question and get an answer from a selected engine, grounded in the knowledge base. A second content block reports provenance: which ECU shard was searched, how many passages were retrieved, and what the call cost.

provenance
rag=ok ecu=EDC17C54 source=explicit k1=7 k3=2 ms=812 engine=cl-forge cl_tokens=41

rag=no_ecu means the knowledge base was not searched and the answer is a generic engine answer. Supply ecu whenever you know it.

TOOL

cl_scan(text, ecu?)

Fast triage of ECU text — fault codes, log excerpts, short questions — on the entry-level engine that every plan includes.

output
ecu=EDC17C54 k1=4 k3=0 returned=2 dropped=2 cl_tokens=3

[1] damos_ram · score 0.048
InjCrv_numMI1EOMPrs: Nummer der aktuellen Betriebsart fur MI1
Module: RAM  Folder: RAM
Address (CPU): $C0001F40 ...

[2] a2l_pg · score 0.050
FMA_IFst.Ki_C: Verstarkung des I-Glieds bei Kleinsignalen
Module: FMA  A2L type: CHARACTERISTIC ...
TOOL

list_engines()

Plan, remaining quota, reset date, and the engines available to your key. Read-only and free — it does not consume quota.

ECU families

The knowledge base is sharded per ECU family: the collection is selected from the family name, so a search cannot run without one. kb_search requires a family — given explicitly, or inferred from the query.

EDC17CP44EDC17C54MED17.1.62MED9.1MG1CS001SIMOS 18.4SIMOS 18.1DQ500MED17.5MED17.7.5MEVD17.2.GMG1CP002MG1CS003MG1CS008MG1CS024

Quota

Every tool call that reaches an engine or the knowledge base consumes account quota, billed exactly as the equivalent REST call. list_engines is free. When the balance runs out the tool returns an error result — not a transport error — so your agent can read it and adapt. The server stays up and other tools keep answering.

error result
Quota exhausted until 2026-10-01, plan Engineer. Balance 0 CL. (INSUFFICIENT_TOKENS)

Verify a connection

The endpoint serves both the 2026-07-28 protocol and 2025-era streamable HTTP from the same handler. Session operations (GET, DELETE) answer 405 — serving is stateless.

bash
npx @modelcontextprotocol/inspector --cli \
  --server-url https://website-staging.calibralogic.ai/api/mcp \
  --transport http \
  --header "Authorization: Bearer sk-cl-YOUR_API_KEY" \
  --method tools/list

Bring the knowledge base into your editor

Local bridges for WinOLS and Ghidra run on your machine and are not part of this server. See the API reference for the REST surface underneath these tools.

API reference