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
See pricing

Video clipping MCP servers compared

Video clipping MCP servers compared
ServerHow it connectsToolsBilling
clipsdkHosted https://mcp.clipsdk.com/mcp with your API key as a header, or local over stdio: npx -y github:bitgate/clipsdk-mcp3$0.03 a source minute
OpusClipHosted https://mcp.opus.pro/mcp with OAuth, or npx @opusclip/mcp37Plan credits; the API stops at 15 hours a month on Pro (Beta) and Max
KlapHosted https://api.klap.app/mcp/agents, plus a ChatGPT app and a Claude connector18Klap account
OpenShortsHosted mcp.openshorts.app/mcp8Cloud 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.

  1. 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"
  2. Cursor or Windsurf, hosted

    Cursor reads .cursor/mcp.json in your project or ~/.cursor/mcp.json. Windsurf: Settings, Cascade, MCP Servers, View raw config, with serverUrl in place of url.

    mcp.json
    {
      "mcpServers": {
        "clipsdk": {
          "url": "https://mcp.clipsdk.com/mcp",
          "headers": { "Authorization": "Bearer csdk_live_xxx" }
        }
      }
    }
  3. 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}" }
        }
      }
    }
  4. Codex or Gemini CLI, hosted

    Codex reads this from ~/.codex/config.toml, with CLIPSDK_KEY set 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"
  5. Claude Code, local

    One command. Add --scope project to share it with your team through .mcp.json.

    Terminal
    claude mcp add clipsdk --env CLIPSDK_KEY=csdk_live_xxx -- npx -y github:bitgate/clipsdk-mcp
  6. Cursor, 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" }
        }
      }
    }
  7. 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}" }
        }
      }
    }
  8. Ask for clips

    Plain words work: "make 3 clips from ./talks/keynote.mp4 with karaoke captions". Locally, create_clips uploads the file and saves the clips to clipsdk-output/keynote/, best first, with SRT and VTT files in captions/. Hosted, the agent calls create_upload, runs the curl command it returns, then create_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.

POST/v1/clipsTry it
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"
  }'
Clip 1: Why Convection Fails in Microgravity, 59 seconds.

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) or create_upload's video_url (hosted). It waits up to 50 seconds, then hands back a job_id if 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, the video_url and a curl command that sends the file straight to storage, never through the MCP server.
  • upload_file (local): uploads a local video and returns a video_url. Rarely needed, since the local create_clips uploads 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
get_job result, trimmed to one clip
{
  "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.

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.

Two studio microphones on a desk in a dark room lit by a red glow