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.
Metadata
Release files for nanobanana-2-polzaia-mcp-server 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| nanobanana_2_polzaia_mcp_server-0.5.1.tar.gz | 276.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nanobanana_2_polzaia_mcp_server-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 369.4 kB
Release files / nanobanana_2_polzaia_mcp_server-0.5.1.tar.gz
| Download URL | nanobanana_2_polzaia_mcp_server-0.5.1.tar.gz |
|---|---|
| Size | 276.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f2b083475b5dbc6238c1541ecd855b7e50790c604d7adcdbad6970455173f5f5
|
|
BLAKE2b-256 checksum How to use checksums |
8d84b296fa81119c2be6b876601814cbf491114a093822a9b84025af3e5b067d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / nanobanana_2_polzaia_mcp_server-0.5.1-py3-none-any.whl
| Download URL | nanobanana_2_polzaia_mcp_server-0.5.1-py3-none-any.whl |
|---|---|
| Size | 92.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6588cab444e0294780be60d58566df7d1567aa5ba2bc389617cd8ab59033deb4
|
|
BLAKE2b-256 checksum How to use checksums |
cc4939d1e16cf68d37200a5d93a20975e39952b337a7fdfaaf355acc39c1584d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for nanobanana-2-polzaia-mcp-server 0.5.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.