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. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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