[AI] Codex CLI 사용기: 설치부터 MCP 설정까지 1

엄유상·2025년 10월 2일
0

ai

목록 보기
1/3

Codex란

Codex는 OpenAI에서 만든 CLI 기반 코드 어시스턴트다.
터미널에서 바로 AI랑 대화하면서 파일을 수정하거나 커밋 같은 작업을 할 수 있다.
기존에 Claude Code를 써봤다면 거의 비슷한 느낌인데, 설정 파일만 JSON → TOML로 바뀌었다.
Claude와 달리 sub-agent와 같은 third-party 서비스가 나오지 않아 토큰 관리에 유의해야한다.


MCP란

MCP(Model Context Protocol)는 AI가 외부 서비스(API)랑 연결할 수 있도록 만든 표준 프로토콜이다.
AI가 직접 API를 호출하지 않고, MCP 서버가 중간에서 번역해준다.

예를 들어,

  • GitHub MCP 서버 → GitHub API 제어
  • Notion MCP 서버 → Notion API 조회/수정
  • Playwright MCP 서버 → 브라우저 자동화

이런 식으로 서비스마다 MCP 서버가 따로 있고, Codex는 MCP 서버와 STDIO로 통신한다.
서버는 “툴(tool)” 리스트를 노출하고, Codex는 그걸 함수 호출처럼 실행한다.


Codex + MCP 동작 흐름

  1. Codex 실행 → ~/.codex/config.toml 로딩
  2. [mcp_servers.xxx] 블록에 있는 MCP 서버 실행
  3. Codex가 서버한테 툴 목록 받아옴
  4. 내가 터미널에서 명령 입력 → Codex가 MCP 툴 호출
  5. MCP 서버가 실제 API 호출 → 결과 반환

예시:
노션 DB에서 할 일 보여줘 → Codex가 query_database 툴 실행 → Notion MCP가 결과 가져와서 Codex가 터미널에 출력.


Codex 설치방법

npm으로 전역 설치가 가능하다.

npm install -g @openai/codex

설치가 끝나면 버전을 확인한다.

codex --version

codex 명령어로 실행하면 인증페이지가 나온다.


Codex MCP 설정방법

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" }
  • command : 실행할 명령어
  • args : 실행 인자
  • env : 환경 변수 (여기에 Notion API 토큰을 넣어준다)

내가 사용하는 전체 설정은 아래와 같다.

# 승인/샌드박스 정책
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" # 필요시 승인 요청
  • Codex가 MCP 서버 호출이나 파일 변경 같은 민감한 작업을 할 때 사용자 승인을 요청하도록 설정.
  • "on-request" → 자동 허용하지 않고, 필요할 때만 승인창 뜸.
sandbox_mode = "workspace-write"
[sandbox_workspace_write]
network_access = true 
  • 샌드박스 모드는 workspace-write → 현재 프로젝트 경로에서 파일 읽기/쓰기 가능.
  • network_access = true → MCP 서버 실행 시 네트워크 접근 허용.

모델 관련 설정

model = "gpt-5-codex"
  • Codex가 사용할 기본 모델 지정 (OpenAI의 gpt-5-codex).
model_reasoning_effort = "high"
model_reasoning_summary = "detailed"
  • 추론(Reasoning) 관련 설정.
  • effort = high → 더 깊게 생각하도록.
  • summary = detailed → 답변 요약도 자세하게.

결론

Codex는 Claude Code를 쓰던 사람이라면 거의 그대로 옮겨올 수 있다.
설정 파일만 TOML로 바뀌었을 뿐, MCP 서버 붙이는 방식은 동일하다.
그래도 json으로 해줘라
다음 포스트에서는 Github, Notion 등 MCP 설정 방법에 대해 다루겠다.

참고자료

Shout Out 쓰레드의 MCP고수

profile
전역하고 돌아왔더니 AI가 판치는 세상이 된 것에 대하여 @yeeeeeeys

0개의 댓글