{
  "markdown": "# OPERANDI MCP Server — operate real appliances from any agent\n\n\nmcp-name: cc.operandi/operandi\n\n`operandi_mcp_server.py` exposes OPERANDI over the **Model Context Protocol** so any MCP-capable\nagent host (Claude Desktop, Claude Code, or your own agent runtime) can identify an appliance and\npull its grounded, safety-checked, robot-executable operation package **as native tools**.\n\nThis is the \"build for agents\" surface: the customer is a robot's planner / an LLM agent, not a\nhuman reading PDFs.\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `identify_appliance` | Resolve observed nameplate text / panel labels / model → a catalog object (call first). |\n| `get_operation_package` | The robot-executable package: model-exact procedures, control map + grounding, per-step verification signals, recovery state machine, safety envelope. |\n| `list_appliances` | Browse operable appliances (optionally by category). |\n| `find_by_capability` | Find appliances by function (`heat` / `wash` / `brew` / `defrost` …). |\n\n## Why an agent wants this\nA general model, cold, gives confidently-wrong physical instructions on ordinary appliances a large\nfraction of the time (OPERANDI Stage A: **24% of cold instructions were would-fail**, including\ninvented buttons and cycles). Grounded in the package these tools return, that fell to **0\nhallucinations, 96% exact**. The tools turn \"guess the buttons\" into \"read the manufacturer's ground\ntruth\". See `../docs/BUSINESS_MODEL.md`.\n\n## Setup — zero config\n\n```bash\npip install operandi-mcp\n```\n\nThat's it. **No key needed for your first packages**: on first use the server mints an\ninstant trial key itself (`POST /v1/trial` — no signup, 2 operation packages included,\ncached at `~/.operandi/mcp_key`). When the trial is spent, tool responses tell the agent\nexactly how to sign up free (10 packages/month) or go Pro.\n\nHave a key already? Set it and it wins over the trial:\n\n```bash\nexport OPERANDI_API_KEY=ok_live_...\n```\n\n### Claude Desktop / Claude Code config\n\n```json\n{\n  \"mcpServers\": {\n    \"operandi\": { \"command\": \"operandi-mcp\" }\n  }\n}\n```\n\n(Optionally add `\"env\": {\"OPERANDI_API_KEY\": \"ok_live_...\"}` once you have an account key.)\n\nThen ask the agent: *\"Identify the Samsung ME20H705MSS and give me the safe procedure to defrost\n0.5 kg of mince.\"* — it will call `identify_appliance` then `get_operation_package` and answer from\ngrounded data.\n\n## Notes\n- The server is a thin, API-key-authenticated REST client — the same binary works against local dev\n  or the hosted service by changing `OPERANDI_API_URL`.\n- Auth is `Authorization: Bearer <key>`; a missing/invalid key surfaces as a tool error, not a crash.\n- Transport is newline-delimited JSON-RPC 2.0 (the MCP stdio transport). Offline protocol tests:\n  `pytest tests/test_mcp_server.py`.\n",
  "bytes": 2796,
  "sha": "e739f2cf9dd4af33aef646415e2b96e11ac55fb5f7d1e7e496dade06d91688d1",
  "repo_slug": "archieangelbewithus-prog/operandi-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_cc_operandi_operandi_9cd75c76/readme"
}