使用说明
🌐 Language:韩语| 英语
codex gemini mcp
AI代理(Claude、Cursor等) OpenAI Codex命令行界面哇 谷歌Gemini CLI可以通过MCP工具直接调用的代理服务器。
主要功能
ask_codex-代理要求Codex生成、重构和调试代码ask_gemini-代理要求Gemini进行分析、摘要和代码评论- 后台运行 -将需要很长时间才能完成的任务转移到后台,检查状态(
check_job_status·等待(wait_for_job·中断(kill_job·查询列表(list_jobs)管理 - 多型号编排 -一个代理可以同时利用Codex和Gemini来分担工作
在一个包中 codex-mcp哇 gemini-mcp 提供两个MCP服务器二进制文件,基于stdio transport。
需求
- Node.js 20+
codex安装CLI(npm i -g @openai/codex)gemini安装CLI(npm i -g @google/gemini-cli)
MCP服务器将按原样运行每个CLI,因此首先在本地终端上完成登录/身份验证。 codex / gemini 请确保CLI可以立即运行。
安装
从npm安装(如果已部署):
npm i -g @donghae0414/codex-gemini-mcp
无需全局安装即可使用npx:
npx -y -p @donghae0414/codex-gemini-mcp codex-mcp
npx -y -p @donghae0414/codex-gemini-mcp gemini-mcp
在源位置安装(开发/测试):
npm install
npm run build
npm link
客户机特定MCP设置示例
全局安装条件:
{
"mcpServers": {
"codex-mcp": {
"command": "codex-mcp",
"args": []
},
"gemini-mcp": {
"command": "gemini-mcp",
"args": []
}
}
}
基于npx,无需全局安装:
{
"mcpServers": {
"codex-mcp": {
"command": "npx",
"args": ["-y", "-p", "@donghae0414/codex-gemini-mcp", "codex-mcp"]
},
"gemini-mcp": {
"command": "npx",
"args": ["-y", "-p", "@donghae0414/codex-gemini-mcp", "gemini-mcp"]
}
}
}
开放代码(opencode.json):
{
"mcp": {
"codex-mcp": {
"type": "local",
"command": ["npx", "-y", "-p", "@donghae0414/codex-gemini-mcp", "codex-mcp"]
},
"gemini-mcp": {
"type": "local",
"command": ["npx", "-y", "-p", "@donghae0414/codex-gemini-mcp", "gemini-mcp"]
}
}
}
特定于客户端的配置文件位置(注意:
- Claude Code:项目根
.mcp.json(按项目)或~/.claude.json(全局) - 克劳德桌面(macOS):
~/Library/Application Support/Claude/claude_desktop_config.json - 克劳德桌面(Windows):
%APPDATA%\Claude\claude_desktop_config.json - 克劳德桌面(Linux):
~/.config/Claude/claude_desktop_config.json - 开放代码:
~/.config/opencode/opencode.json
环境变量为shell配置文件(.zshrc 等)可能不会自动注入,如果可能的话, env 请用积木传递。
违约模型
默认型号为 src/config.ts硬编码为,可以覆盖为环境变量。
| Provider | 基本模型 | 环境变量override |
|---|---|---|
| 法典 | gpt-5.3-codex |
MCP_CODEX_DEFAULT_MODEL |
| 双子座 | gemini-3-pro-preview |
MCP_GEMINI_DEFAULT_MODEL |
型号选择优先级: 请求参数 model > 环境变量 > 硬编码默认值
本地开发
npm install
npm run build
npm run start:codex
npm run start:gemini
开发模式:
npm run dev:codex
npm run dev:gemini
运行时文件
- 默认运行时目录:
<cwd>/.codex-gemini-mcp/- background job状态:
jobs/ - background job I/O(content):
prompts/ - 结构化记录(JSONL):
logs/
- background job状态:
- 运行时路径override:
MCP_RUNTIME_DIR:运行时根目录MCP_LOG_DIR:日志目录
清除(使用默认路径时):
rm -rf .codex-gemini-mcp
安全/隐私说明
background: true(默认)请求为.codex-gemini-mcp/prompts/*content*.json将prompt/response保存在中。- 如果在提示符下放入秘密(令牌、密码、个人信息等),则可能会保留在本地文件中。
- 默认情况下,日志记录未保存正文,但打开下面的标志时,日志可能包含文本:
MCP_LOG_PREVIEW=1MCP_LOG_FULL_TEXT=1
工具模式
ask_codex
prompt(字符串,必填)model(字符串,可选)model银[A-Za-z0-9][A-Za-z0-9._:-]*只允许模式(最多128个字符)working_directory(string,optional):CLI进程的执行目录(cwd)background(布尔值,可选,默认值true)reasoning_effort(字符串,可选:minimal|low|medium|high|xhigh)
ask_gemini
prompt(字符串,必填)model(字符串,可选)model银[A-Za-z0-9][A-Za-z0-9._:-]*只允许模式(最多128个字符)working_directory(string,optional):CLI进程的执行目录(cwd)background(布尔值,可选,默认值true)
wait_for_job
job_id(string,required,8位hex)timeout_ms(number,optional,default3600000,max3600000;超过3600000的值为3600000,cap)
check_job_status
job_id(string,required,8位hex)
kill_job
job_id(string,required,8位hex)signal(字符串,可选:SIGTERM|SIGINT,默认值SIGTERM)
list_jobs
status_filter(字符串,可选:active(已生成/正在运行)|completed|failed(失败/超时)|all,默认值active)limit(数字,可选,默认50)
运行时注意事项
ask_codex:codex exec --ephemeral寻呼(reasoning_effort指定时-c model_reasoning_effort=...添加)ask_gemini:gemini --prompt <text>呼叫ask_*是background未指定时默认true以运行background: true呼叫时.codex-gemini-mcp/jobs,.codex-gemini-mcp/prompts将状态/IIO(content)文件保存到- 结构化记录(JSONL):
.codex-gemini-mcp/logs/mcp-YYYY-MM-DD.jsonl- 默认:仅保存元数据(不保存正文)
MCP_LOG_PREVIEW=1:保存previewMCP_LOG_FULL_TEXT=1:保存全文- 日志事件与保存JSONL文件一起
stderr也镜像到
- 型号选择优先级:
request.model > env default > hardcoded default- codex环境:
MCP_CODEX_DEFAULT_MODEL(默认值:gpt-5.3-codex) - 双子座环境:
MCP_GEMINI_DEFAULT_MODEL(默认值:gemini-3-pro-preview)
- codex环境:
- CLI timeout默认值为
MCP_CLI_TIMEOUT_MS或3600000 ms(60分钟) stdout + stderr合计功率MCP_MAX_OUTPUT_BYTES超过的话CLI_OUTPUT_LIMIT_EXCEEDED以结束- 输出通过禁用颜色/TTY来运行稳定的文本管道(
NO_COLOR=1,FORCE_COLOR=0,TERM=dumb)
登录方式 background
- 通用(
backgroundtrue/false全部:在JSONL中request事件和terminal(response或者error)记录事件,request_id可通过进行第一次跟踪 background: false(foreground):在日志事件中job_id没有。jobs/,prompts/不创建文件background: true背景- MCP响应
jobId,contentFile,statusFile返还 - Jsonl
response/error在活动中job_id记录 jobs/*status*.json,prompts/*content*.json呃requestId存储- 因此
request_id<->job_id可以双向映射日志/状态文件
- MCP响应
环境变量
MCP_CODEX_DEFAULT_MODEL:codex基本型号MCP_GEMINI_DEFAULT_MODEL:gemini基本型号MCP_CLI_TIMEOUT_MS:默认CLI timeout(ms)MCP_MAX_OUTPUT_BYTES:最大输出字节数(cap,默认1048576=1MiB)MCP_RUNTIME_DIR:运行时文件默认根目录(.codex-gemini-mcp)MCP_LOG_DIR:日志路径覆盖MCP_LOG_PREVIEW:是否保存日志preview(1双面激活)MCP_LOG_FULL_TEXT:是否记录全文(1双面激活)
当前状态
- 二进制条目:
codex-mcp,gemini-mcp - 验证完成:
ask_codex,ask_gemini前台/后台呼叫成功 - 验证完成:
wait_for_job,check_job_status,kill_job,list_jobs实际呼叫成功 - 实施完成:结构化记录(第D阶段)
- 实施完成:强制output cap+model regex validation
范围(故意最小化)
此示例中没有以下功能:
- 型号fallback chain
- standalone bridge捆绑包
故障排除
CLI_NOT_FOUND:codex或者geminiCLI不在PATH中时发生。npm i -g @openai/codex/npm i -g @google/gemini-cli安装后重试。
- 输出被截断(
CLI_OUTPUT_LIMIT_EXCEEDED):MCP_MAX_OUTPUT_BYTES增加或减少提示/输出。
- background文件堆积过多:
- 必要时
.codex-gemini-mcp/请亲自整理。
- 必要时
致谢
这个项目 哦,我的claudecode参考在中实现的Codex/Gemini MCP服务器进行了重新实现。
