A zero-dependency MCP stdio server that lets Codex consult Claude Code. Enables running Claude as a second opinion on tasks in a repository, with support for background jobs, verification, and code review.
Six tools with complete JSON Schema definitions and detailed descriptions. Naming follows verb_noun pattern (consult, setup, review). Descriptions are comprehensive (100-400 chars), exceeding baseline averages. All parameters have types and descriptions. However, output schemas are not documented, LLMs cannot predict response structure. Error handling lacks recovery guidance (no 'try X next' patterns). Tool composition is sound: consult handles the main task, status/result/cancel manage async jobs, review is read-only. Security concern: consult accepts 'verify' commands with limited validation ('plain invocations of common build/test tools' but no explicit allowlist shown in code).
Consult Claude Code on a task in this repository. Claude runs in the given directory using the user's existing Claude login and reports back a gentle, thorough second opinion. By default it only investigates and advises (no file edits); set edit=true to let it make changes. Claude also has access to the user's installed Claude Code skills (e.g. `frontend-design` for UI work) — name a skill in your prompt to have Claude use it, and pair it with edit=true for skills that generate code. For long tasks set background=true to return immediately with a job id, then poll consult_status / consult_result. Infer edit/background/verify from the user's intent (edit when they want changes made; background for anything beyond a quick task; verify="auto" for edit tasks) instead of asking them to specify flags. Always pass the absolute path of the repo you are working in as `cwd`.
Cancel a running background consult job (terminates the Claude process so it stops consuming usage). Omit job_id for the most recent job.
Get the final result of a completed background consult job. Omit job_id for the most recent job. If it's still running, it tells you so.
Check a background consult job: status (running/done/error/cancelled/timed_out), elapsed time, and recent activity from its live log. Omit job_id for the most recent job. Pass wait_seconds (e.g. 60) to long-poll: the call blocks until the job finishes or the wait elapses — much more efficient than polling in a loop.
Output schemas not documented. LLMs cannot predict response structure (job status format, result fields, error details). Consult returns unspecified 'result' object; status/result/cancel return unspecified job metadata.
Error handling lacks recovery guidance. No 'try X next' patterns. E.g., if Claude is not installed, setup returns 'readiness' but consult will fail silently. Errors should guide LLM to call setup first or suggest alternatives.
Verify parameter accepts arbitrary commands with limited validation ('plain invocations of common build/test tools; no shell operators'). No explicit allowlist visible in code. Risk of command injection if validation is insufficient.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | <=2025-11-25 | v2 |
Have Claude Code review the changes in a repository — a careful, collaborative second pair of eyes (read-only, never edits). Reviews the uncommitted changes by default, or everything since a base ref (e.g. 'main') when comparing a branch.
Check that Claude Code is installed and signed in so the consult tool will work. Reports readiness (node, claude version, login) and any next steps to fix it. Pass deep=true to verify the login with a quick live call.
Resume parameter (consult) and job_id parameters (status/result/cancel) accept arbitrary strings. No validation that job_id is well-formed or belongs to the calling user. Could enable job enumeration or cross-user access.
Consult description mentions 'Claude Code skills' but no tool to list or discover available skills. LLM must guess skill names, risking invalid invocations.