A unified gateway and declarative orchestration system for Model Context Protocol (MCP) servers
gridctl exposes a single HTTP-accessible MCP tool 'tools search' with partial schema documentation. The tool has a clear action verb (search) and reasonable description (~120 chars), but parameter documentation is inconsistent: 'query' and 'limit' are well-described, while 'as' (scope label) and 'timeout' (request timeout) lack guidance on typical values or constraints. The 'format' parameter's enum is documented but restricted to 'json' with no rationale. Output schema is completely undocumented, the tool returns tool definitions but callers cannot predict the response structure. Error handling is minimal: no recovery guidance, no classification of retryable vs fatal errors. The tool is READ_ONLY (safe to retry) and follows single-responsibility design (search only, no side effects), but lacks idempotence markers and lacks per-parameter type validation hints.
Search live tools on the running gateway via lexical substring matching against live names, generated descriptions, and property names
Output schema completely undocumented. Tool returns live tool definitions but MCP spec requires clients to know what fields to expect in the response (e.g., tool name, description, parameters, risk level). Without documented output structure, agents cannot plan downstream tool calls or extract relevant fields.
Parameter descriptions lack actionable constraints. 'timeout' is described as 'Request timeout, must be positive, default 60s' but no max value or typical range is given. 'as' (scope/accounting label) lacks any explanation of valid formats or typical use. LLMs cannot infer whether to pass '5s' vs '5000ms' vs '5' for timeout without explicit format guidance.
Error handling provides no recovery guidance. Tool is marked READ_ONLY and stateless, but no error responses are documented. If search fails (malformed query, timeout, gateway down), callers have no path forward, is it retryable? Should the user reformulate? Is it a permanent failure?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 69 | - | v1 |
Tool annotation hints missing. 'tools search' is READ_ONLY and idempotent (safe to call multiple times with the same query), but schema contains no readOnlyHint or idempotentHint markers per current MCP spec. This forces agents to treat it as potentially stateful.
Limit parameter lacks explicit bounds. 'Maximum tools to return (1-200)' is stated in the description but schema has no minItems/maxItems constraints. LLMs can hallucinate values outside 1-200 (e.g., 0, 1000, -1) and callers must validate at runtime.
Format enum unexplained. Only 'json' is offered but the parameter exists and is required. If only JSON is supported, why expose the parameter at all? If other formats may be added later, document the current limitation and future roadmap.