Connects Claude to the full CutPro API for AI-driven video clipping. You get 34 tools covering the entire workflow: analyze a long video, submit it for clipping, list the AI-generated clips sorted by rating, apply editing templates, render to MP4, and publish to TikTok, Instagram, or YouTube. Works over stdio for local clients and a hosted Streamable HTTP endpoint with OAuth for ChatGPT and Claude.ai. Requires a CutPro Pro plan and API key. Token-efficient by design: list operations cap results and omit signed URLs unless requested. Reach for this when you want to automate virality from raw footage without leaving the LLM context.
Public tool metadata for what this MCP can expose to an agent.
get_workspaceThe workspace this key resolved to, with plan and role.The workspace this key resolved to, with plan and role.
No parameter schema in public metadata yet.
get_balanceCurrent credit balance of the workspace.Current credit balance of the workspace.
No parameter schema in public metadata yet.
get_balance_historyLedger of credits added and consumed.4 paramsLedger of credits added and consumed.
pageintegertypestringlimitintegerreference_typestringlist_videosYour source video library.3 paramsYour source video library.
pageintegersortstringlimitintegerdelete_videoDelete a source video and its submissions/clips.1 paramsDelete a source video and its submissions/clips.
video_idstringstart_uploadGet a presigned URL to upload your own video file. PUT the bytes to upload_url (same content_type), then call complete_upload. Max 2 GB; .mp4/.mov/.webm/.mkv.3 paramsGet a presigned URL to upload your own video file. PUT the bytes to upload_url (same content_type), then call complete_upload. Max 2 GB; .mp4/.mov/.webm/.mkv.
file_namestringfile_sizenumbercontent_typestringcomplete_uploadRegister a finished upload (after the PUT) and get its metadata and credit cost. Returns a video_id for submit_clipping.5 paramsRegister a finished upload (after the PUT) and get its metadata and credit cost. Returns a video_id for submit_clipping.
widthnumberheightnumberdurationnumbervideo_idstringfile_namestringanalyze_videoPreview metadata and credit cost of a public video URL (YouTube, Twitch, Kick, TikTok). Free. Returns a video_id for submit_clipping.1 paramsPreview metadata and credit cost of a public video URL (YouTube, Twitch, Kick, TikTok). Free. Returns a video_id for submit_clipping.
urlstringsubmit_clippingStart AI clipping. Charges credits immediately (call analyze_video first). Returns submission_id to poll with get_submission.5 paramsStart AI clipping. Charges credits immediately (call analyze_video first). Returns submission_id to poll with get_submission.
video_idstringtimeframeobjectstrategy_idstringtemplate_idstringsource_languagestringauto · en · ptlist_submissionsClipping jobs for a video.3 paramsClipping jobs for a video.
pageintegerlimitintegervideo_idstringget_submissionPoll a submission until status is 'completed' or 'failed'.2 paramsPoll a submission until status is 'completed' or 'failed'.
video_idstringsubmission_idstringdelete_submissionDelete a submission and its clips.2 paramsDelete a submission and its clips.
video_idstringsubmission_idstringlist_clipsClips of a completed submission, rating-sorted. URLs omitted unless include_urls is true (they are long).5 paramsClips of a completed submission, rating-sorted. URLs omitted unless include_urls is true (they are long).
limitintegervideo_idstringmin_ratingnumberinclude_urlsbooleansubmission_idstringapply_templateApply an editing template to clips of a submission in bulk. Omit clip_ids to apply to all.4 paramsApply an editing template to clips of a submission in bulk. Omit clip_ids to apply to all.
clip_idsarrayvideo_idstringtemplate_idstringsubmission_idstringdelete_clipDelete a single generated clip.3 paramsDelete a single generated clip.
clip_idstringvideo_idstringsubmission_idstringlist_templatesEditing templates to apply to clips. Use an id as template_id.4 paramsEditing templates to apply to clips. Use an id as template_id.
pageintegersortstringlimitintegerfilterstringrender_clipRender a clip to a final MP4. Returns render_id (poll with get_render). download_url is included when served from cache.3 paramsRender a clip to a final MP4. Returns render_id (poll with get_render). download_url is included when served from cache.
clip_idstringvideo_idstringsubmission_idstringlist_rendersYour render jobs.3 paramsYour render jobs.
pageintegerlimitintegerstatusstringget_render_limitsRender quota and limits for the workspace.Render quota and limits for the workspace.
No parameter schema in public metadata yet.
get_renderPoll a render until status is 'completed'.1 paramsPoll a render until status is 'completed'.
render_idstringget_render_downloadSigned download URL of a completed render.1 paramsSigned download URL of a completed render.
render_idstringcancel_renderCancel an in-progress render or delete a finished one.1 paramsCancel an in-progress render or delete a finished one.
render_idstringstart_bulk_downloadBundle several renders into one download. Returns a jobId to poll with get_bulk_download.1 paramsBundle several renders into one download. Returns a jobId to poll with get_bulk_download.
render_idsarrayget_bulk_downloadPoll a bulk download job until ready.1 paramsPoll a bulk download job until ready.
job_idstringcreate_postPublish rendered clips to connected accounts. Each video has an editId (the render's edit_setting_id) and targets (connectionId + per-platform metadata). Set scheduled_at (ISO 8601) to schedule.2 paramsPublish rendered clips to connected accounts. Each video has an editId (the render's edit_setting_id) and targets (connectionId + per-platform metadata). Set scheduled_at (ISO 8601) to schedule.
videosarrayscheduled_atstringlist_postsYour posts.3 paramsYour posts.
pageintegerlimitintegerstatusstringget_postA post with its per-account items and statuses.1 paramsA post with its per-account items and statuses.
idstringupdate_postUpdate a pending post, e.g. reschedule or adjust items.3 paramsUpdate a pending post, e.g. reschedule or adjust items.
idstringitemsarrayscheduled_atstringpublish_postTrigger immediate publishing of a post.1 paramsTrigger immediate publishing of a post.
idstringretry_post_itemRetry a single failed post item without disturbing the others.2 paramsRetry a single failed post item without disturbing the others.
idstringitem_idstringdelete_post_itemRemove a single item from a post.2 paramsRemove a single item from a post.
idstringitem_idstringdelete_postDelete an entire post.1 paramsDelete an entire post.
idstringlist_connectionsConnected social accounts. Use an id as connectionId in create_post.3 paramsConnected social accounts. Use an id as connectionId in create_post.
pageintegerlimitintegerplatformstringget_connectionA single connected account.1 paramsA single connected account.
idstringA Model Context Protocol (MCP) server that turns long videos into viral clips with AI. It exposes the full CutPro API as tools, so an LLM can run the whole flow: analyze a video, clip the best moments, render the final MP4, and publish to TikTok, Instagram and YouTube.
list_clips is rating sorted, capped, and omits long signed URLs unless asked.Most clients use the same JSON. Add your API key under env:
{
"mcpServers": {
"cutpro": {
"command": "npx",
"args": ["-y", "@cutpro/mcp"],
"env": { "CUTPRO_API_KEY": "<your-api-key>" }
}
}
}
After installing via a button, add your CUTPRO_API_KEY to the server's env.
claude mcp add cutpro --env CUTPRO_API_KEY=<your-api-key> -- npx -y @cutpro/mcp
Add to claude_desktop_config.json (Settings, Developer, Edit Config):
{
"mcpServers": {
"cutpro": {
"command": "npx",
"args": ["-y", "@cutpro/mcp"],
"env": { "CUTPRO_API_KEY": "<your-api-key>" }
}
}
}
Add the standard config above to the client's MCP settings (mcp.json / mcpServers).
Open the MCP Servers panel, choose Configure, and add the standard config above.
gemini mcp add cutpro npx -y @cutpro/mcp -e CUTPRO_API_KEY=<your-api-key>
Add to ~/.codex/config.toml:
[mcp_servers.cutpro]
command = "npx"
args = ["-y", "@cutpro/mcp"]
env = { "CUTPRO_API_KEY" = "<your-api-key>" }
Use the hosted server. Add a custom connector pointing to:
https://mcp.cut.pro
You authorize with your CutPro API key on a consent page (OAuth), so no local setup is needed.
The server is configured with environment variables.
| Variable | Description | Required |
|---|---|---|
CUTPRO_API_KEY | Your CutPro API key (Pro plan). | Yes (stdio) |
CUTPRO_WORKSPACE_ID | Selects the workspace for multi-workspace keys. | No |
CUTPRO_API_URL | Override the API base URL. Defaults to https://api.cut.pro/api/v1. | No |
| Variable | Description |
|---|---|
MCP_TRANSPORT=http / PORT | Serve Streamable HTTP at the root instead of stdio. |
MCP_OAUTH=1 | Enable the full OAuth 2.1 layer (discovery, DCR, PKCE) for browser clients. |
MCP_PUBLIC_URL | Public endpoint, e.g. https://mcp.cut.pro. Its origin becomes the OAuth issuer. |
MCP_REDIS_URL | Back OAuth state with Redis so it survives restarts and scales across instances. |
MCP_TRANSPORT=http PORT=8787 MCP_OAUTH=1 \
MCP_PUBLIC_URL=https://mcp.cut.pro MCP_REDIS_URL=redis://127.0.0.1:6379 \
npx -y @cutpro/mcp
In OAuth mode the user authorizes with their own API key on a consent page; the access token maps server side to that key. Without MCP_REDIS_URL, an in-memory store is used (single instance, state lost on restart).
Each tool carries read-only / write / destructive annotations so clients can plan calls.
io.github.getcutpro/cutproMIT
CUTPRO_API_KEY*secretYour CutPro API key (Pro plan). Generate one at https://cut.pro/studio/me/api-keys.
CUTPRO_WORKSPACE_IDOnly needed for multi-workspace keys.
miapre/html-to-figma-design-system
ie3jp/illustrator-mcp-server
coding-solo/godot-mcp
ivanmurzak/unity-mcp
yctimlin/mcp_excalidraw
figma/mcp-server-guide