codex-mcp-server
Allows executing autonomous coding tasks and managing conversation threads via Codex CLI, powered by OpenAI's models.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@codex-mcp-server start a new coding task to build a REST API"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Codex MCP Server
An open-source Model Context Protocol server that bridges MCP clients (Claude Desktop, Cursor, Poke, etc.) with the Codex CLI running on your machine.
Run coding tasks, manage conversation threads, fork sessions, and browse historical rolls ā all through standard MCP tooling.
Prerequisites
Node.js 22+ (required for native SQLite bindings)
Codex CLI installed and authenticated ā verify with
codex doctor
Related MCP server: codex-from-chatgpt
Quick Start
git clone https://github.com/4dhxm/codex-mcp-server.git
cd codex-mcp-server
npm install
npm run buildRunning the Server
1. Local Transport (stdio)
For MCP clients running on the same machine (like Claude Desktop or Cursor).
node dist/index.jsAdd to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"codex": {
"command": "node",
"args": ["/absolute/path/to/codex-mcp-server/dist/index.js"]
}
}
}2. Remote Transport with Auto-Tunnel (Streamable HTTP + Cloudflare)
For exposing your local Codex installation to remote MCP clients (like Poke or a remote device) without dealing with routers or ngrok warning pages.
Dependency: You must have cloudflared installed. On macOS:
brew install cloudflarednode dist/index.js --http --tunnelThis starts the server and automatically spawns a free, highly-stable Cloudflare Quick Tunnel.
You can also explicitly set your API key:
node dist/index.js --http --tunnel --api-key my-secret-tokenYou will see output like this:
==============================================
š Cloudflare tunnel established successfully!
Public URL: https://some-random-words.trycloudflare.com
MCP URL: https://some-random-words.trycloudflare.com/mcp
==============================================Connect from your remote MCP client:
URL: https://some-random-words.trycloudflare.com/mcp
Type: Streamable HTTP
Auth: Bearer <your-api-key>3. Local HTTP Network Transport
To run over HTTP without a public tunnel (for your local network):
node dist/index.js --http --port 8080Authentication
API key auth is enabled by default for HTTP mode to protect your local machine from unauthorized remote access.
Provide a key via --api-key <key> flag or CODEX_MCP_API_KEY env var. If neither is set, a random secure key is generated and printed on startup.
How clients send the key ā any of these work:
Method | Example |
|
|
|
|
Query parameter |
|
The server intentionally avoids returning WWW-Authenticate headers to prevent MCP clients from attempting OAuth flows, ensuring simple Bearer token auth works cleanly.
Tools
Tool | Description |
| Run a coding task in a new thread |
| Initialize a thread without running a turn |
| Send a follow-up prompt to an existing thread |
| List active/archived threads from local SQLite |
| Get metadata and conversation history |
| Clone a thread's history into a new session |
| Archive a thread |
| Unarchive a thread |
| Abort a running turn |
License
Available Tools
13 toolscodex_archive_threadB
Archive an active conversation thread.
Inputs: threadId (required).
codex_continueC
Alias for codex_run_turn. Continue an existing conversation thread.
Inputs: threadId (required), prompt (required), workingDirectory, model, +3 more.
codex_continue_threadC
Alias for codex_run_turn. Continue a thread with a follow-up message.
Inputs: threadId (required), prompt (required), workingDirectory, model, +3 more.
codex_fork_threadB
Fork an existing thread into a new thread by cloning its session history.
Inputs: threadId (required), cwd.
codex_get_threadA
Get metadata and full conversation history for a specific Codex thread.
Inputs: threadId (required).
codex_interruptC
Alias for codex_interrupt_turn. Interrupt a running turn on an active thread.
Inputs: threadId (required).
codex_interrupt_turnB
Interrupt and abort the running turn or command on an active thread.
Inputs: threadId (required).
codex_list_threadsB
List historical and active Codex threads querying local session caches.
Inputs: limit, includeArchived.
codex_runC
Alias for codex_task. Runs a task in a new Codex thread.
Inputs: prompt (required), workingDirectory, model, sandboxMode, +2 more.
codex_run_turnC
Run a follow-up turn or send a new prompt in an existing Codex thread.
Inputs: threadId (required), prompt (required), workingDirectory, model, +3 more.
codex_start_threadC
Start a new conversation thread session with the Codex agent.
Inputs: workingDirectory, model, sandboxMode, networkAccessEnabled, +1 more.
codex_taskC
Run an autonomous coding task in a new Codex thread and return the final response.
Inputs: prompt (required), workingDirectory, model, sandboxMode, +2 more.
codex_unarchive_threadB
Unarchive a previously archived conversation thread.
Inputs: threadId (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogā¦
TDQS
Scored across 13 tools
Several tools have overlapping purposes, such as codex_continue, codex_continue_thread, and codex_run_turn all appearing to continue a thread. Aliases like codex_continue and codex_interrupt add confusion, making it hard for an agent to select the correct tool.
The snake_case and 'codex_' prefix are consistent, but the presence of aliases (e.g., codex_continue vs. codex_continue_thread) and inconsistent verb usage (run, continue, fork, archive) reduces clarity.
13 tools is a reasonable number for managing Codex threads, covering creation, continuation, interruption, archiving, and listing. It is well-scoped without being excessive.
The tool set covers essential thread operations: start, continue, fork, archive, unarchive, list, and get. Missing update/delete capabilities are minor given the conversational domain, and most workflows are supported.
Related MCP Connectors
Shared memory MCP server for Claude Code, Codex, Gemini CLI and Cursor. Cited, editable.
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- AlicenseAqualityCmaintenanceBridges OpenAI Codex CLI to any MCP client, allowing headless Codex sessions via tools like codex and codex-reply.244 npm1MIT
- AlicenseNot gradedqualityCmaintenanceA personal MCP bridge that lets ChatGPT drive a local Codex CLI, translating instructions into Codex app-server threads and returning compact summaries of what Codex did.16MIT
- AlicenseAqualityBmaintenanceLocal MCP bridge that lets Codex operate local Claude Code sessions, including listing, starting, resuming, forking, prompting, and stopping conversations via the Remote Control CLI.14MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients and external AI supervisors to oversee and steer native Codex sessions through a thin local stdio bridge. It exposes eleven codex_* supervisory tools for tasks such as listing threads, starting turns, observing progress, steering, responding to approvals, interrupting, checkpointing, and rolling over work.MIT