Skip to content

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.