Генерація зображень у Cursor: налаштування MCP-сервера
Підключіть віддалений MCP-сервер до Cursor та генеруйте зображення прямо в репозиторій: налаштування mcp.json, секрети, особливості клієнта та ціни від $0.03.

MCP-сервер для Cursor — це зовнішній набір інструментів, який агент редактора може викликати прямо з чату. Ви додаєте один JSON-блок у mcp.json, і Cursor отримує можливості, яких немає у його базових моделей, зокрема генерацію зображень. Агент Cursor цілими днями редагує файли та запускає команди в терміналі, але жодна з моделей під капотом не вміє створювати графічні файли. Підключіть сервер генерації, і запит «зроби мені банер 16:9 для цієї посадкової сторінки» перетвориться на звичайну команду в чаті, результатом якої стане реальний файл у вашому репозиторії.
Ось усе налаштування, якщо ви прийшли лише за цим. Створіть API-ключ у своєму профілі BananaBanana, а потім додайте цей код у ~/.cursor/mcp.json (глобально) або в .cursor/mcp.json вашого проєкту:
{
"mcpServers": {
"bananabanana": {
"url": "https://bananabanana.pro/api/mcp",
"headers": {
"Authorization": "Bearer ${env:BB_API_KEY}"
}
}
}
}
Експортуйте BB_API_KEY=bb_live_YOUR_KEY у ваші змінні оточення — і готово. Жодних локальних серверних процесів, акаунтів у Google Cloud чи підписок. Оплата за зображення списується з передплаченого балансу від $0.03, за відео — від $0.10. Обидва демонстраційні зображення в цьому посібнику створені за допомогою саме цієї конфігурації з реальним ключем під час написання статті. Логи та рахунок за медіафайли на суму $0.55 наведені нижче.
Навіщо підключати генератор зображень до Cursor?
Тому що під час фронтенд-розробки зображення потрібні саме тоді, коли ви зосереджені на коді. Головний банер для посадкової сторінки. Плейсхолдери для карток товарів, щоб сітка не виглядала порожньою із сірими квадратами. OG-зображення для свіжого допису в блозі. Створити все це неважко, але раніше це завжди вимагало однакових зайвих дій: відкрити генератор у вкладці браузера, ввести промпт, завантажити, перейменувати, перетягнути в public/, повернутися й написати тег <img>. Десять хвилин рутини на кожен елемент — і ви вже забули, на якому рядку компонента зупинилися.
З MCP-сервером агент виконує весь цей цикл самостійно. Він пише промпт (зазвичай краще за мою ліниву першу чернетку), викликає generate_image, завантажує результат у потрібну папку та створює розмітку з описом alt. Ви просто перевіряєте diff замість того, щоб витрачати час на рутину.
Інша перевага полягає в тому, що вам не потрібно нічого встановлювати. Локальні MCP-сервери для генерації зображень існують і працюють, але для них доводиться запускати власний процес Node або Python і підключати власний API-ключ Google із лімітами та білінгом у вашому Google-акаунті. Віддалений сервер позбавляє цих турбот: ендпоінт уже працює на нашому боці, на тій самій інфраструктурі, що й генератор BananaBanana, а єдиним обліковим записом є ваш ключ bb_live_.

Як додати MCP-сервер до Cursor?
Три кроки та близько двох хвилин. Деталі конфігурації нижче перевірені на відповідність до офіційної документації Cursor MCP станом на 11 липня 2026 року.
По-перше, зареєструйтеся та перейдіть у Профіль → MCP API Keys. Створіть ключ. Він показується лише один раз, починається з bb_live_ та зберігається у нас у хешованому вигляді, тому скопіюйте його одразу. Нові акаунти отримують $0.20 на баланс — цього вистачить на шість тестових зображень на найдешевшій моделі.
По-друге, виберіть, де зберігати конфігурацію. Cursor підтримує два шляхи:
~/.cursor/mcp.json— глобальний, сервер буде доступний у кожному вашому проєкті;.cursor/mcp.jsonу корені репозиторію — локальний для проєкту, його безпечно додавати в git, якщо не вказувати там сам ключ.
Саме це «якщо» й вирішує інтерполяція ${env:BB_API_KEY} у наведеному вище фрагменті: Cursor підставляє змінні оточення в значення mcp.json під час завантаження, тому сам файл не містить секретів. Цей синтаксис також підтримує ${workspaceFolder} та кілька інших змінних відповідно до документації.
По-третє, перезапустіть або перезавантажте Cursor і перейдіть у Cursor Settings → MCP. Сервер має з'явитися із зеленим індикатором та списком із семи інструментів — від list_models до list_generations. На нашій сторінці MCP-сервера є той самий фрагмент коду та таблиця сумісності для всіх інших протестованих клієнтів:

Якщо сервер не з'являється, перейдіть до розділу про технічні нюанси. Причина майже завжди криється у змінній оточення, а не в конфігурації.
Приклад використання: головний банер і фото товарів прямо в чаті
Сценарій, на основі якого створено цю статтю: ви фронтенд-розробник, який збирає посадкову сторінку для бренду туристичного спорядження. Дизайн вимагає повноекранного банера з наметом на світанку. Ви робите запит у чаті Cursor, а агент формує фотографічний промпт і викликає потрібний інструмент. Ось реальний лог моєї сесії, разом із справжнім ID завдання:
→ generate_image {"prompt": "A photorealistic wide hero shot for an outdoor
gear brand landing page: a lone orange tent glowing softly on the shore of
a still alpine lake at dawn, mist over the water, sharp granite peaks
catching the first pink light, generous empty sky for headline text, low
angle, 35mm lens, no text", "model": "nano-banana-pro", "aspect_ratio": "16:9"}
← {"job_id": "cmrgox3xj000s…", "status": "processing",
"cost_charged_usd": 0.11, "balance_remaining_usd": 1554.40}
→ get_result {"job_id": "cmrgox3xj000s…"}
← {"status": "completed", "files": [{"url": "https://bananabanana.pro/api/files/…"}]}
Вісімнадцять секунд від виклику до готового файлу. Ось цей результат, отриманий з першої спроби, без повторних генерацій:

Потім агент завантажує файл за підписаним URL у папку public/ та створює код компонента. Посилання залишаються дійсними протягом 24 годин, після чого повторний виклик get_result створює нові посилання.
Плейсхолдери для товарів створюються так само, але з квадратним форматом. Для сітки карток я попросив зробити знімок пляшки для води так, ніби давав технічне завдання фотографу: об'єкт, поверхня, світло, об'єктив. Один виклик, $0.11, двадцять секунд:

Обидва демо-зображення були згенеровані за допомогою Nano Banana Pro, оскільки вони опубліковані на цій сторінці. Для простих тимчасових заглушок у сітці карток я б радив використовувати nano-banana-2-lite за $0.03, а покращувати лише ті зображення, які пройдуть перевірку дизайну. У нашому посібнику з Lite детально описано, для яких завдань достатньо дешевої моделі. Якщо ж вам потрібен однаковий персонаж на серії картинок, техніка написання промптів тут важливіша за клієнт, тому загляньте в практичний посібник зі збереження персонажів.
Відео також можна створювати прямо в цьому чаті. За перший виклик generate_video плата ніколи не стягується: інструмент повертає попередню вартість, і агент має повторити запит із викликом confirm_cost, підтверджуючи точну суму. Беззвучний ролик 720p на базі Veo 3.1 Lite коштує від $0.10, а генерація через Omni Flash зі звуком — $0.10 за секунду, тобто $0.30 за трисекундний ролик.
Особливості роботи з Cursor, які варто знати заздалегідь
Кожен клієнт має свої підводні камені. Ось ті нюанси, про які я б обов'язково попередив колегу — я зібрав їх під час тестування конфігурації.

1. Змінна ${env:…} працює лише тоді, коли її бачить Cursor. Команда export у вашому файлі .zshrc працює, якщо запускати Cursor з термінала. Але GUI-додаток, запущений через Dock або панель швидкого запуску, не зчитує профіль вашої командної оболонки, тому конфігурація там просто не працюватиме без жодних повідомлень про помилки. З мого досвіду, це найпоширеніша причина, чому сервер не підключається на macOS. Рішення: встановіть змінну на рівні операційної системи (за допомогою launchctl setenv на macOS або через системні змінні оточення у Windows) або запустіть Cursor з термінала один раз, щоб переконатися, що сама конфігурація робоча.
2. Локальна конфігурація проєкту — це чудове рішення для командної роботи, де у кожного свій ключ. Додайте .cursor/mcp.json із плейсхолдером ${env:BB_API_KEY} у репозиторій, і кожен розробник отримає налаштований сервер одразу після клонування, використовуючи власний ключ. Такий розподіл важливіший, ніж здається: ключі безкоштовні, кожен має власну історію використання (інструмент, модель, вартість, прев'ю промпту) та можливість встановити щоденний ліміт у доларах (USD) в меню Profile → MCP API Keys. Якщо хтось іде з команди, ви просто анулюєте один конкретний ключ, і це ніяк не впливає на інших. Бізнес-тарифи Cursor також дозволяють розгортати MCP-сервери через командну панель керування, але локальний файл конфігурації у репозиторії працює на будь-му тарифі.
3. Cursor запитує підтвердження перед кожним викликом інструмента, і цю опцію краще залишити ввімкненою. За замовчуванням кожен виклик MCP очікує на ваше схвалення, а аргументи запиту можна переглянути під маленькою стрілкою поруч із назвою інструмента. У режимі автозапуску дозволені інструменти виконуються миттєво. Натискати кнопку підтвердження двадцять разів поспіль під час пакетної генерації буває втомливо, але для інструментів, виклик яких коштує реальних грошей, я б рекомендував залишити підтвердження активним, дозволивши автоматично запускати лише безкоштовні функції (list_models, get_result). У будь-якому разі для генерації відео на нашому боці є додатковий захист: кошти не списуються без виклику confirm_cost після оцінки вартості.
4. Ви бачите результат генерації прямо в чаті. Згідно з документацією Cursor, зображення, які повертають MCP-інструменти, прикріплюються до діалогу, і мультимодальні моделі можуть аналізувати їх. Наш запит get_result повертає невелике прев'ю у форматі webp разом із посиланням, тому і ви, і агент можете оцінити результат, не відкриваючи браузер. Це також дає змогу агенту самостійно виправляти помилки: наприклад, ви можете попросити його перевірити картинку й перегенерувати її, якщо намет опинився прямо по центру майбутнього заголовка.
5. Існують посилання для встановлення в один клік, але ніколи не додавайте туди ключі. Cursor підтримує діплінки cursor://, які встановлюють MCP-сервер із конфігурації, закодованої в base64, як описано в документації з інсталяційних посилань. Це зручно для відкритих серверів, але абсолютно не підходить для авторизованих: закодований конфіг міститиме ваш відкритий ключ, і кожен, хто отримає лінк, матиме доступ до вашого балансу. Саме тому кнопка на нашому сайті копіює фрагмент коду із плейсхолдером змінної оточення замість автоматичного встановлення через діплінк Add-to-Cursor. Просто вставте код, експортуйте змінну, і все готово.
Якщо говорити відверто про поточні обмеження продукту: інструмент generate_image через MCP поки що не підтримує вхідні зображення як референс, тому генерація на основі референсів та створення відео із картинок все ще потребують використання вебгенератора. Проте генерація тексту в зображення, послідовне редагування картинок за допомогою edit_image та створення відео з тексту вже сьогодні повноцінно працюють через MCP.
Скільки коштували демонстраційні матеріали для цієї статті?
Звичайні ціни за генерацію, ті самі цифри, які list_models повідомляє агенту, без жодних корпоративних знижок:
| Елемент | Модель | Ціна |
|---|---|---|
| Демо головного банера, через MCP з реальним ключем | Nano Banana Pro, 1K | $0.11 |
| Демо плейсхолдера товару, через MCP | Nano Banana Pro, 1K | $0.11 |
| Обкладинка + 2 тематичні ілюстрації | Nano Banana Pro, 1K | $0.33 |
| Скриншот сторінки документації | браузер, не генерація | $0.00 |
| Разом | $0.55 |
Цього разу всі зображення вдалося отримати з першої спроби, але так буває не завжди. Закладайте в бюджет кілька повторних генерацій для знімків товарів і обов'язково збільшуйте масштаб для перевірки деталей перед релізом, адже правильна геометрія об'єктів — це все ще слабке місце більшості фотореалістичних моделей.
Якщо ви вже використовуєте цей сервер у Claude, то конфігурація для Cursor вище — це єдине, що вам потрібно змінити: ключ, баланс та історія залишаються спільними. Якщо ви починаєте з нуля, у посібнику з Claude Code описано ще чотири сценарії використання, які майже повністю підходять і для Cursor. Готові спробувати? Створіть ключ та попросіть Cursor згенерувати ваш перший головний банер.
FAQ
Чи підтримує Cursor віддалені MCP-сервери із заголовком Authorization?
Так, нативно. Відтоді як Cursor додав підтримку транспорту Streamable HTTP, віддалений сервер — це просто url та необов'язковий об'єкт headers у файлі mcp.json. Жодних локальних мостів чи проксі-процесів не потрібно, а інтерполяція ${env:VAR} дозволяє не зберігати секрети у відкритому вигляді. Саме таку конфігурацію ми використовуємо в цьому посібнику, і вона повністю перевірена на відповідність офіційній документації Cursor MCP станом на 11 липня 2026 року. Cursor також підтримує авторизацію OAuth для віддалених серверів. Наразі наш ендпоінт використовує токени Bearer, а підтримку OAuth 2.1 заплановано як альтернативний варіант.
Чи потрібен API-ключ Google для генерації зображень у Cursor?
Ні. Локальні MCP-сервери для роботи з графікою звертаються безпосередньо до Gemini API, тому їм потрібен ваш власний ключ Google із відповідними лімітами та налаштованою оплатою. У випадку з віддаленим сервером генерація відбувається через керований пул ключів Vertex AI від BananaBanana, а єдине, що вам потрібно — це ключ bb_live_ із вашого профілю. Замість прямого доступу до сирого API від Google ви отримуєте оплату за кожну генерацію без мінімального порогу витрат, єдиний передплачений баланс та ключ, який можна анулювати в один клік.
Конфігурація MCP має бути глобальною чи локальною для проєкту?
Працюють обидва варіанти, різниця полягає в масштабі доступу та спільному використанні. Файл ~/.cursor/mcp.json працює для всіх репозиторіїв на вашому комп'ютері, що зручно для особистого використання. Файл .cursor/mcp.json у корені проєкту копіюється разом із репозиторієм, тому вся команда отримує доступ до сервера одразу після клонування проєкту. Якщо ви використовуєте посилання на змінну оточення ${env:…}, цей файл абсолютно безпечно додавати в git. Для будь-яких командних проєктів я зазвичай обираю локальне налаштування: комміт конфігурації разом із персональними ключами для кожного розробника забезпечує прозору історію використання та можливість відкликати доступ для окремої людини.
Чи може Cursor генерувати відео через цей самий сервер?
Так, але з обов'язковим етапом підтвердження вартості. Інструмент generate_video спочатку повертає оцінку вартості генерації, і агент повинен повторити виклик із функцією confirm_cost та точною сумою перед списанням коштів. Ціни варіюються від $0.10 за 4-секундний беззвучний ролик 720p на моделі Veo 3.1 Lite до $4.40 за високоякісну генерацію через Veo 3.1 з аудіосупроводом. Створення відео через Omni Flash зі звуком коштує $0.10 за секунду (від $0.30 до $1.00 за кліп). Оскільки рендеринг кліпів зазвичай триває від однієї до десяти хвилин, агент періодично викликатиме get_result у фоні, поки ви продовжуєте роботу над кодом.
Чому сервер не з'являється в Cursor після редагування mcp.json?
Є три найбільш імовірні причини. Перша: змінна оточення недоступна для процесу Cursor (GUI-додатки не зчитують ваш профіль командної оболонки, тому встановіть змінну на рівні ОС або запустіть Cursor із термінала). Друга: конфігурація не оновилася (повністю перезапустіть Cursor або скористайтеся кнопкою оновлення в налаштуваннях MCP). Третя: синтаксична помилка в JSON-файлі (наприклад, зайва кома в кінці рядка). Якщо сервер відображається, але запити повертають помилку 401, це означає, що сам ключ недійсний або його було анульовано. Ви можете протестувати його за допомогою прямого запиту, скопіювавши приклад зі сторінки MCP-сервера.