Codex Control Plane MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CODEX_HOME | No | Codex home directory. Defaults to %USERPROFILE%\\.codex. | |
| CODEX_BINARY_PATH | No | Optional explicit Codex binary path. | |
| DEEPSEEK_ENV_PATH | No | Optional .env file for DeepSeek summary settings. | |
| CODEX_MCP_STATE_DB | No | Local MCP state DB path. | |
| CODEX_ALLOWED_ROOTS | No | Semicolon-separated path allowlist. | |
| CODEX_PROJECTS_ROOT | No | Project root scanned by catalog and read tools. | |
| CODEX_MCP_DEFAULT_MODEL | No | Default Codex model passed to app-server. | |
| CODEX_PROJECTS_REGISTRY | No | Optional JSON project registry path. | |
| CODEX_MCP_DEFAULT_EFFORT | No | Default effort level. | |
| DEEPSEEK_SUMMARY_ENABLED | No | Enables or disables remote summary calls. | |
| CODEX_MCP_DEFAULT_SANDBOX | No | Default write sandbox. Defaults to danger-full-access. | |
| OPENCLAW_CODEX_MCP_CONFIG | No | Fallback path to JSON configuration file. | |
| CODEX_CONTROL_PLANE_MCP_LOG | No | Log file path. | |
| CODEX_CONTROL_PLANE_MCP_CONFIG | No | Path to JSON configuration file. Also accepts OPENCLAW_CODEX_MCP_CONFIG as fallback. | |
| CODEX_KB_HISTORY_PROJECTS_ROOT | No | Optional legacy normalized KB history root. | |
| CODEX_MCP_HOOK_HISTORY_ENABLED | No | Enables SQLite hook history. Defaults to true. | |
| CODEX_MCP_DEFAULT_APPROVAL_POLICY | No | Default write approval policy. Defaults to never. | |
| CODEX_MCP_HOOK_HISTORY_MAX_TEXT_CHARS | No | Per-message hook capture limit. | |
| CODEX_MCP_APPROVAL_RESPONSE_TIMEOUT_SECONDS | No | Pending interaction timeout. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| codex_list_projectsA | List known Codex projects from registry, hook history, transcripts, and cached Codex state. Use this before preflight or submit when you need a project reference; later tools accept projectId, project name, or project path and return canonical projectId. Next call codex_preflight_project_run for a concrete project. |
| codex_list_project_chatsA | List chats for one project from the bounded read model. Use this to find existing threads before continuation or review. Next call codex_get_chat_status, codex_get_chat, or codex_submit_task. |
| codex_list_active_chatsA | List chats that look active from tracked, hook, transcript, or cached evidence. Use this for operator inspection, not for creating retries. Next call codex_get_turn_status or codex_get_operation_status when ids are available. |
| codex_search_chatsB | Search chat history through the MCP-owned index and safe fallback sources. Use this for discovery or recovery when ids were lost. Do not use search results as proof that a turn is still active. |
| codex_get_chat_statusA | Read lightweight chat status and safe previews. Use this to inspect a known thread without starting live work. Next call codex_get_chat for content or codex_submit_task for a new operation. |
| codex_get_chatB | Read bounded chat content from hook history, transcripts, or legacy fallback. Use this for context recovery and final report inspection. It is not a write path and should not trigger retries. |
| codex_send_messageA | Compatibility write for sending a message to an existing Codex thread. Prefer codex_submit_task with operation_type='send_message' for durable long work. In client mode this delegates to the durable queue. |
| codex_start_chatB | Compatibility write for starting a new Codex chat. Prefer codex_submit_task with operation_type='start_chat' for durable long work. In client mode this delegates to the durable queue. |
| codex_start_plan_workflowB | Start a durable Plan Mode workflow and return workflowId immediately. Use this when a plan must be prepared before implementation. Next poll codex_get_workflow_status, then call codex_approve_plan when latestPlan is ready. |
| codex_start_review_workflowB | Start a durable Codex review workflow and return workflowId immediately. Use this for code review tasks. Next poll codex_get_workflow_status for progress and final report. |
| codex_get_workflow_statusA | Poll workflow state from storage by default. Use this for Plan Mode, execution, and review workflows. Follow nextRecommendedAction and do not create replacement work unless guidance tells you to. |
| codex_adopt_workflow_planB | Adopt a valid newer Plan Mode candidate already present in the workflow thread. Use this only when status or diagnostics reports an adoptable plan. Next poll codex_get_workflow_status. |
| codex_approve_planA | Approve the latest ready plan and queue execution. Use this after codex_get_workflow_status reports plan_ready and a valid latestPlan. Next poll codex_get_workflow_status with the same workflowId. |
| codex_preflight_project_runA | Check whether a project is safe to use before a Codex run. Use this after project discovery and before write operations. Do not treat skipped worker-managed account checks as hard auth failures. |
| codex_get_turn_statusB | Read one tracked Codex turn, including safe progress and terminal evidence. Use this when you have threadId and turnId. Do not infer stalled state from row age alone. |
| codex_execute_planB | Compatibility write for executing an approved plan. Prefer codex_approve_plan or codex_submit_task with operation_type='execute_plan'. In client mode this delegates to durable workflow execution. |
| codex_submit_taskA | Queue a durable Codex write operation and return operationId immediately. For project-scoped work, pass project_id from codex_list_projects.projectId; project name or project path are accepted aliases and MCP stores the canonical projectId. Always pass client_request_id and poll codex_get_operation_status. |
| codex_get_operation_statusA | Poll a durable operation from storage. Use this after codex_submit_task and follow nextRecommendedAction, pollRecommended, queueState, and agentGuidance. Never create a new retry while an existing operation is active. |
| codex_list_pending_interactionsA | List pending approvals, input requests, or elicitation requests. Use this when operation or workflow status reports pending interaction. Next answer with codex_answer_pending_interaction or ask a human. |
| codex_answer_pending_interactionB | Answer one pending Codex interaction so a turn can continue. Use this only for a listed interaction id. Next poll the owning operation, turn, or workflow. |
| codex_interrupt_turnB | Interrupt a running Codex turn by direct ids or durable operation/workflow context. Use this for explicit cancellation or stop conditions. Next poll status until terminal evidence is visible. |
| codex_archive_threadB | Archive a known Codex thread through the worker or app-server command lane. Use this only when the thread has no active work. Next poll codex_get_worker_command_status when commandId is returned. |
| codex_unarchive_threadA | Unarchive a known Codex thread through the worker or app-server command lane. Use this only for an existing archived thread. Next poll codex_get_worker_command_status when commandId is returned. |
| codex_start_thread_compactionA | Start context compaction for a known thread and return actionId. Use this after active work is terminal. Next poll codex_get_thread_compaction_status. |
| codex_get_thread_compaction_statusA | Poll a thread compaction action. Use this with actionId from codex_start_thread_compaction. It is passive and should return a bounded status or guidance. |
| codex_get_worker_statusB | Read central worker heartbeat and execution-mode state without starting app-server. Use this when health or queue guidance says inspect_worker_health. Next compare with queue and concurrency status. |
| codex_get_queue_statusA | Read durable queue state, queued reasons, running operations, and worker assignment. Use this to understand slot pressure or lock waits. Do not retry when queued work already exists. |
| codex_get_concurrency_statusC | Read active turn counts and scheduler resource locks. Use this with queue status when diagnosing parallel work. Active locks are not a retry instruction by themselves. |
| codex_get_worker_command_statusA | Poll a worker command created by a client-mode control action. Use this for archive, unarchive, compaction, restart, runtime refresh, and delegated lifecycle commands. Keep include_result=false unless the result is needed. |
| codex_restart_app_serverA | Restart only the MCP-owned codex-app-server subprocess. Use this only when guidance recommends restart and active work is absent or explicitly handled. In client mode this delegates to the worker command lane. |
| codex_get_app_server_statusA | Read MCP-owned app-server status without starting it. Use this with worker, queue, and concurrency status to verify active work. In client mode prefer worker-derived active turns over local guesses. |
| codex_get_runtime_capabilitiesA | Read compact runtime capabilities, models, permissions, hooks, account state, and supported methods. Use this after health or before new work. In client mode refresh queues a worker command. |
| codex_health_summaryA | Read compact MCP readiness and contract metadata. Use this first on startup, reconnect, and after MCP restart. Next inspect runtime capabilities or follow agentGuidance if health is degraded. |
| codex_get_agent_contractA | Read the machine-readable agent guide for this MCP server. Use this when tools/list metadata was unavailable or when a client wants the full contract examples. It is passive and the next normal startup call is codex_health_summary. |
| codex_collect_diagnosticsB | Collect a scoped diagnostic snapshot with compact evidence and guidance. Use this before repair when status reports failed, stale, orphaned, or degraded state. It does not execute repairs. |
| codex_get_diagnostic_logsA | Read redacted diagnostic log and app-server audit entries with filters. Use this only for targeted troubleshooting, not normal polling. Raw payload mode is for local audit and remains secret-redacted. |
| codex_analyze_issueA | Analyze scoped diagnostics and recommend safe next actions. Use this after collect_diagnostics or when a human needs a compact root-cause summary. Follow agentGuidance rather than inventing retries. |
| codex_repair_issueB | Run an allowlisted repair action with dry-run first by default. Use this only when diagnostics or agentGuidance recommends a specific action. Stop when loopGuard.allowed is false. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aresyn/codex-control-plane-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server