Metadata-Version: 2.4
Name: seedance-polza-mcp-server
Version: 0.1.1
Summary: MCP server for ByteDance Seedance video generation through Polza.ai
Author: Ivan Khokholkov
License: MIT
Keywords: bytedance,fastmcp,mcp,polza,seedance,video
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.11
Requires-Dist: fastmcp>=2.11.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: pydantic>=2.8.2
Provides-Extra: dev
Requires-Dist: pytest>=8.3.5; extra == 'dev'
Description-Content-Type: text/markdown

# 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.
