Bahasa Indonesia

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 instructions yang 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

  1. Buka Pengaturan, lalu pilih Server MCP.
  2. Pilih Tambahkan server.
  3. Masukkan nama, pilih STDIO atau Streamable HTTP, lalu berikan perintah atau URL server.
  4. 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 ke remote untuk 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. Gunakan oauth (default) untuk kredensial OAuth MCP yang tersimpan. Gunakan chatgpt untuk 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 dalam Authorization.
  • 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): Atur false untuk menonaktifkan server tanpa menghapusnya.
  • required (opsional): Atur true agar 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 setelah enabled_tools).
  • default_tools_approval_mode (opsional): Perilaku persetujuan default untuk alat dari server ini. Nilai yang didukung adalah auto, prompt, writes, dan approve. Mode writes meminta 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).