codex-control-plane-mcp

Manages durable long-running Codex Desktop tasks through a poll-based MCP control plane.

7|2|Updated May 16, 2026
One-click install
npx skills add https://github.com/reason-machines/mcp-skills --skill codex-control-plane-mcp-reason-machines
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: codex-control-plane-mcp
Source: https://github.com/reason-machines/mcp-skills/tree/main/skills/codex-control-plane-mcp
Command: npx skills add https://github.com/reason-machines/mcp-skills --skill codex-control-plane-mcp-reason-machines

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Long-running Codex Desktop tasks often block on multi-hour calls, lose state on retry, and leave approvals invisible to orchestrators. This Skill provides a durable MCP control plane with retry-safe operations, Plan Mode workflows, and poll-based status tracking. ## Core Features & Use Cases - Durable Async Operations: Submit a task, receive an operationId immediately, and poll until completion with SQLite-backed persistence. - Retry Safety & Plan Mode: Reusing a client_request_id returns the existing operation instead of duplicating it, and plan workflows support review, feedback, approval, and execution phases. - Diagnostics & Approvals: Expose pending approvals as pollable state, collect runtime diagnostics, analyze issues, and run dry-run repairs. - Use Case: An orchestrator agent submits a multi-hour database migration prompt to Codex Desktop, polls the workflow until the plan is ready, approves it, and reads the final report without ever blocking on a single call. ## Quick Start Install the server with pipx, run the admin init and hooks install commands, then ask your agent to submit a Codex task with a client_request_id and poll its operation status until it completes.

Frequently Asked Questions about codex-control-plane-mcp

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run long-running Codex Desktop tasks without blocking?▼

Submit the task with codex_submit_task and wait_for_completion set to false to receive an operationId immediately. Then poll codex_get_operation_status until the state becomes completed or failed, handling waiting_for_approval states along the way.

How do I make Codex MCP task submissions retry-safe?▼

Pass a unique client_request_id with every codex_submit_task call. If a retry occurs with the same ID, the control plane returns the existing operation instead of creating a duplicate, preventing repeated work after timeouts.

How does Plan Mode approval work in Codex automation?▼

Start a workflow with codex_start_plan_workflow and poll codex_get_workflow_status. When the phase reaches review_plan, call codex_approve_plan with approved true to execute, or provide feedback to request a revised plan.

Does the Codex control plane work with any MCP client?▼

Yes, it runs as a standard stdio MCP server configured in your client's config file, such as claude_desktop_config.json. Set environment variables like CODEX_MCP_STATE_DB and CODEX_PROJECTS_ROOT in the server entry.

Why are my Codex operations stuck in running state?▼

Stuck operations usually indicate an unresponsive app server or a turn awaiting interaction. Interrupt the operation with codex_interrupt_turn, or run codex_analyze_issue with the operation_timeout symptom to get severity-ranked checks.

What happens when I submit a duplicate prompt to Codex?▼

The control plane returns a DUPLICATE_PROMPT error containing the existingOperationId in its details. Use that ID with codex_get_operation_status to track the already-active turn instead of starting a new one.