Для AI-агентов и MCP-клиентов

Nano Banana MCP Server для Claude, Cursor и Gemini CLI

Создавайте AI-изображения и видео прямо в Claude Desktop, Claude Code и любых других MCP-клиентах — с оплатой за каждую генерацию с вашего баланса BananaBanana. Без подписок.

Создать API-ключИзображения от $0.03 · видео от $0.10
01ЧТО ЭТО ТАКОЕ

Один эндпоинт для всех моделей

Удаленный сервер Model Context Protocol, который открывает вашим агентам доступ ко всему стеку генерации BananaBanana через встроенные инструменты: изображениям Google Nano Banana 2 Lite / 2 / 2.1 / Pro (от $0.03), видео Veo 3.1 / Fast / Lite и Gemini Omni Flash, Wan 3.0 со звуком ($0.09–1.00). Агент видит актуальные цены, подтверждает расходы перед дорогими задачами, а все генерации сохраняются в той же истории и оплачиваются с того же баланса, что и на сайте.

  • Эндпоинт: https://bananabanana.pro/api/mcp (Streamable HTTP)
  • Авторизация: вход по OAuth 2.1 (claude.ai и другие клиенты с коннекторами) либо Bearer API-ключ из профиля
  • Лимит запросов: 20 вызовов инструментов в минуту на один ключ; можно настроить дневной лимит расходов для каждого ключа
  • Нет MCP-клиента? Этот же эндпоинт работает как обычный JSON-RPC по HTTPS — вызывайте его через curl, Python или TypeScript без установки SDK
  • Неудачные или отклоненные фильтрами генерации возвращаются на баланс автоматически
  • Документация, файл server.json и готовые примеры настройки клиентов доступны в GitHub-репозитории bananabanana-mcp
MCP-клиентClaude Code / Desktop, Cursor,VS Code, Codex, любой агентOAuth / API-ключ/api/mcpbananabanana.proStreamable HTTP · 10 инструментовгенерацияПул моделейNano Banana · Veo 3.1Omni Flashза единицуВаш балансоплата за генерациюавтовозврат при ошибке
02БЫСТРЫЙ СТАРТ

Подключение в три шага

1. Создайте аккаунт и пополните баланс. 2. В разделе Profile → MCP API Keys создайте ключ (он показывается один раз). 3. Добавьте сервер в свой клиент:

claude.ai, Claude Desktop, мобильные (OAuth — ничего копировать не нужно)

Settings → Connectors → Add custom connector, вставьте https://bananabanana.pro/api/mcp и нажмите Connect. Claude регистрируется сам, вы подтверждаете доступ на экране BananaBanana, а генерации списываются с того аккаунта, под которым вы вошли.

Settings → Connectors → Add custom connector
URL: https://bananabanana.pro/api/mcp
→ Add → Connect → approve access on bananabanana.pro

Тот же флоу работает в любом клиенте, поддерживающем MCP-авторизацию: MCP Inspector, веб-коннекторы ChatGPT и Grok, Claude Code. Подключённые приложения видны в профиле, там же их можно отключить.

Claude Code

# with an API key
claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp \
  --header "Authorization: Bearer bb_live_YOUR_KEY"

# or with OAuth — no key, sign in in the browser
claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp
# then run /mcp inside Claude Code and pick "Authenticate"

Claude Desktop

Добавьте в claude_desktop_config.json (Settings → Developer → Edit Config); для работы моста mcp-remote требуется Node.js:

{
  "mcpServers": {
    "bananabanana": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://bananabanana.pro/api/mcp",
        "--header", "Authorization: Bearer bb_live_YOUR_KEY"
      ]
    }
  }
}

Cursor

Добавьте в глобальный файл ~/.cursor/mcp.json или локальный .cursor/mcp.json в корне проекта. Чтобы не хранить ключ в файле в открытом виде, используйте переменную окружения ${env:BB_API_KEY}:

{
  "mcpServers": {
    "bananabanana": {
      "url": "https://bananabanana.pro/api/mcp",
      "headers": {
        "Authorization": "Bearer bb_live_YOUR_KEY"
      }
    }
  }
}

Подробный разбор интеграции с Cursor с описанием нюансов и демо-ключом: Генерация изображений в Cursor.

VS Code / GitHub Copilot

Добавьте в файл .vscode/mcp.json в рабочей области (или в пользовательские настройки settings.json). VS Code запросит ключ один раз и сохранит его в зашифрованном виде:

{
  "servers": {
    "bananabanana": {
      "type": "http",
      "url": "https://bananabanana.pro/api/mcp",
      "headers": {
        "Authorization": "Bearer ${input:bb-api-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "bb-api-key",
      "description": "BananaBanana API key (bb_live_…)",
      "password": true
    }
  ]
}

Подробный разбор интеграции с VS Code / Copilot с описанием нюансов и демо-ключом: Генерация изображений в VS Code: руководство по настройке Copilot MCP.

Windsurf

Добавьте в ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "bananabanana": {
      "serverUrl": "https://bananabanana.pro/api/mcp",
      "headers": {
        "Authorization": "Bearer bb_live_YOUR_KEY"
      }
    }
  }
}

Windsurf MCP Setup: Generate Images in Cascade

Cline

{
  "mcpServers": {
    "bananabanana": {
      "type": "streamableHttp",
      "url": "https://bananabanana.pro/api/mcp",
      "headers": {
        "Authorization": "Bearer bb_live_YOUR_KEY"
      },
      "disabled": false,
      "autoApprove": ["list_models", "get_account", "get_result"]
    }
  }
}

Cline MCP Server: Generate Images From Your Editor

Любой другой MCP-клиент (чистый JSON-RPC)

POST https://bananabanana.pro/api/mcp
Authorization: Bearer bb_live_YOUR_KEY
Content-Type: application/json
Accept: application/json, text/event-stream

{"jsonrpc":"2.0","id":1,"method":"tools/list"}

Любой метод, кроме ping и списков discovery (tools/list, prompts/list, resources/list), требует учётных данных — включая initialize: неаутентифицированное рукопожатие отвечает 401 с челленджем WWW-Authenticate. Асимметрия намеренная, а не баг: именно по этому челленджу клиент-коннектор понимает, что сервер работает по OAuth. Читать каталог тулов без ключа по-прежнему можно.

Предпочитаете пошаговые инструкции? Руководство Генерация изображений в Claude Code подробно описывает весь процесс настройки Claude от начала до конца, включая четыре реальных сценария использования и расчет их стоимости.

03СОВМЕСТИМОСТЬ

Поддерживаемые клиенты

MCP — открытый протокол. К нему может подключиться любой клиент, поддерживающий Streamable HTTP и умеющий передавать заголовок Authorization. Текущий статус интеграции проверен по официальной документации разработчиков (актуально на август 2026 года):

КлиентРаботает сейчас?Способ подключения
Claude Codeдаclaude mcp add --transport http … --header
Claude Desktop / claude.aiдакастомный коннектор: вставить URL и войти через OAuth (ключ в заголовке тоже работает, бета)
Cursorда.cursor/mcp.json: параметры url + headers, секреты через ${env:…} — см. пример выше
VS Code / GitHub Copilotда.vscode/mcp.json: параметры type: "http" + url + headers; сохраните ключ как ввод promptString — VS Code запросит его один раз и сохранит в зашифрованном виде
ChatGPT desktop / Codex CLI / IDEдаобщий ~/.codex/config.toml: url + bearer_token_env_var (ключ в переменной окружения). Веб-коннекторы ChatGPT web входят через OAuth, а не вставленным ключом
Gemini CLIдаurl + type: "http" + headers в settings.json (httpUrl тоже работает). Инструкция
WindsurfдаserverUrl + headers in mcp_config.json (Devin Local agent: url + transport: "http"). Setup guide
Clineдаtype: "streamableHttp" + url + headers in the MCP settings JSON. Setup guide
xAI API (Grok)даинструмент MCP с передачей server_url и значения authorization на сервер Setup guide
grok.com (web)частичнокастомные коннекторы принимают URL сервера (Connectors → New Connector → Custom); вход идёт через наш OAuth 2.1
ZCode (GLM-5.2)даSettings → MCP Servers → тип HTTP + заголовок Authorization; GLM-5.2 внутри Claude Code наследует конфигурацию Claude Code
Другие клиентыдачистый JSON-RPC по HTTPS — см. раздел Вызов из кода ниже

Пример для Codex — добавьте в ~/.codex/config.toml и экспортируйте BB_API_KEY=bb_live_…:

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

Подробный разбор интеграции с Codex (CLI, расширение для IDE и десктопное приложение ChatGPT из единой конфигурации) с описанием нюансов и демо-ключом: Настройка Codex MCP: генерация изображений и видео из одного config.toml.

04БЕЗ SDK

Вызов напрямую из кода

Не пользуетесь MCP-клиентами? Они и не нужны — как и специальные библиотеки (SDK). Сервер работает по обычному протоколу JSON-RPC 2.0 поверх HTTPS: один эндпоинт для POST-запросов, заголовок Bearer и простой JSON-ответ в один шаг. Состояние сессии не сохраняется (stateless), поэтому никакого предварительного рукопожатия не требуется: запрос к tools/call можно отправлять сразу через curl, Python, TypeScript или любой другой инструмент для работы с HTTP.

curl

# start an image generation (charges one image, $0.03 on the default Lite model)
curl -s https://bananabanana.pro/api/mcp \
  -H "Authorization: Bearer bb_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
        "name":"generate_image",
        "arguments":{"prompt":"studio photo of a ceramic mug on linen, soft daylight"}}}'

# → result.structuredContent.job_id = "cmxy…"

# fetch the result (long-polls server-side up to 30 s; free)
curl -s https://bananabanana.pro/api/mcp \
  -H "Authorization: Bearer bb_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{
        "name":"get_result",
        "arguments":{"job_id":"cmxy…","wait_seconds":30}}}'

Python

Только библиотека requests — никаких сторонних MCP-библиотек:

import requests

MCP = "https://bananabanana.pro/api/mcp"
HEADERS = {"Authorization": "Bearer bb_live_YOUR_KEY"}

def call(tool, **args):
    r = requests.post(MCP, headers=HEADERS, json={
        "jsonrpc": "2.0", "id": 1, "method": "tools/call",
        "params": {"name": tool, "arguments": args},
    })
    r.raise_for_status()
    return r.json()["result"]["structuredContent"]

job = call("generate_image", prompt="watercolor painting of a lighthouse at dawn")

result = call("get_result", job_id=job["job_id"], wait_seconds=30)
while result["status"] == "processing":
    result = call("get_result", job_id=job["job_id"], wait_seconds=30)

print(result["files"][0]["url"], "cost:", result["cost_charged_usd"])

TypeScript / Node.js

Ноль зависимостей — стандартный fetch (Node 18+, Deno, Bun, браузеры):

const MCP = "https://bananabanana.pro/api/mcp";

async function call(tool: string, args: Record<string, unknown>) {
  const res = await fetch(MCP, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.BB_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      jsonrpc: "2.0", id: 1, method: "tools/call",
      params: { name: tool, arguments: args },
    }),
  });
  const { result } = await res.json();
  return result.structuredContent;
}

const job = await call("generate_image", {
  prompt: "isometric 3D render of a tiny greenhouse at golden hour",
});

let out = await call("get_result", { job_id: job.job_id, wait_seconds: 30 });
while (out.status === "processing") {
  out = await call("get_result", { job_id: job.job_id, wait_seconds: 30 });
}
console.log(out.files[0].url, "cost:", out.cost_charged_usd);

Важные детали для написания скриптов:

  • Каждый ответ инструмента дублирует данные: в машиночитаемом формате в result.structuredContent и в виде текста в result.content — разбирайте то, что удобнее.
  • Создание видео (и пакетов из нескольких картинок) происходит в два шага: первый вызов generate_video возвращает предварительный расчет стоимости и ничего не списывает; повторите его с параметром confirm_cost, равным рассчитанной сумме, чтобы запустить генерацию.
  • Передавайте уникальный idempotency_key при вызовах генерации — повторные попытки из-за сбоев сети никогда не приведут к двойному списанию.
  • Метод tools/list работает без авторизации по ключу, поэтому вы можете изучить полные схемы параметров еще до регистрации. Лимит вызовов инструментов — 20 в минуту на один ключ.
05ИНСТРУМЕНТЫ

Десять специализированных инструментов

ИнструментСтоимостьОписание
list_modelsбесплатноВсе доступные модели с актуальными ценами за единицу, разрешениями и ограничениями.
get_accountбесплатноТекущий баланс, лимит расходов по ключу и статистика использования за сегодня.
top_upбесплатноСоздаёт безопасную ссылку для пополнения. OAuth получает доступ только к депозиту, API-ключи используют профиль.
generate_image$0.03–$0.20Генерация текста в изображение на моделях Nano Banana 2 Lite / 2 / 2.1 / Pro до 4K. Возвращает job_id.
edit_imageцена одного изображенияКорректировка готового изображения с помощью текстовых инструкций (многоэтапное редактирование).
generate_video$0.10–$6.00Генерация на семействе моделей Veo 3.1 или Omni Flash (всегда со звуком), Wan 3.0, при желании — со стартового кадра и с референсными картинками. Сначала всегда возвращает точную стоимость.
edit_video$0.09–1.00Video-to-video правка на Omni Flash: своя генерация или ссылка на ролик — рестайл, замена объектов, перестановка света. Первые 10 сек, 720p со звуком.
generate_speech$0.01 / 200 символовГенерирует WAV-речь с одним или двумя голосами. Оплата за каждые начатые 200 символов.
get_resultбесплатноПроверка статуса задачи: возвращает временные ссылки на медиафайлы (активны 24 часа), списанную стоимость, остаток на балансе и превью изображения.
list_generationsбесплатноИстория последних генераций — синхронизирована с сайтом.
06ТАРИФЫ

Сколько стоит генерация через MCP в 2026 году?

  • Цены подтягиваются в реальном времени через list_models — из того же источника, что и на сайте.
  • Каждый вызов для генерации видео (или пакета картинок) сначала возвращает расчет стоимости без списания средств. Для запуска задачи агент повторяет вызов с параметром confirm_cost.
  • Каждый результат содержит поля cost_charged_usd (фактическая стоимость) и balance_remaining_usd (остаток на балансе).
  • Ошибки на стороне провайдеров моделей и отклонения по контент-фильтрам компенсируются автоматически — точно так же, как и в веб-интерфейсе.
  • Необязательный параметр idempotency_key гарантирует, что повторные попытки запросов никогда не приведут к двойному списанию.
07ПРИМЕР

Реальный диалог

→ generate_video {"prompt": "drone shot over a misty pine forest", "model": "veo-3.1-fast"}
← {"status": "confirmation_required", "quoted_cost_usd": 0.70, ...}
→ generate_video {..., "confirm_cost": 0.70}
← {"job_id": "cmxy…", "status": "processing", "cost_charged_usd": 0.70, "balance_remaining_usd": 12.40}
→ get_result {"job_id": "cmxy…"}
← {"status": "completed", "files": [{"url": "https://…"}], "cost_charged_usd": 0.70}
→ generate_speech {"text": "Hi, I'm Mia — today we test three budget tripods.", "voice": "Kore"}
← {"job_id": "cmsp…", "status": "completed", "url": "https://…/voice.wav"}
→ generate_video {"model": "wan-3.0", "duration": 6, "resolution": "720p", "aspect_ratio": "9:16",
                  "reference_images": ["cmimg…"], "reference_audios": ["cmsp…"],
                  "prompt": "The presenter from Image 1 looks into the camera and says: "First up — the lightest one.""}
← {"status": "confirmation_required", "quoted_cost_usd": 0.60, "input_audio_seconds": 3.4,
   "voice_reference_note": "Voice samples are not billed. The character will speak with the timbre of Audio 1; …"}
→ generate_video {..., "confirm_cost": 0.60}
← {"job_id": "cmxy…", "status": "processing"}   // repeat with new lines — same voice, same face
08БЕЗОПАСНОСТЬ

Ссылки на медиафайлы и защита данных

  • Ссылки на результаты подписаны шифрованием и активны в течение 24 часов. Сами медиафайлы надежно хранятся в вашем аккаунте: вы можете получить новые ссылки повторным вызовом get_result или скачать файлы через сайт.
  • API-ключи хранятся в виде хэшей и показываются только один раз при создании. Вы можете отозвать их в любой момент в своем профиле.
  • У OAuth-подключений access-токен живёт час, refresh ротируется при каждом обновлении; хранятся только хэши, токен действителен лишь для этого сервера. Отключение приложения в профиле мгновенно гасит его токены.
  • Детальный лог использования каждого ключа (инструмент, модель, стоимость, превью промпта) доступен в Profile → MCP API Keys.
  • Все генерации через MCP отображаются в общей истории генераций и аналитике наряду с веб-версией.
09ОПЛАТА ЗА ВЫЗОВ

x402: оплата за вызов в USDC, без аккаунта

x402 — открытый протокол, по которому агент оплачивает один запрос стейблкоином. Это отдельный от MCP-сервера эндпоинт: POST /api/x402. Аккаунт, API-ключ и пополнение баланса не нужны.

  1. Отправьте имя инструмента и его аргументы. Сервер ответит 402 с точной ценой этого вызова.
  2. Подпишите платёж в USDC в сети Base и повторите запрос с заголовком X-PAYMENT.
  3. Изображения и речь приходят в том же ответе. Видео возвращает job_id; результат бесплатно опрашивается через GET /api/x402/result/{jobId}.

Доступные инструменты: generate_image, generate_speech, generate_video. Цены те же, что в веб-студии и через MCP; вызов стоит столько, сколько стоит генерация, минимального пополнения нет.

Если оплаченное видео не удалось, плательщик получает кредит-токен на ту же сумму, он действует 90 дней. Передайте его как refund_token в следующем вызове. Ончейн-возврата нет. Машиночитаемый каталог с актуальными ценами — GET /api/x402.

10ВОПРОСЫ И ОТВЕТЫ

Частые вопросы о MCP-сервере Nano Banana

Что такое MCP-сервер Nano Banana?

Это удалённый MCP-сервер, который даёт вашему AI-агенту модели Nano Banana в виде инструментов, а вместе с ними модели видео и речи. Агент вызывает generate_image, сервер выполняет генерацию и возвращает ссылку на готовый файл. Сервер размещён BananaBanana по адресу https://bananabanana.pro/api/mcp: ничего не нужно устанавливать и запускать у себя, а каждая генерация списывается с баланса BananaBanana по тем же ценам, что и в веб-студии.

Как подключить его к Gemini CLI?

Gemini CLI подключается к удалённым MCP-серверам по HTTP, поэтому вся настройка Gemini CLI MCP умещается в одну команду: gemini mcp add --transport http --scope user bananabanana https://bananabanana.pro/api/mcp -H "Authorization: Bearer YOUR_KEY". Когда CLI спросит, доверяете ли вы папке, подтвердите, затем выполните gemini mcp list и убедитесь, что сервер в статусе Connected. С --scope user ключ попадает в ~/.gemini/settings.json, а не в .gemini/settings.json проекта, и не окажется в репозитории.

Как подключить его к Claude Desktop, Claude Code или Cursor?

В claude.ai и Claude Desktop откройте Settings → Connectors → Add custom connector, вставьте https://bananabanana.pro/api/mcp и войдите через OAuth: копировать ключ не нужно. В Claude Code выполните claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp, затем введите /mcp и выберите Authenticate или передайте API-ключ через --header. В Cursor добавьте URL и заголовок Authorization в .cursor/mcp.json. Готовые конфиги для этих и других клиентов есть в разделе быстрого старта выше.

Сколько стоит вызов?

Оплачивается генерация, а не подключение: картинки стоят $0.03–$0.20, видео — $0.10–$6.00 в зависимости от модели, длительности, разрешения и звука, речь — $0.01 за каждые начатые 200 символов. Служебные инструменты вроде list_models, get_result и get_account бесплатны. Видео и пачки картинок сначала возвращают точную котировку и ничего не списывают, пока агент её не подтвердит, а неудачные или отфильтрованные генерации автоматически возвращаются на баланс.

Нужен ли аккаунт Google или подписка?

Нет. Не нужен ни аккаунт Google, ни ключ от поставщика моделей — только аккаунт BananaBanana (достаточно email) с пополненным балансом. Подписки нет, баланс не сгорает. Клиенты с ключом используют API-ключ BananaBanana из профиля, а клиенты-коннекторы входят через OAuth. Агентам, которые платят по x402, не нужен даже аккаунт: каждый вызов оплачивается в USDC в сети Base.

Какие модели доступны агенту?

Изображения: Nano Banana 2 Lite (по умолчанию), Nano Banana 2 и Nano Banana Pro до 4K, а также GPT Image 2.5 и Qwen Image 3.0 Pro. Nano Banana 2.1 добавляет панорамные форматы до 8:1. Видео: Veo 3.1, Veo 3.1 Fast и Veo 3.1 Lite, Gemini Omni Flash, Wan 3.0 и Grok Imagine Video 1.5. Речь: Gemini 3.1 Flash TTS с 30 голосами. Инструмент list_models отдаёт актуальный список с ценами, разрешениями и ограничениями, так что агент всегда работает с текущим каталогом.

Это MCP-сервер для генерации изображений — а видео он тоже делает?

Да. Это MCP-сервер для генерации изображений (generate_image, edit_image) и видео в одном подключении: generate_video создаёт ролики из текста, стартового кадра или референсов, а edit_video меняет стиль готового ролика или продлевает его. Есть и generate_speech для озвучки одним или двумя голосами. Всё оплачивается с одного баланса, а картинки и видео попадают в ту же историю, что и в веб-студии.

Готовы подключить своего агента?

Создайте ключ, добавьте одну строку в конфигурационный файл — и ваш агент сможет генерировать студийные медиаматериалы за считанные минуты.

Получить API-ключ