Kembali ke blog
BananaBanana Teamtutorialmcpvideo

Setup Codex MCP: Gambar dan Video dari Satu config.toml

Hubungkan Codex CLI, ekstensi IDE, dan ChatGPT desktop ke satu server media MCP: config.toml dengan bearer_token_env_var, lima keunikan nyata, dan video promo Veo seharga $0.70.

Setup Codex MCP: Gambar dan Video dari Satu config.toml

Server MCP untuk Codex adalah kotak perkakas eksternal yang bisa dipanggil oleh agen pengodean OpenAI dari ketiga antarmukanya sekaligus: CLI, ekstensi IDE, dan tab Codex di aplikasi ChatGPT desktop. Hanya dengan satu blok TOML, agen yang biasanya bertugas mengedit kode ini langsung mendapatkan kemampuan tambahan yang tidak disertakan secara bawaan oleh modelnya, termasuk pembuatan gambar dan video. Codex bisa melakukan refaktor kode dan menjalankan pengujian sepanjang hari, tetapi tidak ada model di baliknya yang bisa langsung menyajikan file MP4 kepada Anda. Namun, begitu Anda menambahkan server pembuatan (generation server), perintah seperti "buat klip promo untuk catatan rilis" akan menjadi instruksi terminal biasa yang menghasilkan file asli di folder Anda.

Jika Anda hanya ingin mencari cara konfigurasinya, ini dia setup lengkapnya. Buat API key di BananaBanana profile Anda, lalu tambahkan baris berikut ke ~/.codex/config.toml:

[mcp_servers.bananabanana]
url = "https://bananabanana.pro/api/mcp"
bearer_token_env_var = "BB_API_KEY"

Ekspor BB_API_KEY=bb_live_YOUR_KEY di environment Anda lalu restart Codex. Selesai! Tidak perlu menjalankan proses server lokal, tidak perlu membuat proyek Google Cloud, dan tanpa biaya langganan. Biaya pembuatan gambar mulai dari $0.03 yang dipotong dari saldo prabayar Anda, sedangkan video mulai dari $0.10. Video demo di bawah ini dibuat melalui endpoint ini menggunakan key aktif saat saya menulis artikel ini, dan rincian lengkap biaya media sebesar $1.03 untuk artikel ini dicantumkan di bagian akhir.

Mengapa satu file konfigurasi saja sudah cukup?

Sebagian besar client MCP mengharuskan Anda melakukan konfigurasi di setiap antarmuka secara terpisah. Berbeda dengan Codex, dan inilah bagian yang sangat menyenangkan. Dokumen official Codex MCP docs menjelaskannya dalam satu kalimat singkat: "The ChatGPT desktop app, Codex CLI, and IDE extension share this configuration." Cukup tempel blok TOML sekali saja, dan tujuh alat pembuatan media yang sama akan langsung tersedia mengikuti Anda, mulai dari sesi terminal, VS Code, hingga tab Codex di aplikasi desktop.

Ilustrasi editorial tentang jendela terminal, editor kode, dan aplikasi obrolan yang terhubung oleh utas ke satu kunci di atas tumpuan, sebuah metafora untuk satu konfigurasi Codex yang melayani tiga aplikasi

Di Cursor or VS Code, alat pembuat gambar biasanya hanya bekerja untuk repositori yang sedang Anda buka. Bersama Codex, terminal Anda sendiri berubah menjadi konsol media: Anda bisa meminta render video langsung dari shell biasa tanpa membuka editor kode apa pun, lalu memeriksa hasilnya nanti lewat aplikasi desktop. Bagi seseorang yang sehari-harinya menggunakan tmux dan jarang menyentuh aplikasi GUI, ini adalah pembeda nyata antara "sekadar plugin yang saya pasang di suatu tempat" dengan "perintah yang benar-benar sering saya gunakan".

Alternatif lainnya, seperti biasa, adalah menjalankan server MCP lokal menggunakan Google API key Anda sendiri, lengkap dengan kuota dan penagihan yang terikat ke akun cloud pribadi Anda. Cara ini memang berfungsi, tetapi memerlukan pemeliharaan ekstra. Sementara itu, endpoint jarak jauh kami sudah berjalan di server kami, menggunakan jalur pipa yang sama dengan BananaBanana web generator, dan satu-satunya kredensial yang Anda butuhkan hanyalah satu key bb_live_ yang bisa dicabut kapan saja.

Bagaimana cara menghubungkan Codex ke server MCP?

Detail konfigurasi di bawah ini telah disesuaikan dengan dokumentasi resmi Codex MCP per 11 Juli 2026 (OpenAI baru saja memindahkannya dari developers.openai.com ke learn.chatgpt.com, jadi jangan heran jika ada pengalihan halaman).

Pertama, silakan register lalu buka Profil → MCP API Keys. Key hanya akan ditampilkan sekali dan kami simpan dalam bentuk hash, jadi pastikan Anda langsung menyalinnya. Akun baru akan mendapatkan saldo awal sebesar $0.20, cukup untuk mencoba membuat enam gambar uji coba menggunakan model termurah.

Kedua, tambahkan blok TOML yang ada di awal artikel ini ke ~/.codex/config.toml (buat file baru jika belum ada). Tabel [mcp_servers.bananabanana] membutuhkan url untuk server HTTP yang mendukung streaming serta bearer_token_env_var untuk autentikasi. Codex akan membaca environment variable tersebut saat dijalankan dan mengirim nilainya sebagai header Authorization. Dengan cara ini, key Anda tidak akan pernah tertulis langsung di file, sehingga file konfigurasi tetap aman dibagikan ke repositori dotfiles Anda. Halaman MCP server page kami menyediakan cuplikan kode ini beserta tabel kompatibilitas untuk setiap client yang telah kami uji:

Cuplikan config.toml Codex pada halaman dokumen MCP BananaBanana yang menampilkan bidang url dan bearer_token_env_var

Ketiga, ekspor variabel tersebut dan restart aplikasi. Di CLI, perintah codex akan menampilkan daftar tools dari server setelah terhubung. Coba minta untuk "memanggil list_models pada bananabanana" dan Anda akan menerima daftar harga realtime untuk ketujuh tools yang tersedia, mulai dari list_models hingga list_generations. Ekstensi IDE dan aplikasi ChatGPT desktop akan langsung menggunakan konfigurasi yang sama saat dijalankan kembali tanpa memerlukan langkah tambahan.

Peringatan bagi pengguna macOS: aplikasi GUI yang dijalankan dari Dock tidak membaca file .zshrc Anda, sehingga perintah export yang berfungsi di terminal mungkin tidak terbaca oleh ChatGPT desktop. Jika tools muncul di CLI tetapi autentikasi gagal di aplikasi desktop, hampir bisa dipastikan inilah penyebabnya. Solusinya, Anda bisa menjalankan launchctl setenv BB_API_KEY bb_live_…, meskipun cara ini terasa seperti trik sementara (workaround), karena memang begitulah adanya.

Apakah konektor bawaan ChatGPT bisa menggunakan key yang sama?

Jawaban singkatnya: Belum bisa, dan penting untuk memahami alasannya. ChatGPT memiliki sistem konektornya sendiri (Pengaturan → Konektor, berada di balik tombol mode pengembang pada paket berbayar) yang menambahkan server MCP ke obrolan biasa, bukan ke Codex. Konektor tersebut memerlukan autentikasi melalui alur OAuth. Saat ini, endpoint kami baru mendukung Bearer key saja. Dukungan untuk OAuth 2.1 sedang direncanakan, dan setelah diluncurkan, obrolan ChatGPT biasa juga akan didukung sepenuhnya. Hingga saat itu tiba, batasannya sangat jelas: antarmuka berbasis Codex (CLI, IDE, tab Codex di aplikasi desktop) bisa bekerja hari ini via config.toml, sedangkan konektor obrolan biasa belum bisa. Halaman compatibility table memantau status ini untuk setiap client beserta perkiraan tanggal rilisnya.

Contoh Kasus: Membuat video promo produk tanpa membuka aplikasi eksternal

Skenario utama dari artikel ini: di hari rilis, changelog Anda membutuhkan klip promosi pendek, dan Anda tidak ingin keluar dari terminal. Anda meminta Codex untuk membuat video bertema produk, lalu Codex akan menyusun prompt sinematik dan memanggil fungsi generate_video. Tool ini tidak akan langsung menarik biaya pada panggilan pertama; ia akan mengembalikan penawaran harga (quote) terlebih dahulu, lalu agen AI akan mengulangi panggilan dengan menyetujui jumlah biaya tersebut. Berikut adalah log riwayat asli dari sesi saya:

→ generate_video {"prompt": "Cinematic product promo shot: matte pearl-white
   wireless earbuds in an open charging case on a slowly rotating dark
   pedestal, dramatic rim lighting in violet and warm amber, soft haze,
   slow dolly-in from a slightly low angle, shallow depth of field,
   premium tech commercial style", "model": "veo-3.1-fast",
   "duration": 8, "resolution": "720p"}
← {"status": "confirmation_required", "quoted_cost_usd": 0.70,
   "message": "This video costs $0.70. Nothing has been charged."}
→ generate_video {..., "confirm_cost": 0.70}
← {"job_id": "cmrgrpxgf0002mk7fvfepg82j", "status": "processing",
   "cost_charged_usd": 0.70, "balance_remaining_usd": 1553.37}
→ get_result {"job_id": "cmrgrpxgf0002mk7fvfepg82j", "wait_seconds": 30}
← {"status": "completed", "files": [{"url": "https://…/api/files/…"}]}

Hanya butuh waktu dua menit lima belas detik dari konfirmasi hingga file 720p selesai dibuat. Ini dia klip video aslinya, dibuat menggunakan Veo 3.1 Fast sekali coba, tanpa render ulang (no reroll):

Struktur prompt mengikuti pola dari panduan Veo 3.1 prompt guide kami: subjek, aksi, pencahayaan, gerakan kamera, perilaku lensa, dan gaya visual. Codex kemudian akan mengunduh file dari URL bertanda tangan (berlaku selama 24 jam; pemanggilan get_result yang baru akan memperbarui URL-nya) ke dalam folder yang Anda tentukan, bahkan ia bisa menuliskan markup HTML <video> langsung untuk halaman changelog Anda.

Catatan penting terkait hasilnya: biaya $0.70 adalah untuk versi tanpa suara (silent). Klip yang sama dengan audio bawaan berbiaya $1.00, dan menggunakan Omni Flash bersuara dikenakan biaya $0.10 per detik — $0.80 untuk klip dengan durasi yang sama. Untuk video loop otomatis tanpa suara di halaman arahan (landing page), versi tanpa suara ini memang pilihan yang paling pas; namun untuk dibagikan ke media sosial, Anda mungkin perlu merogoh kocek ekstra tiga puluh sen.

Proses pembuatan gambar bekerja dengan cara yang sama namun tanpa langkah konfirmasi, karena biaya pembuatan satu gambar cukup murah untuk langsung dijalankan: fungsi generate_image dengan prompt akan mengembalikan job id, kemudian get_result memberikan file gambarnya beserta pratinjau kecil (inline preview) yang bisa langsung dibaca oleh Codex.

Keunikan Codex yang perlu Anda ketahui sebelum menggunakannya

Catatan ini kami kumpulkan selama menguji setup di atas, diurutkan berdasarkan kendala yang paling sering ditemui pengguna.

Ilustrasi editorial tentang robot kecil dengan kaca pembesar sedang membaca gulungan panjang teks konfigurasi dengan dua bendera peringatan kecil tertancap di dalamnya, sebuah metafora untuk keunikan konfigurasi Codex

1. CLI tidak akan menulis konfigurasi ini secara otomatis untuk Anda. Perintah codex mcp add memang ada, tetapi menurut dokumentasi resmi, perintah tersebut tidak memiliki opsi bearer-token untuk server HTTP. Perintah ini hanya ditujukan untuk server stdio lokal dan login OAuth (codex mcp login). Untuk server jarak jauh yang menggunakan autentikasi key, Anda harus mengedit file ~/.codex/config.toml secara manual. Prosesnya hanya butuh waktu tiga puluh detik, tetapi jika Anda mengharapkan kemudahan satu baris perintah seperti pada claude mcp add --header, di sinilah letak perbedaan Codex.

2. Format yang digunakan adalah TOML, dan tabelnya harus bernama mcp_servers. Menggunakan format snake_case, tanda kurung siku, dan bukan JSON. Konfigurasi yang disalin dari dokumen Cursor atau Claude (mcpServers, dengan kurung kurawal) tidak akan bisa dibaca, dan kesalahan penulisan TOML pada file ini biasanya tidak memunculkan pesan error yang jelas (fail quietly). Jika server tidak kunjung muncul, jalankan codex di terminal dan periksa log saat startup sebelum mencurigai hal-hal lainnya.

3. Untuk data sensitif, ada satu opsi yang benar dan satu opsi salah yang cukup menggoda. Kolom bearer_token_env_var berfungsi menjaga agar key tidak tertulis langsung di file. Sebaliknya, opsi http_headers menggunakan nilai statis, yang berarti key bb_live_ Anda akan tertulis sebagai teks biasa (plaintext) di dalam file konfigurasi—sangat berisiko jika Anda terbiasa menyinkronkan dotfiles secara publik. Ada juga opsi env_http_headers untuk menggunakan custom header dari environment variable. Aturan dasar saya: selalu gunakan bearer_token_env_var, dan jangan pernah gunakan http_headers untuk data rahasia apa pun.

4. Batas waktu default untuk alat (timeout) adalah 60 detik, dan itu sudah cukup karena cara kerja sistem polling. Codex memberikan nilai default tool_timeout_sec = 60 untuk setiap pemanggilan tool. Proses pembuatan video biasanya memakan waktu satu hingga sepuluh menit, yang sekilas tampak bertabrakan dengan batas waktu tadi. Namun, fungsi generate_video langsung mengembalikan job id seketika, dan get_result melakukan teknik long-polling maksimal 30 detik per panggilan. Setiap panggilan individu tetap berada dalam batas waktu aman; agen hanya perlu melakukan pengecekan (poll) beberapa kali. Jangan mencoba "memperbaiki" ini dengan menaikkan batas waktu ke 600, karena Anda tidak membutuhkannya, dan jika server benar-benar hang, hal itu justru akan membuat agen AI membeku selama sepuluh menit.

5. Perilaku persetujuan dapat dikonfigurasi per server, dan transaksi finansial wajib menggunakan opsi prompt. Kolom default_tools_approval_mode menerima nilai auto, prompt, writes, dan approve sesuai dokumentasi resmi. Untuk server yang menggunakan saldo nyata di setiap panggilan, saya sangat menyarankan untuk tetap mengaktifkan opsi prompt guna menyetujui setiap transaksi satu per satu. Alat-alat gratis (list_models, get_account, get_result) adalah jenis perintah yang layak dimasukkan ke daftar izin otomatis (allowlist) jika konfigurasi Anda mendukung pembagian izin per tool. Selain itu, pembuatan video memiliki pengaman ganda di sistem kami: tidak ada biaya yang ditarik melebihi penawaran harga awal tanpa adanya konfirmasi eksplisit via confirm_cost.

Berapa biaya pembuatan media demo di artikel ini?

Tarif pembuatan standar per generasi, sesuai dengan rincian biaya yang dilaporkan fungsi list_models ke agen AI, tanpa potongan harga khusus:

AsetModelHarga
Demo video promo, via MCP dengan key aktifVeo 3.1 Fast, 720p, 8 detik, tanpa suara$0.70
Cover + 2 ilustrasi editorialNano Banana Pro, 1K$0.33
Tangkapan layar halaman dokumenbrowser, bukan hasil generasi$0.00
Total$1.03

Klip video berhasil didapatkan dalam satu kali percobaan, yang tentu saja tidak selalu terjadi setiap saat. Pengambilan gambar bertema produk biasanya cenderung lebih mudah dimaafkan, tetapi elemen visual seperti tangan manusia atau teks yang terbaca jelas sering kali membutuhkan penyesuaian. Sisakan sedikit anggaran cadangan untuk melakukan pembuatan ulang jika diperlukan.

Jika Anda sudah menjalankan server ini di client lain, baris TOML di atas adalah satu-satunya bagian baru yang Anda butuhkan: key, saldo, dan riwayat pembuatan yang sama akan langsung terhubung ke mana saja. Bagi Anda yang memulai dari awal, panduan Claude Code walkthrough kami membahas empat contoh kasus penggunaan lainnya yang langkah-langkahnya hampir sama persis dengan Codex. Silakan Create a key sekarang dan minta Codex untuk melakukan rendering pertama Anda.

FAQ

Apakah Codex mendukung server MCP jarak jauh dengan autentikasi Bearer?

Ya, didukung secara bawaan. Server jarak jauh didefinisikan dalam tabel [mcp_servers.<nama>] pada file ~/.codex/config.toml dengan kolom url, sementara bearer_token_env_var menentukan nama environment variable yang nilainya akan dikirimkan oleh Codex sebagai header Authorization. Detail ini telah diverifikasi sesuai dokumen resmi Codex MCP per 11 Juli 2026. OAuth juga didukung (ini merupakan mode auth default untuk server yang menyediakannya), tetapi konfigurasi menggunakan static key tidak memerlukan langkah rumit selain kedua baris tersebut.

Apakah konfigurasi MCP benar-benar dibagikan antara Codex CLI, ekstensi IDE, dan ChatGPT desktop?

Ya. Dokumentasi resmi Codex menyebutkan bahwa aplikasi ChatGPT desktop, Codex CLI, dan ekstensi IDE saling berbagi file konfigurasi config.toml yang sama. Namun dalam praktiknya, satu-satunya hal yang tidak otomatis berpindah adalah environment variable: ekspor shell Anda hanya terbaca oleh CLI, sedangkan aplikasi desktop yang dibuka via Dock memerlukan variabel tersebut diatur di tingkat sistem operasi (launchctl setenv pada macOS), jika tidak, autentikasi akan gagal meskipun file konfigurasi Anda sudah benar.

Bisakah saya menambahkan server menggunakan perintah codex mcp add daripada mengedit filenya sendiri?

Tidak bisa untuk server jenis ini. Dokumentasi tidak menyediakan flag bearer-token pada perintah codex mcp add untuk server HTTP. Oleh karena itu, penggunaan endpoint jarak jauh berbasis key mengharuskan Anda untuk mengedit file ~/.codex/config.toml secara manual. Kelebihan dari cara manual ini adalah hasilnya terlihat jelas dan dapat dilacak versinya; konfigurasinya hanya three baris, dan key Anda tetap tersimpan aman di environment, bukan tertulis di file.

Mengapa key bb_live_ saya tidak berfungsi di pengaturan Konektor ChatGPT?

Karena itu adalah bagian integrasi yang berbeda. Sistem konektor pada fitur chat ChatGPT (versi web maupun desktop, di balik tombol mode pengembang) melakukan autentikasi server MCP menggunakan OAuth, bukan dengan menyalin API key secara langsung. Jadi, endpoint berbasis Bearer key belum bisa menyelesaikan alur tersebut saat ini. Sementara itu, antarmuka Codex membaca file config.toml dan dapat berfungsi dengan baik menggunakan key Anda. Setelah dukungan OAuth 2.1 kami diluncurkan, jalur konektor obrolan biasa juga akan didukung sepenuhnya; status terbaru dapat dipantau di halaman client table.

Apakah Codex bisa membuat video, dan berapa biayanya?

Ya, dengan konfirmasi biaya wajib sebelum proses berjalan. Fungsi generate_video akan selalu mengembalikan rincian penawaran harga dalam USD terlebih dahulu tanpa menarik biaya apa pun. Agen AI kemudian harus mengulangi panggilan dengan menyertakan nilai confirm_cost yang sesuai untuk memulai proses render. Tarif pembuatan berkisar dari $0.10 untuk klip 4 detik tanpa suara beresolusi 720p menggunakan Veo 3.1 Lite, lalu $0.70 untuk klip demo 8 detik dengan Veo 3.1 Fast seperti di artikel ini, hingga $4.40 untuk render kualitas tinggi 4K Veo 3.1 bersuara. Pilihan Omni Flash dengan audio dikenakan biaya $0.10 per detik ($0.30–$1.00 per klip). Jika pembuatan video gagal, saldo Anda akan otomatis dikembalikan (refund).

tutorialmcpvideo