Skip to main content
Glama
aresyn

Codex Control Plane MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CODEX_HOMENoCodex home directory. Defaults to %USERPROFILE%\\.codex.
CODEX_BINARY_PATHNoOptional explicit Codex binary path.
DEEPSEEK_ENV_PATHNoOptional .env file for DeepSeek summary settings.
CODEX_MCP_STATE_DBNoLocal MCP state DB path.
CODEX_ALLOWED_ROOTSNoSemicolon-separated path allowlist.
CODEX_PROJECTS_ROOTNoProject root scanned by catalog and read tools.
CODEX_MCP_DEFAULT_MODELNoDefault Codex model passed to app-server.
CODEX_PROJECTS_REGISTRYNoOptional JSON project registry path.
CODEX_MCP_DEFAULT_EFFORTNoDefault effort level.
DEEPSEEK_SUMMARY_ENABLEDNoEnables or disables remote summary calls.
CODEX_MCP_DEFAULT_SANDBOXNoDefault write sandbox. Defaults to danger-full-access.
OPENCLAW_CODEX_MCP_CONFIGNoFallback path to JSON configuration file.
CODEX_CONTROL_PLANE_MCP_LOGNoLog file path.
CODEX_CONTROL_PLANE_MCP_CONFIGNoPath to JSON configuration file. Also accepts OPENCLAW_CODEX_MCP_CONFIG as fallback.
CODEX_KB_HISTORY_PROJECTS_ROOTNoOptional legacy normalized KB history root.
CODEX_MCP_HOOK_HISTORY_ENABLEDNoEnables SQLite hook history. Defaults to true.
CODEX_MCP_DEFAULT_APPROVAL_POLICYNoDefault write approval policy. Defaults to never.
CODEX_MCP_HOOK_HISTORY_MAX_TEXT_CHARSNoPer-message hook capture limit.
CODEX_MCP_APPROVAL_RESPONSE_TIMEOUT_SECONDSNoPending interaction timeout.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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