Integration
clipsdk's MCP server gives Claude Code, Cursor and VS Code 3 tools that cut long videos into ranked, captioned clips at $0.03 a source minute: hosted at mcp.clipsdk.com, or open source and local on Node 20 or newer.
Video clipping MCP server: a hosted URL or one npx line, 3 tools, 3 ranked clips in under 90 seconds
Paste the URL and your key into your editor, or start the local server with npx, then ask for clips: the agent waits for the render and gets each MP4, poster and caption file.
Updated
Or one API call
$0.03per source minute
- Every clip included, up to 1080p60 and 20 Mb/s
- $1 free to start, 33 minutes of video
- Prepaid credit, no subscription
Video clipping MCP servers compared
| Server | How it connects | Tools | Billing |
|---|---|---|---|
| clipsdk | Hosted https://mcp.clipsdk.com/mcp with your API key as a header, or local over stdio: npx -y github:bitgate/clipsdk-mcp | 3 | $0.03 a source minute |
| OpusClip | Hosted https://mcp.opus.pro/mcp with OAuth, or npx @opusclip/mcp | 37 | Plan credits; the API stops at 15 hours a month on Pro (Beta) and Max |
| Klap | Hosted https://api.klap.app/mcp/agents, plus a ChatGPT app and a Claude connector | 18 | Klap account |
| OpenShorts | Hosted mcp.openshorts.app/mcp | 8 | Cloud minutes, from $12 a month for 100 |
Other servers as their own docs describe them, checked the day this page was updated.
Install it
Two ways in, both with a key that starts with csdk_live_ from sign up. The hosted server at https://mcp.clipsdk.com/mcp needs nothing installed and takes the key as a Bearer header. The local server starts from GitHub with npx over stdio on Node 20 or newer, uploads local files itself and saves the clips into your project. Source and README: bitgate/clipsdk-mcp.
Claude Code, hosted
One command and nothing to install. The clips come back as links.
Terminal claude mcp add --transport http clipsdk https://mcp.clipsdk.com/mcp --header "Authorization: Bearer csdk_live_xxx"Cursor or Windsurf, hosted
Cursor reads
.cursor/mcp.jsonin your project or~/.cursor/mcp.json. Windsurf: Settings, Cascade, MCP Servers, View raw config, withserverUrlin place ofurl.mcp.json { "mcpServers": { "clipsdk": { "url": "https://mcp.clipsdk.com/mcp", "headers": { "Authorization": "Bearer csdk_live_xxx" } } } }VS Code, hosted
.vscode/mcp.json. VS Code asks for the key once and stores it encrypted..vscode/mcp.json { "inputs": [{ "type": "promptString", "id": "clipsdk-key", "description": "clipsdk API key", "password": true }], "servers": { "clipsdk": { "type": "http", "url": "https://mcp.clipsdk.com/mcp", "headers": { "Authorization": "Bearer ${input:clipsdk-key}" } } } }Codex or Gemini CLI, hosted
Codex reads this from
~/.codex/config.toml, withCLIPSDK_KEYset in your environment. Gemini CLI takes one command:gemini mcp add --transport http --header "Authorization: Bearer csdk_live_xxx" clipsdk https://mcp.clipsdk.com/mcp.~/.codex/config.toml [mcp_servers.clipsdk] url = "https://mcp.clipsdk.com/mcp" bearer_token_env_var = "CLIPSDK_KEY"Claude Code, local
One command. Add
--scope projectto share it with your team through.mcp.json.Terminal claude mcp add clipsdk --env CLIPSDK_KEY=csdk_live_xxx -- npx -y github:bitgate/clipsdk-mcpCursor, Windsurf or Claude Desktop, local
The same Cursor and Windsurf files, or Claude Desktop's Settings, Developer, Edit Config. Same entry in all three.
mcp.json { "mcpServers": { "clipsdk": { "command": "npx", "args": ["-y", "github:bitgate/clipsdk-mcp"], "env": { "CLIPSDK_KEY": "csdk_live_xxx" } } } }VS Code, local
.vscode/mcp.json, the same prompt for the key..vscode/mcp.json { "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}" } } } }Ask for clips
Plain words work: "make 3 clips from ./talks/keynote.mp4 with karaoke captions". Locally,
create_clipsuploads the file and saves the clips toclipsdk-output/keynote/, best first, with SRT and VTT files incaptions/. Hosted, the agent callscreate_upload, runs thecurlcommand it returns, thencreate_clips, and gets the clips as links.
The request create_clips sends
Both servers turn create_clips arguments into this request. The local one adds ?wait=0 and an Idempotency-Key, then follows the job itself; the hosted one passes wait_s as ?wait and idempotency_key as the header. Try it opens New clips with the same video and settings.
curl https://api.clipsdk.com/v1/clips \
-H "Authorization: Bearer $CLIPSDK_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://api.clipsdk.com/f/lib/demo/thermal-energy-lesson.mp4",
"clips": 3,
"captions": "karaoke"
}'The 3 tools
Both servers have create_clips and get_job; the third gets a local file to clipsdk.
create_clips: turns a long video into 1-20 clips, with clip count, length, aspect, reframe, captions, language and a prompt. The video is a direct link, a local path (local server) orcreate_upload'svideo_url(hosted). It waits up to 50 seconds, then hands back ajob_idif the job is still running.get_job: keeps waiting on that job and returns the clips, or explains why it failed. The local server also saves them to disk.create_upload(hosted): returns a one-hour upload link, thevideo_urland acurlcommand that sends the file straight to storage, never through the MCP server.upload_file(local): uploads a local video and returns avideo_url. Rarely needed, since the localcreate_clipsuploads local paths itself.
What our run returned
We started the local server with npx from GitHub, the way a client does, and called create_clips on a NASA lesson just over 4 minutes long, with 3 clips and karaoke captions. After about 50 seconds it answered that the job was still rendering, and one get_job call later the files were on disk. The job took under 90 seconds from request to finish:
- Why Convection Fails in Microgravity: score 88, 59 seconds
- Ocean Life vs. Astronaut Underwear: score 85, 27 seconds
- How Astronauts Stay Cool in Space: score 82, 33 seconds
{
"status": "succeeded",
"job_id": "job_05egdghbe8w9fff96urx",
"folder": ".../thermal-energy-lesson",
"clips": [
{
"rank": 1,
"score": 88,
"title": "Why Convection Fails in Microgravity",
"reason": "A counter-intuitive scientific fact serves as the hook, with the explanation of why fans are necessary as the payoff.",
"start_s": 122.93,
"end_s": 181.84,
"duration_s": 58.916,
"video": ".../thermal-energy-lesson/01-why-convection-fails-in-microgravity.mp4",
"srt": ".../thermal-energy-lesson/captions/01-why-convection-fails-in-microgravity.srt"
}
]
}ChatGPT and claude.ai
ChatGPT (OpenAI docs) and claude.ai (Claude docs) add MCP servers by URL and sign in with OAuth or no authentication. The hosted clipsdk server takes your API key as a header and has no OAuth, so neither can add it yet; claude.ai's header option is a beta for a limited set of organizations, and we have not tested it. OpenAI's Secure MCP Tunnel can reach the local stdio server (OpenAI docs), but we have not tested that either.
If you need clips inside ChatGPT or claude.ai today, Klap ships a ChatGPT app and a Claude connector, and OpusClip and OpenShorts run hosted MCP servers with OAuth.
What it costs
The local server is MIT-licensed and free, and the hosted one adds no fee: both call the clipsdk API with your key. The API bills $0.03 per source minute, and $0.02 past 2,000 minutes a month, so that lesson cost about $0.13 at list price. Failed jobs cost nothing. New accounts get $1 of free credit, about 33 minutes, and clips carry no watermark. See pricing.
Limits are the API's: videos up to 3 hours or 5 GB, 3 jobs at once and 200 a day.
Questions, answered
Is there a hosted URL?
Yes: `https://mcp.clipsdk.com/mcp`, over Streamable HTTP, with your API key as a Bearer header. The local clipsdk-mcp is not on npm: clients start it from GitHub with `npx -y github:bitgate/clipsdk-mcp` on Node 20 or newer.
Can it clip a YouTube link?
No. clipsdk refuses page links, YouTube and Twitch included. Pass a local file or a direct https link to the video file, up to 3 hours or 5 GB.
Does it work in ChatGPT?
Not yet. ChatGPT signs in to MCP servers with OAuth or not at all, and the hosted clipsdk server takes an API key header instead.
What happens when a job takes longer than the tool call?
`create_clips` waits up to 50 seconds by default, then returns the `job_id`, and the agent calls `get_job` to keep waiting. On the hosted server, `wait_s` sets the wait from 0 to 60 seconds; locally, `CLIPSDK_WAIT_S` sets it from 0 to 300.
Keep reading
- ClaudeThe clipsdk MCP server plus a /clipsdk skill for Claude Code, and a config entry for Claude Desktop, at $0.03 a source minute.
- clipsdk + n8n: new episodes in, YouTube Shorts outImport a 13-node n8n workflow: a new Drive episode goes to clipsdk, clips scoring 85 or more upload to YouTube and the rest go to Airtable. Built-in nodes only, from $0.03 per minute.
- POST /v1/clips referencePOST /v1/clips takes a video URL and returns up to 20 clips of 10 to 90 s, scored 0 to 100. Defaults: 5 clips of 20 to 60 s, 9:16 at 1080x1920, bold captions, auto reframe.
- Upload a file to clipsdkUpload videos up to 5 GB and 3 hours: POST /v1/uploads returns a signed upload_url that works for 1 hour, you PUT the bytes, then pass video_url to POST /v1/clips.
- ZapierA Custom Request sends the video, a Catch Hook Zap receives the ranked clips, at $0.03 a source minute.
- MakeHTTP Make a request sends the video, a Custom webhook catches the ranked clips, at $0.03 a source minute.
Sources
- bitgate/clipsdk-mcp on GitHub, checked 7 November 2026
- OpusClip: agent setup, checked 7 November 2026
- OpusClip: API limits, checked 7 November 2026
- Klap: MCP, checked 7 November 2026
- OpenShorts: MCP, checked 7 November 2026
- OpenShorts: pricing, checked 7 November 2026
- OpenAI: custom MCP servers, checked 7 November 2026
- OpenAI: Secure MCP Tunnels, checked 7 November 2026
- Claude: connector authentication, checked 7 November 2026
Start free
Your back catalog is full of shorts
Your first $1 is free: 33 minutes of video, every clip included up to 1080p60 and 20 Mb/s.
