Consult Codex (paid)
codex_consultGet a read-only second opinion or answer from Codex, a different model. Static review only; findings are unvalidated and require your verification.
Instructions
Ask Codex (a different model) for a read-only second opinion or answer.
PAID — this spends Codex quota on every new call; there is no dry-run preview for a consult, so run codex_status (free) first to confirm the CLI is installed and authenticated.
Runs codex exec in a read-only sandbox — Codex never edits files. A STATIC
review, not a verify mode: the read-only sandbox blocks the writes a
test/build/lint run needs, so Codex can't run your checks to confirm its claims —
treat findings as unvalidated claims you verify yourself. Pass workspace_root
(absolute) for a repo-grounded question; omit it for pure Q&A. Returns a result
envelope.
Data egress: this sends your question and extra_context to OpenAI via the
codex CLI. Codex always runs with a resolved working directory (workspace_root,
your MCP roots, or the server's cwd as a fallback), so it may read files there and
send their content too. Codex auto-loads the resolved workspace's AGENTS.md and
discovers skills in its .agents/skills/ and user-global $CODEX_HOME/skills/
(default ~/.codex/skills/), reachable from outside the workspace. The plugin's
isolation flags don't suppress any of it. Skill names and descriptions are exposed
up front and a selected skill's body can reach the model, so that content can be
sent even if your prompt never mentions it. Your inputs are sent raw — secret
redaction is best-effort and does not cover them (it covers gathered diffs and
Codex's returned output, not what you type or what Codex reads from files).
Progress & recovery: blocks up to the resolved deadline (timeout_seconds, clamped
10-600s; when omitted, the server-configured value, built-in default 300s). If that deadline
expires the run is terminated and its partial output is not recoverable or resumable, so for a
high-reasoning_effort or broad repo-grounded consult that may exceed it, prefer
codex_consult_async (a background job, built-in default 1800s deadline; poll
codex_job_status). Coarse notifications/progress streams while it blocks when your client
requests it; some MCP clients background a long call before the deadline, so
timeout_seconds bounds the run, not necessarily the inline wait — either way the detached run
(meta.job_id) is recoverable via codex_job_list→codex_job_status→codex_job_result.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Override the Codex model slug for this call; defaults to the server/Codex default when unset. | |
| detail | No | Response verbosity: 'summary' (default) omits the raw model text; 'full' includes it. | summary |
| question | Yes | The question or prompt to send Codex (a different model) for a read-only answer. Must be non-blank: empty or whitespace-only is rejected before any model call. | |
| isolation | No | Codex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one). | |
| extra_context | No | Optional author intent/background context, added as clearly-labeled UNTRUSTED prompt data. Redaction does NOT cover it — no live secrets. Full caveats and bounds: codex://params. | |
| workspace_root | No | Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. | |
| idempotency_key | No | Optional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params. | |
| timeout_seconds | No | Per-call wall-clock timeout in seconds, clamped to 10..600 (out-of-range values are coerced, not rejected). Defaults to the server's configured timeout. | |
| reasoning_effort | No | Override the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes |