Seedance Polza MCP Server
# Seedance Polza MCP Server
`mcp-name: io.github.ivanantigravity-lgtm/seedance-polza-mcp-server`
MCP сервер для генерации видео через `bytedance/seedance-2` (и другие Seedance-модели) на Polza.ai.
## Что умеет
- text-to-video и image-to-video генерация
- чтение статуса генерации
- polling до готовности видео
- возвращает компактный результат (id, статус, url, usage, warnings)
## Что нужно для установки
- `Claude Desktop` или `Claude Code`
- [`uv`](https://docs.astral.sh/uv/)
- Python 3.11+
- `POLZA_AI_API_KEY` — ключ берётся на [polza.ai/dashboard/api-keys](https://polza.ai/dashboard/api-keys)
Поставить `uv`:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
## Установка за 2 минуты (через PyPI + uvx)
### Claude Code / VS Code
Создай `.mcp.json` в корне проекта:
```json
{
"mcpServers": {
"seedance-polza": {
"command": "uvx",
"args": ["seedance-polza-mcp-server@latest"],
"env": {
"POLZA_AI_API_KEY": "your-polza-api-key-here"
}
}
}
}
```
Перезапусти Claude Code.
### Claude Desktop (macOS)
Файл `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"seedance-polza": {
"command": "uvx",
"args": ["seedance-polza-mcp-server@latest"],
"env": {
"POLZA_AI_API_KEY": "your-polza-api-key-here"
}
}
}
}
```
### Claude Desktop (Windows)
Файл: `%APPDATA%\Claude\claude_desktop_config.json`. Содержимое идентичное.
## Как проверить, что работает
После перезапуска Claude попроси:
> Сделай через seedance короткое видео: закат над океаном, 16:9, 5 секунд
Claude должен вызвать `seedance_create_video` и дождаться готовности через `seedance_wait_for_completion`.
## Tools
- `seedance_create_video` — запустить генерацию
- `seedance_get_status` — проверить статус по `id`
- `seedance_wait_for_completion` — ждать polling-ом до готовности
- `seedance_model_guide` — краткая памятка по параметрам
## Дефолты
- модель: `bytedance/seedance-2`
- polling interval: `8` секунд
- max wait: `900` секунд
## Переменные окружения
| Переменная | Обязательная | По умолчанию |
| --- | --- | --- |
| `POLZA_AI_API_KEY` | да | — |
| `POLZA_BASE_URL` | нет | `https://polza.ai/api/v1` |
| `SEEDANCE_MODEL` | нет | `bytedance/seedance-2` |
| `SEEDANCE_POLL_INTERVAL` | нет | `8` |
| `SEEDANCE_MAX_WAIT` | нет | `900` |
| `LOG_LEVEL` | нет | `INFO` |
## Поддерживаемые входные параметры
Базовые параметры под видео:
- `prompt`
- `aspect_ratio` (`16:9`, `9:16`, `1:1`, `4:3`, `3:4`, `21:9` и т.д.)
- `resolution` (`480p`, `720p`, `1080p`)
- `duration` (`5s`, `10s`, `15s` — зависит от модели)
- `images` — референсы для image-to-video
- `videos` — референсы для video-to-video
- `seed`
- `async`
- `user`
Формат `images` / `videos`:
```json
{ "type": "url", "data": "https://example.com/file.png" }
```
или
```json
{ "type": "base64", "data": "data:image/png;base64,..." }
```
## Что возвращает сервер
Сервер не делает лишней магии. Он возвращает:
- `id` генерации
- `status`
- `model`
- `usage` (в том числе `cost_rub`)
- `url` результата, если видео готово
- `warnings` / `error` при проблемах
## Локальная разработка
```bash
git clone https://github.com/ivanantigravity-lgtm/seedance-polza-mcp-server.git
cd seedance-polza-mcp-server
uv sync
POLZA_AI_API_KEY=your_key uv run python -m seedance_polza_mcp_server.server
```
## Важно
Этот сервер не гоняет live preview и не тратит токены сам по себе.
Генерация запускается только по явному вызову tool.
## Лицензия
MIT.
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: guide for instructions, create for initiating generation, get_status for one-time status check, and wait_for_completion for polling until done. No overlap or ambiguity between them.
All tool names follow a consistent pattern: 'seedance_' prefix followed by verb_noun (model_guide, create_video, get_status, wait_for_completion). The naming is uniform and predictable.
With only 4 tools, the server is tightly scoped for its purpose of video generation via Seedance. Each tool is essential and there are no redundant or unnecessary additions, making the count appropriate.
The server covers the core lifecycle of video generation: guidance, creation, status checking, and waiting for completion. While a cancel or list operation could be imagined, they are not essential for the primary workflow, so the set is nearly complete.