operandi-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@operandi-mcpIdentify the Samsung ME20H705MSS and get defrost procedure."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OPERANDI MCP Server — operate real appliances from any agent
mcp-name: cc.operandi/operandi
operandi_mcp_server.py exposes OPERANDI over the Model Context Protocol so any MCP-capable
agent host (Claude Desktop, Claude Code, or your own agent runtime) can identify an appliance and
pull its grounded, safety-checked, robot-executable operation package as native tools.
This is the "build for agents" surface: the customer is a robot's planner / an LLM agent, not a human reading PDFs.
Tools
Tool | What it does |
| Resolve observed nameplate text / panel labels / model → a catalog object (call first). |
| The robot-executable package: model-exact procedures, control map + grounding, per-step verification signals, recovery state machine, safety envelope. |
| Browse operable appliances (optionally by category). |
| Find appliances by function ( |
Related MCP server: Skill Context Manager
Why an agent wants this
A general model, cold, gives confidently-wrong physical instructions on ordinary appliances a large
fraction of the time (OPERANDI Stage A: 24% of cold instructions were would-fail, including
invented buttons and cycles). Grounded in the package these tools return, that fell to 0
hallucinations, 96% exact. The tools turn "guess the buttons" into "read the manufacturer's ground
truth". See ../docs/BUSINESS_MODEL.md.
Setup — zero config
pip install operandi-mcpThat's it. No key needed for your first packages: on first use the server mints an
instant trial key itself (POST /v1/trial — no signup, 2 operation packages included,
cached at ~/.operandi/mcp_key). When the trial is spent, tool responses tell the agent
exactly how to sign up free (10 packages/month) or go Pro.
Have a key already? Set it and it wins over the trial:
export OPERANDI_API_KEY=ok_live_...Claude Desktop / Claude Code config
{
"mcpServers": {
"operandi": { "command": "operandi-mcp" }
}
}(Optionally add "env": {"OPERANDI_API_KEY": "ok_live_..."} once you have an account key.)
Then ask the agent: "Identify the Samsung ME20H705MSS and give me the safe procedure to defrost
0.5 kg of mince." — it will call identify_appliance then get_operation_package and answer from
grounded data.
Notes
The server is a thin, API-key-authenticated REST client — the same binary works against local dev or the hosted service by changing
OPERANDI_API_URL.Auth is
Authorization: Bearer <key>; a missing/invalid key surfaces as a tool error, not a crash.Transport is newline-delimited JSON-RPC 2.0 (the MCP stdio transport). Offline protocol tests:
pytest tests/test_mcp_server.py.
Available Tools
4 toolsfind_by_capabilityA
Find appliances by what they DO (e.g. 'heat', 'wash', 'brew', 'defrost') — useful when an agent has a goal but not a specific model in mind.
| Name | Required | Description | Default |
|---|---|---|---|
| capability | Yes | A function tag, e.g. 'heat' / 'wash' / 'brew'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description does not disclose behavioral traits like permissions, pagination, or handling of no matches. For a read/search tool, minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that immediately states purpose and provides context. No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers purpose and usage context well. Could mention return format, but not critical for such a specific search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides 100% coverage with description of 'capability'. The tool description adds examples ('heat', 'wash', 'brew') which moderately enhances understanding, but baseline is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Find appliances by what they DO' with examples like 'heat', 'wash', 'brew'. It distinguishes from siblings by focusing on function-based search, not identification or listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'useful when an agent has a goal but not a specific model in mind', providing clear context for when to use. No explicit alternatives, but purpose implies when-not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_operation_packageA
Get the robot-executable operation package for an appliance: model-exact ordered procedures, a control map with grounding (where each control is + how it is actuated), per-step verification signals, a recovery state machine, and a safety envelope (hazards / interlocks / never-do). This is the grounded knowledge a general model hallucinates without. Optionally target one procedure (e.g. 'defrost').
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Catalog slug or model id from identify_appliance. | |
| procedure | No | Optional procedure name/id (default: the primary task). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It details the content of the operation package but does not disclose behavioral traits such as read-only nature, authentication needs, rate limits, or side effects. It adds value by specifying what is included but lacks behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative and front-loaded with the core purpose. It is slightly lengthy but each sentence adds value by enumerating package components. Could be marginally more concise, but overall well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description adequately explains what is returned (components of the package). Parameter documentation is complete via schema. The context signals indicate 2 parameters with full coverage. Description adds value for a moderately complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters have descriptions). The description adds minimal extra meaning: it mentions optional targeting for the 'procedure' parameter and refers to 'identify_appliance' for 'ref', but these are already in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves a robot-executable operation package for an appliance, listing specific components (procedures, control map, verification signals, etc.). It distinguishes itself from siblings by focusing on grounded knowledge for models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when needing grounded operational knowledge ('the grounded knowledge a general model hallucinates without'), but does not explicitly state when to use this tool versus alternatives like find_by_capability or identify_appliance. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identify_applianceA
Resolve which appliance an agent/robot is looking at, from observed text or panel labels, to an OPERANDI catalog object. Call this first, then get_operation_package with the returned slug. Returns ranked matches with confidence.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | Optional brand hint if known. | |
| limit | No | Max matches (1-20, default 5). | |
| query | Yes | Observed nameplate / model text (e.g. 'Samsung ME20H705MSS'). | |
| category | No | Optional category hint, e.g. 'microwave_oven'. | |
| panel_labels | No | Optional control labels OCR'd off the panel (helps when the nameplate is hidden). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It notes that the tool 'returns ranked matches with confidence' and that it is a resolve/lookup operation implying read-only, but it does not explicitly state if it has side effects or destructive potential. The description adds some transparency but leaves safety assumptions unconfirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loading the purpose, then the workflow, then the output. Every sentence adds value with no redundancy. It is appropriately sized and structured for quick agent comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, 100% schema coverage, no output schema, and sibling tools, the description covers the main use case and workflow. It explains the role in the broader toolset (first step before get_operation_package) and mentions ranked matches. However, it could elaborate on the output format or confidence interpretation, but overall it is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a clear description. The tool description adds little beyond the schema, only reinforcing that query and panel_labels are used for identification. With high schema coverage, baseline is 3, and the description does not significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: 'Resolve which appliance an agent/robot is looking at, from observed text or panel labels, to an OPERANDI catalog object.' It specifies the verb (resolve), resource (appliance), and distinguishes from siblings by noting this is the first call in a two-step workflow with get_operation_package.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage directive: 'Call this first, then get_operation_package with the returned slug.' It implies when to use (as an initial identification step) and hints at the workflow. It does not explicitly state when not to use or compare with siblings like find_by_capability, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_appliancesB
Browse the appliances OPERANDI can operate, optionally filtered by category.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 25). | |
| category | No | Optional category filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral traits. It only mentions 'browse', implying read-only, but fails to explicitly state it's non-destructive, nor disclose any permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded, but could be slightly more structured by separating the filter option explicitly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description is adequate for a simple list tool but lacks information about return format or default sorting, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds 'optionally filtered by category' which is already implied by the schema's category parameter; no new meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'browse' and the resource 'appliances' with an optional category filter, distinguishing it from siblings like 'find_by_capability' and 'identify_appliance' which focus on different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for browsing appliances, optionally filtered, but provides no explicit guidance on when to use this tool versus alternatives, nor when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v1.0.3- First observed
find_by_capability - First observed
get_operation_package - First observed
identify_appliance - First observed
list_appliances
TDQS
Each tool has a clearly distinct purpose: find by capability, identify from observation, get operation package, and list all appliances. There is no overlap; the descriptions clearly differentiate them.
All names use snake_case and are descriptive, but 'find_by_capability' breaks the verb_noun pattern used by the others (identify, get, list). This is a minor inconsistency.
With 4 tools, the server covers the essential workflow (browse, search, identify, retrieve details) for its niche domain. It is slightly minimal but well-scoped, so score 4.
The set covers browsing, searching by capability, identification from observation, and retrieving detailed operation packages. Missing features like direct model lookup or procedure listing are minor gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Codebase intelligence for agents: 152 structured artifacts across 21 programs, one call.
Evidence-grounded, graph-connected, correctable memory for agents.
Certified SEC EDGAR fact memory for AI agents with zero hallucination and filing provenance.
Verifiable Earth ground truth for AI agents: water, hazard, ground stability, resource, with proof.
Related MCP Servers
- AlicenseAqualityDmaintenanceUniversal Search-First Knowledge Acquisition Plugin for LLMs. Enables real-time web search and deep page browsing via MCP or CLI. Zero-cost, privacy-first, supports DuckDuckGo, Bing, Google, Brave, Wikipedia, Arxiv, YouTube, Reddit and more.21916MIT
- AlicenseNot gradedqualityAmaintenanceProvides context-aware skill selection for AI agents, reducing token usage by 85-98% and improving accuracy through semantic retrieval, session memory, and feedback learning.1MIT
- AlicenseNot gradedqualityAmaintenanceGround-truth receipt system for hallucination detection — captures verified state snapshots before and after agent actions.MIT
- AlicenseAqualityAmaintenanceEnables text-first agents to inspect images via focused questions, returning compact, checked evidence packets. Reduces visual context by ~90% while preserving expected fields.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ArchieAngelBeWithUs-prog/operandi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server