Nanobanana 2 Polzaia Mcp Server

io.github.ivanantigravity-lgtmPublished by GitHub account ivanantigravity-lgtmv0.5.0Updated Oct 24, 2026

Nano Banana MCP server backed by Polza media and storage APIs.

VerifiedSTDIODesktop onlyFiles & StorageMedia & Design

Overview

AI-generated overview

Generates and edits images through Polza's media API using Google Nano Banana models, returning image content blocks plus metadata.

What you can do
  • Generate or edit images with up to three reference images, model choice, aspect ratio and resolution
  • Re-fetch a finished generation by its gen_ id after a client timeout, saving the file locally
  • Upload files to Polza Storage and read or delete stored file records
  • Report statistics for the local output directory
  • Run maintenance on cache, quotas and the local database
When to use it
Useful when you want an assistant to create or edit images with Nano Banana models and keep the results as local files, including recovering generations that outlasted the client's tool-call timeout.
Requirements
Runs locally over stdio as a PyPI package started with uvx; needs uv and Python 3.11 or newer, plus an MCP client such as Claude Code or VS Code. Requires a Polza account token in POLZA_AI_API_KEY; optional settings include POLZA_BASE_URL, IMAGE_OUTPUT_DIR, polling intervals and timeouts, POLZA_EXTERNAL_USER_ID, RETURN_FULL_IMAGE and NANOBANANA_MODEL. Network access to the Polza API.
Before you install
The Polza API key is a paid-account credential and generations are billed, so a retried generation can cost money again; fetch_generation exists to avoid that. Uploads and deletions act on Polza Storage, and prompts, reference images and an optional external user id are sent to Polza. Generated files are written to the local output directory.

Installation

In SourceWeft

  1. Open Nanobanana 2 Polzaia Mcp Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Nano Banana 2 Polza MCP Server

mcp-name: io.github.ivanantigravity-lgtm/nanobanana-2-polzaia-mcp-server

MCP-сервер для генерации и редактирования изображений через Polza с моделями семейства Google Nano Banana:

  • google/gemini-3.1-flash-image-preview — Nano Banana 2, модель по умолчанию
  • google/gemini-3-pro-image-preview — для сложных композиций и максимального качества
  • google/gemini-2.5-flash-image — для быстрых черновиков

Сервер отдаёт изображения настоящими MCP image content-блоками и параллельно — структурированный JSON с метаданными и подсказками по воспроизводимости.

Инструменты MCP

  • generate_image — генерация и редактирование. Поддерживает до трёх референсов для conditioning, выбор модели, aspect ratio, разрешение и прочие параметры.
  • fetch_generation — докачка уже запущенной генерации по gen_... id. Нужен, когда MCP-клиент отвалился по таймауту, а генерация на стороне Polza успешно завершилась. Позволяет не перегенерировать (и не оплачивать повторно).
  • upload_file — загрузка файлов в Polza Storage.
  • show_output_stats — статистика локальной выходной директории.
  • maintenance — обслуживание кэша, квот и БД.

Что нужно пользователю

  • Claude Code или любой другой MCP-клиент
  • uv
  • Python 3.11+
  • POLZA_AI_API_KEY (токен аккаунта Polza)

Быстрая установка за 2 минуты

Для Claude Code / VS Code:

  1. Установите uv (brew install uv на macOS).
  2. В корне проекта создайте файл .mcp.json.
  3. Вставьте конфиг и подставьте свой Polza-ключ.
json
{  "mcpServers": {    "nanobanana-polza": {      "command": "uvx",      "args": ["nanobanana-2-polzaia-mcp-server@latest"],      "env": {        "POLZA_AI_API_KEY": "your-polza-api-key-here",        "POLZA_BASE_URL": "https://polza.ai/api",        "IMAGE_OUTPUT_DIR": "/Users/yourname/Documents/nanobanana"      }    }  }}

Перезапустите Claude Code / VS Code.

Восстановление после таймаута

MCP-клиенты (в том числе Claude Code) обычно имеют собственный таймаут на один tool call порядка 60 секунд. Nano Banana 2 укладывается в это окно не всегда, и клиент может вернуть The read operation timed out ещё до того, как Polza успела отдать результат. Сервер Polza в этот момент доводит генерацию до конца и сохраняет её под gen_... id.

Если такое случилось:

  1. Посмотрите gen_... id в веб-интерфейсе Polza (раздел генераций).
  2. Вызовите fetch_generation с этим id — сервер опросит статус и сохранит файл локально.
fetch_generation(media_id="gen_2158267363095220225",                 output_path="/abs/path/to/slide_3.png")

Параметр output_path принимает как конкретный файл, так и директорию. При отсутствии параметра файл сохраняется в IMAGE_OUTPUT_DIR.

Локальная разработка

bash
git clone https://github.com/ivanantigravity-lgtm/nanobanana-2-polzaia-mcp-server.gitcd nanobanana-2-polzaia-mcp-serveruv synccp .env.example .env

Минимум в .env:

env
POLZA_AI_API_KEY=your_polza_api_keyPOLZA_BASE_URL=https://polza.ai/apiIMAGE_OUTPUT_DIR=/absolute/path/to/output

Запуск:

bash
uv run python -m nanobanana_2_polzaia_mcp_server.server

Claude Code / VS Code (варианты конфига)

Установленный через PyPI пакет — рекомендуемый вариант:

json
{  "mcpServers": {    "nanobanana-polza": {      "command": "uvx",      "args": ["nanobanana-2-polzaia-mcp-server@latest"],      "env": {        "POLZA_AI_API_KEY": "your-polza-api-key-here",        "POLZA_BASE_URL": "https://polza.ai/api",        "IMAGE_OUTPUT_DIR": "/Users/demo/Documents/nanobanana"      }    }  }}

Запуск из исходников:

json
{  "mcpServers": {    "nanobanana-polza-local": {      "command": "uv",      "args": ["run", "python", "-m", "nanobanana_2_polzaia_mcp_server.server"],      "cwd": "/absolute/path/to/nanobanana-2-polzaia-mcp-server",      "env": {        "POLZA_AI_API_KEY": "your-polza-api-key-here",        "POLZA_BASE_URL": "https://polza.ai/api",        "IMAGE_OUTPUT_DIR": "/absolute/path/to/output"      }    }  }}

Claude Desktop

На macOS добавьте сервер в файл:

~/Library/Application Support/Claude/claude_desktop_config.json

Пример:

json
{  "mcpServers": {    "nanobanana-polza": {      "command": "uvx",      "args": ["nanobanana-2-polzaia-mcp-server@latest"],      "env": {        "POLZA_AI_API_KEY": "your-polza-api-key-here",        "POLZA_BASE_URL": "https://polza.ai/api",        "IMAGE_OUTPUT_DIR": "/Users/demo/Documents/nanobanana"      }    }  }}

Переменные окружения

ПеременнаяОбязательноОписание
POLZA_AI_API_KEYдаТокен доступа к Polza API
POLZA_BASE_URLнетБаза API, по умолчанию https://polza.ai/api
IMAGE_OUTPUT_DIRнетДиректория для сохранённых файлов, по умолчанию ~/nanobanana-images
POLZA_POLL_INTERVAL_SECONDSнетИнтервал поллинга статуса, по умолчанию 2
POLZA_POLL_TIMEOUT_SECONDSнетТаймаут ожидания генерации, по умолчанию 120
POLZA_EXTERNAL_USER_IDнетПередаётся в Polza как user для антифрода
RETURN_FULL_IMAGEнетВозвращать полное изображение в MCP-ответе вместо thumbnail
NANOBANANA_MODELнетДефолтный tier: auto, nb2, pro, flash

Публикация новой версии

bash
# 1. bump версии в pyproject.toml и nanobanana_2_polzaia_mcp_server/__init__.py# 2. обновить CHANGELOG.md# 3. прогнать быстрый smoke-testPYTHONPYCACHEPREFIX=/tmp/pycache python3 -m compileall nanobanana_2_polzaia_mcp_serveruv build
# 4. публикация на PyPIuv publish --token "$UV_PUBLISH_TOKEN"
# 5. публикация метаданных в MCP Registrybrew install mcp-publisher   # один разmcp-publisher loginmcp-publisher publish

MCP Registry хранит только метаданные, сам пакет должен лежать на PyPI.

Используемые эндпоинты Polza

  • POST /v1/media — запуск генерации
  • GET /v1/media/{id} — статус и результат (используется для fetch_generation и поллинга)
  • POST /v1/storage/upload — загрузка референса
  • GET /v1/storage/files/{id} — метаданные файла
  • DELETE /v1/storage/files/{id} — удаление файла

Лицензия

MIT. См. файл LICENSE.

Source: README.md at commit d11881e

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.5.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts