CutPro README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the CutPro listing page.

CutPro MCP

npm version npm downloads CI Release MCP 2026-07-28 License: MIT MCP Registry Smithery

A Model Context Protocol (MCP) server for AI generation of every kind, AI characters and clips. It exposes the full CutPro API as tools, so an LLM can:

  • Generate with any top AI model: images and videos (Veo, Kling, Seedance, Wan, Nano Banana, GPT Image), voices (ElevenLabs, Gemini), music (Suno, Eleven Music, MiniMax), sound effects, talking avatars and 3D models (Rodin, Hunyuan3D, TRELLIS), plus image and video tools (upscale, background removal, editing), from a prompt, images, a video or a sound, with each model's exact price before anything runs.
  • Create AI characters: realistic people that stay consistent across photos and videos, then swap them into any video while scene, camera, motion and sound stay.
  • Clip long videos and live streams: find the best moments and render the final MP4.
  • Post and schedule: publish any clip, generated video or persona video to TikTok, Instagram, YouTube, Facebook, Threads, LinkedIn, Pinterest and Bluesky, now or at a set time.
  • Transcribe: any audio or video into timed captions (SRT, VTT, text or JSON).

Ask in any language. Some things people do with it:

  • "Make a 9:16 ad of my sneakers with Veo and schedule it on TikTok for Friday 6 pm"
  • "Create an upbeat instrumental for my YouTube intro"
  • "Make this photo of me say the script below in Spanish"
  • "Upscale this product photo and remove the background"
  • "Turn this photo of my lamp into a 3D model for my store"
  • "Clip yesterday's podcast into 5 shorts with captions"
  • "Faça uma narração em português deste roteiro" / "Haz un video de una cafetería al amanecer"

Key features

  • Always in sync. Every v1 endpoint is a tool, generated from the live API spec: the model catalog and generation of every kind, AI characters, workspace, credits, videos and uploads, clipping, clips, channel and live monitoring, templates, renders, transcriptions, posts and connections. Chat completions and embeddings stay out: they are for code, and an AI client is already a language model.
  • Runs everywhere. stdio for local clients (Claude Code, Cursor, Claude Desktop, Windsurf, VS Code, Cline, Zed) and a hosted Streamable HTTP endpoint with OAuth for ChatGPT and Claude.ai.
  • Latest protocol. Speaks MCP 2026-07-28 (stateless, server/discover, cacheable lists, multi round-trip requests) and every earlier revision, on the same endpoint.
  • Results you can watch. Clients that support MCP Apps show generated images, videos, voices and music, 3D files, AI characters, clips and renders as an inline player that follows a job until it is ready, with buttons to open it in CutPro, animate an image, use a voice in a video or schedule a post.
  • Asks before it spends. On clients that support elicitation, every call that charges credits shows the price and waits for the user's confirmation before anything is charged.

Getting started

Requirements

  • Node.js 18 or newer.
  • A CutPro account (any plan) and an API key. Generate one at cut.pro/studio/me/api-keys.
  • An MCP-compatible client.

Standard config

Most clients use the same JSON. Add your API key under env:

config.json
{
	"mcpServers": {
		"cutpro": {
			"command": "npx",
			"args": ["-y", "@cutpro/mcp@latest"],
			"env": { "CUTPRO_API_KEY": "<your-api-key>" }
		}
	}
}

Install

Install in VS Code Install in Cursor Connect the hosted server in Cursor Install in LM Studio Install in Goose

After installing via a button, add your CUTPRO_API_KEY to the server's env.

Claude Code
Terminal
claude mcp add cutpro --env CUTPRO_API_KEY=<your-api-key> -- npx -y @cutpro/mcp@latest
Claude Desktop

Add to claude_desktop_config.json (Settings, Developer, Edit Config):

config.json
{
	"mcpServers": {
		"cutpro": {
			"command": "npx",
			"args": ["-y", "@cutpro/mcp@latest"],
			"env": { "CUTPRO_API_KEY": "<your-api-key>" }
		}
	}
}
Cursor / Windsurf / VS Code (manual)

Add the standard config above to the client's MCP settings (mcp.json / mcpServers).

Cline

Open the MCP Servers panel, choose Configure, and add the standard config above.

Gemini CLI
bash
gemini mcp add cutpro npx -y @cutpro/mcp@latest -e CUTPRO_API_KEY=<your-api-key>
Codex

Add to ~/.codex/config.toml:

toml
[mcp_servers.cutpro]
command = "npx"
args = ["-y", "@cutpro/mcp@latest"]
env = { "CUTPRO_API_KEY" = "<your-api-key>" }
ChatGPT and Claude.ai (hosted, no install)

Use the hosted server. Add a custom connector pointing to:

Code
https://mcp.cut.pro

You sign in to cut.pro, pick the workspace and approve the connection, so no API key and no local setup are needed. Any CutPro plan can connect; jobs use the workspace's credits. Disconnect at any time in Settings, under Connected apps.

Claude Code plugin

The plugin bundles the hosted server with a skill that teaches Claude the CutPro workflows:

Terminal
claude plugin marketplace add getcutpro/mcp
claude plugin install cutpro@cutpro

Updates

Every install stays current on its own:

  • Hosted (https://mcp.cut.pro, the Claude plugin and the ChatGPT app): always the latest release, nothing to do.
  • Local (npx -y @cutpro/mcp@latest): on start the server checks npm and, when a newer release exists, hands the session to it. This works even for a pinned version or a stale npx cache. Set CUTPRO_MCP_AUTO_UPDATE=0 to stay on the installed version; the server then tells the model an update is available.
  • Tools: new API endpoints show up as tools within ten minutes, without any release.

Every release is listed with its notes in Releases and CHANGELOG.md.

Configuration

The server is configured with environment variables.

VariableDescriptionRequired
CUTPRO_API_KEYYour CutPro API key.Yes (stdio)
CUTPRO_WORKSPACE_IDSelects the workspace for multi-workspace keys.No
CUTPRO_API_URLOverride the API base URL. Defaults to https://api.cut.pro/api/v1.No
CUTPRO_MCP_AUTO_UPDATE0 keeps the installed version instead of switching to the newest release.No
Self-hosting the remote (Streamable HTTP + OAuth)
VariableDescription
MCP_TRANSPORT=http / PORTServe Streamable HTTP at the root instead of stdio.
MCP_OAUTH=1Enable the full OAuth 2.1 layer (discovery, DCR, PKCE) for browser clients.
MCP_PUBLIC_URLPublic endpoint, e.g. https://mcp.cut.pro. Its origin becomes the OAuth issuer.
MCP_REDIS_URLBack OAuth state with Redis so it survives restarts and scales across instances.
CUTPRO_APP_URLWhere the consent screen lives. Defaults to https://cut.pro.
OPENAI_APPS_CHALLENGEDomain verification token from the OpenAI plugin portal, served at /.well-known/openai-apps-challenge.
bash
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@latest

In OAuth mode the user signs in on cut.pro and approves the app there; cut.pro creates a key for that app and workspace, and the access token maps server side to it. Clients can register dynamically (DCR) or present a Client ID Metadata Document (CIMD). Without MCP_REDIS_URL, an in-memory store is used (single instance, state lost on restart).

Tools

The tools are built from the API's own OpenAPI spec (/api/v1/openapi.json), so they always match the API reference: one tool per endpoint, named after its operationId in snake case (analyzeVideo is analyze_video, createSubmission is create_submission), with the endpoint's own parameters, descriptions and responses. A new endpoint becomes a tool within ten minutes of reaching the API, with no new release of this package.

The usual flows:

  • Anything generated: list_featured_models (or list_models for the full catalog), quote_generation for the exact price, create_generation with that price and wait, then get_generation until it is ready. A model's own fields go in options, named as in its parameters. Pass a ready image's output.image_id to animate it, or a voice's output.audio_id to a talking avatar.
  • AI character: get_persona_catalog, create_persona, get_persona until its photo is ready, save_persona, then quote_persona_swap and create_persona_video to put it in a video.
  • Clips: analyze_video, create_submission, get_submission until it completes, list_clips, render_clip, get_render and download_render.

Annotations come from the spec too: GET is read-only, PUT, PATCH and DELETE are destructive, and a route declares more in its x-mcp extension (spending credits, publishing to a social network, reaching an arbitrary public URL). Routes that need a file uploaded from disk are listed only by the local (stdio) server, since a chat client cannot send bytes.

All tools

99 tools and 10 prompts, generated from the live API spec and the server.

Prompts

Ready-made requests your client offers as shortcuts (the / menu in Claude).

PromptWhat it does
generate_videoTurn an idea into a video with Veo, Kling, Seedance, Wan or any other model.
product_adAn ad image of your product, animated into a vertical video ready to post.
make_musicA song with lyrics, or an instrumental for a video, with Suno, Eleven Music, MiniMax and more.
voiceoverA natural voice reading your script, in any language, ready to put in a video.
talking_avatarA person in a photo speaking your script with a natural voice, in any language.
edit_imageUpscale, remove the background, erase objects or change anything in a photo.
make_3dA 3D model (GLB) from a photo or a description, for games, AR or product pages.
create_personaA realistic person that stays the same in every photo and video.
clip_and_scheduleThe best moments of a long video, rendered and scheduled one per day.
transcribeTimed captions of a video or audio, plus a short summary.

Account: workspace

ToolWhat it doesNotes
get_workspaceGet current workspace

Account: credits

ToolWhat it doesNotes
get_balanceGet balance
get_balance_historyGet credit history
list_credit_offersList plans and credit packs

Clipping: source videos

ToolWhat it doesNotes
create_video_uploadStart an uploadlocal server only
complete_video_multipart_uploadFinalize a multipart uploadlocal server only
abort_video_multipart_uploadDiscard a multipart uploadlocal server only
complete_video_uploadComplete an uploadlocal server only
list_videosList videos
delete_videoDelete a video

Clipping: clip a video

ToolWhat it doesNotes
create_submissionSubmit a video for clipping
analyze_videoAnalyze a video
list_submissionsList submissions
get_submissionGet submission
delete_submissionDelete submission
retry_submissionRetry a failed submission

Clipping: clips

ToolWhat it doesNotes
apply_templateApply template to clips
list_clipsList generated clipsopens the CutPro player
delete_clipDelete a clip
download_clip_subtitlesDownload a clip's captions
render_clipRender a clipopens the CutPro player

Live clipping: monitored channels

ToolWhat it doesNotes
list_monitorsList monitored channels
create_monitorMonitor a channel
get_monitorGet a monitored channel
update_monitorUpdate a monitor
delete_monitorStop watching a channel
start_monitorStart monitoring
stop_monitorStop monitoring
list_broadcastsList broadcasts of a live monitor
list_broadcast_clipsList clips of a broadcast
apply_broadcast_templateApply template to broadcast clips
render_broadcast_clipRender a broadcast clip

Editing: templates

ToolWhat it doesNotes
list_templatesList templates

Editing: export to MP4

ToolWhat it doesNotes
get_render_limitsGet render quota
create_renderRender an edit
list_rendersList renders
create_bulk_downloadStart a bulk download
get_bulk_downloadGet bulk download status
get_renderGet render statusopens the CutPro player
delete_renderCancel or delete a render
download_renderGet render download URLopens the CutPro player

Posting: connected accounts

ToolWhat it doesNotes
list_connectionsList connections
get_connection_linkGet the link to connect an account
get_connectionGet a connection

Posting: social media posts

ToolWhat it doesNotes
create_postCreate a post
list_postsList posts
get_postGet a post
cancel_postCancel a post
update_postUpdate a post
publish_postTrigger publish
retry_post_itemRetry a failed item
delete_post_itemDelete a post item

Transcription

ToolWhat it doesNotes
create_transcription_uploadStart an uploadlocal server only
create_transcriptionTranscribe a media file
list_transcriptionsList transcriptions
get_transcriptionGet transcription status
delete_transcriptionDelete a transcription
get_transcription_cuesGet the transcript as JSON
download_transcriptionDownload the transcript as a subtitle file

AI characters

ToolWhat it doesNotes
get_persona_catalogGet traits, prices and limits
list_persona_presetsList ready-made characters
create_persona_from_presetCreate a persona from a ready-made characteropens the CutPro player
favorite_persona_presetStar a ready-made character
list_personasList personasopens the CutPro player
create_personaCreate a personaopens the CutPro player
upload_persona_faceUpload a reference photolocal server only
quote_persona_swapPrice a swap video
create_persona_source_uploadUpload a source videolocal server only
complete_persona_source_uploadComplete a source video uploadlocal server only
get_personaGet a personaopens the CutPro player
delete_personaDelete a persona
regenerate_personaRegenerate or edit the persona photoopens the CutPro player
restore_persona_versionRestore a persona version
rate_persona_versionRate a persona photo
rate_persona_videoRate a persona video
save_personaSave or rename a persona
create_persona_videoCreate a persona videospends credits, asks first, opens the CutPro player
list_persona_videosList a persona's videosopens the CutPro player
get_persona_videoGet a persona videoopens the CutPro player
read_persona_shot_productRead a product from its page link
upload_persona_shot_photoUpload a product photolocal server only
create_persona_shotCreate a persona photospends credits, asks first
list_persona_shotsList a persona's photos
get_persona_shotGet a persona photo

Generate with AI: models

ToolWhat it doesNotes
list_modelsList every AI model
list_featured_modelsList the models worth starting with

Generate with AI: images, videos, sound and 3D

ToolWhat it doesNotes
get_generation_webhook_secretGet the secret that signs generation webhooks
upload_generation_imageUpload a reference imagelocal server only
upload_generation_mediaUpload an image, video or sound to generate fromlocal server only
quote_generationPrice a generation without generating
create_generationGenerate an image, a video, a sound or a 3D modelspends credits, asks first, opens the CutPro player
list_generationsList generationsopens the CutPro player
get_generationGet a generationopens the CutPro player
delete_generationDelete a generation
open_generation_editOpen a generated or persona video to edit or post
improve_generation_promptRewrite a short request in more detail
rate_generationRate a generation
request_generation_refundAsk for the credits of a generation back
download_generationGet the download link of a generation

Links

License

MIT