Cumulocity IoT MCP Server - Model Context Protocol integration for IoT device management
The mc8yp server has severe definition quality issues. Of the 3 tools, only 'codemode' is designed for agent interaction; the other two ('status', 'set-active-tenant') are explicitly CLI-only. The codemode tool lacks visible input schemas and detailed parameter documentation in the provided source. Tool descriptions are present but minimal (under 100 chars). No structured output schemas are documented. The server is fundamentally a gateway to Cumulocity IoT APIs via dynamic OpenAPI exposure, which means tool definitions are generated/inferred rather than explicitly registered in the MCP server code.
Codemode tool for Cumulocity IoT API interaction and execution
CLI-only tool to set the active Cumulocity tenant
CLI-only tool to check server status and active tenant
No visible input schemas for any tool. The 'codemode' tool description states it's for 'Cumulocity IoT API interaction and execution' but no JSON Schema with typed parameters is provided in the source code.
Tool definitions are inferred, not explicitly registered. The codemode tool dynamically exposes Cumulocity OpenAPI operations. There is no explicit tool registration code showing parameter names, types, constraints, or output schemas in src/tools/codemode.ts.
Two tools (status, set-active-tenant) are CLI-only and unavailable to remote agents. They should not be exposed as MCP tools to hosted clients. setupMcpServer() conditionally registers them only when env === 'cli', but they are still tool definitions that waste agent reasoning cycles.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
Descriptions are too short to guide agent tool selection. 'Codemode tool for Cumulocity IoT API interaction and execution' (60 chars) lacks context on WHEN to use it, what PROBLEM it solves, and what it RETURNS. Baselines require 34 - 392 chars (p10 - p90), with best practice 50 - 200 chars.
No output schema documentation. Agents cannot predict what 'codemode' returns (JSON object? array? string?). No structured response shape is defined. This forces agents to reason blindly about downstream tool calls.
'codemode' name is too generic. It does not start with a clear action verb (get, create, execute, call). 'codemode' is jargon, agents have no idea whether it fetches, updates, or deletes. Rename to 'execute_cumulocity_api' or 'call_c8y_operation' to reflect action.
No parameter descriptions visible. Even if codemode accepts parameters (e.g., 'operation', 'payload'), they are not documented in the source. Baseline: 100% of A+ tools have param descriptions; this tool has 0%.
Error handling guidance is absent. No docs on how agents should handle failures from codemode (invalid operation? API error? timeout?). Baseline pattern:recovery-guide requires error responses to tell the LLM 'what to do next'.