HCO MCP exhibits significant definitional quality issues. While tool names follow a consistent verb_noun pattern (hco_status, hco_list_jobs, hco_inspect_job), the server suffers from: (1) incomplete input schemas, many tools lack formal parameter descriptions in the visible code, relying on inline validation rather than documented schemas; (2) deprecated tool duplication, 5 of 10 tools are marked DEPRECATED (hco_session_*), creating confusion about which to use; (3) poor parameter documentation, limit and status parameters lack detail about ranges, valid values, and when to use them; (4) no visible output schema documentation, response structures are inferred from database queries rather than formally documented; (5) generic descriptions on some tools like hco_list_jobs that don't explain WHEN to use it vs related tools. The three non-deprecated tools (hco_status, hco_list_jobs, hco_inspect_job) are moderately documented, but the deprecation of 50% of the API suggests API stability concerns. The codebase shows Zod schema validation happening inside handlers, but these schemas are not exposed as formal tool input definitions visible to the LLM.
Get detailed information about a specific job including validations, pull requests, and approvals
List jobs with optional status filter and limit
List all milestones with their phase, status, description, and timestamps
DEPRECATED: use hco_execution_archive. Archive a terminal session to preserve outputs
DEPRECATED: use hco_execution_status. List Claude sessions with optional status filter and limit
DEPRECATED: use hco_execution_submit + hco_execution_start. Start a new Claude Code session
DEPRECATED: use hco_execution_status. Get session status and events for a specific session
50% of API is deprecated (5 of 10 tools marked DEPRECATED). Descriptions tell users to use non-existent replacement tools (hco_execution_status, hco_execution_wait, hco_execution_cancel, hco_execution_submit, hco_execution_start, hco_execution_archive). These replacements are not defined in the visible API, creating dead-end guidance and blocking LLM tool selection.
Input schemas lack formal parameter descriptions. Code shows JOB_STATUS_SCHEMA, JOB_LIMIT_SCHEMA enums defined in TypeScript, but these are not surfaced in tool parameter documentation. LLMs see 'status' and 'limit' parameters with minimal context about valid values, ranges, or defaults.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
DEPRECATED: use hco_execution_cancel. Stop a running session
DEPRECATED: use hco_execution_wait. Wait for a session to reach a terminal state
Get status and summary of jobs, milestones, sessions, and Claude sessions
Output schemas are not documented. Tools like hco_list_jobs and hco_inspect_job return complex nested structures (validations, pull_requests, approvals arrays; job objects with multiple fields) inferred from SQL queries, but no schema documentation guides the LLM on what fields to expect or how to extract them downstream.
Deprecated tool descriptions provide no fallback or transition guidance. E.g., hco_session_list says 'DEPRECATED: use hco_execution_status', but hco_execution_status doesn't exist in the visible API. Developers are blocked; LLMs cannot select the right tool.
Parameter descriptions are generic or absent. 'Optional session status filter' (hco_session_list) doesn't enumerate valid status values; 'Maximum number of jobs to return' (hco_list_jobs) doesn't mention the 50-default or 200-max constraint in the param description (only in code). LLMs lack guidance to construct valid calls.
Error handling is not visible in tool definitions. Code shows error(...) and success(...) functions for response wrapping, but tool descriptions don't guide LLMs on when errors occur or how to recover. E.g., hco_inspect_job returns a validation error if job not found, but description doesn't mention this possibility.
No idempotence documentation. hco_session_start performs WRITE operations (spawns a new Claude Code session). Description doesn't state if repeated calls are safe (idempotent) or if they create duplicate sessions. Agents retrying on ambiguous failures risk creating duplicates.
Tool composition is unclear. Multiple tools interact (list_jobs → inspect_job → session_start), but no description explains the workflow or dependency chain. LLMs cannot infer when to call list_jobs vs inspect_job, or how results chain into session_start.