Model Context Protocol
Berikan akses kepada Codex ke alat dan konteks pihak ketiga
Model Context Protocol (MCP) menghubungkan model dengan alat dan konteks. Gunakan protokol ini untuk memberikan akses kepada ChatGPT atau Codex ke dokumentasi pihak ketiga, atau agar keduanya dapat berinteraksi dengan alat pengembang seperti browser Anda atau Figma.
ChatGPT web dapat menggunakan alat jarak jauh berbasis MCP yang disediakan oleh plugin. Klien Codex lokal juga dapat terhubung langsung ke server MCP dan berbagi konfigurasinya.
Aplikasi desktop ChatGPT, Codex CLI, dan ekstensi IDE mendukung server MCP serta berbagi konfigurasi MCP untuk host Codex yang sama.
Fitur server yang didukung di bawah ini berlaku untuk server MCP yang dikonfigurasi pada host Codex. Alat plugin yang dihosting dapat memiliki kemampuan berbeda.
Fitur MCP yang didukung
- Server STDIO: Server yang berjalan sebagai proses lokal (dimulai dengan perintah).
- Variabel lingkungan
- Server Streamable HTTP: Server yang Anda akses melalui suatu alamat.
- Autentikasi token bearer
- Autentikasi OAuth
- Autentikasi sesi ChatGPT untuk server pihak pertama tepercaya
- Instruksi server: Codex membaca bidang MCP
instructionsyang dikembalikan selama inisialisasi dan menggunakannya sebagai panduan untuk seluruh server bersama alat-alat server tersebut.
Jika Anda membangun atau memelihara server MCP untuk Codex, gunakan instructions untuk alur kerja lintas alat, batasan, dan batas laju yang berlaku di seluruh server. Pastikan 512 karakter pertama dapat dipahami secara mandiri agar panduan terpenting tersedia saat Codex memutuskan cara menggunakan server.
Menghubungkan Codex ke server MCP
Codex menyimpan konfigurasi MCP di config.toml bersama pengaturan konfigurasi Codex lainnya. Secara default, lokasinya adalah ~/.codex/config.toml, tetapi Anda juga dapat membatasi cakupan server MCP ke suatu proyek dengan .codex/config.toml (hanya proyek tepercaya).
Aplikasi desktop ChatGPT, Codex CLI, dan ekstensi IDE berbagi konfigurasi ini. Setelah mengonfigurasi server MCP, Anda dapat beralih di antara klien tersebut tanpa mengulangi penyiapan.
Mengonfigurasi di aplikasi desktop ChatGPT
- Buka Pengaturan, lalu pilih Server MCP.
- Pilih Tambahkan server.
- Masukkan nama, pilih STDIO atau Streamable HTTP, lalu berikan perintah atau URL server.
- Simpan server, lalu pilih Mulai ulang.
Daftar server menunjukkan server mana yang diaktifkan dan mana yang memerlukan OAuth. Pilih
Autentikasi ketika server OAuth mengharuskan Anda masuk. Di kotak penulisan, ketik /mcp
untuk melihat server yang terhubung.
Mengonfigurasi dengan config.toml
Untuk kontrol yang lebih terperinci, edit ~/.codex/config.toml atau
.codex/config.toml yang cakupannya dibatasi ke proyek. Lihat referensi konfigurasi
untuk daftar yang dapat ditelusuri berisi setiap opsi MCP yang didukung.
Konfigurasikan setiap server MCP dengan tabel [mcp_servers.<server-name>] dalam berkas konfigurasi.
Server STDIO
command(wajib): Perintah yang memulai server.args(opsional): Argumen yang diteruskan ke server.env(opsional): Variabel lingkungan yang ditetapkan untuk server.env_vars(opsional): Variabel lingkungan yang diizinkan dan diteruskan.cwd(opsional): Direktori kerja tempat server dimulai.experimental_environment(opsional): Atur keremoteuntuk memulai server stdio melalui lingkungan eksekutor jarak jauh jika tersedia.
env_vars dapat memuat nama variabel biasa atau objek dengan sumber:
env_vars = ["LOCAL_TOKEN", { name = "REMOTE_TOKEN", source = "remote" }]Entri string dan source = "local" dibaca dari lingkungan lokal Codex.
source = "remote" dibaca dari lingkungan eksekutor jarak jauh dan memerlukan
stdio MCP jarak jauh.
Server Streamable HTTP
url(wajib): Alamat server.auth(opsional): Autentikasi yang dicoba setelah token bearer dan header otorisasi yang dikonfigurasi. Gunakanoauth(default) untuk kredensial OAuth MCP yang tersimpan. Gunakanchatgptuntuk memakai sesi ChatGPT saat ini bagi origin ChatGPT pihak pertama yang tepercaya, dengan OAuth tersimpan sebagai cadangan.bearer_token_env_var(opsional): Nama variabel lingkungan untuk token bearer yang akan dikirim dalamAuthorization.http_headers(opsional): Pemetaan nama header ke nilai statis.env_http_headers(opsional): Pemetaan nama header ke nama variabel lingkungan (nilai diambil dari lingkungan).
Jika tidak ada sumber kredensial yang dapat ditentukan, Codex dapat terhubung ke server tanpa
autentikasi. Jalankan codex mcp login <server-name> secara terpisah untuk memulai proses masuk
OAuth MCP.
Opsi konfigurasi lainnya
startup_timeout_sec(opsional): Batas waktu (detik) untuk memulai server. Default:10.tool_timeout_sec(opsional): Batas waktu (detik) bagi server untuk menjalankan alat. Default:60.enabled(opsional): Aturfalseuntuk menonaktifkan server tanpa menghapusnya.required(opsional): Aturtrueagar proses awal gagal jika server aktif ini tidak dapat diinisialisasi.enabled_tools(opsional): Daftar alat yang diizinkan.disabled_tools(opsional): Daftar alat yang ditolak (diterapkan setelahenabled_tools).default_tools_approval_mode(opsional): Perilaku persetujuan default untuk alat dari server ini. Nilai yang didukung adalahauto,prompt,writes, danapprove. Modewritesmeminta persetujuan untuk alat yang tidak ditandai hanya-baca.tools.<tool>.approval_mode(opsional): Penggantian perilaku persetujuan per alat.
Jika penyedia OAuth Anda memerlukan port callback tetap, atur mcp_oauth_callback_port tingkat atas di config.toml. Jika tidak diatur, Codex mengikat ke port sementara.
Jika alur OAuth MCP Anda harus menggunakan URL callback tertentu (misalnya, URL ingress Devbox jarak jauh atau jalur callback khusus), atur mcp_oauth_callback_url. Codex menggunakan nilai ini sebagai URL callback dasar, lalu menambahkan ID callback khusus server untuk menghasilkan redirect_uri OAuth yang dikirim saat proses masuk. Daftarkan redirect_uri turunan secara lengkap ke penyedia OAuth Anda, termasuk ID callback yang ditambahkan serta setiap jalur, kueri, atau port yang dikonfigurasi, bukan hanya host atau jalur dasar tanpa akhiran tersebut. URL callback lokal (misalnya localhost) mengikat pada antarmuka lokal; URL callback nonlokal mengikat pada 0.0.0.0 agar callback dapat mencapai host.
Jika server MCP mengiklankan scopes_supported, Codex memprioritaskan cakupan yang
diiklankan server tersebut selama proses masuk OAuth. Jika tidak, Codex menggunakan
cakupan yang dikonfigurasi dalam config.toml.
Contoh 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"Server MCP yang disediakan plugin
Plugin yang terinstal dapat menyertakan server MCP dalam manifes pluginnya. Server
tersebut dijalankan dari plugin, sehingga konfigurasi pengguna tidak menetapkan
perintah transportasinya. Konfigurasi pengguna tetap dapat mengendalikan status aktif/nonaktif dan kebijakan alat
di bawah 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"Contoh server MCP yang bermanfaat
Daftar server MCP terus bertambah. Berikut beberapa yang umum:
- OpenAI Docs MCP: Menelusuri dan membaca dokumentasi pengembang OpenAI.
- Context7: Terhubung ke dokumentasi pengembang terkini.
- Figma Lokal dan Jarak Jauh: Mengakses desain Figma Anda.
- Playwright: Mengendalikan dan memeriksa browser menggunakan Playwright.
- Chrome Developer Tools: Mengendalikan dan memeriksa Chrome.
- Sentry: Mengakses log Sentry.
- GitHub: Mengelola GitHub melampaui dukungan
git(misalnya, pull request dan isu).