clipsdk-mcp
OfficialThis server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
clipsdk-mcp
Let your coding agent cut a long video into its best short clips. A podcast, interview, webinar or stream goes in; vertical MP4s with burned-in captions come out, each with a title, a score and a ready-to-post caption. The clipping runs on clipsdk and the clips land in your project. No ffmpeg, whisper or GPU on your machine.
> cut ./episode-42.mp4 into 5 clips for TikTok
> find the 3 best moments about pricing in https://cdn.example.com/webinar.mp4, 30-45 s each
> make square clips with karaoke captions from ~/Movies/keynote.movThe agent calls create_clips, a local file is uploaded, clipsdk transcribes the video, picks the moments that stand on their own, follows the speaker and renders each clip, and the clips are saved in ./clipsdk-output/<video>/.
Setup
You need Node 20+ and a clipsdk API key (csdk_live_...) from clipsdk.com/dashboard/keys.
Claude Code
claude mcp add clipsdk --env CLIPSDK_KEY=csdk_live_xxx -- npx -y github:bitgate/clipsdk-mcpAdd --scope project to share it with your team through .mcp.json.
Cursor
.cursor/mcp.json in your project (or ~/.cursor/mcp.json for every project):
{
"mcpServers": {
"clipsdk": {
"command": "npx",
"args": ["-y", "github:bitgate/clipsdk-mcp"],
"env": { "CLIPSDK_KEY": "csdk_live_xxx" }
}
}
}Claude Desktop
Settings → Developer → Edit Config (claude_desktop_config.json). Desktop has no project folder, so pass absolute paths and pick where clips go:
{
"mcpServers": {
"clipsdk": {
"command": "npx",
"args": ["-y", "github:bitgate/clipsdk-mcp"],
"env": { "CLIPSDK_KEY": "csdk_live_xxx", "CLIPSDK_OUTPUT_DIR": "~/Movies/clipsdk" }
}
}
}VS Code
.vscode/mcp.json (asks for the key once and stores it encrypted):
{
"inputs": [{ "type": "promptString", "id": "clipsdk-key", "description": "clipsdk API key", "password": true }],
"servers": {
"clipsdk": {
"type": "stdio",
"command": "npx",
"args": ["-y", "github:bitgate/clipsdk-mcp"],
"env": { "CLIPSDK_KEY": "${input:clipsdk-key}" }
}
}
}Windsurf
Settings → Cascade → MCP Servers → View raw config, then add the same mcpServers entry as Cursor.
Related MCP server: framedeck
Tools
Tool | What it does |
| Turns a long video into 1-20 short clips and saves them. Waits up to |
| Keeps waiting on a job that outlived the tool call and saves its clips when it's done. Also explains why a job failed. |
| Uploads a local video and returns a |
create_clips takes:
Parameter | Values | Default |
| Required. A local file path, a direct http(s) link to the file, or a | |
| 1-20. Fewer come back when the video has fewer good moments. |
|
| Shortest clip, 10-85 s. |
|
| Longest clip, 15-90 s, at least |
|
|
|
|
|
|
|
| Burned-in style: |
|
| Spoken language as an ISO 639-1 code like | detected |
| What to look for, up to 500 characters, like | |
| https URL that gets a POST with the finished job, signed with the | |
|
|
|
get_job takes job_id and save. upload_file takes path.
Each job gets a folder of its own, with the clips numbered best first:
clipsdk-output/episode-42/
01-why-pricing-pages-fail.mp4
01-why-pricing-pages-fail.jpg
02-the-metric-nobody-tracks.mp4
02-the-metric-nobody-tracks.jpg
captions/01-why-pricing-pages-fail.srt
captions/01-why-pricing-pages-fail.vtt
...The tool result lists each clip's title, score (0-100: 80 and up post as is, under 50 is weak), start and end in the source, post caption, why it was picked, and its files. A second run on the same video goes into episode-42-2/, so nothing is overwritten. Subtitle files sit in captions/ so players don't stack them on top of the burned-in captions.
Clipping takes minutes: rendering runs about 2x the clip length at 1080p30, four clips at a time, plus the analysis. Tools send progress updates if your client shows them, and a job that outlasts CLIPSDK_WAIT_S comes back as a job_id for get_job. A big upload that outlasts it keeps going in the background, and calling the same tool again picks it up.
Pricing
$0.03 per minute of source video ($0.02 past 2,000 minutes in a UTC month), or $0.03 per minute of delivered clips when that's more. Sources above 1080p, above 60 fps or at a high bitrate (over 55 Mb/s for H.264, 20 Mb/s for other codecs) cost at least $0.08 per clip minute; HDR alone doesn't change the price. Billed per second. Failed jobs and failed renders cost nothing.
Configuration
Variable | Default | |
| Required. Your | |
|
| Where clips are saved, on this computer (not a network share). Relative paths resolve against the project root and may not pass through a link; use an absolute path to save elsewhere. |
|
| Seconds a tool waits before handing back a |
|
| API endpoint. https only; plain http only for localhost. |
The project root is CLAUDE_PROJECT_DIR when Claude Code sets it, else the client's first workspace root, else the directory the server was started in. Roots on another machine are skipped.
Limits
Sources up to 3 hours and 5 GB, as MP4, MOV, WebM or MKV with speech. Per account, shared by its keys: 3 jobs running at once, 200 jobs and 20 GB of uploads per UTC day; past a limit the tool says when to try again. Clips and uploads are kept 7 days.
Links must point at the video file itself. YouTube, TikTok, Instagram, Vimeo, X, Facebook, Twitch, Rumble, Dailymotion and Loom page links are refused, and so are localhost and private addresses, non-default ports and links with a user name or password.
A local file is only uploaded when it starts like an MP4, MOV, WebM or MKV video. Hidden files and folders, meaning names that start with a dot (.env, ~/.ssh), and paths on another machine (\\server\share) are refused.
Up to 8 GiB of clips are saved per job. A download that sends nothing for 60 s, or runs slower than about 64 KiB/s, stops; the clip stays on clipsdk and its link is in the result. Clips are only downloaded from the API's own /f/ links, and never saved through a link inside the project or the output folder. Node can't open or rename relative to a folder handle, so another program running as you could still swap a folder for a link between the last check and the final rename.
Development
npm ci
npm test # unit + tool tests against a fake API
npm run typecheck
npm run bundle # rebuilds dist/index.js, which is committeddist/ is committed so npx github:bitgate/clipsdk-mcp starts without a build step. See AGENTS.md.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Clip videos into captioned shorts, add captions, and schedule posts from AI agents.
Turn long videos into captioned, reframed short clips, thumbnails, and social posts.
Turn long videos into captioned vertical clips, then render and schedule social posts.
Turn a video link into vertical short clips with subtitles: create jobs, poll, get downloads.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables turning any video into scored, captioned, ready-to-post vertical clips directly from your MCP client, with capabilities to download finished MP4s, schedule posts, and discover trending content.45 npmMIT
- AlicenseAqualityCmaintenanceEnables coding agents to turn videos from social platforms or local files into a small set of distinct frames plus a manifest, so they can answer visual questions by reading image paths. Also provides metadata lookup for captions and authors without downloading the video.2MIT
- AlicenseBqualityCmaintenanceEnables AI coding agents to programmatically assemble vertical videos and manage local CapCut Desktop drafts, including AI background removal, audio mastering to -14 LUFS or Demucs vocal isolation, music auto-ducking, punch zooms, karaoke captions, PiP proof overlays, hook badges, safe-zone linting, proxy previews, and EN→ES cloning/dubbing. It outputs real CapCut draft JSON ready for review and export.172MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to turn a meeting recording and transcript into captioned clips, trailers, longform best-ofs, and 1:1/9:16/16:9 social videos. Agents can create projects, inspect transcripts, render jobs, check status, and retrieve output files.MIT