Nano Banana 2 Polza MCP Server
MCP server for generating and editing images through Polza AI using Google Gemini models (Nano Banana 2, Pro, Flash). It supports conditioning with up to three reference images and provides structured metadata with reproducibility hints.
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-клиентuvPython 3.11+POLZA_AI_API_KEY(токен аккаунта Polza)
Быстрая установка за 2 минуты
Для Claude Code / VS Code:
- Установите
uv(brew install uvна macOS). - В корне проекта создайте файл
.mcp.json. - Вставьте конфиг и подставьте свой Polza-ключ.
{
"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.
Если такое случилось:
- Посмотрите
gen_...id в веб-интерфейсе Polza (раздел генераций). - Вызовите
fetch_generationс этим id — сервер опросит статус и сохранит файл локально.
fetch_generation(media_id="gen_2158267363095220225",
output_path="/abs/path/to/slide_3.png")
Параметр output_path принимает как конкретный файл, так и директорию. При отсутствии параметра файл сохраняется в IMAGE_OUTPUT_DIR.
Локальная разработка
git clone https://github.com/ivanantigravity-lgtm/nanobanana-2-polzaia-mcp-server.git
cd nanobanana-2-polzaia-mcp-server
uv sync
cp .env.example .env
Минимум в .env:
POLZA_AI_API_KEY=your_polza_api_key
POLZA_BASE_URL=https://polza.ai/api
IMAGE_OUTPUT_DIR=/absolute/path/to/output
Запуск:
uv run python -m nanobanana_2_polzaia_mcp_server.server
Claude Code / VS Code (варианты конфига)
Установленный через PyPI пакет — рекомендуемый вариант:
{
"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"
}
}
}
}
Запуск из исходников:
{
"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
Пример:
{
"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 |
Публикация новой версии
# 1. bump версии в pyproject.toml и nanobanana_2_polzaia_mcp_server/__init__.py
# 2. обновить CHANGELOG.md
# 3. прогнать быстрый smoke-test
PYTHONPYCACHEPREFIX=/tmp/pycache python3 -m compileall nanobanana_2_polzaia_mcp_server
uv build
# 4. публикация на PyPI
uv publish --token "$UV_PUBLISH_TOKEN"
# 5. публикация метаданных в MCP Registry
brew install mcp-publisher # один раз
mcp-publisher login
mcp-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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.