Skip to main content
Glama

videolab-mcp

MCP-сервер, который превращает Claude (или любой другой MCP-хост) в полноценный видеоредактор для коротких видео. Просматривайте музыкальную библиотеку или генерируйте новые треки. Анимируйте статичные изображения с помощью Veo или создавайте синхронизацию губ для портретов с помощью OmniHuman. Пишите и переписывайте сценарии. Синтезируйте закадровый голос с помощью ElevenLabs. Монтируйте таймлайн с помощью FFmpeg, воспроизводите результат, а затем быстро вносите правки, заменяя музыку, голос или любой отдельный клип — без необходимости перерендеринга с нуля.

Также в комплект входит навык text-to-documentary (текст в документальный фильм), который преобразует длинные тексты (PDF, книги, статьи) в структурированные документальные видео с закадровым голосом, сгенерированным ИИ, субтитрами и фоновыми кадрами (b-roll).

Автономный, портативный, настраиваемый. Используйте свои собственные API-ключи.

Что внутри

Инструменты для рабочего процесса:

Категория

Инструменты

Музыка

list_music, preview_music, generate_music

Фоновые кадры (B-roll)

list_broll, preview_broll

Активы сцены

list_scene_assets, get_scene_asset

Изображения

generate_image, list_images, get_image

Закадровый голос (ElevenLabs)

list_voices, generate_voiceover, preview_voiceover, list_voiceovers

Сценарий (Anthropic)

generate_script, rewrite_script, get_script, list_scripts

Монтаж видео (FFmpeg)

assemble_promo, swap_music, swap_voiceover, swap_clip, play_render, list_recent_renders, describe_render

Анимация (Veo)

animate_image_to_video

Говорящие головы (Fal OmniHuman)

generate_talking_head

Документальный фильм

extract_pdf, split_chapters, plan_documentary_scenes, validate_attention

Диагностика

ping, describe_capabilities

Ресурсы для просмотра без использования вызовов инструментов: library://music, library://broll, library://renders, library://voiceovers, library://scripts, library://scenes.

Промпты для пошаговых сценариев: make-scene-promo, remix-render, compose-music-for-scene.

Навыки в skills/: text-to-documentary — PDF/книга → документальные видео по главам со структурированной сюжетной линией.

Related MCP server: Video MCP

Требования

  • Node.js 18+

  • FFmpeg в вашем PATH (или укажите абсолютный путь к ffmpeg.binary в конфигурации)

  • API-ключи для используемых провайдеров (заранее ничего не требуется — инициализация происходит при первом вызове)

Быстрый старт

git clone <this-repo> videolab-mcp
cd videolab-mcp
npm install
npm run build
cp videolab.config.example.json videolab.config.json
cp .env.example .env  # then fill in keys you have

Подключите его к Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json на macOS, %AppData%\Claude\claude_desktop_config.json на Windows):

{
  "mcpServers": {
    "videolab": {
      "command": "node",
      "args": ["C:\\path\\to\\videolab-mcp\\build\\index.js"],
      "env": {
        "ELEVENLABS_API_KEY": "...",
        "ANTHROPIC_API_KEY": "...",
        "GOOGLE_VEO_API_KEY": "...",
        "FAL_KEY": "...",
        "VIDEOLAB_CONFIG": "C:\\path\\to\\videolab-mcp\\videolab.config.json"
      }
    }
  }
}

Перезапустите Claude Desktop. Откройте чат и вызовите ping, чтобы подтвердить соединение.

Конфигурация

Два файла. .env только для секретных данных:

ELEVENLABS_API_KEY=
ANTHROPIC_API_KEY=
GOOGLE_VEO_API_KEY=
FAL_KEY=

videolab.config.json для всего остального (хранилище, провайдеры, флаги FFmpeg, настройки по умолчанию). Пример файла содержит разумные значения по умолчанию без лишних зависимостей: локальное хранилище, JSON-индекс, провайдеры ElevenLabs/Anthropic/Veo/Fal, настройки для мобильных видео (9:16).

Пошаговое руководство — создание промо с нуля

В Claude Desktop с подключенным MCP-сервером:

User: Make a 20-second mobile promo for the test scene.

Claude:
  → list_scene_assets({ sceneRef: { key: "test-scene" } })
     → 3 assets: magenta, cyan, orange

  → generate_script({
      context: "Test scene with three coloured backdrops",
      durationSeconds: 20, tone: "punchy"
    })
     → scriptId: script_a3f, slot breakdown shown

  → generate_voiceover({ text: "<the script>" })
     → voiceoverId: vo_8d2

  → generate_music({
      prompt: "driving electronic, slow build, retro synth pad",
      durationMs: 20000
    })
     → trackId: music_4e1

  → assemble_promo({
      timeline: {
        platform: "mobile",
        slots: [
          { source: { kind: "scene", id: "asset-test-magenta" }, durationMs: 7000 },
          { source: { kind: "scene", id: "asset-test-cyan" },    durationMs: 7000 },
          { source: { kind: "scene", id: "asset-test-orange" },  durationMs: 6000 }
        ]
      },
      voiceoverId: "vo_8d2",
      musicId: "music_4e1"
    })
     → renderId: render_94c, autoplays in default video player

User: Make the music more chill.

Claude:
  → generate_music({ prompt: "soft ambient pad, gentle rhythm", durationMs: 20000 })
     → trackId: music_c70
  → swap_music({ renderId: "render_94c", newMusicId: "music_c70" })
     → renderId: render_d11 (rev of render_94c) — only re-mixes audio (~2s)

User: Replace the orange shot with a Veo animation of the magenta image zooming in.

Claude:
  → animate_image_to_video({
      imageSource: { kind: "scene", id: "asset-test-magenta" },
      prompt: "slow camera push-in, dust particles drifting"
    })
     → clipId: broll_veo_a8b
  → swap_clip({
      renderId: "render_d11",
      slotIndex: 2,
      newSource: { kind: "broll", id: "broll_veo_a8b" }
    })
     → renderId: render_2f9 (rev of render_d11)

Цикл итерации

Это та часть, которая делает рабочий процесс удобным:

  • assemble_promo записывает промежуточные файлы для каждого слота (slot_*.mp4), беззвучный visuals.mp4, аудиомикс и финальный output.mp4 — всё в папке media/renders/<renderId>/.

  • swap_music / swap_voiceover повторно используют родительский visuals.mp4 и только перемикшируют аудио. Типичное время выполнения: ~2 секунды.

  • swap_clip пересобирает поток визуальных эффектов + перемикширует аудио. Типичное время выполнения: ~5–10 секунд.

  • Каждый рендер получает новый renderId, связанный через parentId — вы никогда не потеряете предыдущую версию.

Режим «текст в документальный фильм»

Навык skills/text-to-documentary/ превращает PDF, книгу или вставленный длинный текст в серию документальных видео длительностью около 5 минут — по одному на главу. Каждое видео имеет структурированную сюжетную арку (Завязка → Основная идея → Примеры → Смена ритма → Краткие выводы → Клиффхэнгер), караоке-субтитры на основе временных меток ElevenLabs и сгенерированные ИИ фоновые кадры.

Используемые инструменты: extract_pdf, split_chapters, plan_documentary_scenes, validate_attention, generate_voiceover, generate_image, animate_image_to_video, generate_music, assemble_promo.

Если вы используете Claude Code или другой хост, поддерживающий навыки, навык загружается автоматически при активации (например, «преврати этот PDF в документальный фильм», «сделай видео из этой книги» и т.д.). В противном случае прочитайте skills/text-to-documentary/SKILL.md для получения полного списка шагов и вызова инструментов напрямую.

Пользовательский провайдер активов сцены

Сервер не зависит от конкретного провайдера активов сцены. Поставляемый провайдер json-manifest считывает данные из JSON-файла. Любая более сложная реализация (ваша CMS, база данных, API) может быть реализована как SceneAssetProvider:

export interface SceneAssetProvider {
  readonly kind: string;
  describeRefShape(): string;  // shows up in the tool description so the host knows what to send
  listAssets(ref: SceneRef): Promise<SceneAsset[]>;
  getAsset(id: string): Promise<SceneAsset | null>;
}

Поместите свою реализацию в src/providers/scene-assets/<ваше-имя>.ts, зарегистрируйте её в src/providers/factory.ts в разделе buildSceneAssets и добавьте в схему конфигурации в src/config.ts. Тот же шаблон работает для бэкендов хранилища (S3, Azure) — см. src/providers/types.ts:StorageProvider.

Матрица провайдеров

Что

Провайдер по умолчанию

Переменная окружения

Поле конфигурации

Хранилище

local

—

storage.kind

Индекс (метаданные активов)

json

—

index.kind

Генерация музыки

ElevenLabs Music

ELEVENLABS_API_KEY

providers.musicGen

TTS (озвучка)

ElevenLabs

ELEVENLABS_API_KEY

providers.tts

LLM для сценария

Anthropic Claude

ANTHROPIC_API_KEY

providers.llm

Генерация изображений

Gemini Nano Banana

GOOGLE_VEO_API_KEY

providers.imageGen

Изображение в видео

Google Veo

GOOGLE_VEO_API_KEY

providers.animate

Говорящая голова

Fal OmniHuman

FAL_KEY

providers.talkingHead

Активы сцены

json-manifest

—

providers.sceneAssets

Дополнительные переопределения моделей через переменные окружения: ANTHROPIC_MODEL, ELEVENLABS_MUSIC_MODEL, VEO_MODEL, VEO_ENDPOINT, VEO_POLL_INTERVAL_MS, VEO_POLL_TIMEOUT_MS, FAL_OMNIHUMAN_MODEL, PROMO_VIDEO_LOG_LEVEL.

Лицензия

MIT — см. LICENSE.

Related MCP Connectors

Related MCP Servers