Video Pipeline MCP Server
by sdvsdrv8990
README.md
# Video Pipeline MCP
Локальный MCP-сервер для управления видеопайплайном. Создает файловую систему и Excel-структуры из гибких конфигурационных шаблонов. Предназначен для безопасного удаленного управления через веб-интерфейс (Studio) или AI-клиентов.
**Возможности:**
- Создание файлов и Excel-книг по шаблонам (ручное и автоматическое).
- Генерация ID и расчет метрик (личные и конкурентные).
- Расчет уникальности контента по ID видео-компонентов (сценарии, персонажи, фоны, склейки).
- Все формулы и правила настраиваются через конфигурацию или создаются с нуля.
- Финальная сборка видео через FFmpeg.
## Структура проекта
```text
video_pipeline_mcp/
├── server.py точка входа: периметр запроса, JSON-RPC, туннель, хот-релоад config
├── pyproject.toml сборка и зависимости (PEP 621) — единственный файл зависимостей
├── install.sh · run.sh установка (.venv + бинарь туннеля) · запуск (--tunnel, --stop)
│
├── config/ декларации поведения (не код)
│ ├── server_reactions.yaml реестр реакций: коды → класс + recovery
│ ├── firewall.yaml правила файрвола
│ ├── observability.yaml корни журналов и след вызовов
│ ├── transport.yaml бюджет ответа и разрешённые Origin
│ ├── tunnel.yaml конфиг туннеля (машинный, gitignored; токен — в среде)
│ ├── db/ дампы таблиц базы — источник правды в git (13 конфигурационных таблиц)
│ └── templates/ шаблоны workspace/ (6) и схемы таблиц tables/
│
├── core/ ядро (бизнес-логика)
│ ├── db.py дверь базы: сборка из дампа, выгрузка, запрос — только чтение (Э2)
│ ├── contracts/ Pydantic: ToolResult, ErrorDetail, Fact, TaskStatus
│ ├── engine/ generic-движок + template_engine
│ ├── firewall/ файрвол + rules/ (rate_limit, injection, ip_blocklist, anomaly)
│ ├── state/ read.json / write.json / session log
│ ├── ids/ генерация ID + link_registry
│ ├── tables/ · excel/ слой таблиц и Excel-книг
│ ├── search/ поиск по ФС и таблицам
│ ├── transport/ туннель к Claude (transport + tunnel)
│ ├── runner/ инференс в отдельном процессе: сервис + супервизор
│ ├── providers/ адаптеры: stt/ · tts/ · img/ · ffmpeg/ (медиа-слой в разработке)
│ └── paths.py containment путей в workspace/
│
├── tools/ регистрация инструментов по группам (Bounded Context):
│ filesystem · memory · tables · excel · structure ·
│ uniqueness · media · montage · search · tasks
├── scripts/ утилиты: установщик и TUI, модели, сторожа, метрики
├── docker/ образ раннера: среда инференса изолирована в контейнере
├── studio/ веб-кабинет (TypeScript, Vite)
├── deploy/ заглушка туннельного входа
├── tests/ quick/ (юнит) · scenarios/ · симуляции (virus, bot_army, cache_*)
├── docs/ roadmap/ (план и спеки) · dev/ (gitignored)
├── .github/ CI: восемь джоб гейта + dependabot
└── workspace/ рабочая область данных, создаётся при первом старте
```
## Установка
```bash
./install.sh # установка
```
## Запуск
```bash
./run.sh # запуск
./run.sh --stop # остановка
```
## Получить ключ
Сервер сам создаёт `.env` (рядом с `server.py`) и печатает ключ **один раз** при первом
старте — сохрани его сразу: хранится только хэш, показать повторно неоткуда.
```bash
./run.sh
```
Перевыпустить:
```bash
python3 server.py --rotate-key
```
## Проверить ключ
```bash
curl -s -o /dev/null -w "%{http_code}\n" -X POST http://127.0.0.1:8080/mcp \
-H "Content-Type: application/json" \
-H "authorization: Bearer <ключ>" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'
```
`200` — ключ принят, `401` — нет.
## Лицензия
PolyForm Noncommercial 1.0.0 (файл `LICENSE`): source-available, некоммерческое использование.
This server cannot be deployed
Maintenance
ActivityActive
ResponsivenessNo issues