VOOZH about

URL: https://glama.ai/mcp/servers/aTreeFrog/videolab-mcp?locale=zh-CN

⇱ videolab-mcp by aTreeFrog | Glama


videolab-mcp

一个将 Claude(或任何 MCP 主机)转化为短视频实操编辑器的 MCP 服务器。你可以浏览音乐库或生成新曲目,使用 Veo 为静态图片制作动画,或使用 OmniHuman 进行人像口型同步。编写并重写脚本,通过 ElevenLabs 合成配音,使用 FFmpeg 拼接时间轴,播放结果,然后通过替换音乐、配音或任何单个片段进行低成本迭代——无需从头开始重新渲染。

它还附带了一个文本转纪录片技能,可将长文本(PDF、书籍、论文)转换为带有 AI 生成配音、字幕和空镜头的结构化纪录片视频。

独立、便携、可配置。自带 API 密钥即可使用。

功能概览

工作流中的工具

分类

工具

音乐

list_music, preview_music, generate_music

空镜头

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: 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(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上为 %AppData%\Claude\claude_desktop_config.json):

{
 "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) 默认设置。

演练 — 从零制作宣传片

在连接了 MCP 服务器的 Claude Desktop 中:

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 对齐时间戳的卡拉 OK 字幕,以及 AI 生成的空镜头。

使用的工具: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/<your-name>.ts,在 src/providers/factory.tsbuildSceneAssets 中注册,并将其添加到 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

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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