jianying-local-mcp
This server provides tools to create, edit, and manage Jianying (CapCut) draft projects locally, including video/audio/text montage, subtitles, keyframe animations, effects, and publishing.
Environment & Inspection: Check installed apps/limitations (
check_environment), inspect media files (inspect_media), and read native drafts (read_native_draft).Project Management: List and read managed projects (summary, clips, full plan) with paging and filtering (
list_managed_projects,read_managed_project).Draft Creation: Build new drafts with a plan defining clips (video, audio, image, text), tracks, timing, positions, and sizes (
create_draft).Draft Editing: Append, remove, update, split clips, and perform batch edits (
edit_draft,batch_edit).Subtitle Import/Export: Import SRT text into a new revision with styling (
add_srt), export subtitles to SRT (export_srt), and batch style subtitles (style_subtitles).Clip Features: Set transform, crop, text style, keyframes (position/scale/rotation/opacity), audio fades, masks, animations, and transitions (
set_clip_features).Motion Presets: Apply predefined zoom/pan/slide/fade/pulse keyframe animations (
apply_motion_preset), list available presets (list_motion_presets).Timeline Editing: Reorder clips within a track gaplessly (
reorder_track) and ripple-delete time intervals across all tracks (ripple_delete).Publishing: Publish a managed revision as a new native draft to Jianying's home page (
publish_draft).Media Processing: Create new media with brightness/contrast/saturation/gamma, reverse, extract audio, normalize/denoise audio (
process_media), and extract PNG frames (extract_frame).Montage: Assemble local videos/photos in order with fixed or variable durations (
montage_create).Native Resources: List cached native animations/transitions (
list_native_resources) and apply them to clips (apply_native_resource).**All editing tools support dry-run (no-write) validation and create new revisions without overwriting the original project.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@jianying-local-mcp Create a new draft from my vacation clips and photos with subtitles"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AI 用剪映自动剪片
Jianying Local MCP 是一个用于 Mac 剪映的本地 MCP 工具,支持镜头编排、字幕、关键帧动画和多轨剪辑。
在支持 MCP 的 AI 客户端中提供素材和剪辑要求,AI 调用工具生成剪映草稿,再用剪映打开、预览和导出。
作品演示
《入戏·川剧初体验》,一支国风短片,内容包括川剧表演、变脸、吐火、换装和体验。
https://github.com/user-attachments/assets/8ad915ff-f449-415f-b163-cdf41901cca6
下载预览视频 · 59.52 秒 · 1080p · 25 fps(网页预览为 720p)
这次用到了照片运镜、双画面、书法排版、旁白字幕和配乐。我觉得成片大致有认真练习一年剪辑的水平。
案例从原始视频和照片重建,共 23 个场景。缓动、场景复合和精修使用了额外脚本,未全部集成到通用 MCP。查看制作过程。
Related MCP server: capcut-mcp
功能
关键帧动画
支持位置、缩放、旋转和透明度关键帧,内置 9 种线性运动预设,可制作推近、拉远、平移、滑入和渐显。
例如,给照片设置两个缩放关键帧:起点为 100%,3 秒后为 108%,就能得到一个缓慢推近的镜头。再配合位置和旋转变化,可以制作照片滑入、倾斜等效果。

剪映截图:“言传身教”场景的照片关键帧。
字幕编辑
支持 SRT 导入、导出,以及字幕内容、时间、字号、颜色、描边和位置的修改。样式可按单条字幕或整条轨道批量设置。
案例中的 28 句旁白排成 36 个原生文字片段,可以在剪映里直接改字。书法标题使用独立 PNG,支持移动、缩放和替换图片。

剪映截图:选中旁白字幕后,右侧显示文字与样式设置。
多轨剪辑
支持片段追加、拆分、排序、裁切,以及删除时间区间后收拢后续内容。视频、图片、文字和音频可按轨道组织。
案例主时间线整理为 6 条轨道,23 个场景分别封装为复合片段。照片、纸边、阴影和书法保留独立图层;场景复合由案例脚本完成。

剪映截图:“唱腔与身段”场景的双画面及内部图层。
批量编辑
batch_edit 可在一次调用中完成多项修改。例如:修改字幕、加粗、统一字号、添加描边、设置渐显,全部完成后保存一个新版本,保留原项目,不生成中间工程。
0.3.0 同时增加了简要返回和素材信息缓存,减少重复调用、素材探测与文件复制。性能测试与使用示例。
快速开始
需要 macOS、Python 3.11+,以及本机安装的剪映。
git clone https://github.com/Capricornus-joe/jianying-local-mcp.git
cd jianying-local-mcp
bash setup.sh
bash run.sh doctor按 安装与配置连接 MCP 客户端,创建第一个草稿。文档提供了纯文字示例和批量编辑示例,无需下载测试素材。
兼容性
当前版本提供 22 个工具,通过本地 stdio 运行。Mac 草稿兼容性仍在测试中,生成后需要在剪映内检查和导出。
仅修改本工具管理的计划,每次保存为新版本。
剪映中的手动修改不会自动同步回 MCP。
不支持解密草稿、直接改写任意已有工程或可靠的 Mac 原生自动导出。
部分原生效果依赖本机缓存和剪映版本。
详细支持范围见 兼容性说明。
文档与贡献
工具参考 · 排错指南 · 草稿结构 · 贡献指南 · 更新记录
问题反馈请提交 Issue,附上版本、操作步骤和脱敏错误信息。复现素材请使用合成文件。
许可证
代码采用 MIT,依赖与参考项目见 第三方说明。案例视频和截图仅供项目展示,详见 媒体授权。本项目与剪映、CapCut、字节跳动无隶属关系。
Available Tools
22 toolsadd_srtA
Import SRT text into a new managed revision. Invalid cues fail explicitly; no partial import.
Inputs: name (required), content (required), new_name (required), color, +5 more.
apply_motion_presetA
Create clip-relative motion keyframes: zoom_in/out, pan_left/right, slide_up/down, fade_in/out, pulse. Existing keyframes on the same properties are replaced. Alpha animation requires exported-frame verification in your installed app.
Inputs: name (required), preset (required), clip_ids (required), new_name (required), +3 more.
apply_native_resourceA
Apply one uniquely cached catalog-free transition or entrance/exit animation. resource_kind is transition/video_animation/text_animation; resource_name is an exact name from list_native_resources. A transition attaches to the outgoing visual clip. Animation replaces the same phase while preserving its other phase. This creates a new managed revision and never downloads resources.
Inputs: name (required), clip_ids (required), new_name (required), resource_kind (required), +4 more.
batch_editA
Apply 1-100 ordered editing steps in memory, then save ONE new revision.
Each step has action plus the fields of its corresponding tool: edit(operations), features(clip_ids,features), motion(clip_ids,preset,strength?), subtitles(content,track?,offset?,font_size?,color?), style_subtitles(style,track?,clip_ids?), reorder(track,clip_ids,start?), ripple_delete(start,end). No intermediate project or media copies are created. Invalid steps abort before any project write. Does not publish or export.
Inputs: name (required), steps (required), new_name (required), dry_run, +1 more.
check_environmentARead-only
Detect the installed app, local draft folder, implemented features and limitations.
Inputs: no named parameters.
create_draftA
Validate/build a new self-contained Mac draft; does not register it in the native app.
plan fields: name, width=1920, height=1080, fps=30, clips=[]. Each clip: id(optional unique ASCII), kind(video/audio/image/text), track, start, duration. Media requires absolute path, optional source_start=0, speed=1, volume=1. Text requires text, optional font_size=48, color=#FFFFFF, x=0,y=-0.75. Coordinates are normalized; font size has an experimental /6 mapping to native schema units. Same-track overlaps are rejected; overlays need separate tracks. Duration is timeline seconds, source duration=duration*speed. dry_run=True writes nothing; false copies media and writes a new project.
Inputs: plan (required), dry_run, include_plan.
edit_draftA
Create a new revision of an MCP-managed project; source always remains unchanged.
Operations: {op:append,clip:{...}}, {op:remove,id:clip_id}, {op:update,id:clip_id,changes:{start,duration,source_start,speed,volume,text,...}}, {op:split,id:clip_id,at:timeline_seconds}. Trim/move through update; gaps are preserved and there is no implicit ripple editing. Get IDs using read_managed_project.
Inputs: name (required), new_name (required), operations (required), dry_run, +1 more.
export_srtARead-only
Return a managed project's subtitles as SRT text; does not write or upload files.
Inputs: name (required), track.
extract_frameB
Extract a NEW PNG at a source time for inspection, covers or freeze frames. Add the output as an image clip to hold it for any desired timeline duration.
Inputs: path (required), time (required), output_dir (required), dry_run.
inspect_mediaARead-only
Read duration, resolution and audio presence of an absolute local media path; no uploads.
Inputs: path (required).
list_managed_projectsARead-only
List only projects authored by this MCP in its configured workspace.
Inputs: no named parameters.
list_motion_presetsARead-only
List local linear motion recipes; native exported behavior has version-specific limits.
Inputs: no named parameters.
list_native_resourcesARead-only
Find reviewed native video/text animations and transitions in the local effect cache. kind: all, animation, video_animation, text_animation, transition. Cache presence and public catalog pricing do not prove current account entitlement or playback. No effect scripts execute here and nothing is downloaded.
Inputs: kind, query, cache_root.
montage_createB
Assemble local videos/photos in order. None uses full video lengths; audio-only inputs fail. Fixed duration uses the shorter of requested and source length. Copies all media into a new draft.
Inputs: name (required), paths (required), fps, track, +6 more.
process_mediaA
Create NEW media with baked local effects: brightness[-1,1],contrast[0,3], saturation[0,3],gamma[0.1,10],reverse,extract_audio,normalize_audio,denoise_audio. Boolean operations use true/false. Source is untouched; this is preprocessing, not editable native adjustment parameters. Reverse limit 10 minutes. Output has a unique filename and can be reused with create_draft or montage_create.
Inputs: path (required), operations (required), output_dir (required), dry_run.
publish_draftA
Add a managed revision as a NEW native draft and register it on Jianying's home page.
draft_root must be the absolute existing com.lveditor.draft folder with a recognized plaintext root_meta_info.json. Fully quit Jianying first and keep it closed until a real publication finishes. Defaults to no-write validation. Existing drafts are never replaced; the index is backed up. Native edits are not synced back to the managed source. Publishing does not launch the app or export video. Requires native folder write access.
Inputs: name (required), draft_root (required), dry_run.
read_managed_projectARead-only
Read a compact summary; view=clips returns paged clip IDs/timing (limit<=200). Use track to filter a clip page. view=full explicitly returns the complete plan.
Inputs: name (required), view, limit, track, +1 more.
read_native_draftBRead-only
Inspect a plaintext native draft directory/file without changing it. Encoded drafts return unsupported.
Inputs: path (required).
reorder_trackA
Reorder ALL clips of one track into a gapless sequence; other tracks remain unchanged.
Inputs: name (required), track (required), clip_ids (required), new_name (required), +3 more.
ripple_deleteC
Delete a timeline interval from all tracks, trim crossing clips and close the gap. Source in-points account for playback speed. Animated intervals may be rejected.
Inputs: end (required), name (required), start (required), new_name (required), +2 more.
set_clip_featuresA
Apply advanced controls to selected clips in a new revision.
Groups: transform {x,y,scale_x,scale_y,rotation,opacity,flip_horizontal,flip_vertical}; crop {left,top,right,bottom} normalized source bounds; text_style supports bold, italic,underline,alignment,stroke_color,stroke_width,background_color, background_opacity,background_radius,shadow_color,shadow_opacity,shadow_diffuse, shadow_distance,shadow_angle,letter_spacing,line_spacing; keyframes {x|y|scale_x|scale_y|rotation|opacity:[{time,value}]} with clip-relative seconds and linear interpolation; audio_fade {in,out} seconds. mask {shape:circle|rectangle|linear,x,y,width,height,rotation,feather:0..100, invert,round_corner:0..100}; circle width defaults to compensate aspect ratio. animations [{type:in|out|group,duration,resource:{name,effect_id,resource_id,path}}]; transition_out {duration,resource:{name,effect_id,resource_id,path,is_overlap}}. Features merge per group for transform/style/keyframes; others replace. Pass null for a group to remove it. Resolve downloaded native resources first.
Inputs: name (required), clip_ids (required), features (required), new_name (required), +2 more.
style_subtitlesA
Batch update subtitle font_size/color/x/y by track or clip IDs, in a new revision.
Inputs: name (required), style (required), new_name (required), track, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 22 tools
Most tools map to distinct resources/actions, but batch_edit intentionally mirrors operations from edit_draft, set_clip_features, motion, subtitles, reorder_track, and ripple_delete, creating overlapping selection paths. style_subtitles also partially overlaps with set_clip_features' text_style group.
Names are overwhelmingly snake_case imperative verb + object, like list_*, read_*, create_draft, export_srt, and apply_native_resource. montage_create is inverted and batch_edit/ripple_delete are less clearly verb-first, but these are minor deviations.
22 tools is in the heavy range, though the domain is broad enough that most tools serve a distinct purpose. The batch_edit meta-tool duplicating many other operations makes the surface feel larger than necessary.
The set covers the main local draft lifecycle well: environment checks, media preprocessing, project create/list/read/edit/publish, subtitles, motion, and native resources. Missing delete/revert and render/export are notable but agents can work around them.
Maintenance
Related MCP Connectors
AI video editor for agents and humans: timeline, captions, color, audio and generation as MCP tools.
Build, run, schedule, and publish AI video pipelines to YouTube and TikTok from any MCP client.
CapCut MCP server for ChatGPT, Claude and any AI agent: list drafts, export draft, add auto captions, share draft for review, invite members to a space, set member role, transfer editing permission and search templates in your own CapCut account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to CapCut yourself; Cotlet does not store your password and you need no CapCut API key. About the official CapCut API: Partly. CapCut has an official plugin for the ChatGPT desktop app that builds drafts and adds captions, effects and templates (capcut.com, checked 6 Nov 2026). Setup and FAQ: https://cotlet.dev/integrations/capcut-api-mcp-server
Direct AI video, image, music and storyboard production from any MCP client.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI assistants to create and edit professional videos through natural language by automating JianYing (CapCut) video production workflows. Supports adding media segments, effects, transitions, animations, and exporting editable project files.20325-
- FlicenseNot gradedqualityFmaintenanceAutomates CapCut video editing through an HTTP/MCP API, enabling draft creation, material addition (video, audio, text, images), effects, and AI-powered enhancements via natural language.96-
- AlicenseAqualityCmaintenanceEnables AI agents to programmatically edit CapCut Desktop and JianYing Pro projects by directly manipulating native draft files, supporting multi-track timelines, keyframing, transitions, subtitles, and headless previews.244MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to build CapCut video draft projects on disk — adding video and image clips, audio with fades, text overlays, SRT subtitles, filters, transitions, animations and keyframes, then saving the draft for editing and opening in CapCut. It also lists existing drafts, browses available effects and fonts, and summarizes track, duration and segment details.MIT