videolab-mcp
MCP-сервер, который превращает Claude (или любой другой MCP-хост) в полноценный видеоредактор для коротких видео. Просматривайте музыкальную библиотеку или генерируйте новые треки. Анимируйте статичные изображения с помощью Veo или создавайте синхронизацию губ для портретов с помощью OmniHuman. Пишите и переписывайте сценарии. Синтезируйте закадровый голос с помощью ElevenLabs. Монтируйте таймлайн с помощью FFmpeg, воспроизводите результат, а затем быстро вносите правки, заменяя музыку, голос или любой отдельный клип — без необходимости перерендеринга с нуля.
Также в комплект входит навык text-to-documentary (текст в документальный фильм), который преобразует длинные тексты (PDF, книги, статьи) в структурированные документальные видео с закадровым голосом, сгенерированным ИИ, субтитрами и фоновыми кадрами (b-roll).
Автономный, портативный, настраиваемый. Используйте свои собственные API-ключи.
Что внутри
Инструменты для рабочего процесса:
Категория | Инструменты |
Музыка |
|
Фоновые кадры (B-roll) |
|
Активы сцены |
|
Изображения |
|
Закадровый голос (ElevenLabs) |
|
Сценарий (Anthropic) |
|
Монтаж видео (FFmpeg) |
|
Анимация (Veo) |
|
Говорящие головы (Fal OmniHuman) |
|
Документальный фильм |
|
Диагностика |
|
Ресурсы для просмотра без использования вызовов инструментов: 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: ffmpeg-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 | — |
|
Индекс (метаданные активов) | json | — |
|
Генерация музыки | ElevenLabs Music |
|
|
TTS (озвучка) | ElevenLabs |
|
|
LLM для сценария | Anthropic Claude |
|
|
Генерация изображений | Gemini Nano Banana |
|
|
Изображение в видео | Google Veo |
|
|
Говорящая голова | Fal OmniHuman |
|
|
Активы сцены | json-manifest | — |
|
Дополнительные переопределения моделей через переменные окружения: 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.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aTreeFrog/videolab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
