MCP server for agent-mux — routes tasks between Claude Code and Codex CLI based on complexity, optimizing AI coding subscription costs
Five tools with complete Zod schemas and descriptions, but quality is uneven. spawn_codex has good parameter coverage (7 params, all typed and described), but descriptions are terse (10-60 chars, below the 50-200 char baseline for LLM optimization). check_budget, get_mux_status, decompose_task, and health_check have minimal descriptions (8-40 chars). No output schemas documented, LLMs cannot plan downstream calls. Error handling and recovery guidance absent. No tool annotations (readOnlyHint/destructiveHint). Naming is clear (verb_noun pattern), but descriptions fail to explain WHEN to use each tool or what to expect in responses.
Check remaining Claude and Codex budget
Analyze a complex task and decompose it into subtasks with routing recommendations
Get full orchestration status
Check agent-mux MCP server health and connectivity
Spawn Codex CLI for a task in isolated worktree
Output schemas not documented. LLMs cannot infer what fields to expect from tool responses, forcing them to guess at downstream field names and risk broken tool chains.
Descriptions are too short (8-60 chars vs. baseline 50-200 chars). They lack context on WHEN to use each tool, prerequisites, and what the LLM should expect. E.g., 'Check remaining Claude and Codex budget' does not explain whether this is a prerequisite before spawning tasks or a post-execution check.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). spawn_codex is destructive (modifies worktree), but LLMs have no signal to treat it as irreversible or requiring confirmation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If spawn_codex times out or decompose_task fails, the tool returns no actionable next steps for the LLM (e.g., 'retry with lower complexity' or 'check budget first').
spawn_codex accepts 'denyList' (file patterns) as a parameter but no validation or format guidance. LLMs may pass invalid glob patterns or shell metacharacters, causing silent failures or command injection risks.