codex-mcp-server

codex-mcp-server

MCP server for Codex CLI — tmux persistence, git worktree isolation, async dispatch.

Category
访问服务器

README

<div align="center">

codex-mcp-server

MCP server for Codex CLI — tmux persistence, git worktree isolation, async dispatch.

English | 简体中文

</div>


特性

  • tmux 持久化 — full-access 任务运行在 tmux session 中,网络断开、窗口关闭后任务继续执行;read-only 任务直接 subprocess 执行
  • git worktree 隔离 — full-access 模式自动创建独立 worktree,并行任务互不干扰
  • 阻塞 + 异步双模式 — codex 同步等待结果,codex_dispatch 立即返回后台运行
  • 多轮对话 (resume) — 通过 session_id 延续上一次 Codex 会话
  • 文件系统持久化 — 任务元数据存储在 ~/.codexmcp/tasks/,服务重启后可恢复
  • 工作区日志 — 自动在 <cwd>/.codex-tasks/ 创建 symlink,IDE 中直接查看日志

工具

工具 作用 适合场景
codex 阻塞执行,等待完成后返回结果 代码审阅、短任务、并行模块实现
codex_dispatch 后台分派,立即返回 task_id 长任务(数十分钟到数小时)
codex_status 查询任务状态和进度 追踪后台任务、获取结果
codex_cancel 取消运行中的任务 终止不需要的任务

前置要求

  • Python 3.12+
  • codex CLI 已安装且在 PATH 中
  • tmux 已安装(full-access 模式必须)
  • git 已安装(full-access 模式必须)
codex --version
tmux -V
git --version

安装

从 PyPI 安装:

pip install codex-mcp-server

Claude Code

claude mcp add codex -s user --transport stdio -- \
  uvx codex-mcp-server

验证:

claude mcp list

Cursor / 通用 MCP 客户端

在 MCP 配置文件(如 mcp.json)中添加:

{
  "mcpServers": {
    "codex": {
      "command": "uvx",
      "args": ["codex-mcp-server"]
    }
  }
}

更新到最新版

uvx 会缓存已安装的包。更新到新版本时需要加 --refresh 刷新缓存:

uvx --refresh codex-mcp-server --help

注意:如果使用 PyPI 镜像源(如清华源),新版本可能需要 5-15 分钟才能同步。若 --refresh 仍拉取到旧版本,可临时指定官方源:

uvx --refresh --index-url https://pypi.org/simple/ codex-mcp-server --help

从源码安装(开发用)

git clone https://github.com/shilong20/codexmcp.git
cd codexmcp
pip install -e .

快速上手

1. 代码审阅(阻塞,只读)

{
  "tool": "codex",
  "arguments": {
    "prompt": "审阅 src/auth/ 目录的代码质量和安全性",
    "cwd": "/workspace/my-project",
    "topic": "review-auth_module-v1",
    "sandbox": "read-only"
  }
}

2. 并行模块实现(阻塞,写入)

并发调用多个 codex,每个使用不同 topic:

{
  "tool": "codex",
  "arguments": {
    "prompt": "实现用户注册模块...",
    "cwd": "/workspace/my-project",
    "topic": "implement-user_register-v1",
    "sandbox": "full-access"
  }
}

每个 full-access 任务自动创建独立的 git worktree 和分支 agent/<topic>。

3. 长任务后台分派

{
  "tool": "codex_dispatch",
  "arguments": {
    "prompt": "重构整个项目为异步架构...",
    "cwd": "/workspace/my-project",
    "topic": "longrun-async_refactor-v1",
    "sandbox": "full-access"
  }
}

立即返回 task_id。之后用 codex_status 查看进度。

4. Resume 多轮对话

首次执行返回 session_id。修改代码后继续:

{
  "tool": "codex",
  "arguments": {
    "prompt": "我已修改了代码,请重新审阅",
    "cwd": "/workspace/my-project",
    "topic": "review-auth_module-v2",
    "sandbox": "read-only",
    "session_id": "019d0aa8-..."
  }
}

resume 时 topic 版本号 +1(如 v1→v2),传入上次的 session_id。worktree 基于 <type>-<description> 生成(不含版本号),自动复用。


参数说明

参数 类型 必填 说明
prompt str 是 任务指令
cwd Path 是 工作目录(绝对路径)
topic str 是 任务标识,格式 <type>-<desc>-v<ver>。用于 task_id、worktree 分支名、tmux session 名(full-access)
sandbox read-only / full-access 是 权限模式。read-only 不建 worktree 不走 tmux;full-access 创建 worktree + tmux 隔离
session_id str 否 恢复之前的 Codex 会话(多轮对话)

返回结构

阻塞 codex 完成后返回:

{
  "success": true,
  "task_id": "codex-implement-user_register-v1",
  "session_id": "019d0aa8-...",
  "result": "Codex 的最终回复文本",
  "exit_code": 0,
  "elapsed_seconds": 45.2,
  "usage": {"input_tokens": 5000, "output_tokens": 1200},
  "worktree_dir": "/workspace/project-agent-implement-user_register",
  "agent_branch": "agent/implement-user_register",
  "base_branch": "main",
  "diff_stat": "3 files changed, 42 insertions(+), 10 deletions(-)",
  "commits_ahead": 2
}
  • session_id 用于 resume
  • worktree 相关字段仅 full-access 模式返回
  • 当 CODEXMCP_READONLY_FALLBACK 启用且 sandbox 为 read-only 时,返回额外的 readonly_audit 字段:
{
  "readonly_audit": {
    "mode": "fallback",
    "violations_detected": 0,
    "violations": [],
    "verdict": "CLEAN"
  }
}

verdict 为 VIOLATION 时表示检测到违规操作,violations 列出具体违规项。


环境变量

通过 MCP 服务进程环境变量配置:

变量 说明 示例
CODEX_PROFILE codex 配置文件名 fast
CODEX_REASONING_EFFORT 推理强度 high、xhigh
CODEXMCP_READONLY_FALLBACK 容器环境下启用 read-only 降级模式(见下方说明) 1

Read-Only 降级模式

在 Docker 等容器环境中,read-only sandbox 可能因 bwrap namespace 限制无法正常工作。设置 CODEXMCP_READONLY_FALLBACK=1 后:

  1. read-only 请求内部使用 danger-full-access 执行
  2. 自动注入强约束提示词,禁止任何文件修改操作
  3. 任务完成后自动审计日志,检测违规操作
  4. 返回结果中附加 readonly_audit 字段

执行路径不变:不创建 tmux session 和 git worktree,仍走 subprocess 直接执行。


日志

位置 路径
工作区 symlink <cwd>/.codex-tasks/<topic>/codex-exec.log
主存储 ~/.codexmcp/tasks/<task_id>/codex-exec.log
实时查看 tmux attach -t codex-<topic>(仅 full-access)

开发

git clone https://github.com/shilong20/codexmcp.git
cd codexmcp
pip install -e .

许可证

MIT License

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选