关于 Clipwright
Clipwright 是一款 MCP 服务,可让编码 Agent 根据脚本或简短概要生成由真人演员讲述或无出镜者的竖屏短视频。渲染前可免费获取报价,任务完成后返回视频链接;它不会发布视频。
主要功能
- 01生成演员出镜的竖屏视频
- 02制作最长 90 秒的无出镜视频
- 03渲染前获取报价
- 04轮询任务直至视频就绪
- 05对无法满足的请求返回警告
适用场景
- 01将脚本制作成演员讲述的视频
- 02根据简短概要制作旁白视频
- 03启动渲染前查看积分费用
MCP 相关
Clipwright 通过 HTTP 托管 MCP 服务或基于 stdio 的本地服务提供相同工具。MCP 客户端可获取报价、启动渲染并查询任务状态。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.clipwright.io/mcpclaude mcp add --transport http io-clipwright https://mcp.clipwright.io/mcp{"mcpServers":{"io-clipwright":{"type":"http","url":"https://mcp.clipwright.io/mcp"}}}在 Cursor 中打开{"servers":{"io-clipwright":{"type":"http","url":"https://mcp.clipwright.io/mcp"}}}在 VS Code 中打开{"mcpServers":{"io-clipwright":{"type":"http","url":"https://mcp.clipwright.io/mcp"}}}{"mcpServers":{"io-clipwright":{"serverUrl":"https://mcp.clipwright.io/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
14| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| look | enum | 否 | NOT HONORED YET:look 尚未生效:不会传递给渲染器natural | commercial | raw_iphone |
| name | string | 否 | NOT HONORED YET:name 尚未生效:不会传递给渲染器 |
| image | string | 否 | 演员照片的公开 https URL(PNG、JPEG 或 WebP,最大 10 MB)。磁盘上的文件须先通过 upload_image(POST /v1/uploads)上传,然后传入其返回的 url。无法使用的来源(私有或回环主机、http、无法访问、会重定向、超过 10 MB,或不是上述图像类型)会在收费前被拒绝(unusable_source)。我们不会检测人脸性别:请传入 actor_gender 或 voice,否则会使用默认男声并发出警告。 |
| voice | string | 否 | 来自 list_voices 的语音名称。精选预设:owner_ru_clone | sarah | george | eric | daria_ru_female(owner_ru_clone 是俄语克隆语音)。API 会在收费前拒绝 list_voices 未返回的名称。省略时,使用与演员性别对应的默认语音:actor_id 的性别、与 image 一起提供的 actor_gender,或默认演员以及未提供 actor_gender 的 image 对应的 george。gemini-3.8-flash-tts 只能使用其自身语音(list_voices 中 kind 为 model_voice 的语音,例如 kore):指定此类语音会选择该模型;如果 tts_model 不支持该语音,则会在收费前拒绝。与 voice_id 互斥。 |
| person | string | 否 | NOT HONORED YET:person 尚未生效:此请求使用默认演员;请从 list_actors 选择 actor_id,或提供 image 以选择不同面孔 |
| script | string | 否 | 演员说出的台词;除非 segments 提供口播文本,否则必填。segments 和文本锚定插入内容要求服务端具备长篇资格。语音模型的脚本限制:eleven_v3:5000 个字符;eleven_flash_v2_5:10000 个字符;eleven_turbo_v2_5:10000 个字符;eleven_v4:5000 个字符;gemini-3.8-flash-tts:5000 个字符。计数包含空格、音频标签和重音符号;表情符号可能计为两个字符。发送给 eleven_v4 和 gemini-3.8-flash-tts 的文本会移除停顿标签,且这些标签不计入字符数。没有字数限制。时长和价格在测量前均为估算值。俄语重音:在小写单词中将重读元音写成大写("потОм"、"зАмок"),eleven_v3、eleven_v4 和 gemini-3.8-flash-tts 会将其作为重音符号 U+0301("пото́м")接收;直接输入的重音符号会保留。单词开头的大写字母仍保持大写;包含第二个大写字母或内部大写辅音的单词(全大写、"ВУЗы")则保持原样。单词内部单个大写元音总会被读作重音,因此应写成 "Яндекс Еда",而不是 "ЯндексЕда"。请告知使用俄语的用户可以用这种方式标注重音。eleven_flash_v2_5 和 eleven_turbo_v2_5 价格较低,但会误读重音符号:大写字母会原样传递给它们。 |
| attempt | integer | 否 | |
| inserts | array | 否 | 覆盖完整旁白的文本锚定图像插入内容,每项从其锚点起覆盖 cover_words 个口播单词;要求服务端具备长篇资格、captions=false、1080p,以及显式设置 broll_policy=anyone。 |
| actor_id | string | 否 | 来自 list_actors 的已保存 Clipwright 演员 ID。选择 actor_id、image 或 person 之一;不要组合使用。未指定 voice 或 voice_id 时,语音取决于演员的性别。不要与 actor_gender 组合使用。 |
| captions | boolean | 否 | NOT HONORED YET:请求了 captions,但此原型(stage-B)不会渲染字幕 |
| segments | array | 否 | 有序的演员和图像片段;要求服务端具备长篇资格、captions=false 和 1080p。图像媒体要求显式设置 broll_policy=anyone。 |
| voice_id | string | 否 | 目录之外语音的原始供应商语音 ID(16–32 个字母和数字)。延迟校验:未知 ID 会导致任务失败,而不是请求失败。使用 tts_model=gemini-3.8-flash-tts 时会被拒绝。与 voice 互斥。 |
| tts_model | enum | 否 | 语音模型:eleven_v3 | eleven_flash_v2_5 | eleven_turbo_v2_5 | eleven_v4 | gemini-3.8-flash-tts。省略时使用所选语音对应的模型(list_voices 会显示该模型):俄语预设以及名称为 ru_* 的目录语音使用 eleven_v4;其自有语音使用 gemini-3.8-flash-tts;其他所有预设和目录语音使用 eleven_v3。原始 voice_id 在脚本主要为西里尔字母时使用 eleven_v4,否则使用 eleven_v3。显式指定的 tts_model 始终优先。eleven_v4、eleven_v3 和 gemini-3.8-flash-tts 能识别重音标记(俄语单词中的大写元音,如“потОм”,会成为一个重音标记;参见 script);对于非俄语语言,eleven_flash_v2_5 和 eleven_turbo_v2_5 是更便宜的替代方案。gemini-3.8-flash-tts 仅支持其自有语音(使用 model=gemini-3.8-flash-tts 调用 list_voices;未指定语音时,女性演员使用 kore,其他情况使用 charon),且不会返回词语时间戳:使用它时,预设或目录语音、voice_id、captions=true、segments 和 inserts 都会在扣费前被拒绝。方括号中的音频标签是 eleven_v3 和 eleven_v4 的约定,在该模型上不会被测量。各语音模型的脚本长度限制:eleven_v3:5000 个字符;eleven_flash_v2_5:10000 个字符;eleven_turbo_v2_5:10000 个字符;eleven_v4:5000 个字符;gemini-3.8-flash-tts:5000 个字符。计数包含空格、音频标签和重音标记;表情符号可能按两个字符计数。发送给 eleven_v4 和 gemini-3.8-flash-tts 的文本会去除 break 标签,且这些标签不计入长度。没有词数限制。时长和价格在测量前均为估算值。eleven_v3 | eleven_flash_v2_5 | eleven_turbo_v2_5 | eleven_v4 | gemini-3.8-flash-tts |
| background | enum | 否 | white | blur | contain |
| resolution | enum | 否 | 输出分辨率:720p | 1080p | 4k(短边为 720 / 1080 / 2160 px)。省略时默认为 1080p。720p | 1080p | 4k |
| actor_gender | enum | 否 | 图像中人脸的性别:female | male。仅在提供 image 时使用:选择对应性别的默认语音(female:sarah,male:george;使用 gemini-3.8-flash-tts 时为 kore 和 charon)。与 actor_id 同时使用(其性别已知)或未提供 image 时会被拒绝。显式指定的 voice 或 voice_id 优先,响应会提示 actor_gender 未产生任何影响。female | male |
| aspect_ratio | enum | 否 | 输出格式:9:16 | 1:1 | 16:9。省略时默认为 9:16;源图形状不同时会调整为 9:16,并显示警告——传入 image 时请始终显式指定。请求与源图之间的差异超过 15% 时,会在扣费前拒绝(aspect_conflict)。9:16 | 1:1 | 16:9 |
| broll_policy | enum | 否 | 仅存储:已保存的 B-roll 策略:anyone 允许出现包括演员在内的人员;no_actor 排除演员;no_people 排除所有人员,包括手部。分段媒体生成已关闭。此设置仅作存储,不影响仅含演员的视频。运行级覆盖优先于账户演员默认值;否则使用 no_people。anyone | no_actor | no_people |
| caption_style | enum | 否 | 尚未生效:caption_style 不生效:此原型(stage-B)不会渲染字幕hormozi | tiktok | minimal |
详细介绍
@clipwright/mcp-server
你的编码 Agent 编写脚本;Clipwright 会将其渲染成一段演员朗读脚本的竖屏短视频,默认分辨率为 1080×1920。它还可以根据脚本或简短说明,制作最长 90 秒的无真人出镜视频:在开场动画片段和图像场景中配上旁白,不会出现镜头前的主持人。Agent 会先请求免费报价,再决定是否花费;API 无法满足的要求会列在 warnings[] 中,而不会被悄悄忽略。
Agent 会立即获得一个 run_id,并持续轮询,直到视频 URL 准备就绪。
Clipwright 会返回文件,但不会将其发布到任何平台。报价、语音、演员和账户余额均免费。渲染会消耗额度:注册开通的账户会获得 420 点试用额度,足以制作一段 90 秒的无真人出镜视频。可在
clipwright.io/pricing 购买更多额度。
安装
有两种连接方式:使用托管服务
https://mcp.clipwright.io/mcp,或在本地通过 stdio 运行此软件包。两者提供相同的工具。
托管服务,无需密钥
将 URL 添加到客户端。首次使用时,客户端会打开浏览器,你登录 Clipwright 并批准应用。**Claude Code 和下方的设备码流程已于 2026-10-18 进行实时验证;**其他命令摘自各客户端自己的文档,尚未在 Clipwright 上试用。
- Claude Code(已实时验证):
claude mcp add --transport http clipwright https://mcp.clipwright.io/mcp, 然后在会话中运行/mcp并登录。 - **Claude.ai 和 Claude Desktop:**Customize → Connectors → Add custom connector,然后粘贴 URL。
- **ChatGPT:**按照 OpenAI 指南“Connect and test your plugin”的说明,将 URL 添加为插件的远程 MCP 服务;ChatGPT 使用 OAuth 登录。
- **Cursor:**在
~/.cursor/mcp.json中,{"mcpServers": {"clipwright": {"url": "https://mcp.clipwright.io/mcp"}}}。 - **VS Code:**在工作区根目录的
.mcp.json中,{"mcpServers": {"clipwright": {"type": "http", "url": "https://mcp.clipwright.io/mcp"}}}。 - Gemini CLI:
gemini mcp add --transport http clipwright https://mcp.clipwright.io/mcp, 然后运行/mcp auth clipwright。 - Codex:
codex mcp add clipwright --url https://mcp.clipwright.io/mcp, 然后运行codex mcp login clipwright。
审批页面会列出应用申请的权限,共有两种:
mcp:read— 标记为只读的工具:账户、运行、镜头、声音、演员、 工作流和引用。mcp:write— 其他所有工具。其中一些会启动付费运行并消耗点数; 其余工具会更改账户(演员、上传内容、工作流计划)。
未获得 mcp:write 权限的连接使用这些工具时会收到 403 insufficient_scope,且不会产生费用。只有已获准的账户才能批准。
如要断开应用连接,请打开 app.clipwright.io/api-keys,
在 Connected apps 下找到该应用并撤销访问权限。该应用的下次请求会收到 401。连接自批准之日起有效期为 90 天;到期后,应用会要求你重新登录。
在托管服务上,upload_image 无法读取你机器上的文件。请将公开的 https URL 作为 upload_image({url}) 传入,服务会下载该文件;也可以调用 create_upload,再使用 curl 将文件 PUT 到返回的 put_url。两种方式都会返回可用于 first_frame、last_frame 和 references 的 upload_id。
没有浏览器的 Agent 可使用设备码和第一方客户端 clipwright-agent 登录(已于 2026-10-18 进行实时验证):
curl -s https://mcp.clipwright.io/device/auth -d client_id=clipwright-agent \
--data-urlencode "scope=mcp:read mcp:write offline_access" \
--data-urlencode "resource=https://mcp.clipwright.io/mcp"
在任意设备上打开 verification_uri(https://mcp.clipwright.io/device),输入 user_code,登录并批准;审批页面会再次显示该代码。同时,向 https://mcp.clipwright.io/token 发送 POST 请求,并附上 grant_type=urn:ietf:params:oauth:grant-type:device_code、device_code 和 client_id=clipwright-agent,轮询间隔不得短于 5 秒:更频繁的轮询会收到 slow_down。将 access_token 作为 Authorization: Bearer 发送到 /mcp;其有效期为一小时。使用 grant_type=refresh_token 刷新,并在每次刷新后保留最新的 refresh token。设备流程仅对此客户端开放。
使用 cw_* 密钥的托管服务
对于 CI 和脚本,可发送密钥而无需登录。密钥同时具有两种权限。
claude mcp add --transport http clipwright https://mcp.clipwright.io/mcp --header "Authorization: Bearer cw_..."
n8n
n8n 内置的 MCP Client 节点每个节点调用一个工具:
- Server Transport: HTTP Streamable;MCP Endpoint URL:
https://mcp.clipwright.io/mcp。 - Authentication: Bearer Auth,使用令牌为你的
cw_...密钥的凭据。 - Tool: 从列表中选择,例如
quote_ugc;Input Mode: JSON。
已于 2026-10-20 在自托管 n8n 2.43.8 上完成实时验证:节点成功返回了 get_account、
quote_ugc 和 get_run。可导入的工作流
n8n/clipwright-ugc.json 位于 seocombat/clipwright-mcp,
它会为脚本报价,在报价高于 max_credits 时停止,启动 make_ugc,
并每隔 15 秒轮询一次 get_run。整个工作流于 2026-10-20 在 n8n Cloud 上运行,
约三分钟后返回了一个 1080×1920 的 MP4。n8n 的 OAuth
凭据尚未在 Clipwright 上运行过。
通过 stdio 运行本地服务
claude mcp add clipwright -e CLIPWRIGHT_API_KEY=cw_... -- npx -y -p @clipwright/mcp-server clipwright-mcp
将 cw_... 替换为你自己的密钥。该命令为单行,不会让 shell 展开任何内容,
因此 bash、zsh 和 PowerShell 均可直接运行。需要 Node.js 20 或更高版本。
任何 MCP 宿主都可以使用——本地服务通过 stdio 进行 JSON-RPC 通信。在 app.clipwright.io/api-keys 申请密钥。
环境
以下变量用于配置本地服务。
| 变量 | 必填 | 含义 |
|---|---|---|
CLIPWRIGHT_API_KEY | 是 | 你的 cw_* 令牌。未设置时,进程会立即退出。 |
CLIPWRIGHT_CLIENT_ID | 建议设置 | 用于标识此安装实例并纳入幂等键,因此两个安装实例不会被合并为同一次运行。若未设置,服务会将其保存在 ~/.clipwright/client-id 中,适用于单台笔记本电脑。在共享、克隆或只读的主目录环境(例如容器、CI、复制的镜像)中,请按照 SKILL.md §2 的说明自行设置。 |
CLIPWRIGHT_API_URL | 否 | 默认使用托管 API。 |
示例
每个示例都包含我们向连接此服务的 Agent 提供的提示词、Agent 发出的调用,以及视频的费用。视频可在 clipwright.io/mcp 播放。
1. 带屏幕图形的创作者短视频
一位出镜演示者,身上叠加会根据她所说内容做出反应的图形:用于推广产品的真人讲解短视频格式。一个提示词,无需编辑。
提示词原文如下,并附上了我们的演员 ID、截图链接和网站名称:
为我的 AI 接待员制作一段 30 秒的竖屏短视频,使用我的演示者演员和 Hope 的声音。脚本:“每个未接来电都是一笔流失的交易。你的接待员会睡觉、休息,有时还会恼火。这个不会。它全天接听电话,24 小时不间断工作,而且永远不会恼火。来看一个真实案例:一位客户凌晨两点打来电话预约清洁服务,它会处理好一切,包括时间、价格和确认短信。小型企业会漏接三分之一的电话。以后不会了。只需十分钟即可完成设置,从此不再在你睡觉时流失交易。”
她介绍功能时,显示一个带有三个开关的清单(“接听电话”和“每周 7 天、每天 24 小时工作”关闭,“会恼火”开启),并让光标在她说到对应内容时切换每个开关。说到凌晨 2 点的客户时,在右侧显示来自 +1 (305) 555-0147 的来电,并在她说到“处理好一切”时接听。她说“小型企业会漏接三分之一的电话”时,将我的仪表板截图放在右上角。最后显示一张卡片,上面有我的网站和“创建你的助手”。仅为重点句添加字幕,使用荧光笔样式,并在“以后不会了”处稍微放大。渲染前先给出报价。
Agent 发送的内容:一份 make_ugc 报价,包含 templates(清单、电话、结束卡片)、一张 overlays 图片、caption_mode: "highlights"、caption_style: "highlighter",以及在一处强调句上的 punch_in。模板默认带有点击、切换和铃声。我们于 2026-10-24 在此服务器上用一个全新的 Agent 检查了提示词;视频也由同一次调用渲染。
价格:33 秒需 400 积分。报价在扣除任何积分之前就列明了价格。观看视频。
工具
list_workflows— 读取工作流方法及当前可用性。免费。get_workflow— 读取一种方法所需的输入、脚本规则、证据和限制。免费。prepare_workflow_plan— 使用完整文档创建计划,或同时提供plan_id和base_version保存计划。免费;不会启动运行。get_workflow_plan— 读取当前归属自己的计划、修订版本和就绪状态。免费。approve_workflow_plan— 明确批准选定的修订版本和内容摘要。免费;不会启动运行。quote_workflow_plan— 为已批准的修订版本报价,不会消耗额度。run_workflow_plan— 使用精确的报价字段和明确的幂等键启动付费工作流。立即返回收据和运行 ID;轮询get_run。如购买状态不确定,可使用原始请求和键进行恢复。list_voices—voice可用的声音:预设声音、语音模型gemini-3.8-flash-tts的三十种声音,以及make_ugc的声音目录;可按语言、性别、年龄、使用场景和模型筛选。声音有短音频样本时也会一并提供。make_faceless的十七种旁白声音可通过skill: "make_faceless"列出。免费,不消耗额度。list_template_sounds—make_ugc模板按节拍播放的声音:每个节拍的播放位置、默认声音,以及template_sounds接受的所有名称。免费。list_actors— 可直接使用的虚拟形象,包含稳定 ID 和经过验证的格式。免费。quote_ugc— 预估时长和价格;如果使用相同输入调用make_ugc会因费用或访问权限而被拒绝,则会发出警告。免费。get_account— 账户余额、欠款和冻结额度。免费。make_ugc— 渲染片段;此调用会产生费用。 渲染需要几分钟,因此会立即返回run_id,而不会阻塞等待。get_run— 获取运行状态。免费;每隔几秒轮询一次。get_run_shots— 获取已完成视频中的镜头:每个镜头的时长、类型、描述和预览链接,以及旁白内容和对应时间。免费且只读。没有可展示镜头的运行会返回原因。quote_revision— 获取无露脸视频修订的价格:将进行哪些更改及其费用。免费。revise_run— 启动修订:创建一次新运行,重新渲染视频并应用你更改的镜头;此操作会产生费用。 传入changes(指定镜头及其生成内容)或完整编辑后的document。成功交付的修订按报价总额收费;失败的修订不收费,即使付费工作已完成也不收费。相同请求会返回相同运行;使用attempt可主动启动第二次运行。立即返回run_id;轮询get_run,直到状态为succeeded。quote_candidate— 获取无露脸视频镜头候选项的价格:为一个镜头生成的一张图片或一个片段,可在修订时保留或丢弃。免费。create_candidate— 生成镜头候选项;此操作会产生费用。 传入镜头及其生成操作。成功交付的候选项无论保留还是丢弃,均按一个单位收费;失败的候选项不收费,即使付费工作已完成也不收费。相同请求会返回相同运行;使用take可主动生成另一个候选项。立即返回run_id;轮询get_run,直到状态为succeeded。list_generation_models— 单次生成所用的模型,以及测得的尺寸规格和每张图片或每秒的额度。免费。quote_image、quote_video— 获取一张图片或一个片段的价格。免费。generate_image、generate_video— 生成一张图片或一个无声片段;此操作会产生费用。 失败的生成不收费,即使已向供应商付款也不收费。相同请求会返回相同运行;使用attempt可主动启动另一次生成。轮询get_run;文件位于generation.url。upload_image— 从本地path或公开的 httpsurl上传 PNG/JPEG → 返回upload_id和可用作image的签名 https URL。免费;每天最多 20 次,每小时最多下载 30 个 URL,URL 有效期为 24 小时。之后请明确设置aspect_ratio。create_upload— 远程服务使用的本地 PNG/JPEG 预签名 PUT 地址:使用 curl PUT 文件,然后使用upload_id。免费。get_upload— 获取一个上传文件及其新 URL、大小和usable_until;调用create_upload后可确认 PUT 是否成功。免费。create_asset— 将图片或 MP4 片段保存为账户资源,直至你将其删除:可从run_id、upload_id、公开的url(片段需指定kind: "video")、base64、预签名put,以及 stdio 上的本地path创建。片段会在后台检查;get_asset会显示其就绪时间。使用自己的素材时,只需将rights_confirmed: true设置一次。免费;每个账户最多 2000 个资源、20 GB,每天最多新增 100 个。list_assets、get_asset— 获取账户资源及其新 URL 和配额使用情况。免费。update_asset— 重命名资源或更改其角色。免费。delete_asset— 删除资源;经过 7 天后,每日清理任务会移除其文件。免费。quote_actor— 创建个人虚拟形象前获取价格。免费。create_actor— 根据描述创建个人虚拟形象;此操作会产生费用。 每种请求的格式都会单独生成一张图片并收费。立即返回run_id;轮询get_run,直到状态为succeeded,然后将created_actor.actor_id作为actor_id传给make_ugc。quote_faceless— 创建无露脸视频前获取价格。免费。make_faceless— 根据你的脚本或简短概要制作无露脸视频;此操作会产生费用。 可选择 30 到 90 秒;视频会在旁白结束时结束,时长为所选时长前后浮动 25 秒,且不会超过 90 秒;费用不会超过报价。旁白会在开场动画片段和图片场景上播放,默认开启字幕。voice可按名称选择旁白声音。立即返回run_id;轮询get_run,直到状态为succeeded。delete_actor— 删除此账户的个人虚拟形象。已使用该形象制作的视频不会改变。免费。get_actor_defaults、set_actor_defaults— 读取和保存虚拟形象的 B-roll 默认设置。仅保存该设置:当前的口播虚拟形象视频不会使用它。免费。 调用quote_ugc后再调用make_ugc:报价会告知你合约承诺提供什么,以及不提供什么。API 无法提供的内容会返回在warnings[]中,而不会被悄悄丢弃;不支持的字段会被提前拒绝,而不是接受后置之不理。
递增 attempt 字段会启动新的付费渲染。这是有意重试失败任务的方式,并非免费刷新。对于无露脸视频,attempt 属于 make_faceless:报价调用不接受该字段,quote_faceless 也会拒绝该字段。
程序包内附带完整操作说明 SKILL.md,其旁边的 CHANGELOG.md 会说明每个版本有哪些更改以及移除了哪些内容。
隐私
服务端会将你的脚本或简介、所选选项以及上传的任何图片发送到 Clipwright API,以便为视频报价和渲染。数据处理方式请见: clipwright.io/privacy。文档: clipwright.io/docs。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。