Назад у блог
BananaBanana Teamtutorialmcpvideo

Налаштування Codex MCP: медіа з одного config.toml

Підключіть Codex CLI, плагін для IDE та ChatGPT до одного MCP-сервера BananaBanana. Налаштування config.toml, п'ять нюансів та промо-відео Veo за $0.70.

Налаштування Codex MCP: медіа з одного config.toml

MCP-сервер для Codex — це зовнішній набір інструментів, який кодинг-асистент від OpenAI може викликати одночасно з трьох своїх інтерфейсів: CLI, розширення для IDE та вкладки Codex у десктопному додатку ChatGPT. Достатньо додати один TOML-блок, і агент, який зазвичай просто редагує код, отримає нові можливості, що не входять до стандартної моделі, зокрема генерацію зображень та відео. Codex чудово справляється з рефакторингом та тестами цілими днями, но жодна модель за ним не вміє створювати MP4-файли. Додайте сервер генерації, і завдання «зробити промо-ролик для опису релізу» перетвориться на звичайну команду в терміналі, результатом якої стане готовий файл.

Якщо ви прийшли лише за інструкцією, ось усе налаштування. Створіть API-ключ у своєму профілі BananaBanana і додайте цей фрагмент до ~/.codex/config.toml:

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

Експортуйте змінну BB_API_KEY=bb_live_YOUR_KEY в оточення та перезапустіть Codex. Це все: жодних локальних процесів, проектів у Google Cloud чи підписок. Зображення коштують від $0.03 і списуються з передплаченого балансу за фактом створення, відео — від $0.10. Демонстраційний ролик нижче я згенерував через цей самий ендпоінт із реальним ключем просто під час написання статті, а детальний звіт про витрати на медіа для цього матеріалу (загалом $1.03) можна переглянути в кінці.

Чому один файл конфігурації вирішує все

Більшість MCP-клієнтів вимагають налаштовувати кожен інтерфейс окремо. Проте з Codex усе набагато зручніше. В офіційній документації Codex MCP це сформульовано в одному реченні: «Десктопний додаток ChatGPT, Codex CLI та розширення для IDE використовують спільну конфігурацію». Достатньо один раз вставити TOML-блок, і ті самі сім інструментів генерації будуть доступні вам і в терміналі, і у VS Code, і на вкладці Codex десктопного додатка.

Ілюстрація: вікно терміналу, редактор коду та чат-додаток підключені нитками до одного ключа на п'єдесталі — метафора єдиної конфігурації Codex для трьох додатків

Це докорінно змінює сценарії використання сервера. У Cursor чи VS Code генератор зображень прив'язаний до відкритого репозиторію. З Codex сам термінал перетворюється на медіаконсоль: ви можете запустити рендеринг відео прямо з консолі без відкриття редактора, а перевірити результат пізніше в десктопному додатку. Для тих, хто живе у tmux і заглядає в графічний інтерфейс по святах, це різниця між «якимось плагіном, встановленим у надрах IDE» та «командою, якою користуєшся щодня».

Альтернатива звична — запустити локальний MCP-сервер зі своїм ключем Google API, стежити за лімітами та сплачувати рахунки в особистому хмарному акаунті. Робочий варіант, але він вимагає постійного нагляду. Наш віддалений ендпоінт працює на нашій стороні й використовує той самий пайплайн, що й веб-генератор BananaBanana, а для авторизації потрібен лише один ключ bb_live_, який завжди можна відкликати.

Як підключити Codex до MCP-сервера?

Усі параметри конфігурації перевірено на відповідність офіційній документації Codex MCP станом на 11 липня 2026 року (OpenAI нещодавно перенесла її з developers.openai.com на learn.chatgpt.com, тож не дивуйтеся перенаправленню).

Крок перший: зареєструйтеся та відкрийте вкладку Профіль → MCP API Keys. Ключ показується лише один раз і зберігається у нас у хешованому вигляді, тому скопіюйте його відразу. На баланс нових акаунтів нараховується $0.20 — цього вистачить на шість тестових картинок на найдоступнішій моделі.

Крок другий: додайте TOML-блок із початку статті до файлу ~/.codex/config.toml (якщо його немає, просто створіть). У таблиці [mcp_servers.bananabanana] вказується url будь-якого Streamable HTTP-сервера та змінна bearer_token_env_var для авторизації: під час запуску Codex зчитує значення вказаної змінної оточення й передає його в заголовку Authorization. Сам ключ у файлі не світиться, тому конфігурацію можна спокійно комітити у публічні репозиторії з dotfiles. На нашій сторінці MCP-сервера цей шаблон лежить поруч із таблицею сумісності для всіх перевірених клієнтів:

Фрагмент config.toml для Codex на сторінці документації BananaBanana MCP з полями url та bearer_token_env_var

Крок третій: експортуйте змінну оточення та перезапустіть клієнт. У CLI після успішного підключення команда codex покаже список доступних інструментів сервера. Якщо попросити його «викликати list_models на bananabanana», ви отримаєте актуальні тарифи для всіх семи інструментів (від list_models до list_generations). Плагін для IDE та десктопний додаток ChatGPT підхоплять ці налаштування при наступному запуску без зайвих рухів.

Попередження для користувачів macOS: графічний додаток, запущений з Dock, не зчитує ваш .zshrc. Через це змінна, експортована в терміналі, для ChatGPT буде просто відсутня. Якщо в CLI інструменти видно, а десктопна програма видає помилку авторизації — річ напевно в цьому. Вирішити проблему можна командою launchctl setenv BB_API_KEY bb_live_…. Так, це костиль, але робочий.

Чи можна використовувати цей самий ключ у стандартних конекторах ChatGPT?

Якщо коротко: поки ні, і тут важливі деталі. У ChatGPT вбудовано власну систему конекторів (Налаштування → Конектори, доступна в режимі розробника на платних тарифах), яка підключає MCP-сервери до звичайного чату, а не до Codex. Але ці конектори працюють через OAuth. Наш ендпоінт поки що підтримує лише Bearer-токени. Ми плануємо додати підтримку OAuth 2.1, і тоді звичайний чат ChatGPT також зможе використовувати наш сервер. А поки що розклад простий: інтерфейси Codex (CLI, плагін для IDE, вкладка Codex у додатку) чудово працюють через config.toml, а стандартні конектори чату — ні. Актуальний стан із термінами завжди можна перевірити у таблиці сумісності."

Практичний приклад: промо-відео продукту без запуску стороннього софту

Уявіть ситуацію: день релізу, для списку змін потрібен короткий промо-ролик, а виходити з терміналу ліньки. Ви просите Codex зробити відео продукту в комерційному стилі, асистент сам складає кінематографічний промпт і викликає generate_video. Інструмент ніколи не списує гроші при першому запиті: спочатку он повертає попередню вартість, і агент повторює виклик, підтверджуючи списання. Ось реальний лог моєї сесії:

→ 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/…"}]}

Дві хвилини й п'ятять секунд від підтвердження до готового файлу в роздільній здатності 720p. Ось той самий ролик, згенерований моделлю Veo 3.1 Fast з першої спроби, без дублів:

Структура промпту складена за правилами з нашого посібника з промптів для Veo 3.1: об'єкт, дія, освітлення, рух камери, параметри об'єктива, стиль. Після цього Codex завантажує файл за тимчасовим посиланням (воно активне 24 години, а повторний запит до get_result генерує нове посилання) у вказану папку і може сам прописати тег <video> для вашої веб-сторінки з описом релізу.

Чесне застереження щодо витрат: ролик за $0.70 створюється без звуку. Відео зі звуковими ефектами на тій самій моделі коштує $1.00, а генерація через Omni Flash зі звуком коштує $0.10 за секунду — тобто $0.80 за ролик такої ж тривалості. Втім, для зацикленного фонового відео на головній сторінці звук і не потрібен; а ось для публікації в соцмережах, мабуть, є сенс дописати тридцять центів.

Зображення генеруються так само, но без кроку з підтвердженням вартості, оскільки вони коштують зовсім дешево: функція generate_image приймає промпт і видає ID завдання, а за запитом get_result ви отримуєте готовий файл та невеличкий міні-прев'ю для оцінки результату прямо в Codex.

Нюанси роботи з Codex, про які краще знати заздалегідь

Ці моменти виявилися під час тестів. Описані приблизно в тому порядку, в якому ви на них натрапите.

Ілюстрація: маленький робот з лупою читає довгий сувій з текстом конфігурації, в який встромлено два маленьких попереджувальних прапорця — метафора нюансів налаштування Codex

1. CLI-інтерфейс не запише конфігурацію замість вас. Команда codex mcp add існує, але, згідно з документацією, вона не вміє працювати з Bearer-токенами для віддалених HTTP-серверів. Її призначення — локальні stdio-сервери та OAuth-авторизація (codex mcp login). Для підключення віддаленого сервера з авторизацією за ключем доведеться відкрити ~/.codex/config.toml і відредагувати його руками. Роботи на півхвилини, але якщо ви звикли додавати сервери однією командою, як у claude mcp add --header, тут доведеться діяти інакше.

2. Це TOML, і ім'я таблиці — mcp_servers. Використовується snake_case і квадратні дужки, ніякого JSON. Конфігурації для Cursor чи Claude з фігурними дужками та стилем mcpServers не працюватимуть, при цьому помилки синтаксису у файлі TOML зазвичай замовчуються. Якщо сервер не підключається, запустіть codex у терміналі та уважно вивчіть лог запуску — це заощадить купу часу.

3. Для секретів є один правильний параметр і один небезпечний. Використання bearer_token_env_var дозволяє не зберігати сам ключ у файлі. Альтернативний параметр http_headers приймає лише статичні значення — тобто секретний ключ bb_live_ лежатиме відкритим текстом у файлі конфігурації, який утиліти синхронізації dotfiles можуть випадково опублікувати у відкритому репозиторії. Також є env_http_headers для довільних заголовків із змінних оточення. Моє правило: завжди використовувати bearer_token_env_var і ніколи не писати секрети в http_headers.

4. Стандартний таймаут у 60 секунд — це нормально, але тільки завдяки логіці опитування. За замовчуванням Codex перериває виклик інструменту через tool_timeout_sec = 60. Створення відео займає від однієї до десяти хвилин, що нібито конфліктує з лімітом, але на практиці generate_video миттєво віддає ID завдання, а get_result використовує лонг-поллінг максимум по 30 секунд на один запит. Кожен виклик вкладається в межі таймауту, а асистент просто опитує сервер кілька разів поспіль. Не намагайтеся «виправити» це, збільшуючи таймаут до 600 секунд — це не потрібно, а в разі реального зависання сервера асистент просто зависне на 10 хвилин.

5. Режим підтверджень налаштовується для кожного сервера індивідуально, і платні виклики краще підтверджувати вручну через prompt. Згідно з документацією, параметр default_tools_approval_mode підтримує значення auto, prompt, writes та approve. Якщо на сервере є платні інструменти, я рекомендую залишити ручне підтвердження для кожного списання. Безкоштовні функції (на кшталт list_models, get_account або get_result) можна додати до білого списку, якщо ваш клієнт дозволяє налаштовувати підтвердження точково. У будь-якому разі, для відео у нас передбачено додатковий запобіжник: гроші за генерацію не спишуться без явного вказання confirm_cost.

Скільки коштували медіаматеріали для цієї статті?

Звичайні тарифи за генерацію — ті самі цифри, які list_models повідомляє агенту, без будь-яких знижок:

РесурсМодельВартість
Демо-ролик, згенерований через MCPVeo 3.1 Fast, 720p, 8 s, без звуку$0.70
Обкладинка + 2 ілюстрації в текстіNano Banana Pro, 1K$0.33
Скріншот сторінки документаціїбраузер (не генерація)$0.00
Разом$1.03

Відео вийшло чудовим з першої ж спроби, але я б не радив розраховувати на таке везіння постійно. Кадри з демонстрацією товарів зазвичай виходять вдалими відразу, але якщо в кадрі є руки чи текст, ШІ часто помиляється. Для складних сцен варто закладати бюджет на пару дублів.

Якщо ви вже використовуєте наш сервер в іншому клієнті, вам знадобиться лише копіювати TOML-блок: ключ, баланс та історія генерацій залишаться колишніми. Якщо ви починаєте з нуля, подивіться наш посібник по Claude Code — там розібрано ще чотири сценарії використання, які можна застосувати до Codex практично без змін. Створіть ключ та попросіть Codex запустити вашу першу генерацію.

FAQ

Чи підтримує Codex віддалені MCP-сервери з Bearer-авторизацією?

Так, нативно. Для підключення віддаленого сервера у файлі ~/.codex/config.toml створюється таблиця [mcp_servers.<ім'я>] з полем url, а параметр bearer_token_env_var вказує на змінну оточення, значення якої надсилається в заголовку Authorization. Інформація перевірена за офіційною документацією Codex MCP від 11 липня 2026 року. Також підтримується протокол OAuth (режим авторизації за замовчуванням для серверів, де його реалізовано), але для роботи зі статичним ключем достатньо цих двох рядків.

Чи справді конфігурація MCP є спільною для Codex CLI, розширення для IDE та десктопного додатка ChatGPT?

Так, це так. У документації Codex прямо зазначено, що десктопний клієнт ChatGPT, Codex CLI та розширення для IDE використовують спільний файл config.toml. Єдиний нюанс на практиці — це змінні оточення. Експортовані в шеллі змінні видно лише CLI, тоді як запущеній через графічний інтерфейс macOS програмі ChatGPT потрібне встановлення змінної на рівні операційної системи (через launchctl setenv), інакше авторизація не пройде при тій самій конфігурації.

Чи можна додати сервер через команду codex mcp add замість ручного редагування файлу?

Для цього типу серверів — ні. Команда codex mcp add у поточній версії не підтримує прапорці для передачі Bearer-токенів віддаленим HTTP-серверам, тому прописувати налаштування доведеться вручную у файлі ~/.codex/config.toml. Плюс ручного редагування в тому, що конфігурація виходить наочною, а сам ключ зберігається у змінних оточення, а не в коді.

Чому ключ bb_live_ не працює в налаштуваннях конекторів ChatGPT?

Тому що це інший механізм інтеграції. Стандартні конектори в чаті ChatGPT (у веб-версії та десктопному додатку, доступні за ввімкненого режиму розробника) авторизують MCP-сервери через OAuth, а не через пряме введення API-ключів, тому ендпоінти з Bearer-авторизацією зараз підключити не вдасться. Водночас інтерфейси Codex зчитують налаштування з config.toml і без проблем працюють із ключем безпосередньо. Після того як ми додамо підтримку OAuth 2.1, звичайний чат також зможе використовувати цей метод підключення, статус розробки можна відстежувати у таблиці сумісності.

Чи вміє Codex генерувати відео і скільки це коштує?

Так, причому з обов'язковим підтвердженням вартості перед запуском. Метод generate_video спочатку завжди повертає попередню ціну в USD, нічого не списуючи. Генерація почнеться лише після повторного виклику з параметром confirm_cost, що дорівнює вказаній сумі. Ціни варіюються від $0.10 за 4-секундний ролик без звуку в роздільній здатності 720p на моделі Veo 3.1 Lite до $4.40 за преміальний 4K-рендеринг зі звуком на флагманської Veo 3.1. а Omni Flash зі звуком тарифікується по $0.10 за секунду ($0.30–$1.00 за кліп). Якщо генерація з якоїсь причини завершиться помилкою, кошти автоматично повернуться на баланс.

tutorialmcpvideo