Model Context Protocol
Cấp cho Codex quyền truy cập vào các công cụ và ngữ cảnh của bên thứ ba
Model Context Protocol (MCP) kết nối các mô hình với công cụ và ngữ cảnh. Hãy dùng giao thức này để cấp cho ChatGPT hoặc Codex quyền truy cập vào tài liệu của bên thứ ba, hoặc để cho phép chúng tương tác với các công cụ dành cho nhà phát triển như trình duyệt hay Figma của bạn.
ChatGPT trên web có thể sử dụng các công cụ từ xa dựa trên MCP do plugin cung cấp. Các ứng dụng Codex cục bộ cũng có thể kết nối trực tiếp với máy chủ MCP và dùng chung cấu hình.
Ứng dụng ChatGPT dành cho máy tính, Codex CLI và tiện ích mở rộng IDE hỗ trợ máy chủ MCP và dùng chung cấu hình MCP trên cùng một máy chủ Codex.
Các tính năng máy chủ được hỗ trợ dưới đây áp dụng cho những máy chủ MCP được cấu hình trên một máy chủ Codex. Các công cụ plugin được lưu trữ có thể có những khả năng khác.
Các tính năng MCP được hỗ trợ
- Máy chủ STDIO: Máy chủ chạy dưới dạng một tiến trình cục bộ (được khởi động bằng một lệnh).
- Biến môi trường
- Máy chủ Streamable HTTP: Máy chủ mà bạn truy cập tại một địa chỉ.
- Xác thực bằng bearer token
- Xác thực OAuth
- Xác thực bằng phiên ChatGPT cho các máy chủ chính chủ đáng tin cậy
- Chỉ dẫn của máy chủ: Codex đọc trường MCP
instructionsđược trả về trong quá trình khởi tạo và sử dụng trường này làm hướng dẫn chung cho toàn máy chủ bên cạnh các công cụ của máy chủ.
Nếu bạn xây dựng hoặc duy trì một máy chủ MCP cho Codex, hãy dùng instructions cho các quy trình liên công cụ, ràng buộc và giới hạn tốc độ áp dụng trên toàn máy chủ. Hãy bảo đảm 512 ký tự đầu tiên có thể tự truyền đạt đầy đủ ý nghĩa để Codex nắm được hướng dẫn quan trọng nhất khi quyết định cách sử dụng máy chủ.
Kết nối Codex với máy chủ MCP
Codex lưu cấu hình MCP trong config.toml cùng với các thiết lập cấu hình Codex khác. Theo mặc định, vị trí này là ~/.codex/config.toml, nhưng bạn cũng có thể giới hạn phạm vi máy chủ MCP theo từng dự án bằng .codex/config.toml (chỉ dành cho dự án đáng tin cậy).
Ứng dụng ChatGPT dành cho máy tính, Codex CLI và tiện ích mở rộng IDE dùng chung cấu hình này. Sau khi cấu hình các máy chủ MCP, bạn có thể chuyển đổi giữa những ứng dụng này mà không cần thiết lập lại.
Cấu hình trong ứng dụng ChatGPT dành cho máy tính
- Mở Cài đặt, rồi chọn Máy chủ MCP.
- Chọn Thêm máy chủ.
- Nhập tên, chọn STDIO hoặc Streamable HTTP, rồi cung cấp lệnh hoặc URL của máy chủ.
- Lưu máy chủ, rồi chọn Khởi động lại.
Danh sách máy chủ cho biết máy chủ nào đang được bật và máy chủ nào yêu cầu OAuth. Chọn
Xác thực khi máy chủ OAuth yêu cầu đăng nhập. Trong ô soạn thảo, nhập /mcp
để xem các máy chủ đã kết nối.
Cấu hình bằng config.toml
Để kiểm soát chi tiết hơn, hãy chỉnh sửa ~/.codex/config.toml hoặc tệp có phạm vi dự án
.codex/config.toml. Xem tài liệu tham khảo về cấu hình
để tra cứu danh sách mọi tùy chọn MCP được hỗ trợ.
Cấu hình từng máy chủ MCP bằng một bảng [mcp_servers.<server-name>] trong tệp cấu hình.
Máy chủ STDIO
command(bắt buộc): Lệnh khởi động máy chủ.args(tùy chọn): Các đối số truyền cho máy chủ.env(tùy chọn): Các biến môi trường cần thiết lập cho máy chủ.env_vars(tùy chọn): Các biến môi trường được phép chuyển tiếp.cwd(tùy chọn): Thư mục làm việc dùng để khởi động máy chủ.experimental_environment(tùy chọn): Đặt thànhremoteđể khởi động máy chủ stdio thông qua môi trường thực thi từ xa khi có sẵn.
env_vars có thể chứa tên biến dạng thuần văn bản hoặc các đối tượng có nguồn:
env_vars = ["LOCAL_TOKEN", { name = "REMOTE_TOKEN", source = "remote" }]Các mục chuỗi và source = "local" đọc từ môi trường cục bộ của Codex.
source = "remote" đọc từ môi trường thực thi từ xa và yêu cầu
MCP stdio từ xa.
Máy chủ Streamable HTTP
url(bắt buộc): Địa chỉ máy chủ.auth(tùy chọn): Phương thức xác thực cần thử sau các bearer token và tiêu đề ủy quyền đã cấu hình. Dùngoauth(mặc định) cho thông tin xác thực MCP OAuth đã lưu. Dùngchatgptđể sử dụng phiên ChatGPT hiện tại cho nguồn ChatGPT chính chủ đáng tin cậy, với OAuth đã lưu làm phương án dự phòng.bearer_token_env_var(tùy chọn): Tên biến môi trường chứa bearer token để gửi trongAuthorization.http_headers(tùy chọn): Ánh xạ tên tiêu đề sang các giá trị tĩnh.env_http_headers(tùy chọn): Ánh xạ tên tiêu đề sang tên biến môi trường (giá trị được lấy từ môi trường).
Nếu không phân giải được nguồn thông tin xác thực nào, Codex có thể kết nối với máy chủ mà không cần
xác thực. Chạy riêng codex mcp login <server-name> để bắt đầu quy trình đăng nhập
MCP OAuth.
Các tùy chọn cấu hình khác
startup_timeout_sec(tùy chọn): Thời gian chờ (giây) để máy chủ khởi động. Mặc định:10.tool_timeout_sec(tùy chọn): Thời gian chờ (giây) để máy chủ chạy một công cụ. Mặc định:60.enabled(tùy chọn): Đặtfalseđể tắt máy chủ mà không xóa máy chủ đó.required(tùy chọn): Đặttrueđể quá trình khởi động thất bại nếu máy chủ đang bật này không thể khởi tạo.enabled_tools(tùy chọn): Danh sách công cụ được phép.disabled_tools(tùy chọn): Danh sách công cụ bị từ chối (được áp dụng sauenabled_tools).default_tools_approval_mode(tùy chọn): Hành vi phê duyệt mặc định cho các công cụ từ máy chủ này. Các giá trị được hỗ trợ làauto,prompt,writesvàapprove. Chế độwritessẽ yêu cầu xác nhận đối với các công cụ không được đánh dấu là chỉ đọc.tools.<tool>.approval_mode(tùy chọn): Ghi đè hành vi phê duyệt theo từng công cụ.
Nếu nhà cung cấp OAuth của bạn yêu cầu một cổng callback cố định, hãy đặt mcp_oauth_callback_port ở cấp cao nhất trong config.toml. Nếu không đặt, Codex sẽ liên kết với một cổng tạm thời.
Nếu quy trình MCP OAuth của bạn phải dùng một URL callback cụ thể (ví dụ: URL ingress Devbox từ xa hoặc đường dẫn callback tùy chỉnh), hãy đặt mcp_oauth_callback_url. Codex dùng giá trị này làm URL callback cơ sở, sau đó nối thêm ID callback dành riêng cho máy chủ để tạo OAuth redirect_uri gửi trong quá trình đăng nhập. Hãy đăng ký toàn bộ redirect_uri đã dẫn xuất với nhà cung cấp OAuth, bao gồm ID callback được nối thêm và mọi đường dẫn, truy vấn hoặc cổng đã cấu hình, thay vì chỉ đăng ký máy chủ hoặc đường dẫn cơ sở không có hậu tố đó. Các URL callback cục bộ (ví dụ localhost) liên kết trên giao diện cục bộ; URL callback không cục bộ liên kết trên 0.0.0.0 để callback có thể truy cập máy chủ.
Nếu máy chủ MCP quảng bá scopes_supported, Codex ưu tiên các phạm vi
do máy chủ quảng bá đó khi đăng nhập OAuth. Nếu không, Codex sẽ dùng các
phạm vi được cấu hình trong config.toml.
Ví dụ về config.toml
[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
env_vars = ["LOCAL_TOKEN"]
[mcp_servers.context7.env]
MY_ENV_VAR = "MY_ENV_VALUE"# Optional MCP OAuth callback overrides (used by `codex mcp login`)
mcp_oauth_callback_port = 5555
mcp_oauth_callback_url = "https://devbox.example.internal/callback"[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
http_headers = { "X-Figma-Region" = "us-east-1" }[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
enabled_tools = ["open", "screenshot"]
disabled_tools = ["screenshot"] # applied after enabled_tools
default_tools_approval_mode = "prompt"
startup_timeout_sec = 20
tool_timeout_sec = 45
enabled = true
[mcp_servers.chrome_devtools.tools.open]
approval_mode = "approve"Máy chủ MCP do plugin cung cấp
Các plugin đã cài đặt có thể đóng gói máy chủ MCP trong tệp kê khai plugin. Những
máy chủ này được khởi chạy từ plugin, vì vậy cấu hình người dùng không đặt lệnh
truyền tải của chúng. Cấu hình người dùng vẫn có thể kiểm soát trạng thái bật/tắt và chính sách công cụ
trong plugins.<plugin>.mcp_servers.<server>.
[plugins."sample@test".mcp_servers.sample]
enabled = true
default_tools_approval_mode = "prompt"
enabled_tools = ["read", "search"]
[plugins."sample@test".mcp_servers.sample.tools.search]
approval_mode = "approve"Ví dụ về các máy chủ MCP hữu ích
Danh sách máy chủ MCP không ngừng mở rộng. Dưới đây là một vài lựa chọn phổ biến:
- OpenAI Docs MCP: Tìm kiếm và đọc tài liệu dành cho nhà phát triển của OpenAI.
- Context7: Kết nối với tài liệu dành cho nhà phát triển luôn được cập nhật.
- Figma Cục bộ và Từ xa: Truy cập các thiết kế Figma của bạn.
- Playwright: Điều khiển và kiểm tra trình duyệt bằng Playwright.
- Chrome Developer Tools: Điều khiển và kiểm tra Chrome.
- Sentry: Truy cập nhật ký Sentry.
- GitHub: Quản lý GitHub ngoài những gì
githỗ trợ (ví dụ: yêu cầu kéo và vấn đề).