Codex CLI as an MCP Tool Inside an Agents-SDK Loop

An outer-planner/inner-coder loop from an official OpenAI recipe: an Agents SDK orchestrator plans and verifies while Codex CLI, wrapped as an MCP server, performs one bounded code change per turn.

prompt
→ Claude
Wrap Codex CLI as an MCP server and drive it from an OpenAI Agents SDK orchestrator loop — the outer agent plans/verifies, the inner Codex call does one bounded code change per turn.
claude-code

Implementation note

When to use: workflows needing separation between planning and coding — you want an orchestrator that decides what to do and verifies outcomes, with the code-touching capability isolated behind a tool boundary. From an official OpenAI recipe. How it works: Codex CLI is wrapped as an MCP server, and an OpenAI Agents SDK orchestrator drives it in a loop: the outer agent plans the work and verifies results, while each inner Codex call performs exactly one bounded code change per turn. The MCP boundary makes the coder a discrete, inspectable tool call rather than an open-ended session. Safety: the outer-planner, inner-coder split is the structural rail — the agent that changes code is not the agent that judges whether the change succeeded, and each code mutation is bounded to one tool invocation. Put iteration and budget caps in the orchestrator loop, since it, not Codex, controls how many turns run.

Source: OpenAI Cookbook

More automation loops

Run workflows with dynamic sub-agents

/goalnew

Split a task into packets, run sub-agents in parallel, synthesize results, and verify completion.

prompt
→ Claude
/goal loop and verify until complete
automationlow risk

Run agent turns until goal met

/goalnew

Agent executes repeated turns toward a condition, with a lightweight evaluator checking progress after each turn until the goal is reached.

prompt
→ Claude
/goal <condition turns a prompt into a durable objective. Thanos immediately starts a turn toward the condition, and after each turn a fresh, tool-less side-channel evaluator (a one-shot completeSimple call, not a subagent — so no extra agent turn and no re-entrancy) reads the last turn's evidence and returns MET / NOT MET . NOT MET auto-continues another turn with the reason as guidance; MET clears the goal and records the achievement. Unparseable evaluator output is treated as NOT MET (fail-safe: it never declares a false "done
automationmedium risk

Run agent until goal met

/goalnew

Queue agent turns with goal context until your objective is achieved, treating the goal as untrusted data.

prompt
→ Claude
/goal <objective , after /goal resume , and after every agent turn that leaves the goal active , the extension queues Codex's goal continuation prompt as hidden model-visible context. The objective is XML-escaped and wrapped as untrusted user data so it does not become higher-priority instructions
automationlow risk