Connect your AI agent to Capsule Studio — create projects, render videos, and produce with the Capsule coproducer, right from your chat.
Pick your AI tool and follow the steps. Everything runs against the hosted server — nothing to install or self-host.
If you prefer, after enabling Developer mode on chatgpt.com, you can add the plugin in your ChatGPT desktop app. Once you open Plugins and create a new one, it will direct you to chat with Plugin Creator instead of following the steps above. Tell it to create a Capsule Video plugin using the server URL below.
https://mcp.capsule.video/mcp
{
"mcpServers": {
"capsule": {
"url": "https://mcp.capsule.video/mcp"
}
}
}
[mcp_servers.capsule]
command = "npx"
args = ["-y", "mcp-remote", "https://mcp.capsule.video/mcp"]
npx -y mcp-remote https://mcp.capsule.video/mcp
Not sure where to start? Once connected, ask Claude this:
Not sure where to start? Once connected, ask ChatGPT this:
Not sure where to start? Once connected, ask Cursor this:
Not sure where to start? Once connected, ask Codex this:
Not sure where to start? Once connected, ask your agent this:
Three ways to start. Copy a prompt and point it at your own media.
Capsule also ships video skills — step-by-step recipes the agent loads on demand with list-skills and get-skill. The cutdown example below is one.
No media needed. The agent creates the project (create-project), reads the design system's component catalogue (list-components), places components and sets their text (add-components, set-component). Ask for a frame at one second (get-frame-image) to see it composited. Under a minute end to end.
This runs our video-cutdown skill: the agent loads it (list-skills, get-skill), uploads your video, waits for transcription, proposes an edit decision list for your approval, then inserts the clips (video-cutdown). Upload is quick; transcription is the wait — about 30 seconds per minute of source. The skill uploads through the Add Media widget. In a client without widgets, a public URL uses upload-asset-by-url and check-url-upload, and a local file uses the Studio link from needs_studio. Remove the source clip once the cutdown is in.
The agent uploads the clip through the Add Media widget (add-media). In a client without widgets, a public URL uses upload-asset-by-url and check-url-upload, and a local file uses the Studio link from needs_studio. It then runs Voice Magic on the clip (run-voice-magic), which finishes in seconds for a short clip. set-voice-magic toggles between cleaned and original audio.
| Name | Description |
|---|---|
| list-projects | Lists all projects the user has access to. |
| get-project | Gets a single project by ID. |
| create-project | Create a new empty Capsule project. Optional aspectRatioId sets the initial aspect ratio (defaults to Wide), and optional designSystemId pins the design system. Returns the project ID, design system ID and name, and Studio URL. |
| switch-design-system | Switch a project's design system, or list assignable ones. Remaps components the same way Studio does and clears the theme. |
| list-themes | Lists your brand themes (Studio's Your design systems). Optional projectId includes that project's current theme if missing. |
| set-project-theme | Sets a project's brand theme from list-themes. Applies that theme's design system the same way Studio does. |
| get-brand-data | Gets brand assets for a domain: logos (stored as media assets), fonts, colors, and description. |
| rename-project | Renames a Capsule project by ID. |
| duplicate-project | Duplicate a Capsule project. Returns the new project's ID and Studio URL. |
| delete-project | Deletes a Capsule project by ID. Only the project owner can delete it. |
| set-project-privacy | Sets a project to public (anyone with the link can view) or private (invited collaborators only). |
| get-project-link | Get the Capsule Studio URL for a project. |
| get-frame-image | Renders a project frame at a timeline timecode or a component's build time, composed or as the raw source frame. |
| list-organizations | Lists your Capsule organizations and shows which is your active workspace. |
| switch-organization | Switches your active workspace — the same selection Studio's sidebar makes, so both stay in step. |
| list-aspect-ratios | Lists the aspect-ratio presets a project can be set to, with the id each one is set by. |
| set-project-aspect-ratio | Sets a Capsule project's aspect ratio to one of the presets. |
| inspect-template | Returns the available template input fields for a project's render template. |
| render-variant | Initiates a video render for a project template with the provided inputs. |
| get-render-status | Checks the status of a video render by export ID. |
| get-contact-sheet | Inspects a live project or a finished export as a JPEG contact sheet. |
| list-project-media | Lists the replaceable clip, B-roll, and audio media in a project, in timeline order. |
| replace-asset | Replaces the media asset on a project node with media from a URL. |
| check-transcription | Checks transcription status for uploaded media and inserts the transcript into the project when ready. |
| add-media | Opens the Add Media panel in your chat to upload files or URLs, record from your camera or mic with a teleprompter, or generate media — then optionally places the result on the timeline. |
| handoff-to-record | Initializes Capsule Record for an unguided or narration-guided screen recording. It can open an interactive app in chat or return a Record link for the agent to complete with the recording status and placement tools. |
| handoff-to-studio | Ends the pre-production flow with a link to open the project in Capsule Studio. |
| place-recording | Inserts a completed Capsule Record screen recording into a project — as a timeline clip or a b-roll overlay — reusing the already-uploaded media (no re-upload). |
| get-recording-status | Checks a Capsule Record recording's processing status and returns its thumbnail once the upload has finished. |
| replace-clip-media | Replaces the audio, or a speaking video, on an existing timeline clip from a URL — keeping the clip's position and re-deriving its captions to match. |
| set-broll | Fills a clip's product B-roll slots from an ordered list of clip URLs, ingesting each into Capsule cloud, then re-sequences every B-roll on that clip into equal, non-overlapping windows so they play one after another rather than stacking. |
| list-components | Lists a project's video components — those placed on the timeline and the types available to add. |
| add-components | Places an ordered array of design-system components on the timeline — clips or overlays — with optional property overrides in one project-data update. |
| add-design-system-component | Places a design-system component on the timeline — as its own clip, or as an overlay on an existing clip. |
| set-component | Sets a video component's design-system properties — including video/audio asset speed — optionally across multiple aspect ratios, or updates its timeline start and duration. |
| set-transition | Sets or clears the transition trailing a clip on a project's timeline. |
| set-voiceover | Sets the volume of an AI voiceover audio node. |
| anchor-to-clip | Pins a video component to a host clip's timeline window, positioning it relative to that clip rather than to the project. |
| probe-media | Reads technical metadata for a project's uploaded media — duration, container, codecs, resolution, frame rate and audio layout. |
| get-page-assets | Fetches a public web page and returns its title, description, and the images on it — including ordered gallery photos with source and rendition metadata. |
| upload-asset-by-url | Uploads media from a public URL onto the project timeline, returning immediately while the media uploads in the background. |
| insert-media | Places already uploaded media as a timeline clip, B-roll, or an audio node using the placement token returned by upload or generation, and a derived target places audio as the audio node and video as the clip. |
| check-url-upload | Checks the progress of a URL upload and places the media on the timeline once it finishes. |
| list-voices | Lists the Capsule voices available for text-to-speech: actor voices for generate-voiceover, org voices for generate-org-voiceover. |
| list-voiceovers | Lists non-clip voiceover audio nodes placed over a project's existing visuals. |
| generate-voiceover | Generates an AI voiceover from a script and reserves its timeline node — a clip, or an audio node played over the existing visuals. |
| generate-org-voiceover | Generates an AI voiceover using an organization's integrated voice, without touching the timeline. Poll get-voiceover-status for the finished audio. |
| get-voiceover-status | Checks an AI voiceover generation and, once complete, binds the audio and its transcript to the timeline node reserved for it. |
| place-generated-voiceover | Adds a completed AI voiceover generation to the project timeline as a clip or an audio node. |
| regenerate-voiceover | Replaces an existing actor-voice AI voiceover's script or voice in place, keeping its timeline position. The current audio stays until the new take is ready. |
| regenerate-org-voiceover | Replaces an existing org-voice AI voiceover in place, keeping its timeline position and current audio until the new take is ready. |
| run-voice-magic | Start Voice Magic on these clips and wait until cleaned audio can be turned on. Tags them so Studio can also turn it on if the project is open. If it is already done, turns it on now. If it is still running after waiting, call again later or ask to turn it on. Skips clips that already have it on. |
| set-voice-magic | Turn Voice Magic on or off for these clips. On only works after the job has finished. |
| remove-clip-at-index | Removes the clip at the given zero-based index from a Capsule project's timeline. |
| insert-spacer-clip | Inserts an empty Space clip into a Capsule project's timeline — a gap between two clips, or a blank beat at the start or end. |
| set-clip | Sets properties on a clip in a project's timeline — background colour or gradient, volume, title, duration, offsetStart (slip), and framing: fit/fill, scale, focal point and crop for the project's aspect ratio. |
| duplicate-clip | Duplicates a clip in a project's timeline, identified by its id/handle. |
| reorder-clips | Sets the order of every clip in a project's timeline from a complete ordered list of clip handles. |
| remove-component | Removes a placed component (an overlay, caption, B-roll or audio layer) from a project's timeline by its key. |
| remove-timeline-item | Removes a clip by handle or a placed component by key from a project's timeline. Removing a full-screen or nested clip component also deletes its parent clip, sibling components, and transcript. |
| split-clip | Splits a clip in a project's timeline into two clips at a given position, using the same split logic as Studio. |
| remove-voiceover | Removes an AI voiceover clip or audio node from a project's timeline by its key. |
| cut-words | Cuts words out of a project's timeline by transcript node slug, closing the gap. |
| restore-cut-words | Restores previously cut words back into a project's timeline by cut node slug. |
| do-auto-jump-cuts | Runs Auto Jump Cut: finds and removes every silent gap above a minimum length, keeping all spoken words. |
| get-project-transcript-md | Reads a project's word-level transcript as compact markdown lines. |
| get-compact-transcript-md | Reads an uploaded asset's transcript as sentence-level cues with timecodes — the input for choosing which moments to cut. |
| video-cutdown | Cuts a short sequence out of one or more transcribed source videos by inserting the chosen time ranges as trimmed clips. Also the insert step of the video-cutdown skill. |
| inspect-image | Inspects a public image URL and returns a grounded visual summary plus an image-to-video motion prompt. Use before generate-video when the image cannot be viewed directly. |
| generate-video | Start an AI video generation from a text prompt or image. Returns a generation ID to poll for the result. |
| generate-image | Start an AI image generation from a text prompt, or edit/compose from reference images. Returns a generation ID to poll for the result. |
| list-voices | List the Capsule voices available for text-to-speech generation. |
| get-generation-status | Check the status of an AI generation and retrieve signed asset URLs when complete. |
| list-ai-actors | Lists AI actors available to you. Pick an id for create-actor-video. |
| list-ai-locations | Lists AI locations available to you. Pick an id for create-actor-video. |
| create-actor | Generates a new AI actor from a description — job title, ethnicity, gender, age range, and personality/look. Poll get-generation-status (type "actor") until done. |
| create-location | Generates a new AI location from a description and visual style. Poll get-generation-status (type "actorLocation") until done. |
| create-actor-video | Starts an AI actor video generation from a script. Poll get-generation-status (type "actorVideo") until done. |
| add-actor-video-to-project | Inserts a completed actor video onto a Capsule project timeline as clips. |
| find-soundtrack | Search Capsule's soundtrack library by mood or song name and return candidate tracks. |
| play-soundtrack | Requires MCP Apps support. Opens an inline audio player for a soundtrack candidate. Does not modify the project. |
| play-video | Requires MCP Apps support. Opens an inline video player for a video URL — for example a finished render. Does not modify the project. |
| get-file-url | Resolves a file ID or a project media key (from list-project-media) into a presigned URL. When play-video is available, pass the URL to it. |
| set-soundtrack | Ingests a soundtrack candidate or custom audio URL into Capsule cloud and sets it as the project's background music, or removes the current soundtrack. |
| set-soundtrack-settings | Updates volume, Adjust Selection, AutoMix, and AutoMix duck amount on the project's current soundtrack. |
| create-video-export | Creates video files from a Capsule project's current timeline, with options for aspect ratio and quality. |
| invite-to-org | Invites someone to your organization by email as an admin, creator, or reviewer — limited to the roles your own role can grant. |
| invite-to-project | Shares a project with one or more people by email as a viewer, editor, or commentor — limited to the roles your own project access can grant. |
| invite-to-design-system | Grants someone access to a specific design system, inviting them to the organization first if they aren't a member yet. Org admins only. |
| list-comments | Lists a project's comments, newest last. |
| get-comment | Gets a project comment by id, including its replies. |
| create-comment | Creates a project comment, or a reply when parentCommentId is set. |
| update-comment | Replaces a comment's text. |
| resolve-comment | Resolves a comment, or reopens it. |
| delete-comment | Archives a project comment. |
| list-skills | Lists Capsule-authored video-production skills compatible with the connected MCP host across your organizations, each labeled with its organization. |
| get-skill | Gets the host-compatible full instructions for a Capsule skill by the id list-skills returned, switching the active workspace when the skill belongs to another organization. |
| create-skill | Creates a Capsule skill with MCP Apps instructions and an optional text-only fallback, scoped to an organization, a design system, or (staff only) globally. |
| update-skill | Updates a Capsule skill's name, description, Apps body, text-only body, enabled flag, or scope. |
| delete-skill | Permanently deletes a Capsule skill. |
| trigger-video-intelligence | Analyze a video using AI. Optionally pass a custom prompt and/or response schema for structured output. |
| run-autographics | Start an agent that adds on-brand design-system graphics to a project. Returns a generation ID to poll for the result. |
Want a finished video rather than an edited project? Connect Capsule's video agent: describe the video, and it researches, writes, voices, scores and renders it for you. It's a separate connector with its own tools, and you sign in with the same Capsule account.
In any other client, add it the same way as the main server above, with this URL. Then ask for a video:
A question back usually takes under 2 minutes, and a finished video 5 to 20. Your AI tool checks on the work for you, then gives you a link to watch and download it. Ask for a share link to send it to someone else.
| Name | Description |
|---|---|
| prompt-video-agent | Start a new video, or continue one: a revision, an answer to the agent's question, or more detail while it works. |
| get-video-session | A session's state, progress, the agent's latest reply, the media it made, and a link to watch it. Waits for the result. |
| list-video-sessions | Your video sessions, most recent first. |
| list-video-messages | A session's earlier messages, to catch up on one started elsewhere. |
| list-video-files | Download links for everything a session made: each version of the video, and its images, audio and captions. |
| play-video | Requires MCP Apps support. Play the session's latest video, or an earlier one, in a player in the chat. |
| share-video | A link anyone can open to watch the session's latest video, or an earlier one. |
| cancel-video | Stop the work in progress. Earlier results stay. |
Still stuck? Email support@capsule.video.