MCP Server¶
Machina exposes its connectors as a Model Context Protocol server, so Claude Desktop, Cursor and any other MCP client can read and write maintenance data through Machina's connectors without agent code. The client brings its own LLM; the server makes no LLM calls.
The layer is a thin protocol adapter (FastMCP from the MCP Python SDK) over the connector layer: every capability a configured connector declares turns on the matching tools. A CMMS tool always calls the primary CMMS, so with several CMMS connectors a tool turned on by a secondary one returns an error when the primary cannot serve it.
pip install "machina-ai[mcp]"
machina mcp serve --config machina.yaml # same as: python -m machina.mcp --config machina.yaml
What it serves¶
| Surface | Contents |
|---|---|
| Tools | 15 domain tools (machina_list_assets, machina_create_work_order, machina_search_manuals, …), registered per declared capability; 2 opt-in vendor tools (enable_vendor_tools) |
| Resources | 4 versioned resources: machina://v1/assets/{asset_id}, machina://v1/work-orders/{wo_id}, machina://v1/failure-taxonomy, machina://v1/capabilities |
| Prompts | 3 templates: diagnose_asset_failure, draft_preventive_plan, summarize_maintenance_history |
Transports¶
| Transport | Use | Auth |
|---|---|---|
stdio (default) |
One local client (Claude Desktop, an IDE) launching the server | None — the client owns the process |
streamable-http |
Multi-client / server deployment; also serves GET /health |
Static bearer tokens (≥ 32 characters) |
Writes go through the connectors' @sandbox_aware guard: with sandbox: true
in the config, write tools return a marked [SANDBOX] result and no write
reaches the CMMS. There is no confirmation step — the MCP client decides which
tool calls run.