Codex는 OpenAI에서 만든 CLI 기반 코드 어시스턴트다.
터미널에서 바로 AI랑 대화하면서 파일을 수정하거나 커밋 같은 작업을 할 수 있다.
기존에 Claude Code를 써봤다면 거의 비슷한 느낌인데, 설정 파일만 JSON → TOML로 바뀌었다.
Claude와 달리 sub-agent와 같은 third-party 서비스가 나오지 않아 토큰 관리에 유의해야한다.
MCP(Model Context Protocol)는 AI가 외부 서비스(API)랑 연결할 수 있도록 만든 표준 프로토콜이다.
AI가 직접 API를 호출하지 않고, MCP 서버가 중간에서 번역해준다.
예를 들어,
이런 식으로 서비스마다 MCP 서버가 따로 있고, Codex는 MCP 서버와 STDIO로 통신한다.
서버는 “툴(tool)” 리스트를 노출하고, Codex는 그걸 함수 호출처럼 실행한다.
~/.codex/config.toml
로딩 [mcp_servers.xxx]
블록에 있는 MCP 서버 실행 예시:
노션 DB에서 할 일 보여줘
→ Codex가 query_database
툴 실행 → Notion MCP가 결과 가져와서 Codex가 터미널에 출력.
npm으로 전역 설치가 가능하다.
npm install -g @openai/codex
설치가 끝나면 버전을 확인한다.
codex --version
codex
명령어로 실행하면 인증페이지가 나온다.
Codex의 설정 파일은 ~/.codex/config.toml
에 있다.
처음 실행하면 기본 값만 들어있는데, 여기에 MCP 서버를 추가하면 된다.
그냥 claude처럼 json으로 설정하게 해주지 toml이 뭐냐
예시) notion api 연결
[mcp_servers.notion]
command = "npx"
args = ["-y", "@notionhq/notion-mcp-server"]
env = { NOTION_TOKEN = "ntn_xxxxxxxxxxxxxxxxxxx" }
내가 사용하는 전체 설정은 아래와 같다.
# 승인/샌드박스 정책
approval_policy = "on-request" # 필요시 승인 요청
sandbox_mode = "workspace-write"
[sandbox_workspace_write]
network_access = true
model = "gpt-5-codex"
# 모델을 high로 고정
model_reasoning_effort = "high"
model_reasoning_summary = "detailed"
notify = ["sh", "-lc", "python3 ~/.claude/.ai-settings/.codex/notify.py \"$1\"", "codex-notify"]
# 프로젝트 경로에서 코덱스 실행 후 허용 시 생성됨
[projects.MY_PROJECT_DIR]
trust_level = "trusted"
[mcp_servers.playwright]
command = "npx"
args = ["-y", "@playwright/mcp"]
[mcp_servers.Context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp@latest"]
[mcp_servers.sequentialthinking]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-sequential-thinking"]
disabled = false
autoApprove = []
[mcp_servers.notionApi]
command = "npx"
args = ["-y", "@notionhq/notion-mcp-server"]
env = { NOTION_TOKEN = "***MASKED_NOTION_TOKEN***" }
[mcp_servers.github]
command = "/Users/eomyoosang/go/bin/github-mcp-server"
args = ["stdio"]
env = { GITHUB_PERSONAL_ACCESS_TOKEN = "***MASKED_GITHUB_PAT***" }
간단하게 설정들을 살펴보면,
승인/샌드박스 정책
approval_policy = "on-request" # 필요시 승인 요청
"on-request"
→ 자동 허용하지 않고, 필요할 때만 승인창 뜸.sandbox_mode = "workspace-write"
[sandbox_workspace_write]
network_access = true
network_access = true
→ MCP 서버 실행 시 네트워크 접근 허용.모델 관련 설정
model = "gpt-5-codex"
OpenAI의 gpt-5-codex
).model_reasoning_effort = "high"
model_reasoning_summary = "detailed"
effort = high
→ 더 깊게 생각하도록.summary = detailed
→ 답변 요약도 자세하게.Codex는 Claude Code를 쓰던 사람이라면 거의 그대로 옮겨올 수 있다.
설정 파일만 TOML로 바뀌었을 뿐, MCP 서버 붙이는 방식은 동일하다.
그래도 json으로 해줘라
다음 포스트에서는 Github, Notion 등 MCP 설정 방법에 대해 다루겠다.