MCP bridge for calling local coding-agent CLIs such as Codex and Claude Code.
Two tools with complete input schemas and reasonable descriptions, but significant gaps in parameter documentation and output schema clarity. call_claude and call_codex both have descriptions (60-80 chars, baseline 194), but lack comprehensive parameter descriptions. Schema definitions are present via Zod but descriptions for individual parameters are sparse. No output schema documentation visible. Error handling exists (bridge.ts shows agentError function) but lacks recovery guidance. Tool names follow verb_noun pattern (call_*) which is good, but descriptions could be more specific about when to use each tool vs the other.
Run Claude Code non-interactively with a caller-authored prompt.
Run Codex non-interactively with a caller-authored prompt.
Parameter descriptions incomplete. 'cwd', 'prompt', 'timeout_seconds', 'model', 'output_schema', 'tool_mode' (call_claude) and 'sandbox', 'skip_git_repo_check' (call_codex) lack detailed descriptions explaining constraints, formats, and when to use them. Baseline: 100% of A+ tools have descriptions for every parameter.
Output schema not documented. Tools return AgentCallResult (stdout, stderr, exit_code, signal, timed_out, parsed_output, validation_errors) but this structure is not visible in tool registration or descriptions. LLMs cannot plan downstream actions without knowing return fields.
Tool descriptions lack differentiation. Both tools have nearly identical descriptions ('Run [Agent] non-interactively with a caller-authored prompt'). No guidance on when to choose call_claude vs call_codex, what each agent excels at, or prerequisites.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2025-06-18+ | v2 |
Error messages lack recovery guidance. agentError() in bridge.ts returns helpful messages for ENOENT (missing CLI), but other failures (timeout, non-zero exit, validation errors) do not guide the LLM on retry strategy or next steps.
Enum constraints present but descriptions do not explain them. tool_mode enum ['none', 'read-only'] and sandbox enum ['read-only', 'workspace-write', 'danger-full-access'] lack descriptions of what each mode permits or when to use each.