Skip to main content
Glama
codex-mcp-server

codex-mcp-server

by 4dhxm

Codex MCP Server

TypeScript MCP License

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 build

Running the Server

1. Local Transport (stdio)

For MCP clients running on the same machine (like Claude Desktop or Cursor).

node dist/index.js

Add 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 cloudflared
node dist/index.js --http --tunnel

This 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-token

You 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 8080

Authentication

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

Authorization header

Authorization: Bearer sk-abc123

x-api-key header

x-api-key: sk-abc123

Query parameter

?apiKey=sk-abc123

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

codex_task / codex_run

Run a coding task in a new thread

codex_start_thread

Initialize a thread without running a turn

codex_run_turn / codex_continue

Send a follow-up prompt to an existing thread

codex_list_threads

List active/archived threads from local SQLite

codex_get_thread

Get metadata and conversation history

codex_fork_thread

Clone a thread's history into a new session

codex_archive_thread

Archive a thread

codex_unarchive_thread

Unarchive a thread

codex_interrupt / codex_interrupt_turn

Abort a running turn

License

Apache 2.0

Available Tools

13 tools
codex_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

    C2.9/5.0

    Scored across 13 tools

    Disambiguation2/5

    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.

    Naming Consistency3/5

    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.

    Tool Count4/5

    13 tools is a reasonable number for managing Codex threads, covering creation, continuation, interruption, archiving, and listing. It is well-scoped without being excessive.

    Completeness4/5

    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

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables 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