🚀 codex-mcp-go
codex-mcp-go 是一個基於 Go 語言的 MCP 協議封裝實現,它封裝了 OpenAI 的 Codex CLI,讓其能作為 MCP 工具被多種 "Vibe Coding" AI 客戶端調用,實現不同模型間的優勢互補。
🚀 快速開始
1. 前置要求
本工具依賴 OpenAI 的 codex CLI。請確保您已安裝並配置好它。
安裝 Codex CLI:
npm i -g @openai/codex
2. 安裝 MCP Server
方式一:使用 npx (推薦)
無需安裝 Go 環境,直接運行:
npx @zenfun510/codex-mcp-go
方式二:手動下載
從 Releases 頁面下載對應平臺的二進制文件。
方式三:源碼構建
需要 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 (Native MCP)
- 打開 Cursor 設置 -> Features -> MCP
- 點擊 "Add New MCP Server"
- 填寫配置:
- Name:
codex
- Type:
stdio
- Command:
npx
- Args:
-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 (Native MCP)
- 打開 Cursor 設置 -> Features -> MCP
- 點擊 "Add New MCP Server"
- 填寫配置:
- Name:
codex
- Type:
stdio
- Command:
/path/to/codex-mcp-go
- Args: (留空)
### 4. 驗證
```bash
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
```
需先完成 `initialize` 握手,然後才能調用 `tools/list`。若返回包含 `codex` 工具的 JSON 數據,即表示運行正常。
✨ 主要特性
- 會話管理:支持
SESSION_ID 維持多輪對話上下文。
- 沙箱控制:提供
read-only、workspace-write 等安全策略。
- 併發支持:基於 Go 協程,支持多客戶端併發調用。
- 單文件部署:編譯為單一二進制文件,無運行時依賴。
📚 詳細文檔
推薦的系統提示詞 (System Prompts)
為了獲得最佳體驗,建議根據您使用的客戶端類型配置相應的系統提示詞。
1. 智能體模式 (KiloCode / Roo Code / Cline / Claude Code)
適用於能夠自主規劃和執行多步任務的 Agent。
對於 KiloCode / Roo Code / Cline 用戶:
本項目提供了針對不同客戶端的預配置專家模式文件。請根據您使用的客戶端選擇對應的文件導入:
- KiloCode:
- Roo Code:
- Cline:
導入後,您將獲得經過調優的 "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 |
| 適用場景 |
生產環境、底層服務 |
二次開發、原型驗證 |
故障排查
- 連接失敗:檢查
codex CLI 是否在 PATH 中,或確認 Go 版本 >= 1.24。
- 無權限:檢查二進制文件是否有執行權限 (
chmod +x)。
- Session 丟失:確保客戶端正確傳遞了上一次調用返回的
SESSION_ID。
📄 許可證
本項目採用 MIT License 開源協議。
致謝
本項目深受 codexmcp (Python 實現) 的啟發。感謝 GuDaStudio 團隊在探索 Codex MCP 集成方面所做的開創性工作。
再次感謝您的關注!別忘了點個 Star 哦~ 🌟