Codex MCP Go について
Codex MCP Goは、OpenAI Codex CLIをコーディングエージェント向けのツールとして提供するGo製MCPサーバーです。複数ターンのセッション、サンドボックスポリシー、並行呼び出しに対応し、単一バイナリとしてビルドできます。
主な機能
- 01MCP経由でCodex CLIを呼び出し
- 02セッションIDによる複数ターンのコンテキスト維持
- 03読み取り専用やworkspace-writeの設定
- 04複数クライアントの並行呼び出し
- 05単一バイナリとしてビルド
活用シーン
- 01Codex CLIへのコード分析や実装の委任
- 02複数ターンのコーディング作業でのコンテキスト維持
- 03Codexの作業ディレクトリへのアクセス制限
MCP 対応
MCP対応のコーディングエージェント向けに、`codex`ツールを公開します。ツールはプロンプトと作業ディレクトリに加え、任意のサンドボックスやセッション設定を受け取ります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
codex-mcp-go
概要
codex-mcp-go は、Go 言語で実装された MCP(Model Context Protocol)サーバーです。OpenAI の Codex CLI をラップし、KiloCode、Roo Code、Cline など、さまざまな「Vibe Coding」AI クライアントから MCP ツールとして呼び出せるようにします。
このプロジェクトの目的はシンプルです。強者をさらに強くし、専門家には専門分野に専念してもらうことです。
私自身のワークフロー(KiloCode で Gemini 3.0 Pro を使用)では、Gemini のような高度なモデルは優れた計画能力と想像力を持つ一方で、自ら生成した複雑なコードの修正では、ときどき「行き詰まる」ことがあると気づきました。一方、経験豊富な「コード職人」である Codex は、大局的な構想ではやや劣るものの、具体的なコードの実装、バグ修正、正確な指示への準拠では右に出るものがありません。
それなら、両者を連携させてみてはどうでしょうか?
codexmcp(Python 実装)に触発され、私がより好む Go 言語を使い、mcp-go-sdk を学びながら同じものを作りました。主な目的は練習と、自分により合ったツールを作ることです。
今では、MCP に対応した Vibe Coding ツールならどれでも、一言指示するだけで、Gemini や Claude のような「総司令官」から Codex という「特殊部隊員」を呼び出し、最も難しいコーディングタスクを任せられます。
主な機能:
- セッション管理:
SESSION_IDによる複数ターンの会話コンテキスト維持に対応しています。 - サンドボックス制御:
read-only、workspace-writeなどのセキュリティポリシーを提供します。 - 並行処理:Go のゴルーチンを基盤とし、複数クライアントからの並行呼び出しに対応しています。
- 単一ファイルでのデプロイ:単一のバイナリファイルにコンパイルでき、ランタイム依存関係はありません。
クイックスタート
1. 前提条件
このツールは OpenAI の codex CLI に依存します。インストールして設定済みであることを確認してください。
Codex CLI のインストール:
# 使用 npm 安装 (推荐)
npm i -g @openai/codex
# 或者参考官方仓库
# https://github.com/openai/codex-cli
2. MCP サーバーのインストール
方法 1:npx を使用(推奨)
Go 環境をインストールする必要はありません。そのまま実行できます。
npx @zenfun510/codex-mcp-go
方法 2:手動ダウンロード
Releases ページから、お使いのプラットフォームに対応するバイナリファイルをダウンロードしてください。
方法 3:ソースからビルド
Go 1.24+ 環境が必要です。
git clone https://github.com/w31r4/codex-mcp-go.git
cd codex-mcp-go
go build -o codex-mcp-go cmd/server/main.go
3. MCP クライアントの設定
使用する AI クライアントに応じて、該当する設定方法を選択してください。
方法 A:npx を使用(推奨)
Claude Code
claude mcp add codex -s user --transport stdio -- npx -y @zenfun510/codex-mcp-go
Roo Code(VSCode / Cursor)
Roo Code の MCP 設定に次の内容を追加します。
{
"mcpServers": {
"codex": {
"command": "npx",
"args": ["-y", "@zenfun510/codex-mcp-go"],
"env": {
"OPENAI_API_KEY": "your-api-key"
}
}
}
}
設定ファイルのパス:
- VSCode:
~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json - Cursor:
~/.config/Cursor/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
KiloCode
~/.kilocode/mcp.json に次の内容を追加します。
{
"mcpServers": {
"codex": {
"command": "npx",
"args": ["-y", "@zenfun510/codex-mcp-go"],
"env": {
"OPENAI_API_KEY": "your-api-key"
}
}
}
}
Cursor(ネイティブ MCP)
- Cursor の設定 -> 機能 -> MCP を開きます
- 「新しい MCP サーバーを追加」をクリックします
- 次の設定を入力します:
- 名前:
codex - 種類:
stdio - コマンド:
npx - 引数:
-y @zenfun510/codex-mcp-go
- 名前:
方法 B:ローカルのバイナリファイルを使用
go build でバイナリファイルをビルド済みの場合(パスを /path/to/codex-mcp-go と仮定)、次の設定を使用できます。
Claude Code
claude mcp add codex -s user --transport stdio -- /path/to/codex-mcp-go
Roo Code / KiloCode / 汎用 JSON 設定
{
"mcpServers": {
"codex": {
"command": "/path/to/codex-mcp-go",
"args": [],
"env": {
"OPENAI_API_KEY": "your-api-key"
}
}
}
}
Cursor(ネイティブ MCP)
- Cursor の設定 -> 機能 -> MCP を開きます
- 「新しい MCP サーバーを追加」をクリックします
- 次の設定を入力します:
- 名前:
codex - 種類:
stdio - コマンド:
/path/to/codex-mcp-go - 引数:(空欄)
- 名前:
4. 動作確認
cat <<'EOF' | ./codex-mcp-go
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"0.1.0","capabilities":{}}}
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
EOF
tools/list を呼び出す前に、initialize のハンドシェイクを完了する必要があります。codex ツールを含む JSON データが返されれば、正常に動作しています。
5.(任意)サーバー設定(設定ファイル + 環境変数)
TOML 設定ファイルまたは環境変数を使って、実行ポリシーを調整できます。優先順位は、デフォルト値 < 設定ファイル < 環境変数です。
./codex-mcp-go --config ./codex-mcp.example.toml
# 或
CODEX_MCP_CONFIG=./codex-mcp.example.toml ./codex-mcp-go
環境変数(設定ファイルの値を上書きします):
CODEX_MCP_SERVER_NAME/CODEX_MCP_VERSIONCODEX_DEFAULT_TIMEOUT/CODEX_MAX_TIMEOUT/CODEX_NO_OUTPUT_TIMEOUT(単位:秒)CODEX_MAX_BUFFERED_LINES/CODEX_EXECUTABLE_PATHCODEX_ALLOWED_MODELS/CODEX_ALLOWED_PROFILES(カンマ区切り。*は任意の値を許可します。デフォルトは空=すべて拒否)CODEX_DEFAULT_SANDBOX/CODEX_ALLOWED_SANDBOX_MODES(カンマ区切り)CODEX_ALLOWED_WORK_DIRS(カンマ区切りのディレクトリプレフィックス一覧。空=制限なし)CODEX_DISABLE_YOLO(true/false)CODEX_LOG_LEVEL/CODEX_LOG_FORMAT/CODEX_LOG_OUTPUT/CODEX_LOG_FILE
推奨システムプロンプト(System Prompts)
最適なエクスペリエンスを得るには、使用するクライアントの種類に応じたシステムプロンプトを設定することをおすすめします。
1. 智能体模式 (KiloCode / Roo Code / Cline / Claude Code)
适用于能够自主规划和执行多步任务的 Agent。
对于 KiloCode / Roo Code / Cline 用户: 本项目提供了针对不同客户端的预配置专家模式文件。请根据您使用的客户端选择对应的文件导入:
- KiloCode:
codex-engineer-kilocode.yaml - Roo Code:
codex-engineer-roocode.yaml - Cline:
codex-engineer-cline.yaml
导入后,您将获得经过调优的 "Codex 协作专家" 模式,该模式已针对您的客户端进行了身份认同适配。
对于 Claude Code 或手动配置: 请将以下内容添加到您的 Agent 配置或作为任务的初始指令:
点击展开详细提示词
## Core Instruction for CodeX MCP
在任何时刻,你必须思考当前过程可以如何与codex进行协作,如何调用Codex 为你提供的MCP工具作为你客观全面分析的保障。
其中你**务必执行**以下几个步骤:
**1** 在你对用户需求形成初步分析后,将用户需求、初始思路告知codex,并要求其完善需求分析和实施计划。
**2** 在实施具体编码任务前,**必须向codex索要代码实现原型(要求codex仅给出unified diff patch,严禁对代码做任何真实修改)**。在获取代码原型后,你**只能以此为逻辑参考,再次对代码修改进行重写**,形成企业生产级别、可读性极高、可维护性极高的代码后,才能实施具体编程修改任务。
**3** 无论何时,只要完成切实编码行为后,**必须立即使用codex review代码改动和对应需求完成程度**。
**4** codex只能给出参考,你**必须有自己的思考,甚至需要对codex的回答提出置疑**。尽信书则不如无书,你与codex的最终使命都是达成统一、全面、精准的意见,所以你们必须不断争辩已找到通向真理的唯一途径。
## Codex Tool Invocation Specification
1. 工具概述
codex MCP 提供了一个工具 `codex`,用于执行 AI 辅助的编码任务。该工具**通过 MCP 协议调用**,无需使用命令行。
2. 工具参数
**必选**参数:
- PROMPT (string): 发送给 codex 的任务指令
- cd (Path): codex 执行任务的工作目录根路径
可选参数:
- sandbox (string): 沙箱策略,可选值:
- "read-only" (默认): 只读模式,最安全
- "workspace-write": 允许在工作区写入
- "danger-full-access": 完全访问权限
- SESSION_ID (UUID | null): 用于继续之前的会话以与codex进行多轮交互,默认为 None(开启新会话)
- skip_git_repo_check (boolean): 是否允许在非 Git 仓库中运行,默认 False
- return_all_messages (boolean): 是否返回所有消息(包括推理、工具调用等),默认 False
- image (List[Path] | null): 附加一个或多个图片文件到初始提示词,默认为 None
- model (string | null): 指定使用的模型,默认为 None(使用用户默认配置)
- yolo (boolean | null): 无需审批运行所有命令(跳过沙箱),默认 False
- profile (string | null): 从 `~/.codex/config.toml` 加载的配置文件名称,默认为 None(使用用户默认配置)
3. 调用规范
**必须遵守**:
- 每次调用 codex 工具时,必须保存返回的 SESSION_ID,以便后续继续对话
- cd 参数必须指向存在的目录,否则工具会静默失败
- 严禁codex对代码进行实际修改,使用 sandbox="read-only" 以避免意外,并要求codex仅给出unified diff patch即可
推荐用法:
- 如需详细追踪 codex 的推理过程和工具调用,设置 return_all_messages=True
- 对于精准定位、debug、代码原型快速编写等任务,优先使用 codex 工具
2. 辅助编程模式
适用于作为 IDE 插件运行的助手。建议添加到 .clinerules (Roo Code) 或 "Rules for AI" (Cursor) 中:
点击展开规则提示词
# Codex MCP Tool Rules
You have access to the `codex` tool, which wraps the OpenAI Codex CLI. Use it for complex code generation, debugging, and analysis.
## Workflow
1. **Consultation**: Before writing complex code, ask Codex for a plan or analysis.
2. **Prototyping**: Ask Codex for a `unified diff patch` to solve the problem.
* **IMPORTANT**: Always use `sandbox="read-only"` when asking for code.
* **IMPORTANT**: Do NOT let Codex apply changes directly.
3. **Implementation**: Read the Codex-generated diff, understand it, and then apply the changes yourself using your own file editing tools.
4. **Review**: After applying changes, you can ask Codex to review the code.
## Tool Usage
- **Session**: Always capture and reuse `SESSION_ID` for multi-turn tasks.
- **Path**: Ensure `cd` is set to the current workspace root.
- **Safety**: Default to `sandbox="read-only"`. Only use `workspace-write` if explicitly instructed by the user and you are confident in the operation.
工具参数说明
工具名称:codex
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
PROMPT | string | ✅ | - | 发送给 Codex 的指令 |
cd | string | ✅ | - | 工作目录路径 |
sandbox | string | ❌ | "read-only" | 策略:read-only / workspace-write / danger-full-access |
SESSION_ID | string | ❌ | "" | 会话 ID,用于多轮对话 |
skip_git_repo_check | bool | ❌ | true | 允许在非 Git 目录运行 |
return_all_messages | bool | ❌ | false | 返回完整推理日志 |
image | []string | ❌ | [] | 附加图片路径 |
model | string | ❌ | "" | 默认禁止,除非显式允许 |
yolo | bool | ❌ | false | 跳过所有确认(非交互) |
profile | string | ❌ | "" | 默认禁止,除非显式允许 |
timeout_seconds | int | ❌ | 1800 | Codex 调用的总超时(秒,最多 1800) |
no_output_seconds | int | ❌ | 0 | 无输出达到该秒数后终止运行(0 表示关闭) |
运行时行为: 默认 30 分钟总超时(上限 30 分钟),无输出看门狗默认关闭;出现错误行、非零退出会携带最近输出返回,便于定位卡住原因。若网络慢或 MCP 客户端自身有较短的 RPC 超时,调用时保持 timeout_seconds=1800,以避免过早被取消。
默认策略: sandbox=read-only、yolo=false、skip_git_repo_check=false;model/profile 默认拒绝,需显式放行;timeout_seconds=1800(最多 1800)、no_output_seconds=0(关闭)。
功能对比
1. 与官方 Codex CLI 对比
| 特性 | 官方 Codex CLI | CodexMCP (本工具) |
|---|---|---|
| 基本 Codex 调用 | ✅ | ✅ |
| 多轮对话 | ❌ | ✅ (通过 Session 管理) |
| 推理详情追踪 | ❌ | ✅ (完整日志捕获) |
| 并行任务支持 | ❌ | ✅ (MCP 协议支持) |
| 错误处理 | ❌ | ✅ (结构化错误返回) |
2. 与 Python 版本 (codexmcp) 对比
| 特性 | Go 版本 (codex-mcp-go) | Python 版本 (codexmcp) |
|---|---|---|
| 部署 | 单二进制文件,零依赖 | 需 Python 环境及依赖 |
| 启动速度 | 🚀 极快 | 🐢 较慢 (解释器启动) |
| 资源占用 | 📉 低 | 📈 较高 |
| 并发模型 | Goroutine (高效) | Threading |
| 适用场景 | 生产环境、底层服务 | 二次开发、原型验证 |
故障排查
- 连接失败:检查
codexCLI 是否在 PATH 中,或确认 Go 版本 >= 1.24。 - 无权限:检查二进制文件是否有执行权限 (
chmod +x)。 - Session 丢失:确保客户端正确传递了上一次调用返回的
SESSION_ID。
开源协议
本项目采用 MIT License 开源协议。
致谢
本项目深受 codexmcp (Python 实现) 的启发。感谢 GuDaStudio 团队在探索 Codex MCP 集成方面所做的开创性工作。
再次感谢您的关注!别忘了点个 Star 哦~ 🌟
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。