Local MCP server that delegates tasks to codex, claude, and agy CLI sub-agents.
Three tools with complete input schemas (Zod-validated, all params typed and described). Tool descriptions are detailed and explain destructive behavior, timeouts, and error handling. However, output schemas are only partially documented in code comments, not formally declared in tool registration. Parameter descriptions are thorough (72-150 chars avg), exceeding baseline. All three tools share identical schema structure, reducing cognitive load. Missing: explicit output schema registration, per-tool error recovery guidance, and idempotency markers.
Runs the Antigravity CLI non-interactively (`agy -p`) to execute a task and returns its response. Args: - prompt (string, required): task instructions for the agy agent - cwd (string, optional): absolute working directory for the task - model (string, optional): model override - timeout_seconds (number, optional, default 600): kill the process after this many seconds - auto_approve (boolean, optional, default false): bypass agy's tool-permission prompts (--dangerously-skip-permissions). Without this, tasks that need to use tools will fail immediately since there is no terminal to approve from. Returns structured JSON: { success, final_message, exit_code, timed_out, stderr? }. Note: agy has no JSON output mode, so final_message is the raw trimmed stdout. Error Handling: - success=false with a non-zero exit_code and stderr populated means the CLI reported an error - timed_out=true means the task exceeded timeout_seconds and was killed
Runs Claude Code non-interactively (`claude -p --output-format json`) to execute a task and returns its final message. Args: - prompt (string, required): task instructions for Claude - cwd (string, optional): absolute working directory for the task - model (string, optional): model override (e.g. "claude-opus-4-8") - timeout_seconds (number, optional, default 600): kill the process after this many seconds - auto_approve (boolean, optional, default false): bypass Claude's tool-permission prompts (--dangerously-skip-permissions). Without this, tasks that need to use tools will fail immediately since there is no terminal to approve from. Returns structured JSON: { success, final_message, exit_code, timed_out, stderr? }. Error Handling: - success=false with a non-zero exit_code and stderr populated means the CLI reported an error (e.g. auth, invalid model) - timed_out=true means the task exceeded timeout_seconds and was killed
Runs OpenAI's Codex CLI non-interactively (`codex exec`) to execute a coding task and returns its final message. Args: - prompt (string, required): task instructions for Codex - cwd (string, optional): absolute working directory for the task - model (string, optional): model override (e.g. "gpt-5.6-luna") - timeout_seconds (number, optional, default 600): kill the process after this many seconds - auto_approve (boolean, optional, default false): bypass Codex's shell/edit approval prompts. Without this, tasks that need to run a command or edit a file will fail immediately since there is no terminal to approve from. Returns structured JSON: { success, final_message, exit_code, timed_out, stderr? }. Error Handling: - success=false with a non-zero exit_code and stderr populated means Codex reported an error (e.g. auth, invalid model, sandbox denial) - timed_out=true means the task exceeded timeout_seconds and was killed
Output schemas not formally registered in tool definitions. Code comments describe { success, final_message, exit_code, timed_out, stderr? } but tool registration does not declare output schema via SDK. LLMs cannot infer response structure without explicit schema.
All three tools are destructive (spawn subprocesses, execute arbitrary code) but lack confirmation/dry-run patterns. No mechanism to preview what a task will do before auto_approve=true. Agents cannot safely explore risky operations.
Error responses are structured (success=false, exit_code, stderr) but lack recovery guidance. When a task fails, the response does not suggest next steps (e.g., 'Try with auto_approve=true', 'Check model availability', 'Increase timeout_seconds'). LLM must infer recovery strategy.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2025-06-18+ | v2 |
Tool names 'delegate_to_X' are generic and do not convey the action clearly. Better names: 'run_codex_task', 'run_claude_task', 'run_agy_task' (verb_noun pattern). Current names require reading description to understand they execute code.
No idempotency markers or guidance. If an agent retries a task after timeout, the subprocess runs again, potentially duplicating side effects (file writes, API calls). Tools should declare idempotency or provide deduplication hints.