Evidence infrastructure for CRA Art. 14 and Machinery Reg. 2023/1230
IAAIndustrial Autonomous Assurance
Talk to salesStart free
Menu
PricingPrivacy
FOR AGENTS THAT SPEAK MCP, NOT JUST HTTP

An installable MCP server for the Assurance API

assurance-mcp ships in this repository — four tools, each a real httpx call to a running deployment, no local simulation. With no API URL configured, every tool returns the same honest "not configured" error this whole site uses, never a faked response.

Patch panel with only the PostgreSQL and REST ports cabled and all other ports empty.
⚠
No live base URL on this deploymentThat only affects this marketing site’s own playground — the MCP server itself works against any deployment you point it at, including your own local run: uvicorn assurance.api.service:app.
Install

Three commands

pip install -e '.[assurance-mcp]'

export ASSURANCE_API_URL=http://127.0.0.1:8000   # or a real deployment
export ASSURANCE_API_KEY=...                      # optional — paid tools only

assurance-mcp

Transport is stdio by default, which is what most MCP clients expect — including Cursor's mcp.json, shown on the Cursor connector page. For a generic MCP client, point it at the assurance-mcp command directly:

{
  "mcpServers": {
    "assurance": {
      "command": "assurance-mcp",
      "env": {
        "ASSURANCE_API_URL": "http://127.0.0.1:8000",
        "ASSURANCE_API_KEY": ""
      }
    }
  }
}
A second server — for the control plane, not the register

neuralbridge-ai-mcp: discover, read, plan, approve

A separate package with the same honesty rules — a thin httpx wrapper around the real /ai REST API (src/neuralbridge/api/routes/ai.py), not a second policy engine. ai_list_connections, ai_capabilities, and ai_read are free (rate-limited); ai_plan_write, ai_approve, ai_deny, and ai_audit need a Register or Cell key and return the API's real 402 otherwise — never a faked success.

pip install -e '.[neuralbridge-ai-mcp]'

export NEURALBRIDGE_API_URL=http://127.0.0.1:8000/api/v1   # or a real deployment
export NEURALBRIDGE_AI_API_KEY=...                           # optional — write tools only
export NEURALBRIDGE_AI_ACTOR=your-agent-name                 # real identity for the audit trail

neuralbridge-ai-mcp
{
  "mcpServers": {
    "neuralbridge-ai": {
      "command": "neuralbridge-ai-mcp",
      "env": {
        "NEURALBRIDGE_API_URL": "http://127.0.0.1:8000/api/v1",
        "NEURALBRIDGE_AI_API_KEY": "",
        "NEURALBRIDGE_AI_ACTOR": "your-agent-name"
      }
    }
  }
}

See docs/ai-local-setup.md for standing up a local Postgres to point this at.

Assurance MCP tool set

Four tools — two free, two paid on purpose

Deliberately small rather than one tool per route: plans and spec_validate need no key at all, and machine_verify / register_cases exist specifically to prove the fail-closed behavior — called on the wrong plan, they return the API's real structured 401/402, not an error from this server. The full route table below is what a future, larger tool set would cover; the four highlighted rows are what ships in assurance-mcp today.

RoutePlanMCP tool
GET /v1/spec/fieldsValidator — freeNot yet a tool
POST /v1/spec/validateValidator — freeShipped
GET /v1/plansValidator — freeShipped
POST /v1/machine/separationValidator — freeNot yet a tool
POST /v1/machine/bundle/checkValidator — freeNot yet a tool
POST /v1/machinery/diffValidator — freeNot yet a tool
POST /v1/machinery/passport/checkValidator — freeNot yet a tool
POST /v1/fleet/advisory/checkValidator — freeNot yet a tool
POST /v1/fleet/declaration/checkValidator — freeNot yet a tool
POST /v1/check/machineValidator — freeNot yet a tool
GET /v1/ledger/attest/keyValidator — freeNot yet a tool
POST /v1/ledger/attest/verifyValidator — freeNot yet a tool
GET /v1/supplier/feed/{id}Validator — freeNot yet a tool
GET /v1/registerRegister — €390/moNot yet a tool
GET /v1/register/breachesRegister — €390/moNot yet a tool
GET /v1/casesRegister — €390/moShipped
POST /v1/cases/{id}/triageRegister — €390/moNot yet a tool
POST /v1/cases/{id}/filingsRegister — €390/moNot yet a tool
GET /v1/ledger/verifyRegister — €390/moNot yet a tool
POST /v1/machine/verifyCell — €1,290/moShipped
POST /v1/machinery/manifestCell — €1,290/moNot yet a tool
POST /v1/machinery/coverageCell — €1,290/moNot yet a tool
POST /v1/machinery/passportCell — €1,290/moNot yet a tool
GET /v1/fleet/machinesCell — €1,290/moNot yet a tool
POST /v1/fleet/advisoryCell — €1,290/moNot yet a tool
POST /v1/check/fleet-machineCell — €1,290/moNot yet a tool
POST /v1/fleet/declareCell — €1,290/moNot yet a tool
POST /v1/ledger/attestCell — €1,290/moNot yet a tool
GET /v1/ledger/attest/logCell — €1,290/moNot yet a tool
POST /v1/supplier/advisorySupplier — contact salesNot yet a tool
What's next

Growing the tool set

Adding a route as a tool is mechanical — src/assurance/mcp/server.py is under 150 lines, one @mcp.tool() function per route calling the same _call() helper. The remaining free-tier routes (separation, bundle/manifest/declaration checks, attestation key/verify) are the natural next additions, since they need no key either. Read the source or open a PR.

Prefer plain HTTP for now? Read /developers or fetch /openapi.json directly — exactly what /llms.txt points agents at.

Prefer a raw HTTP client?

Same routes, same plans, curl and Python examples on the developer reference.