OpenClipDocs
Developers & agents

Connect over MCP

Connect your AI assistant to find video highlights, preview clips, and export them with captions through OpenClip.

OpenClip's full remote MCP server exposes 32 tools for clipping, uploads, captions for any short video, media utilities, UGC, account usage, and Brand management. It works in Claude, Cursor, Perplexity, and other clients that support remote MCP servers. Two curated endpoints serve app directories: ChatGPT exposes its 13 clipping, documentation, and short-video caption tools plus two read-only library and mention tools. Claude exposes 27 tools, adding media editing, transcription, upload-based clipping, usage, and saved agent management. See MCP tools for every scope.

Install OpenClip in Claude

The published OpenClip plugin bundles workflow skills and the Claude connection:

  1. Open the listing and click Add.
  2. Review the requested permissions and continue if you approve.
  3. Connect OpenClip in Claude, sign in with your OpenClip account, and approve access.

Ask Claude to check your OpenClip account to verify the connection. You can then ask it to find moments in a video or caption a short video. Creating an OpenClip account does not start a trial or include processing credits; clipping requires an eligible trial or paid plan with credits.

The plugin uses the 27-tool Claude endpoint. For the full 32-tool server, including AI UGC and background removal, use the manual OAuth setup below instead. If you already added OpenClip as a custom connector, enable either that connection or the plugin's connection in a chat to avoid duplicate OpenClip tools.

ChatGPT video library and mentions

On hosts supporting OpenAI Plugin Extensions, open Video library from the sidebar or a conversation panel. It shows your current team's videos, with title search, pagination, processing status, and clip previews. Opening the library or selecting a video does not start a render. Use the existing render controls only when you want a new export.

Selecting a video opens a focused player with the source title. The clip count appears after the clips load. When there are multiple clips, a compact picker lets you choose one without starting an export and brings an offscreen player back into view. Each clip shows its full title, source time range (including hours for longer videos), and labeled AI score. The source range describes the original segment; the player's controls show the duration of the file being played.

A finished captioned video plays inline when available. Preview and Captioned switch between versions when both are available. Playback starts only when you press play, and a newly finished render does not interrupt a preview you started. Create captioned video starts an export; Open captioned video opens the finished file. Back to videos returns to your search. Inline chat cards keep their horizontal carousel.

Opening a completed video restores any captioned render already in progress. If clips or render progress cannot be loaded, Retry clips repeats those reads. A render button waits for host approval before tracking the render. Paused videos show the account restriction returned by OpenClip.

open_video_library accepts {} or optional query and page arguments. search_video_mentions is a read-only tool for the host's desktop composer mention picker, with a required query string that can be empty. On supporting hosts, Use in chat explicitly adds a selected video link to the conversation.

The sidebar accepts app-relative deep links /videos/<video-id>. The host's public plugin URL can target open_video_library with that path after publication. Every opened video is authorized through the same tools as normal chat requests. Host availability varies; the existing inline cards and text tools still work. Directory extensions appear only after the updated MCP inventory is deployed, rescanned, and accepted by the host's review process.

For MCP 2.0 hosts, /mcp/app and /mcp/claude advertise the MCP Apps extension as capabilities.extensions["io.modelcontextprotocol/ui"] in server/discover. Their widget templates remain available through resources/list and resources/read. The full /mcp endpoint does not advertise a widget extension. Connections that retain an older content-hashed widget URI receive the current compatible widget, so a deployment does not require reconnecting the app. These URIs are cache keys, not archived assets: during overlapping deployments or a rollback, an unmatched hash resolves to the serving instance's current widget.

Modern discovery, inventory listings, and resource reads include ttlMs: 0 and cacheScope: "private". Hosts may refresh these responses immediately and must not share them across authorization contexts. Legacy MCP responses are unchanged.

The full server supports two authentication methods. Pick one.

The primary endpoint is:

https://openclip.app/mcp

It uses OAuth 2.1 with dynamic client registration, so there is no key to copy. Paste the URL into your client and sign in with your OpenClip account when prompted. Password, social login, and email-link login return to the pending connector authorization. If you use an email link, open it in the same browser session that started the connection.

After sign-in, including any two-factor verification, review the authorization page and choose Authorize to return to your client. If you already approved that client, OpenClip may return you directly.

Claude Desktop / claude.ai: Customize → Connectors → Add custom connector → paste https://openclip.app/mcp → Add → Connect → sign in.

On Team or Enterprise, an organization owner first adds the server under Organization settings → Connectors → Add → Custom (choose Web if prompted). Members then connect from Customize → Connectors. See Claude's custom connector setup.

Claude Code:

claude mcp add --transport http openclip https://openclip.app/mcp
# then run /mcp to sign in

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "openclip": { "url": "https://openclip.app/mcp" }
  }
}

Cursor runs the OAuth flow when it first connects. Other clients with a "custom connector" or "remote MCP server" option work the same way: paste the URL, sign in.

ChatGPT app endpoint

The OpenClip app for ChatGPT connects to:

https://openclip.app/mcp/app

It uses the same OAuth sign-in as the full server and exposes 15 tools: account details, documentation search, video submission and listing, processing and render status, clip listing and rendering, caption presets, supported providers, transcripts, upload creation, whole-video captioning, video-library browsing, and video mentions.

For an attached ChatGPT video up to three minutes, select it with the file parameter of create_upload. ChatGPT expects the attachment reference and supplies the download metadata automatically. OpenClip imports the bytes and returns uploaded: true; then call caption_video. For other local files, create_upload returns uploaded: false and a presigned URL. The client must PUT the actual bytes before captioning. Creating that upload record alone does not transfer the file. The ChatGPT endpoint does not expose complete_upload. For URL-based clipping, use submit_video; for full upload/clipping workflows and other utilities, use the full MCP server.

The ChatGPT app explains missing credits, inactive subscriptions, and failed payments without checkout links or subscription buttons. A video in pending_credits includes a message explaining the missing processing access, insufficient credits, or failed payment. It is paused, so stop polling until its account restriction has been resolved. The full MCP server retains its normal billing recovery links.

Completed videos can have zero detected clips. For previews or rendering, choose a completed video with available clips and confirm the result of list_clips. Clips appear in source order, so compare virality_score when choosing the highest-scoring moment. Rendering stays within your team's visible clips and may replace that moment's existing final render.

Claude endpoint

OpenClip's Claude connector and plugin connect to:

https://openclip.app/mcp/claude

It uses the same OAuth sign-in as the full server and exposes 27 tools. Alongside clipping, captioning, and documentation search, it supports transcription, video/image editing, format conversion, thumbnail extraction, credit usage, and saved processing agents. In Claude on the web, desktop, and mobile, submitting a video, listing clips, and starting a render can open an interactive card with playable clip previews and a render button. Status checks return data without opening another card. Claude Code shows the same results as text.

Use the published OpenClip plugin for the workflow skills and connection together. For a manual connection without the plugin, go to Customize → Connectors → Add custom connector in Claude, paste https://openclip.app/mcp/claude, and sign in. On Team or Enterprise, use the organization-owner setup above. AI UGC tools and background removal remain available only on the full server at https://openclip.app/mcp.

create_upload on Claude and the full MCP server accepts video, audio, and image files. It returns uploaded: false and a presigned PUT URL; a client with authorized file access must transfer the actual bytes before processing. Claude apps without file transfer should use existing OpenClip media or upload through the matching tool at openclip.app. The video id also identifies audio/image uploads; pass it as file to image editing. Uploading alone starts no processing. When a media utility reaches an account limit, its error explains whether to wait for the daily reset, use a smaller file, or choose a shorter segment; a paid plan still has limits.

For paid video clipping, call complete_upload after PUT. For transcription, media utilities, or whole-video captions, skip complete_upload and call the chosen tool directly. Audio and image files cannot start the clipping pipeline. Use list_agents to find a saved agent and pass its id as agent to submit_video. Call describe_agent_settings before changing advanced settings; logo uploads require a separate PUT followed by set_agent_logo.

Like the ChatGPT app, the Claude endpoint explains missing credits and failed payments without checkout links. A pending_credits video stays paused until the account restriction is resolved in OpenClip.

Option 2: Bearer token

For header-only or programmatic clients that can't run an OAuth flow, use the token endpoint:

https://openclip.app/mcp/key

Generate a token at https://openclip.app/settings/connect ("Generate MCP token"). It is shown once, so store it safely. Send it as an Authorization: Bearer header on every request.

Claude Code:

claude mcp add --transport http openclip https://openclip.app/mcp/key \
  --header "Authorization: Bearer <token>"

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "openclip": {
      "url": "https://openclip.app/mcp/key",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

Scopes

All four endpoints require the mcp:use scope. OAuth tokens for /mcp, /mcp/app, and /mcp/claude request it automatically, and bearer tokens minted for /mcp/key include it. A token without it is rejected with a 403.

Verify the connection

Ask your assistant to call get_account. It returns your account email, team, and remaining credits. A successful response confirms the connection. A zero credit balance does not mean the connection failed.

Get your first useful result

Choose the task that matches what you have:

  • An existing OpenClip video: "Show clips from my latest completed video so I can choose one to export." Preview the available clips, choose a caption style, and render the selected clip.
  • A new podcast, interview, or webinar: "Help me find moments worth sharing from a video. Ask me for its link, then show me previews so I can choose a clip to caption." Send a supported video link when asked. New clipping jobs need an active plan or eligible trial with enough credits; creating an account alone adds no credits.
  • A short video that just needs captions: "Show me caption styles for this video, then caption it with the style I choose." Whole-video captions support videos up to three minutes, use no processing credits, and follow the Quick Captions export allowance. File transfer depends on your client, as described above.

For transcription or media editing on Claude or the full server, ask for that task directly. Audio and image uploads do not need the video clipping pipeline. Job responses explain how to use the requested transcript, image, audio, or video once processing finishes.

Processing is asynchronous, and analysis may return fewer clips than requested or none. Review the results before choosing an export. OpenClip's MCP tools do not publish or schedule social posts.

Check video and render progress every 10 to 15 seconds, or media jobs every 5 to 10 seconds. Stop on a completed, failed, paused, or unavailable state. If work is still in progress after 15 minutes, report its current state and check again later. A failed render does not mean a new render has started; request a retry only when the user wants one.

For whole-video captions, a null output URL is normal while the render is in progress. If transcription completes but render status returns an empty list or not_rendered, call caption_video once more with the same video and preset. This finishes the original request or returns the specific restriction, such as a video exceeding three minutes. If that recovery call returns an error, read render status once because the queued render may have started meanwhile. Follow an in-progress or completed render within the original deadline; otherwise report the error and stop. Do not repeat the recovery call or re-caption a completed output without a new request.

See credits and plans for account access, trial terms, and processing limits.

Agent Skills

Skills teach your agent how to drive OpenClip well: the async polling loops, the upload gotchas, and the per-tool parameter reference. There are two ways to install them.

npx skills add OpenClip-App/agent-skills

This pulls the published set from OpenClip-App/agent-skills for supported agents, including Claude Code, Codex, and Cursor. Alongside the umbrella openclip skill you can choose focused ones for clipping, captions, transcription, media conversion, video editing, thumbnails, background removal, repurposing, and UGC ads. Install only the ones you want.

Claude Code can install the skills and wire up the MCP server in one step instead:

/plugin marketplace add OpenClip-App/agent-skills
/plugin install openclip@openclip

Zip download

For Claude Code without Node, download the bundle at https://openclip.app/mcp/skill. It contains openclip/SKILL.md and openclip/reference.md; extract it into .claude/skills/. Other agents use different discovery paths; the skills CLI above can select the supported agent and install location.

Notes

  • Processing is asynchronous. Your agent submits work, then polls status tools or subscribes to processing notifications when its host supports MCP Events.
  • The clipping pipeline needs credits, funded by a subscription or a running trial. A submission from a team with neither is accepted and parked: submit_video returns a pending_credits status instead of failing, and the video processes once the team is entitled. The full server's media utilities (transcribe, convert, edit, thumbnails, background removal) are free with just an account. caption_video uses no credits and follows the Quick Captions export allowance.
  • Manage or revoke your MCP token any time at https://openclip.app/settings/connect.

Processing notifications (MCP Events)

OAuth connections on /mcp, /mcp/app, and /mcp/claude support webhook subscriptions using MCP 2.0 (2026-07-28). Existing MCP clients and their tools continue to work without changing the initialization flow.

Ask a compatible host to monitor a specific OpenClip video or clip: "Tell me when this video finishes clipping, then show its best three clips." The host discovers video.processing_completed, video.processing_failed, clip.render_completed, and clip.render_failed through events/list. Full MCP and Claude also expose tool_job.completed and tool_job.failed. Each subscription requires the corresponding video, clip, or tool_job ID. Events carry record IDs (clip events also include the parent video ID); use the existing status/read tools for the result.

Subscriptions are scoped to the user, OAuth client, and current team, matching the status/read tools. The host supplies an HTTPS callback and a Standard Webhooks signing secret, answers a signed verification challenge, and renews before refreshBefore. The lifetime is bounded by the requested duration, 24 hours, and the access token's expiry, whichever comes first. Renew the OAuth token and call events/subscribe again before that deadline to extend an active subscription.

Switching the current team stops delivery and prevents renewal of subscriptions for the previous team. After a team switch or reconnection, subscribe again for a record accessible to the current team. Unsubscribe still works for the previous team's subscriptions.

Callback addresses are checked and pinned on every connection. Secrets are encrypted at rest. Expiration, unsubscribe, disconnect, loss of team access, and account locks also stop delivery. Transient delivery failures are retried with the same event ID. HTTP 410 rejects only that delivery; the subscription stays active. Use events/unsubscribe with the event name, filter and callback URL to cancel it.

Events cover future processing transitions, with no replay of missed events. For an already finished video, read its status directly. A notification does not authorize another render or other changes. Clients without event support can continue polling the existing status tools. API-key and stdio connections do not accept event subscriptions. ChatGPT availability depends on host support and the plugin's MCP rescan/review; this is not a promise of directory placement.

On this page