Codex Gemini MCP
This server enables AI agents (Claude, Cursor, etc.) to interface with local OpenAI Codex and Google Gemini CLIs for code-related tasks and general analysis.
Core Tools
ask_codex— Send prompts to the local Codex CLI for code generation, refactoring, and debuggingask_gemini— Send prompts to the local Gemini CLI for analysis, summarization, and code reviews
Execution Controls (per request)
Choose a specific model to use
Set a working directory for project-specific context
Configure a custom timeout (default 600,000ms; ≥300,000ms recommended)
Background Job Management
Run long-running tasks asynchronously, returning a job ID
check_job_status— Check the status of a background jobwait_for_job— Pause until a specific job completeskill_job— Terminate an active background joblist_jobs— List managed jobs, filterable by status (active, completed, failed, or all)
Orchestration: Agents can leverage both Codex and Gemini simultaneously, dividing tasks between models as needed.
Note: Available tools may vary by server instance. Some features (e.g.,
ask_gemini, background job management) may not be exposed depending on the specific deployment's schema.
Provides tools for interacting with Google's Gemini AI models via a local CLI, allowing users to send prompts and receive responses from models like gemini-3-pro-preview.
Provides tools for interacting with OpenAI's Codex models via a local CLI, enabling users to execute prompts and run tasks using models like gpt-5.3-codex.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Codex Gemini MCPask codex to refactor this function for better performance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🌐 Language: 한국어 | English
codex-gemini-mcp
AI 에이전트(Claude, Cursor 등)가 OpenAI Codex CLI와 Google 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 기반으로 동작합니다.
Requirements
Node.js 20+
codexCLI 설치 (npm i -g @openai/codex)geminiCLI 설치 (npm i -g @google/gemini-cli)
MCP 서버는 각각의 CLI를 그대로 실행하므로, 먼저 로컬 터미널에서 로그인/인증이 완료되어 codex / gemini CLI를 바로 실행할 수 있는 상태인지 확인하세요.
Install
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 (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(전역)Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.jsonClaude Desktop (Linux):
~/.config/Claude/claude_desktop_config.jsonopencode:
~/.config/opencode/opencode.json
환경 변수는 셸 프로필(.zshrc 등)에서 자동으로 주입되지 않을 수 있으므로, 가능하면 설정 파일의 env 블록으로 전달하세요.
Default Models
기본 모델은 src/config.ts에 하드코딩되어 있으며, 환경 변수로 override할 수 있습니다.
Provider | 기본 모델 | 환경 변수 override |
codex |
|
|
gemini |
|
|
모델 선택 우선순위: 요청 파라미터 model > 환경 변수 > 하드코딩 기본값
Local development
npm install
npm run build
npm run start:codex
npm run start:gemini개발 모드:
npm run dev:codex
npm run dev:geminiRuntime Files
기본 런타임 디렉토리:
<cwd>/.codex-gemini-mcp/background job 상태:
jobs/background job 입출력(content):
prompts/구조화 로깅(JSONL):
logs/
런타임 경로 override:
MCP_RUNTIME_DIR: 런타임 루트 디렉토리MCP_LOG_DIR: 로그 디렉토리
정리(기본 경로 사용 시):
rm -rf .codex-gemini-mcpSecurity / Privacy Notes
background: true(기본값) 요청은.codex-gemini-mcp/prompts/*content*.json에 prompt/response를 저장합니다.프롬프트에 시크릿(토큰, 비밀번호, 개인 정보 등)을 넣으면 로컬 파일에 남을 수 있습니다.
로깅은 기본적으로 본문 미저장이지만, 아래 플래그를 켜면 로그에 텍스트가 포함될 수 있습니다:
MCP_LOG_PREVIEW=1MCP_LOG_FULL_TEXT=1
Tool Schemas
ask_codex
prompt(string, required)model(string, optional)model은[A-Za-z0-9][A-Za-z0-9._:-]*패턴(최대 128자)만 허용working_directory(string, optional): CLI 프로세스의 실행 디렉토리(cwd)background(boolean, optional, defaulttrue)reasoning_effort(string, optional:minimal|low|medium|high|xhigh)
ask_gemini
prompt(string, required)model(string, optional)model은[A-Za-z0-9][A-Za-z0-9._:-]*패턴(최대 128자)만 허용working_directory(string, optional): CLI 프로세스의 실행 디렉토리(cwd)background(boolean, optional, defaulttrue)
wait_for_job
job_id(string, required, 8자리 hex)timeout_ms(number, optional, default 3600000, max 3600000; 3600000 초과 값은 3600000으로 cap)
check_job_status
job_id(string, required, 8자리 hex)
kill_job
job_id(string, required, 8자리 hex)signal(string, optional:SIGTERM|SIGINT, defaultSIGTERM)
list_jobs
status_filter(string, optional:active(spawned/running) |completed|failed(failed/timeout) |all, defaultactive)limit(number, optional, default50)
Runtime Notes
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에 상태/입출력(content) 파일 저장구조화 로깅(JSONL):
.codex-gemini-mcp/logs/mcp-YYYY-MM-DD.jsonl기본: 메타데이터만 저장 (본문 미저장)
MCP_LOG_PREVIEW=1: preview 저장MCP_LOG_FULL_TEXT=1: full text 저장로그 이벤트는 JSONL 파일 저장과 함께
stderr에도 미러링됨
모델 선택 우선순위:
request.model > env default > hardcoded defaultcodex env:
MCP_CODEX_DEFAULT_MODEL(기본값:gpt-5.3-codex)gemini env:
MCP_GEMINI_DEFAULT_MODEL(기본값:gemini-3-pro-preview)
CLI timeout 기본값은
MCP_CLI_TIMEOUT_MS또는 3600000ms(60분)stdout + stderr합산 출력이MCP_MAX_OUTPUT_BYTES를 넘으면CLI_OUTPUT_LIMIT_EXCEEDED로 종료출력은 안정적인 텍스트 파이프를 위해 색상/TTY를 비활성화하여 실행합니다 (
NO_COLOR=1,FORCE_COLOR=0,TERM=dumb)
Logging by background
공통(
backgroundtrue/false 모두): JSONL에request이벤트와 terminal(response또는error) 이벤트가 기록되고,request_id로 1차 추적 가능background: false(foreground): 로그 이벤트에job_id가 없음.jobs/,prompts/파일은 생성되지 않음background: true(background):MCP 응답에
jobId,contentFile,statusFile반환JSONL
response/error이벤트에job_id기록jobs/*status*.json,prompts/*content*.json에requestId저장따라서
request_id<->job_id를 로그/상태파일 양방향으로 매핑 가능
Environment Variables
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: 로그 경로 overrideMCP_LOG_PREVIEW: 로그 preview 저장 여부 (1이면 활성화)MCP_LOG_FULL_TEXT: 전체 텍스트 로그 여부 (1이면 활성화)
Current Status
바이너리 엔트리:
codex-mcp,gemini-mcp검증 완료:
ask_codex,ask_geminiforeground/background 실호출 성공검증 완료:
wait_for_job,check_job_status,kill_job,list_jobs실호출 성공구현 완료: 구조화 로깅(Phase D)
구현 완료: output cap 강제 + model regex validation
Scope (deliberately minimal)
이 샘플에는 아래 기능이 없습니다:
모델 fallback chain
standalone bridge 번들링
Troubleshooting
CLI_NOT_FOUND:codex또는geminiCLI가 PATH에 없을 때 발생합니다.npm i -g @openai/codex/npm i -g @google/gemini-cli설치 후 재시도하세요.
output이 잘림(
CLI_OUTPUT_LIMIT_EXCEEDED):MCP_MAX_OUTPUT_BYTES를 늘리거나, 프롬프트/출력을 줄이세요.
background 파일이 너무 쌓임:
필요 시
.codex-gemini-mcp/를 직접 정리하세요.
Acknowledgements
이 프로젝트는 oh-my-claudecode에 구현된 Codex/Gemini MCP 서버를 참고하여 재구현한 것입니다.
License
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/donghae0414/codex-gemini-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server