MCP stdio gateway exposing AI CLI agents to DSH as MCP tools
Three tools with basic schemas and minimal descriptions. list_agents and get_agent_status have empty input objects (no parameters to describe). call_agent has 6 parameters with types but NO parameter descriptions visible in the schema, LLMs cannot infer what 'effort', 'model', or 'timeoutSeconds' control. Tool descriptions are 10 - 50 chars, below the 50 - 200 char baseline for LLM-optimized docs. No output schemas documented. Error handling exists (GatewayError) but responses are not shown. No tool annotations (readOnlyHint, destructiveHint). Naming follows verb_noun pattern (good), but descriptions lack WHEN/WHY context.
Call an agent
Check agent executable, version, and authentication readiness
List enabled agents
call_agent parameters lack descriptions. Schema shows 'model', 'effort', 'timeoutSeconds' with types but no descriptions explaining what each controls, valid ranges, or constraints. LLMs cannot infer parameter semantics from names alone.
Tool descriptions are 10 - 50 characters, well below the 50 - 200 char baseline. 'List enabled agents' and 'Check agent executable, version, and authentication readiness' lack WHEN/WHY context. LLMs need to know when to select each tool vs alternatives.
No output schemas documented. Callers cannot know what fields to expect from list_agents, get_agent_status, or call_agent responses. This forces LLMs to guess field names for downstream operations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
call_agent is a WRITE tool (executes agents, modifies state) but has no tool annotation (destructiveHint). LLMs cannot distinguish it from read-only tools without explicit marking.
get_agent_status and list_agents lack readOnlyHint annotation. While they are read-only, explicit annotation helps LLMs reason about safety and retry logic.