Codex CLI MCP Setup: 7 Server Đáng Cài Cho Dev 2026
Codex CLI MCP là gì? Đây là tính năng tích hợp Model Context Protocol (MCP) native trong Codex CLI, cho phép tool kết nối với server bên ngoài để mở rộng khả năng: đọc filesystem, truy cập GitHub, query database, fetch web content, lưu memory persistent. Setup MCP server qua file ~/.codex/config.toml dưới section [mcp_servers.X], theo cùng spec MCP của Anthropic nên đa số server viết cho Claude Code chạy được trên Codex.
Bài này deep dive vào 7 MCP server đáng cài nhất cho Codex CLI năm 2026, dựa trên OpenAI Codex MCP docs (truy cập 20/05/2026) và repo modelcontextprotocol/servers chính thức. Mỗi server có config TOML ready-to-paste và lý do tại sao đáng cài, dựa trên ongboit production setup 1 tháng vừa qua.
- File config: mọi MCP server khai báo trong
~/.codex/config.tomldưới section[mcp_servers.X]. - 3 bước setup: (1) chọn server cần cài, (2) thêm
[mcp_servers.X]vớicommand+args, (3) restart sessioncodexđể load. - 7 server đáng cài 2026: Filesystem (universal), GitHub (repo), Sequential-Thinking (reasoning), Git (analysis), Fetch (web), Memory (persistent), WordPress (CMS).
- Compatibility: server MCP của Claude Code chạy được trên Codex vì cùng spec, nhưng config format khác (TOML vs JSON).
- Sharp edge: nhiều server load quá lâu, mỗi tool call tốn token overhead, không cần whitelist tool sẽ phình prompt size.
Codex MCP Là Gì? Khác Claude Code MCP Như Thế Nào?
Model Context Protocol (MCP) là chuẩn mở do Anthropic công bố cuối 2024, cho phép AI agent kết nối với tool và data source bên ngoài qua giao thức thống nhất. Cả Codex CLI và Claude Code đều support MCP native, nhưng cách config khác nhau theo convention mỗi tool.
Codex CLI dùng TOML trong ~/.codex/config.toml với section [mcp_servers.X]. Claude Code dùng JSON trong ~/.claude/settings.json với key mcpServers. Format khác nhưng underlying spec MCP giống hệt, nên cùng 1 binary server (ví dụ @modelcontextprotocol/server-filesystem) chạy được trên cả 2 tool, chỉ cần adapt config syntax.
2 loại transport MCP hỗ trợ trong Codex: STDIO (subprocess local, fast nhưng tiêu thụ RAM mỗi server) và HTTP (remote server qua URL, latency cao hơn nhưng share resource giữa nhiều client). 90% server official dùng STDIO, HTTP phù hợp khi server cần auth phức tạp (Figma, Notion enterprise).
Detail config syntax full TOML xem ở bài Codex CLI config.toml deep dive. Reader chưa biết MCP là gì có thể đọc trước MCP là gì foundational concept.
Setup MCP Server Đầu Tiên Cho Codex Trong 3 Bước Như Thế Nào?
Khuyên dùng Filesystem làm server đầu tiên vì đơn giản nhất, không cần auth, ai cũng dùng được. 3 bước:
Bước 1: Mở file config: nano ~/.codex/config.toml (hoặc dùng editor bạn quen).
Bước 2: Thêm section MCP server vào cuối file:
# ~/.codex/config.toml , Filesystem MCP setup
[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/Users/your-name/projects"]
startup_timeout_sec = 15
Thay /Users/your-name/projects bằng path thư mục bạn muốn cho phép Codex đọc/ghi. Chỉ define path cụ thể, đừng để / hoặc ~/ vì sẽ cho phép truy cập toàn bộ home directory, risk security.
Bước 3: Save file, restart session Codex:
# Exit session hiện tại nếu đang chạy
# Mở terminal mới
codex
# Trong session, test MCP filesystem
> list 5 file lớn nhất trong project hiện tại
Nếu Codex trả về danh sách file thay vì báo “không có quyền truy cập”, filesystem MCP đã hoạt động. Lần đầu chạy có thể chậm 5-10 giây vì npx tải binary @modelcontextprotocol/server-filesystem. Lần sau cache, chỉ ~1 giây startup.
Verify config load đúng qua lệnh codex --print-config, search section [mcp_servers.filesystem]. Nếu không thấy hoặc thấy “Error parsing”, check lại TOML syntax.

~/.codex/config.toml, thêm section, restart session.7 MCP Server Đáng Cài Cho Codex CLI MCP Setup 2026 Là Gì?
Sau khi quen với pattern setup, 7 server dưới đây mình đo trên ongboit production thấy ROI tốt nhất. Mỗi server có config ready-to-paste, copy vào ~/.codex/config.toml là chạy được.
Server 1: Filesystem (đã cài ở H2 #2 ở trên). Universal cho mọi project, đọc/ghi file trong path cho phép. Use case: project navigation, file analysis, refactor cross-file.
Server 2: GitHub (qua Docker, official by GitHub). Quản lý PR, issue, repo metadata.
# GitHub MCP , Docker, cần PAT
[mcp_servers.github]
command = "docker"
args = ["run", "-i", "--rm",
"-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
"-e", "GITHUB_TOOLSETS=repos,issues,pull_requests",
"ghcr.io/github/github-mcp-server"]
env_vars = ["GITHUB_PERSONAL_ACCESS_TOKEN"]
startup_timeout_sec = 30
Tạo PAT tại github.com/settings/personal-access-tokens/new với scope repo, read:packages, read:org. Export biến môi trường GITHUB_PERSONAL_ACCESS_TOKEN trước khi chạy Codex. Set GITHUB_READ_ONLY=1 trong env nếu muốn limit chỉ đọc.
Server 3: Sequential-Thinking. Server reasoning step-by-step, tạo “thought chain” cho task phức tạp. Đặc biệt hữu ích khi Codex bị stuck ở step 3-4 (coherence drop mặc định).
# Sequential-Thinking MCP
[mcp_servers.sequential_thinking]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-sequentialthinking"]
startup_timeout_sec = 10
Server 4: Git. Khác GitHub MCP (online API), Git server đọc .git/ directory local, phân tích commit history, blame, diff. Phù hợp cho task “tại sao file X thay đổi tuần trước”.
# Git MCP , local repo analysis
[mcp_servers.git]
command = "uvx"
args = ["mcp-server-git", "--repository", "/path/to/your/repo"]
startup_timeout_sec = 10
Cần Python uv hoặc uvx cài sẵn (pip install uv). Thay /path/to/your/repo bằng path repo bạn muốn analyze.
Server 5: Fetch. Tải nội dung web, convert HTML → markdown để LLM xử lý. Phù hợp khi Codex cần “đọc trang docs ABC để hiểu API”. Khác web_search built-in của Codex ở chỗ Fetch giữ raw markdown đầy đủ, không bị truncate.
# Fetch MCP , web content extraction
[mcp_servers.fetch]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-fetch"]
startup_timeout_sec = 10
Server 6: Memory. Knowledge graph persistent, lưu fact và relationship across session. Codex có history persistence built-in nhưng Memory server cho phép query có cấu trúc (kiểu “tất cả decision liên quan tới module auth tháng trước”).
# Memory MCP , knowledge graph
[mcp_servers.memory]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-memory"]
startup_timeout_sec = 10
Server 7: WordPress. Quản lý content qua WP REST API: create post, update meta, list category, search content. Đặc biệt phù hợp với ongboit stack (Next.js + WordPress + n8n). Setup chi tiết và pattern integration có trong bài Claude Code WordPress MCP setup. Config TOML cho Codex tương đương:
# WordPress MCP , ongboit pattern
[mcp_servers.wordpress]
command = "node"
args = ["/path/to/wp-mcp-ultimate/server.js"]
env_vars = ["WP_BASE_URL", "WP_AUTH"]
enabled_tools = ["create_post", "update_post_meta", "list_posts", "search_content"]
startup_timeout_sec = 15
So sánh tổng quan 7 server theo use case chính:
| Server | Transport | Use case chính | Auth cần? |
|---|---|---|---|
| Filesystem | STDIO npm | Đọc/ghi file project | Không (path-scoped) |
| GitHub | STDIO Docker | PR, issue, repo metadata | PAT token |
| Sequential-Thinking | STDIO npm | Reasoning step-by-step | Không |
| Git | STDIO uvx | Commit history, blame local | Không |
| Fetch | STDIO npm | Web → markdown | Không |
| Memory | STDIO npm | Knowledge graph persistent | Không |
| WordPress | STDIO node | WP REST API content management | WP_AUTH basic |

Top 5 MCP Server Phổ Biến Nhất 2026 (Consensus Industry)
Ngoài 7 server ongboit dùng, consensus industry 2026 (per Totalum survey 2026 + Firecrawl ranking) cho top 5 server phổ biến nhất, support cả Claude Code lẫn Codex CLI:
| Server | Use case | Tier |
|---|---|---|
| GitHub MCP | Repo management, PR, issue, code review | Day-one essential |
| Context7 | Library docs lookup up-to-date (ROI cao nhất cho agentic coding) | Day-one essential 2026 |
| Playwright (Microsoft) | Browser automation, accessibility-tree based, fast/reliable hơn screenshot | Day-one essential |
| Filesystem | Universal file read/write | Default install |
| Brave Search | Web search có API stable | Common project-level |
Context7 là server MỚI trong 2026 đang nổi: provide library doc lookup real-time (ví dụ “tell me how Next.js 15 App Router handle async params” → trả ngay từ docs chính thức không hallucinate). Cài Context7 + GitHub + Playwright là 3-server starter pack được community recommend nhất cho dev mới setup MCP.
3-6 Server Là Sweet Spot, Không Phải Càng Nhiều Càng Tốt
Industry consensus 2026: 3-6 MCP server là sweet spot cho daily workflow. Quá nhiều server (>7) làm token overhead cao + tool selection ambiguous cho model. Day-one essentials thường là GitHub + 1-2 project-specific server, thêm Context7 nếu work cross-stack. ongboit test: từ 7 server xuống 4 server (Filesystem, GitHub, Context7, WordPress) giảm 20% prompt token mỗi turn mà không mất capability core.
MCP Server Của Claude Code Có Chạy Trên Codex Không?
So sánh feature MCP Codex vs Claude Code chi tiết trong Claude Code vs Codex CLI verdict 2026, bài này focus vào compatibility migration trên cùng 1 project.
MCP Server Của Claude Code Có Chạy Trên Codex Không?
Câu trả lời ngắn: có, đa số server tương thích. Vì MCP là chuẩn mở, binary server không bị bind vào tool nào cụ thể. @modelcontextprotocol/server-filesystem chạy trên Claude Code, Cursor, hay Codex CLI đều dùng cùng 1 npm package, chỉ khác file config call lệnh đó.
Convert config từ Claude Code ~/.claude/settings.json sang Codex ~/.codex/config.toml theo mapping:
# Claude Code (JSON):
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"}
}
}
}
# Codex CLI (TOML) , equivalent:
[mcp_servers.github]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env_vars = ["GITHUB_PERSONAL_ACCESS_TOKEN"]
Khác biệt nhỏ: Codex dùng env_vars (forward biến môi trường shell), Claude Code dùng env object inline (hardcode value vào JSON, risk leak secret). Codex’s pattern an toàn hơn vì secret không nằm trong file config.
Khoảng 5-10% MCP server có dependency Claude-specific (gọi API ChatGPT-specific hoặc dùng feature chỉ Claude support), không chạy được trên Codex. Trường hợp này hiếm, đa số là community server cũ chưa update.
Debug MCP Connection Issues Như Thế Nào?
MCP fail silent là vấn đề phổ biến vì Codex chạy server trong subprocess, error log không hiện ra mặc định. 4 kỹ thuật mình dùng:
1. Verbose mode: chạy CODEX_LOG=debug codex, xem full trace gồm cả lifecycle MCP server (start, init handshake, tool registration, error). Tìm dòng có mcp_server để identify failure point.
2. Test server standalone: chạy lệnh trong command + args trực tiếp trong terminal (không qua Codex):
# Test filesystem server
npx -y @modelcontextprotocol/server-filesystem /Users/me/projects
# Nếu start fail ở đây thì lỗi không phải Codex
3. Check startup_timeout_sec: default 10 giây có thể không đủ cho server tải lần đầu (Docker pull image, npm download). Tăng lên 30-60 giây cho server lớn:
[mcp_servers.github]
command = "docker"
args = [...]
startup_timeout_sec = 60 # tăng từ 10 lên 60 cho Docker pull lần đầu
4. Whitelist tools để giảm overhead: mỗi server expose 10-30 tool, Codex phải gửi toàn bộ description vào prompt context. Whitelist chỉ tool cần dùng:
[mcp_servers.github]
command = "docker"
args = [...]
enabled_tools = ["create_pr", "list_issues", "get_pr_comments"]
# 3 tool quan trọng nhất, ignore 20+ tool khác
Sau 1 tháng cài 7 MCP server trên ongboit production, 3 sharp edge load-bearing:
- Token overhead phình prompt size. Mỗi MCP server expose 10-30 tool, mỗi tool có description ~100-300 token. 7 server có thể chiếm 3,000-5,000 token mỗi prompt, gần 5% context window 128K. Workaround: whitelist
enabled_toolsnghiêm túc, chỉ chọn 3-5 tool quan trọng nhất mỗi server. Đo trên ongboit thấy giảm token usage 15% mỗi tool call khi cắt từ 25 xuống 6 tool. - Docker MCP server tiêu RAM dài hạn. GitHub server Docker giữ container chạy nền suốt session Codex. Mỗi container ~150-300MB RAM. 3-4 Docker server cùng lúc có thể chiếm 1GB+ RAM. Workaround: dùng server npm thay vì Docker khi có lựa chọn, hoặc
enabled = falseserver không cần trong session đó. - STDIO server fail silent khi parent crash. Nếu Codex CLI crash đột ngột (Ctrl+C lúc đang busy, hoặc OOM), subprocess MCP server không cleanup, để lại zombie process. Phải
pkill -f mcp-serverhoặcdocker ps+docker stopmanual. Workaround: viết wrapper script kill all MCP process trước khi start Codex session mới, đặt vào[[hooks.SessionStart]]để auto-run.
Quy tắc chung: Bắt đầu với 1-2 server (Filesystem + Sequential-Thinking), thêm dần khi thấy use case cụ thể. Đừng cài full 7 server ngay vì token overhead + memory cost cao. Profile rotation pattern ([profiles.minimal] chỉ Filesystem, [profiles.full] đủ 7) giúp switch giữa workflow tiết kiệm và full-power. Combo MCP + hooks lifecycle (8 event) + /goal Ralph Loop (long-running) + Skills tạo extension stack production. Cost note: MCP server chạy local không charge token, xem pricing breakdown cho remote HTTP MCP server.
2 Pitfall Debug MCP Phổ Biến Nhất 2026
Sau 1 tháng test 7 server + đối chiếu với community thread MCP stdio bug, 2 pitfall đáng lưu ý:
Pitfall 1: TOML env var typo trong [mcp_servers.X.env] section. Nếu gõ [mcp_server.github.env] (thiếu chữ “s”) thay vì [mcp_servers.github.env], TOML parse thành disconnected section, Codex silent ignore. Server vẫn start nhưng API key không inject vào env, tool call fail authentication. Fix: chạy codex --print-config sau edit, verify section name khớp [mcp_servers.X.env] chính xác. Detail TOML syntax xem bài Codex CLI config.toml deep dive.
Pitfall 2: STDIO transport timeout sau session resume. Bug từ v0.125.0 trên một số môi trường: server local STDIO timeout khi session resume sau pause dài (>5 giờ). Workaround: dừng Ctrl+C, đợi 60 giây, restart 1 instance Codex. Hoặc switch sang HTTP transport (nếu server support) ổn định hơn cho long-running task. Verify bug có affect setup không qua codex --verbose log.
Khi Nào KHÔNG Nên Cài MCP Server? Sharp Edges
MCP rất powerful nhưng không phải workflow nào cũng cần. 3 scenario nên skip:
Scenario 1: Project nhỏ + task one-shot. Nếu chỉ cần Codex sửa 1-2 file đơn lẻ không cross-reference repo, MCP overhead không đáng. Filesystem built-in của Codex đủ. Cài MCP cho project <50 file là over-engineering.
Scenario 2: Workload cost-sensitive với ChatGPT Free tier. MCP expose nhiều tool tăng token usage mỗi call. Free tier rate limit ~50 message/3h sẽ hết nhanh hơn. Khi đó skip MCP, dùng Codex built-in tool, hoặc upgrade Plus $20.
Scenario 3: Security-sensitive project. MCP server chạy subprocess local có quyền truy cập file/network. Repo chứa secret (API key, credentials) nên giới hạn server: chỉ Filesystem với path-scoped tight, KHÔNG cài GitHub server (có thể expose token), KHÔNG cài Fetch (có thể leak data ra ngoài).
Reader đã quyết định cài, đọc tiếp Codex CLI config.toml deep dive để hiểu chi tiết từng setting trong file config, đặc biệt là [shell_environment_policy] exclude pattern bảo vệ secret. Reader mới chưa cài Codex CLI bắt đầu ở hướng dẫn cài đặt Codex CLI.
Codex CLI Pricing 2026: Free Go Plus Pro + 6 Mẹo Tối Ưu – Đã setup MCP rồi nên track cost? Bước tiếp theo: pricing 6 tier + 6 mẹo tối ưu cost (parallel Claude advisor, model selection, cache, batch).
Quay lại pillar tổng quan: Codex CLI là gì – hướng dẫn toàn diện.
Câu Hỏi Thường Gặp
Codex MCP server có cần internet để chạy không?
Tuỳ server. Filesystem, Git, Memory chạy hoàn toàn local, không cần internet sau khi cài binary. GitHub MCP, Fetch, WordPress cần internet vì gọi API ngoài. Lần đầu chạy npx hoặc docker pull cần internet để tải binary, sau đó cache lại dùng được offline cho server local. Trên VPS không có internet, dùng npm offline mode hoặc Docker registry private.
Cùng MCP server có dùng được trên Claude Code và Codex song song không?
Có. Binary server không bind vào tool nào, mỗi instance chạy trong subprocess riêng cho client riêng. Setup Filesystem MCP trong cả ~/.codex/config.toml và ~/.claude/settings.json, mở 2 terminal song song chạy Claude Code và Codex CLI, mỗi tool sẽ spawn instance Filesystem riêng. Không conflict vì server stateless (mỗi call độc lập). Workflow dual-tool chi tiết tại Claude Code và Codex CLI cùng project.
Cài 7 server cùng lúc có lag Codex CLI không?
Có lag startup ban đầu (15-30 giây để init tất cả server) nhưng runtime không lag rõ. Bottleneck là token overhead, không phải compute. Đo trên ongboit production MacBook M2: cold start 18 giây với 7 server, warm session subsequent ~1 giây. RAM usage ~600MB cho cả 7 (Docker servers chiếm phần lớn). Recommend dùng profile rotation switch giữa “minimal” (Filesystem only) và “full” (7 server) tuỳ task.
MCP server có expose secret API key không?
Có risk nếu config sai. Codex dùng env_vars (forward biến môi trường shell, secret không nằm trong file config) thay vì env inline value. Pattern an toàn:
# GOOD: secret từ shell env
[mcp_servers.github]
command = "..."
env_vars = ["GITHUB_PERSONAL_ACCESS_TOKEN"]
# BAD: hardcode secret trong file
[mcp_servers.github]
env = { GITHUB_PERSONAL_ACCESS_TOKEN = "ghp_xxx" }
Kết hợp [shell_environment_policy] exclude = ["*SECRET*", "*TOKEN*"] để MCP server không nhìn thấy secret khác ngoài cái cần.
Custom MCP server tự viết có chạy trên Codex được không?
Có. MCP là chuẩn mở, viết server bằng Python (qua mcp SDK) hoặc TypeScript (qua @modelcontextprotocol/sdk), build executable, point Codex tới executable đó. ongboit có custom MCP server cho n8n trigger và ClickUp integration, code Python ~200 dòng cho mỗi server. Tutorial viết custom MCP server bridge với Codex sẽ ship sau khi hệ sinh thái community server hoàn thiện hơn (planned 2-3 tháng tới).
