World Monitor
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.
Description from the maker (original English)
Durable MCP control plane for long-running Codex Desktop tasks.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
Passed 2/2 checks · Runs on your computer
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude, with some setup first
Install Python (uv) on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
One time only; it works for every server that needs Python (uv)
SettingsDeveloperEdit Config
{
"mcpServers": {
"codex-control-plane": {
"command": "uvx",
"args": [
"codex-control-plane-mcp"
]
}
}
}Use Codex Control Plane MCP and tell me what you can do for me, then show me one thing✓ If Claude says it is using Codex Control Plane MCP or shows a Codex Control Plane MCP tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
ChatGPT cannot connect Codex Control Plane MCP yet
Codex Control Plane MCP runs on your computer, but ChatGPT can only connect servers that run on the web
A · Use an app that can connect Codex Control Plane MCP
B · Others in Other that work with ChatGPT
Picked from the most used in the same category, only ones that connect by address with no key
Works with Claude Code, with some setup first
Install Python (uv) on your computer first (one time)
One time only; it works for every server that needs Python (uv)
Mac: press Command+Space and type Terminal · Windows: open PowerShell
claude mcp add codex-control-plane -- uvx codex-control-plane-mcpYou should see Codex Control Plane MCP listed as connected
Use Codex Control Plane MCP and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using Codex Control Plane MCP or shows a Codex Control Plane MCP tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor, with some setup first
Install Python (uv) on your computer first (one time)
One time only; it works for every server that needs Python (uv)
Use Codex Control Plane MCP and tell me what you can do for me, then show me one thing✓ If Cursor says it is using Codex Control Plane MCP or shows a Codex Control Plane MCP tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code, with some setup first
Install Python (uv) on your computer first (one time)
One time only; it works for every server that needs Python (uv)
Use Codex Control Plane MCP and tell me what you can do for me, then show me one thing✓ If VS Code says it is using Codex Control Plane MCP or shows a Codex Control Plane MCP tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.
JSON settings are under “For developers” below
Claude Code
claude mcp add codex-control-plane -- uvx codex-control-plane-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"codex-control-plane": {
"command": "uvx",
"args": [
"codex-control-plane-mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"codex-control-plane": {
"command": "uvx",
"args": [
"codex-control-plane-mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"codex-control-plane": {
"type": "stdio",
"command": "uvx",
"args": [
"codex-control-plane-mcp"
]
}
}
}These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 11, 2026
The registry name was verified with the GitHub account aresyn, which owns the repo
Code last changed 2 months ago
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
No reviews yet
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 2 of 2 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed 2 months ago, and the latest version (0.2.1) reached the registry 5 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: World Monitor, Claude Flow, Tldraw
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.
AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
English | Русский
Reliable Codex Desktop automation for long tasks.
codex-control-plane-mcp turns Codex Desktop and codex-app-server into a durable worker that an MCP client can drive safely. Send a task, get an operationId or workflowId right away, poll until the work finishes, approve Plan Mode when needed, then read the final report.
The server handles the awkward parts that thin wrappers usually leave to the caller: app-server startup, thread and turn creation, retry safety, duplicate prompt protection, Plan Mode, approvals, local history, diagnostics, and repair.
OpenClaw and Hermes are first-class clients, but the server is useful for any local orchestrator that needs Codex Desktop to do long-running work without holding one MCP call open for hours.
MCP client / orchestrator
-> submit a task or start a Plan Mode workflow <- receive operationId or workflowId immediately -> poll status -> answer approvals or approve the plan <- read final report, diagnostics, threadId, and turnId
That gives you a simple contract:
| Capability | Thin Codex wrapper | Codex Control Plane MCP |
|---|---|---|
| Multi-hour tasks | blocking / fragile | durable async operation |
| Client timeout recovery | manual | retry-safe client_request_id |
| Duplicate turn protection | no | active prompt detection |
| Plan Mode workflow | human / manual | pollable workflow state |
| Approvals and questions | blocking / opaque | pending interactions API |
| Restart recovery | ad hoc | persisted operation state |
| Diagnostics | logs only | health, diagnostics, repair tools |
For a more detailed decision guide, see docs/THIN_WRAPPERS.md.
codex-app-server.This is a local-first control plane for trusted Codex Desktop environments.
Do not expose it as a network service without authentication.
Recommended first-run posture:
read-only for untrusted repositories;on-request approval when testing new workflows;read-only sandbox. If a caller requests read-only, MCP raises that turn to workspace-write and reports the adjustment in status output;state/, logs/, .env, and .codex/ private.client_request_id handling.thread/start or turn/start.turn/steer for adding context to an active turn without creating a second turn.thread/fork for branching an existing thread, with or without an initial message.workspace-write, with runtimePolicyAdjusted in status when MCP raises a read-only request.review/start, with polling and final report capture.output_schema.turn/start.threadId/turnId, operationId, or workflowId.Write and control actions go through codex-app-server. The server does not mutate Codex internal SQLite databases or transcript files.
Recommended:
pipx install codex-control-plane-mcp
Or run directly:
uvx codex-control-plane-mcp
From GitHub:
python -m pip install "codex-control-plane-mcp @ git+https://github.com/aresyn/codex-control-plane-mcp.git"
For local development:
git clone https://github.com/aresyn/codex-control-plane-mcp.git
cd codex-control-plane-mcp py -m venv .venv .\.venv\Scripts\Activate.ps1 python -m pip install -e ".[dev]" python -m pytest -q
After installation, generate a config:
codex-control-plane-mcp-admin init --state-db .\state\codex-mcp-state.sqlite3 --projects-root C:\Users\you\Projects
Minimal stdio entry:
{
"mcpServers": { "codex-control-plane": { "command": "codex-control-plane-mcp", "args": [] } } }
More copy-paste examples for Claude Desktop, Cursor, VS Code-style MCP clients, local checkouts, installed packages, and central worker mode are available in examples/mcp-client-configs.md.
Run the MCP stdio server:
codex-control-plane-mcp
Or run it as a module:
py -m codex_control_plane_mcp.server
The old openclaw-codex-mcp and openclaw-codex-mcp-hooks commands remain as compatibility aliases for one release line.
The default inline mode is still the simplest setup: one MCP process can submit and execute operations. For OpenClaw, Hermes, or any setup with several MCP clients, use a central worker instead.
Recommended local shape:
CODEX_HOME and CODEX_MCP_STATE_DB;CODEX_MCP_EXECUTION_MODE=client;codex-control-plane-mcp-worker process owns codex-app-server, leases, queue slots, and resource locks;codex_submit_task, then poll status. They do not execute queued operations themselves.Worker command:
$env:CODEX_MCP_EXECUTION_MODE = "worker"
codex-control-plane-mcp-worker
Safe observation mode, useful before switching a live gateway:
codex-control-plane-mcp-worker --observe
Concurrency defaults:
CODEX_MCP_MAX_ACTIVE_TURNS_GLOBAL=4
CODEX_MCP_MAX_ACTIVE_TURNS_PER_PROJECT=3 CODEX_MCP_MAX_ACTIVE_TURNS_PER_AGENT=3 CODEX_MCP_MAX_ACTIVE_TURNS_PER_THREAD=1 CODEX_MCP_MAX_ACTIVE_WRITE_TURNS_PER_PROJECT=1 CODEX_MCP_MAX_APP_SERVER_PENDING_REQUESTS=8
For write turns in the same project, pass resource_keys to codex_submit_task. Without them, workspace-write and danger-full-access turns take a broad project write lock. With disjoint keys, the worker may run several write turns in parallel.
New status tools:
codex_get_worker_statuscodex_get_queue_statuscodex_get_concurrency_statuscodex_get_worker_command_statuscodex_get_operation_status also returns queueState, workerState, slotState, and resourceLockState. A running turn has slotState.claimed=true and a slotClaim with the worker id, slot type, and claim time. codex_get_queue_status separates queued work from running turn operations, auxiliary operations, active turn slots, and lock conflicts.
When a workflow is waiting for capacity, codex_get_workflow_status mirrors the nested operation queue state in workflowOperationQueueState. Use nextRecommendedAction="wait_for_worker_slot" for slot pressure and nextRecommendedAction="wait_for_resource_lock" for write lock conflicts. Do not create another operation for the same work while either action is returned.
The admin helper can generate a fuller client config, install hooks, and run a protocol smoke:
codex-control-plane-mcp-admin init --state-db .\state\codex-mcp-state.sqlite3 --projects-root C:\Users\you\Projects
The command prints a JSON block you can copy into an MCP client config. It does not print secrets or private prompts.
You can also install only the Codex hooks:
codex-control-plane-mcp-hooks install --state-db .\state\codex-mcp-state.sqlite3
codex-control-plane-mcp-hooks status codex-control-plane-mcp-hooks doctor
The installer backs up ~/.codex/hooks.json, merges its handlers with your existing hooks, stores stateDb as an absolute path, and writes prompts, visible agent progress text, final answers, and turn status into the MCP state DB. Tool calls and command outputs are not recorded by default. Restart Codex after installing or changing hooks.
For turns launched through codex-app-server, the server mirrors the accepted prompt, visible assistant messages, and turn status into the same SQLite history. That keeps search and status reads useful even when app-server does not execute user hooks itself.
Submit a durable task:
codex_submit_task
-> operationId codex_get_operation_status(operationId) -> queued / running / waiting_for_approval / completed / failed
Use the same client_request_id when a caller retries after a transport timeout. The retry returns the existing operation instead of creating another turn.
Attach screenshots or other image evidence:
codex_submit_task(
operation_type="start_chat", message="Analyze this screen.", input_items=[ {"type": "localImage", "path": ".\\screens\\error.png", "detail": "low"}, {"type": "image", "url": "https://example.com/screenshot.png", "detail": "high"} ] )
Image inputs are accepted only for operation types that start a new turn: start_chat, send_message, execute_plan, and fork_thread with an initial message. MCP sends the path or URL to codex-app-server, but operation status and diagnostics return only safe metadata such as type, detail, size, extension, and hashes. Binary image content, raw URLs, and full local image paths are not stored in public status payloads.
Steer an active turn:
codex_submit_task(operation_type="steer_turn", thread_id=..., expected_turn_id=..., message=...)
-> operationId codex_get_operation_status(operationId) -> follows the target turn until completed / failed / interrupted
Use steer_turn only while the target turn is active. For a completed thread, use send_message instead.
Fork a thread:
codex_submit_task(operation_type="fork_thread", source_thread_id=...)
-> operationId codex_get_operation_status(operationId) -> completed, threadId=
Start work in the fork righ