MCP 接入文档
适用于片语 v1.2.0 及以上版本 · 最近更新:2026 年 8 月
片语内置一个 MCP(Model Context Protocol)服务器。开启后,本机的 AI agent(Kimi CLI、Claude Code 等)可以直接调用片语的视频制作能力(宣传片 / vlog / 口播 / 教程 / 卡点混剪):一句话全自动流水线(run_auto_pipeline)、视频体裁切换(set_video_type)、读取与修改故事板、长素材挖高光(mine_highlights / apply_cut_list)、视频跟踪稳定(stabilize_clip / set_stabilization)、图库搜索与文生图取材、查看画面(预览帧 / 素材抽帧 / 截图,以图片原生返回)、触发渲染、审片与音频体检——共 68 个工具,与片语内置 AI 助手完全同源。
为什么推荐 MCP 而不是手动配置模型?
用 MCP 连接 agent 是推荐的优先用法:agent(Claude Code / Kimi CLI 等)自带模型与凭证,接入片语后即可直接做片——无需在片语里手动填写大模型服务地址与 API Key,也不用为片语单独充值一套模型。手动配置仅在内置 AI 助手(面板内对话)时才需要。
给 AI agent 的速览(TL;DR)
片语在 http://127.0.0.1:17890/mcp 提供标准 MCP Streamable HTTP 端点(POST,无会话模式)。每个请求必须携带请求头 Authorization: Bearer <token>,token 由用户在片语「设置 → Agent 接入(MCP)」页面提供。端口以该页面状态行显示的实际值为准(被占用会自动顺延)。协议握手为标准 initialize → tools/list → tools/call;图片结果以 image content block(image/jpeg, base64)返回。按下方「方式三:手动配置」中的 JSON 片段写入你的 MCP 配置即可完成接入。
前置条件
- 片语已安装并正在运行(工具在应用界面进程内执行);
- 打开「设置 → Agent 接入(MCP)」,开启「启用 MCP 服务」,状态行显示「运行中」;
- 如需 agent 触发渲染,请先在「设置 → 默认输出目录」里配置导出目录。
方式一:一键接入(推荐)
在「设置 → Agent 接入(MCP)」的「一键接入」区域,点击对应 agent 的按钮即可,片语会自动把配置(含地址与 Token)写入该 agent 的配置文件,写入前自动备份原配置:
- Kimi Code CLI:写入用户级配置
~/.kimi-code/mcp.json; - Claude Code:合并写入
~/.claude.json的mcpServers; - Codex CLI:合并写入
~/.codex/config.toml的[mcp_servers]; - OpenClaw:合并写入
~/.openclaw/openclaw.json的mcp.servers; - ZCode CLI:合并写入
~/.zcode/cli/config.json的mcp.servers; - DeepSeek Harness:合并写入
~/.dsh/cordis.patch.yml的插件 patch 列表(装载官方 MCP client 插件接入)。
完成后重启 agent(或新建会话)即可使用,工具名形如 mcp__pianyu__get_templates。
方式二:让 agent 自己接入(复制接入指令)
点击设置页的「复制接入指令」,会得到一段包含本页地址、服务地址与 Token 的指令,直接粘贴给任意支持网页读取的 AI agent,它就能依照本页文档自行完成配置。指令形如:
请依照 https://studio.dwphoto.top/videotool/mcp.html 的文档,帮我接入"片语"的 MCP 服务。
服务地址:http://127.0.0.1:17890/mcp,Token:<你的接入 Token>。
方式三:手动配置
Kimi Code CLI
编辑用户级配置 ~/.kimi-code/mcp.json(Windows:C:\Users\<用户名>\.kimi-code\mcp.json),在 mcpServers 中加入:
{
"mcpServers": {
"pianyu": {
"url": "http://127.0.0.1:17890/mcp",
"headers": {
"Authorization": "Bearer <设置页里的接入 Token>"
}
}
}
}
Claude Code
编辑 ~/.claude.json,在顶层 mcpServers 中加入:
{
"mcpServers": {
"pianyu": {
"type": "http",
"url": "http://127.0.0.1:17890/mcp",
"headers": {
"Authorization": "Bearer <设置页里的接入 Token>"
}
}
}
}
Codex CLI
编辑 ~/.codex/config.toml(Windows:C:\Users\<用户名>\.codex\config.toml),在文件末尾追加(TOML 格式,注意不要加 type 键):
[mcp_servers.pianyu]
url = "http://127.0.0.1:17890/mcp"
http_headers = { "Authorization" = "Bearer <设置页里的接入 Token>" }
ZCode CLI
编辑 ~/.zcode/cli/config.json(Windows:C:\Users\<用户名>\.zcode\cli\config.json),在 mcp.servers 中加入(严格 JSON:该文件校验严格,条目里出现未知键会导致整个 server 被静默丢弃,请只保留下列键):
{
"mcp": {
"servers": {
"pianyu": {
"type": "http",
"url": "http://127.0.0.1:17890/mcp",
"headers": {
"Authorization": "Bearer <设置页里的接入 Token>"
},
"enabled": true
}
}
}
}
DeepSeek Harness
DeepSeek Harness 通过官方 MCP client 插件接入,配置在 ~/.dsh/cordis.patch.yml 的 patch 列表中追加一行(结构较特殊,推荐直接使用「一键接入」;一键写入会把工具超时对齐到 180 秒,与片语渲染时长匹配):
- insert:
- id: mcp-pianyu
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: pianyu
transport: streamable-http
url: "http://127.0.0.1:17890/mcp"
headers:
Authorization: "Bearer <设置页里的接入 Token>"
toolCallTimeoutMs: 180000
OpenClaw
编辑 ~/.openclaw/openclaw.json,在 mcp.servers 中加入:
{
"mcp": {
"servers": {
"pianyu": {
"url": "http://127.0.0.1:17890/mcp",
"transport": "streamable-http",
"headers": {
"Authorization": "Bearer <设置页里的接入 Token>"
}
}
}
}
}
仅支持 stdio 的客户端
用 mcp-remote 做 stdio → HTTP 桥接:
{
"mcpServers": {
"pianyu": {
"command": "npx",
"args": [
"mcp-remote",
"http://127.0.0.1:17890/mcp",
"--header",
"Authorization: Bearer <设置页里的接入 Token>"
]
}
}
}
工具清单(68 个)
工具 schema 与片语内置 AI 助手同源,片语升级新增工具时客户端无需改动配置。
| 工具 | 说明 |
|---|---|
get_app_status | 获取应用状态:版本、授权、工程名、未保存更改、渲染进度/输出路径(MCP 扩展工具,触发渲染后轮询进度用) |
get_workflow_guide | 首次接入必读:返回按工程当前视频体裁组装的成片工作流指南(体裁分册剧本 + 三阶段调用序列 + 前置条件 + 调参纪律),无参数(MCP 扩展工具;set_video_type 切体裁后返回对应分册) |
get_templates | 获取可用视频模板的清单(id、名称、描述、素材数量要求、默认时长、叙事槽位、参数规格)。搭故事板前必须先调用;缺省按工程体裁过滤,传 videoType 可查指定体裁,传 slot 可按叙事槽位过滤(hook 开场钩子/showcase 产品展示/media 素材演绎/data 数据数字/proof 信任背书/story 流程叙事/cta 结尾行动)——先定每段叙事角色再按槽位拉候选,清单更短更准 |
search_templates | 按风格、画面动作、叙事槽位与主题语义检索模板目录,返回少量候选(needsMedia 可筛是否需要素材)。模板库很大时先定体裁/叙事职责/风格/动作再调用,不要用 get_templates 拉全库 |
generate_template | 现场生成个性化模板(受限 TSX 组件 → 静态扫描 + esbuild 编译入库,gen- 前缀 id):内置/市场模板都不满意时可写任意动画逻辑,生成后 templateId 直接引用渲染;编译失败返回带位置的错误可改稿重试,传 templateId 覆盖迭代同一模板;可选 textSlots 参数声明组件实际消费的 text 字段(title/subtitle/features/brandName,非法值剔除并警告,覆盖迭代缺省沿用旧声明) |
review_template | 审查 AI 生成模板的实际渲染效果(generate_template 的自修回路):演示文案合成单段渲染 2 个时间点静帧,多模态模型按模板维度打分(可读性/构图/品牌一致性/动画节奏/商业质感)返回问题清单;按建议用 generate_template 覆盖迭代直到 pass |
set_video_type | 设置工程视频体裁(promo 宣传片 / vlog / talkingHead 口播 / tutorial 教程 / montage 混剪):工作流剧本、助手身份与模板推荐口径随之切换,随工程保存;体裁只是推荐口径,不限制实际可用模板 |
get_storyboard | 获取当前故事板内容(各片段模板/文案/时长/转场/特效) |
set_storyboard | 整体替换故事板。片段素材(录屏)一律留空,由用户后续上传。校验失败会返回错误,需修正后重试 |
update_segment | 修改故事板中某一个片段的部分字段(下标从 0 开始)。只需给出要修改的字段,未给出的字段保持原值不变 |
get_segment_media | 获取某段已上传的素材清单(文件名/类型/时长/分辨率/裁剪区间/视口) |
view_segment_frame | 抽取某段某视频在指定时间点的一帧画面(返回图片) |
set_segment_trim | 裁剪某段某视频的可用区间(trimStart/trimEnd,秒);cuts 可挖段——抠掉中间区间(如口误/加载等待)前后无缝拼接,[] 清空 |
mine_highlights | 长素材挖高光:静音检测 + ASR 转写 + 抽帧给视觉模型评估,返回带理由的保留区间清单(起止秒/摘要/原因),不改工程;需多模态视觉模型,ASR 未配置也能跑 |
apply_cut_list | 把保留区间落地成浓缩剪辑:区间外全部挖掉(无缝拼接)、可用边界与段时长自动对齐;mine_highlights 的落地一步,也可手动给区间 |
set_segment_viewport | 设置某段某视频的取景视口:scale 缩放、offsetX/offsetY 平移 |
set_segment_overlay | 设置/调整某段的悬浮图片层(透明 PNG 浮在模板场景之上,带投影/缓浮;与 capture_element 配合做「悬浮 UI」镜头) |
synthesize_narration | 对已填写旁白文案的段触发 TTS 语音合成(需先在「设置 → TTS」配置;自动执行,消耗 TTS 额度;结果 overflowSec/overflowNote 标出旁白比段长的溢出段,按提示提速或延长段) |
get_project_info | 获取项目整体信息:视频体裁、画幅比例、方向、总时长、片段数、背景音乐、旁白等 |
set_segment_captions | 设置某段的烧录字幕行(时间相对段起点);传空数组清除 |
transcribe_segment_captions | 识别指定片段素材中的语音,自动生成烧录字幕(需已配置 ASR;自动执行,消耗 ASR 额度) |
set_bgm_ducking | 设置背景音乐自动避让旁白(旁白响起时压低 BGM) |
set_color_grade | 设置全片色彩统一:色调风格预设 + 自动曝光匹配(多源素材亮度拉齐,消除拼凑感) |
set_brand_style | 设置品牌样式(项目级):品牌色(全片模板强调色/渐变/光晕统一,#RRGGBB,"default" 恢复默认蓝)+ 字体氛围(sleek 商业冷峻 / warm 温暖手写霞鹜文楷 / tech 科技等宽 / display 英文展示 Poppins) |
set_project_style | 设置项目级画面样式四合一(浅合并,至少给一项):字幕样式 captionStyle(位置/字号倍率/字色/底色不透明度/出现动效)、画面质感 texture(clean 干净 / film 胶片 / cinema 电影)、节拍脉冲 beatPulse、音效配置 sfx(总开关/音量/转场音效/节拍重音/片头揭示音) |
align_beats | 卡点对齐:把各片段切点吸附到 BGM 真实节拍网格(音频分析产出,帧级精度,返回 BPM);需已添加背景音乐 |
auto_beat_montage | AI 卡点剪辑:读取 BGM 音乐结构(节拍/段落/能量)与视频素材镜头运动强度,自动切成压拍快切段并重建故事板——drop 一拍一刀、安静段长镜,切点全在节拍上。需已有 BGM + 视频素材。支持创意指令(directives 钉开篇/收尾/首 drop 高光镜、禁镜;autoMoneyShot 一键高光压重拍) |
align_music_structure | 音乐结构重排:故事板段落边界吸附到 BGM 音乐段落边界(段落边界本就在重拍上),转场按目标段能量选型(drop/高能量 whip/flyThrough/cardSweep 轮换、中能量 slide/push/zoomIn、安静段 crossfade);不动模板/文案/素材。mode=fill 只补硬切(默认)、all 全部重选 |
get_music_map | 查看当前 BGM 的音乐结构图:BPM、节拍/重拍网格、段落结构(intro/build/drop/break/outro 与各段能量)。卡点/排片决策前先看它 |
get_footage_map | 查看故事板全部视频素材的镜头表:镜头切分、各镜头运动强度(0~1)与能量峰位置(配 get_music_map 做排片决策;返回的素材序号/镜头下标直接用于 auto_beat_montage 的 directives) |
get_media_intelligence | 查询统一素材智能索引(镜头边界、动作发展、ASR/OCR 摘要与置信度):先用 query/role 缩小范围,返回少量匹配素材,避免把数百条素材或全部帧数据塞进上下文 |
stabilize_clip | 一键跟踪稳定某段视频素材(手持/走动抖动画面先稳定再排片):自动选点或手动给 points(视频像素,1 点平移/2 点平移+旋转+缩放),返回画面放大倍率(裁边依据)与跟丢率,跟丢率 >0.15 建议换点重试 |
set_stabilization | 调整已有稳定的开关(enabled,数据保留)/强度(smoothSec,只重算不重分析)/跟踪点(points,重跑分析) |
add_ground_text | 在某段视频的地面平面放 3D 文字(AR 贴地,随镜头平移/推近/走动钉在地面):一键全自动(无追踪数据先自动分析)。form=flat 躺平大字/billboard 立起面板/extruded 立体厚度字;u/v 参考帧画面归一化位置,size 宽度占比;三轴姿态 pitchDeg 倾斜/rollDeg 自转、depth 厚度倍率(extruded 有效)。返回 applied 回读与追踪质量 |
add_ground_shape | 在视频地面放 3D 形状(内置几何体,AR 贴地):一键全自动。form=plate 立牌/box 立方体/cylinder 圆柱/cone 锥体(depth = 几何体高度倍率) |
update_ground_element | 调整已放置的 3D 地面元素(text/u/v/size/yawDeg/pitchDeg/rollDeg/depth/color/entrance/opacity,按 id) |
remove_ground_element | 删除 3D 地面元素(id 缺省 = 清空该段全部) |
set_ground_tracking | 调整地面追踪:enabled 开关(数据保留)/ reanalyze 重新自动分析 |
set_logo | 调整已上传 Logo 的位置/大小/透明度/显隐 |
set_fine_print | 设置全片常驻的边缘小字(免责声明/版权/「本片由 AI 生成」等),渲染在画面底部边缘,小字淡显 |
request_render | 触发渲染视频。MCP 模式下直接后台开始渲染(不再弹确认卡),用 get_app_status 轮询进度 |
list_capture_sources | 列出可录制的屏幕与应用窗口(录屏/截屏前调用) |
take_screenshot | 截取某个屏幕/窗口当前画面(返回图片),可同时保存为图片素材加入指定片段 |
capture_element | 把片语界面中的 UI 元素截成透明背景 PNG(CSS 选择器定位),可一步贴附为指定段的悬浮层(之后用 set_segment_overlay 调位置/大小) |
start_screen_recording | 开始录制屏幕/窗口画面(与 stop_screen_recording 配对使用;countdownSec 可倒计时起录给用户留切窗口时间。sourceName 按名称模糊选源;屏幕源可 region{x,y,width,height} 视频像素选区只录一块;layout 让摄像头一起烧录——pip 画中画 / side 左右分屏 / stack 上下分屏 / camera 仅摄像头(自动请求摄像头);fps/maxHeight/bitrateMbps 控帧率、输出分辨率上限与码率) |
stop_screen_recording | 停止当前录制,保存为 webm 视频素材并加入指定片段(trimStartSec/trimEndSec 可在入段时直接掐头去尾) |
get_capture_status | 查询录屏状态:是否录制中、已录时长、源名称、输出尺寸/帧率/画面构图/选区与音频开关 |
import_segment_media | 把本地视频/图片文件导入为指定片段的素材(返回时长/分辨率;用户已有素材时优先用它,比重新录一遍快) |
view_media_frames | 一次抽取某素材多个时间点的画面(最多 8 帧,返回图片;缺省在「实际可用区间」即裁剪+挖段之后均匀采样,返回值附段内相对秒,可直接换算 trim/字幕时间) |
split_segment | 把某个片段在指定秒数处拆成两段(裁剪区间自动划分) |
delete_segment | 删除某个片段(连同素材与文案;至少保留一段) |
move_segment | 调整片段顺序(fromIndex 移到 toIndex,重排镜头用) |
remove_segment_media | 移除某段中的一个素材(段与文案保留,只剩一个素材时不允许) |
preview_storyboard_frame | 把当前故事板在指定时间点渲染成一帧成片画面(返回图片),导出前自检用 |
review_render | 审片双半边:本地可读性体检(零成本:13 字/秒停留/行宽/字幕时长/hook 密度,无成片也先返回体检结果)+ 成片抽帧视觉评审(多模态打分,问题带 segmentIndex 可局部改稿重渲) |
export_cover | 生成视频封面:取故事板指定时刻一帧叠加自由文字图层(字体/描边/3D 挤出/自由拖放,预览见「渲染导出 → 封面与发布信息」)导出 JPG/PNG 到输出目录;add3dText 可追加立体大字并放到画面主体后面(自动主体遮挡检测);返回封面图自查 |
set_publish_metadata | 设置/更新发布元数据(标题/简介/标签,随工程保存),返回各平台组装文案与字数校验(抖音 55 / B站 80 / 小红书 20 / YouTube 100 字上限) |
search_stock_media | 搜索免费商用免署名 stock 素材(Pexels/Pixabay 聚合,需在「设置 → Stock 素材搜索」配免费 Key),返回候选清单与缩略图 |
import_stock_media | 下载选中的 stock 素材并导入指定片段(域名白名单校验,落本地缓存,免署名可商用) |
generate_image | 文生图生成背景/插画素材(与 AI 助手共用端点与 Key,模型名在「设置 → 文生图」配置),可直接入段,同提示词命中本地缓存 |
generate_model | 文生 3D:文本提示词生成 .glb 3D 模型素材并导入指定段(需先在「设置 → 文生 3D」配置 Key,去 meshy.ai 申请,服务地址/模型名可换成 Meshy 兼容服务);生成耗时约 1-3 分钟工具会等待完成,配 ModelTurntable 等 3D 模板用;相同提示词命中本地缓存不重复计费 |
analyze_media_tags | 对故事板素材视觉打标(内容/情绪/适配场景,随工程记住,get_project_info 可查),实现文案与素材自动对位;需视觉模型 |
set_bgm | 设置/查询背景音乐:不传 track 返回曲库清单(含文件名+波形推导的情绪/能量档),可按曲名或情绪自动选曲 |
analyze_render_audio | 成片音频体检(纯本地 ffmpeg):响度对照 -14 LUFS、峰值爆音、中段静音,可选 ASR 转写比对旁白文案查漏读错读 |
run_auto_pipeline | 全自动流水线:一句话需求 → 按工程体裁切换编导剧本(set_video_type 改体裁)→ 建故事板 → 自动配素材 → vlog/口播/教程体裁遇 ≥60s 长素材自动挖高光浓缩 → 旁白/BGM → 渲染 → 审片 → 自动改稿重渲 → 封面 + 发布元数据;异步启动,get_app_status 轮询 autoPipeline 进度。plan_only=true 只出成片计划(不执行不改工程),确认/修改后带 segments 执行 |
save_project | 把当前工程保存为 .vtproj 工程文件(含全部片段/素材引用/BGM/样式设置);不传 path 存到当前工程文件,传 path(以 .vtproj 结尾、父目录需已存在)存到指定位置并设为当前工程文件。重大修改后建议调用一次,避免只依赖 30 秒自动保存 |
load_project | 打开 .vtproj 工程文件(绝对路径),替换当前故事板与全部工程内容;当前工程有未保存更改时会弹确认卡请用户放行。返回工程名/片段数/缺失素材清单 |
consolidate_project | 收集工程引用的全部本地素材(视频/图片、轨迹与稳定 sidecar、BGM、Logo、悬浮层、import 旁白音频)复制到指定目录 media/ 子目录(同名冲突自动改名、同内容跳过),重写引用指向新位置并把工程存为 <dir>/<工程名>.vtproj——自包含工程包,整体搬走/换机/归档用 |
推荐工作流
首次接入先调用 get_workflow_guide,获取按工程体裁组装的成片工作流指南(体裁分册剧本 + 三阶段:素材采集 → 成片渲染 → 发布准备,含推荐调用序列、前置条件清单与调参纪律),与片语内置 AI 助手同源(set_video_type 切换体裁后返回对应分册);MCP initialize 握手响应的 instructions 字段也带简要指引。用户只想尽快拿到成片时,直接调用 run_auto_pipeline 一句话全自动(组稿 → 取材 → 配音 → 渲染 → 审片 → 修复 → 交付物,用 get_app_status 轮询进度);需要精细控制每个环节时再走分步工具。要点务必记住:
- 先采素材再成片:用
list_capture_sources/take_screenshot/start_screen_recording/stop_screen_recording主动引导用户录屏采集(停录自动入段、可掐头去尾),view_media_frames抽帧验收,素材齐备后再进入成片阶段; set_storyboard会清空素材:它是整体重建,只在空故事板搭骨架时安全;已有素材的片段一律改用update_segment逐段修改;- 渲染前先确认输出目录:用户需在「设置 → 默认输出目录」配置,触发渲染后用
get_app_status轮询进度,完成后从renderOutputPath取成片路径。
安全模型
- 仅监听本机回环:服务绑定
127.0.0.1并校验请求 Host 头(防 DNS rebinding),局域网与公网无法访问; - Bearer token 鉴权:所有请求必须携带
Authorization: Bearer <token>,否则返回 401。token 首次启用时随机生成,经系统安全存储加密后保存在本机;设置页点「重新生成」后旧 token 立即失效; - 渲染授权门禁不变:agent 触发的渲染与界面手动渲染走同一链路,免费版水印与 720p 限制同样生效;
- agent 无法通过 MCP 获取你在片语里配置的 LLM/TTS/ASR API key。
注意:副作用操作自动执行
开启 MCP 即视为信任持有 token 的本机 agent——渲染、TTS/ASR 语音合成(消耗你配置的服务额度)、录屏/截屏等操作不再弹确认卡,直接执行。请只在你信任的 agent 配置里填写 token,不要分享接入配置。
故障排查
- 连接被拒绝 / 端口不通:确认片语正在运行且已启用 MCP;端口被占用会自动顺延,以设置页状态行的实际地址为准。端口顺延后,片语下次启动会自动把已接入 agent 配置里的旧地址改写为新地址(重新生成过 Token 的除外);仍连不上时在设置页对该 agent 重新「一键接入」;
- 401 未授权:token 错误或已作废(重新生成过)。从设置页重新复制接入配置;
- 工具返回「应用界面未就绪」:片语主窗口被关闭或正在重建,确认窗口打开后重试;
- request_render 返回「未设置输出目录」:先在「设置 → 默认输出目录」里配置;
- 新配置不生效:MCP 配置只在 agent 新会话启动时加载,写入配置后请重启 agent 或新建会话。