Назад в блог
BananaBanana Teamtutorialmcpcursor

Генерация изображений в Cursor: настройка MCP-сервера

Как подключить Cursor к удаленному MCP-серверу и генерировать изображения прямо в репозиторий. Настройка mcp.json, переменные окружения и цены от $0.03.

Генерация изображений в Cursor: настройка MCP-сервера

MCP-сервер для Cursor — это внешняя панель инструментов, которую ИИ-ассистент редактора вызывает прямо из чата. Достаточно добавить один JSON-блок в mcp.json, и Cursor получит суперспособности, которых нет у его базовых моделей, включая создание картинок. Ассистент Cursor умеет править код и запускать команды в терминале, но ни одна из встроенных нейросетей не способна выдать готовый графический файл. Подключите сервер генерации, и запрос вроде «сделай мне hero-баннер 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, следить за квотами и настраивать биллинг. Удаленный сервер избавляет от этой головной боли: конечная точка работает на нашей стороне на тех же мощностях, что и генератор BananaBanana, а для авторизации нужен всего один ключ bb_live_.

Иллюстрация: ноутбук, подключенный светящимся кабелем к маленькой арт-студии на облаке — метафора вызова удаленного MCP-сервера генерации изображений из Cursor

Как добавить MCP-сервер в Cursor?

Три шага и пара минут времени. Все настройки ниже проверены на соответствие официальной документации Cursor MCP по состоянию на 11 июля 2026 года.

Во-первых, зарегистрируйтесь и перейдите в Profile → 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 на странице документации BananaBanana MCP с блоком mcp.json и подстановкой переменных окружения

Если сервер не запустился, переходите сразу к разделу с нюансами работы. Почти всегда дело в переменной окружения, а не в самой конфигурации.

Пример из жизни: главный баннер и фото товаров прямо в чате

Сюжет, ради которого задумывался этот материал: вы верстаете лендинг для бренда туристического снаряжения, и в шапку сайта нужен широкоформатный баннер с палаткой на рассвете. Вы просите об этом в чате 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/…"}]}

Восемнадцать секунд от запроса до готового файла. Вот результат первой же генерации, без повторных попыток:

Сгенерированный ИИ баннер для лендинга: оранжевая палатка у туманного горного озера на рассвете, созданный в Cursor через MCP-сервер BananaBanana

Затем ассистент скачивает файл по временной ссылке в папку public/ и пишет код компонента. Ссылки остаются активными в течение 24 часов, после чего повторный вызов get_result обновит их.

Сделать заглушки товаров можно точно так же, только формат будет квадратным. Для сетки карточек я попросил сгенерировать бутылку для воды, описав задачу так, будто даю ТЗ фотографу: объект, фон, освещение, объектив. Один вызов, $0.11, двадцать секунд:

Фотореалистичное изображение стальной бутылки для воды с серо-зеленой крышкой на гранитном камне — заглушка для карточки товара, созданная через MCP

Обе демонстрации создавались с помощью 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, о которых нужно знать заранее

У каждого инструмента есть свои подводные камни. Вот несколько неочевидных деталей, о которых я бы обязательно предупредил коллег по команде.

Иллюстрация: маленький робот изучает три указателя с изображениями дома, папки и замка — метафора областей видимости настроек и секретов в Cursor

1. Подстановка ${env:…} сработает, только если Cursor видит переменную окружения. Строка export в файле .zshrc работает при запуске Cursor из терминала. Но если вы открываете редактор через иконку в Dock или лаунчере, он не считывает профиль оболочки, и подключение тихо отваливается. По моему опыту, это главная причина ошибки «server won't connect» на macOS. Как исправить: задать переменную на уровне операционной системы (launchctl setenv на macOS или через переменные среды в Windows) либо запустить Cursor из терминала, чтобы убедиться, что в остальном конфиг настроен верно.

2. Конфигурация проекта подходит для командной работы по принципу «один человек — один ключ». Добавьте .cursor/mcp.json с плейсхолдером ${env:BB_API_KEY} в гит, и все разработчики получат доступ к серверу сразу после клонирования репозитория — каждый со своим ключом. Такое разделение полезнее, чем кажется: ключи бесплатны, у каждого свой лог использования (вызовы, модели, расходы, предпросмотр промптов) и лимиты в Profile → MCP API Keys. Если сотрудник уходит, вы просто аннулируете один ключ, а для остальных ничего не меняется. Бизнес-тарифы Cursor умеют распространять MCP-серверы через панель управления командой, но закомиченный файл работает на любом тарифе.

3. Cursor запрашивает подтверждение для каждого вызова инструмента, и эту настройку лучше не отключать. По умолчанию любой вызов MCP ждет вашего одобрения, а аргументы можно посмотреть, кликнув на стрелочку рядом с названием инструмента. В автоматическом режиме одобренные инструменты выполняются сразу. Я понимаю, что нажимать кнопку согласия по двадцать раз за сессию надоедает, но для платных функций я бы советовал оставить ручное подтверждение. Для бесплатных запросов (list_models, get_result) можно включить автозапуск. У генерации видео в любом случае есть дополнительная защита на нашей стороне: деньги не спишутся без явного указания confirm_cost.

4. Результат генерации виден прямо в окне чата. По правилам работы Cursor, возвращаемые MCP-инструментами картинки прикрепляются к беседе, и модели с поддержкой зрения (vision-models) анализируют их. Наш метод get_result передает превью в формате webp вместе с URL-адресом, так что и вы, и ИИ-ассистент можете оценить картинку, не переключаясь в браузер. Благодаря этому ассистент умеет исправлять собственные ошибки: попросите его проверить изображение и запустить повторную генерацию, если, к примеру, палатка на макете перекрыла место под заголовок.

5. Существуют ссылки для быстрой установки в один клик, но не зашивайте туда ключи. Cursor поддерживает диплинки cursor://, которые устанавливают MCP-сервер из конфигурации в кодировке base64, как описано в документации по установке. Это удобно для публичных серверов, но не подходит для защищенных авторизацией. В закодированном конфиге окажется ваш реальный ключ, и любой, кто получит ссылку, сможет тратить ваш баланс. По этой причине кнопка на нашем сайте копирует шаблон кода с плейсхолдером переменной окружения, а не предлагает прямую установку через диплинк. Скопировали, вставили, задали переменную — готово.

И сразу об ограничениях, если говорить начистоту: MCP-инструмент generate_image пока не умеет принимать картинки на вход. Так что генерация по референсу и превращение статичного кадра в видео по-прежнему требуют использования веб-генератора. Но генерация по тексту, пошаговое редактирование через 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?

Да, из коробки. С появлением поддержки Streamable HTTP удаленному серверу требуются только параметры url и объект headers в mcp.json. Никаких локальных мостов и прокси-процессов городить не нужно, а подстановка ${env:VAR} защищает ваши секретные данные. Именно такая конфигурация используется в этом гайде, она полностью соответствует спецификациям Cursor MCP от 11 июля 2026 года. Редактор также поддерживает 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:…}, чтобы файл можно было без опаски коммитить. Мой выбор — локальный конфиг проекта для любой командной работы: так вы получаете преднастроенную среду и возможность гибко отслеживать логи или отзывать доступы для каждого разработчика индивидуально.

Может ли 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, пока вы продолжаете работать над кодом.

Почему после правки mcp.json сервер не появляется в настройках Cursor?

Вот три наиболее частые причины в порядке убывания вероятности. Во-первых, переменная окружения не видна процессу Cursor: приложения, запущенные через графический интерфейс, не читают настройки вашего шелла. Задайте переменную на уровне ОС или запустите Cursor из терминала. Во-вторых, конфигурация не обновилась: полностью перезапустите Cursor или нажмите кнопку принудительного обновления в разделе настроек MCP. В-третьих, вы допустили синтаксическую ошибку в JSON (классика — лишняя запятая в конце строки). Если сервер отображается зеленым, но запросы возвращают ошибку 401, значит, неисправен или отозван сам ключ авторизации. Проверить его работоспособность можно с помощью прямого запроса, скопировав пример со страницы MCP-сервера.

tutorialmcpcursor