MCP and AI agents
On this page
The server is at https://reeltopus.com/api/mcp. It speaks Streamable HTTP and is stateless, so it works from any MCP client, hosted or local. Every tool call counts against the same rate limit as the REST API, and processing spends hours exactly as an upload in the app does.
Works with Claude, ChatGPT and Cursor
- Use Reeltopus in Claude and Claude Code: Connect Reeltopus to Claude (web, desktop and mobile) or Claude Code and clip videos into captioned shorts, export them and schedule posts by asking.
- Use Reeltopus in ChatGPT: Connect Reeltopus to ChatGPT and clip videos into captioned vertical shorts by asking: attach a video, see the best clips as playable cards, edit captions, export MP4s and schedule posts.
- Use Reeltopus in Cursor: Add the Reeltopus MCP server to Cursor in one click and let its agent upload videos, find the best clips, export them with captions and schedule posts.
Also VS Code, Windsurf, Gemini CLI, Zapier's and n8n's MCP clients, and any agent built on an MCP SDK.
Connect a client
Sign in with your Reeltopus account, or pass an API key as a header.
Sign in (OAuth): add the server, then run /mcp in Claude Code and choose Authenticate.
claude mcp add --transport http reeltopus https://reeltopus.com/api/mcpOr with an API key:
claude mcp add --transport http reeltopus https://reeltopus.com/api/mcp --header "Authorization: Bearer rt_live_…"Signed in to Reeltopus? Settings → API has the same snippets with your workspace's address, and lists every app connected to it.
Signing in or a key
- OAuth, for claude.ai, Claude Desktop, ChatGPT and any client that connects by signing in. A request without a token gets a 401 pointing at
https://reeltopus.com/.well-known/oauth-protected-resource/api/mcp, which names Reeltopus as the authorization server (https://reeltopus.com/.well-known/oauth-authorization-server): authorization code with PKCE (S256), client ID metadata documents or dynamic registration at/oauth/register, refresh tokens that rotate, and revocation at/oauth/revoke. Access tokens last an hour. - The member who signs in picks the workspace and what the app may do. An app never gets more than that member's role allows, and a tool outside the grant asks the member to approve more.
- An API key, for clients that take a header:
Authorization: Bearer rt_live_…orX-API-Key: rt_live_…. A key acts for the owner or admin who made it and can do everything below. - Connected apps are listed under Settings → API, where you can disconnect one at once. See the privacy policy for what a connected app receives.
| Permission | What it covers |
|---|---|
See your workspace read | Hours left, projects, clips, exports, caption styles, brand kits, templates, connected accounts and posts. |
Process videos process | Import videos from links and upload files to clip. This spends the workspace's hours: a video's length (half in archive mode). |
Edit and export clips edit | Change captions, trims, titles and layouts, apply brand kits and templates, and render MP4s and caption files. Free. |
Post to your connected accounts post | Publish or schedule clips publicly on the social accounts connected to the workspace, and cancel scheduled posts. |
Things to ask
- Show me the best clips from my latest Reeltopus video.
- Switch the top clip to karaoke captions and remove the pauses, then export it.
- Give me a link to upload a new video, and tell me when its clips are ready.
- Schedule the top clip to my YouTube channel tomorrow at 9am as unlisted.
- How many Reeltopus hours do I have left?
In hosts that show MCP Apps (Claude, ChatGPT), get_clips shows the clips as playable cards. Each tool says whether it only reads, changes your clips, or publishes, so the assistant asks before anything that posts or overwrites.
One-line workflows
The server offers these MCP prompts, which clients list as commands (in Claude Code: /mcp__reeltopus__clip_and_schedule). Each tells the agent the tools to call, in order, and asks you before it posts.
| Prompt | What it does | Arguments (all optional) |
|---|---|---|
clip_and_schedule | Finds your newest video (or uploads one), picks its best clip, exports it with captions and schedules it to a connected account after you confirm. | video, platform, when |
best_clips | Lists the clips Reeltopus found in your newest (or a named) video, best first, as playable cards where the app supports them. | video |
clip_new_video | Uploads a new video (from a file path, or through a private upload link), waits for its clips and shows the best ones. | file |
post_as_series | Cuts your newest (or a named) video into consecutive parts and schedules them, one or more a day, to a connected account after you confirm. | video, length, perDay |
In Claude Code the Reeltopus plugin does the same with a skill: /plugin marketplace add reeltopus/agents, /plugin install reeltopus@reeltopus, then /reeltopus:clip-and-schedule or “clip my latest video and schedule the best one”.
Tools
Some tools are offered only where they work: create_project_from_url while link import is switched on, and create_project_from_file only to ChatGPT, the one host that attaches files to tool calls.
| Tool | What it does | Effect |
|---|---|---|
get_account | Shows the Reeltopus workspace this connection belongs to: plan, processing hours left (balanceSeconds), hours held by running jobs, the monthly allowance and next refill, and rate limits. | Reads |
create_project_from_url | Starts clipping a YouTube video (watch, youtu.be, shorts or live link). | Adds |
create_project_from_file | Starts clipping a video or audio file the user attached in this chat. | Adds |
get_upload_link | Makes a private reeltopus.com link where the user uploads a video or audio file from their device, for when they can't send the file here. | Adds |
start_upload | Starts uploading a local video file, for agents that can make HTTP requests themselves (for example with curl). | Adds |
get_upload_part_urls | Presigned PUT URLs for further parts of an upload started with start_upload (up to 100 per call). | Reads |
complete_upload | Finishes an upload started with start_upload, once every part is uploaded: Reeltopus checks the file's length, holds those hours and starts processing. | Adds |
get_status | A project's status: importing (downloading the link), uploading, processing (transcribing and finding clips), ready (call get_clips), or failed (see error; held hours were refunded). | Reads |
list_projects | The workspace's projects (videos), newest first, with their status. | Reads |
get_clips | The clips Reeltopus found in a ready project, best first (rank 1 is the most likely to perform), each with title, hook, reason, score, start and end in the source, exported length, transcript, caption style and export status. | Reads |
edit_clip | Changes a clip; everything in one call is one undo step in the app. | Changes or replaces (asks first) |
get_broll | A clip's AI B-roll: stock footage Reeltopus lays over the speaker (their sound plays on) at the moments that gain from a picture. | Reads |
edit_broll | Switches a clip's B-roll on or off (on finds footage when there is none) and edits placements from get_broll, as one undo step in the app: broll_swap {placement, candidate?} shows the next candidate (or that one), broll_remove {placement}, broll_style {placement, style: cutaway|pip|split}, broll_use {placement?, asset, start?, end?} shows footage from search_broll (on a placement, or as a new one covering start to end in source ms). | Changes or replaces (asks first) |
search_broll | Searches licensed stock video and photos (Pixabay, Pexels) for a clip's B-roll, ranked for the placement's style, leaving out footage with text, logos or unsafe subjects. | Reads |
clip_whole_video | Cuts a ready project's whole video into consecutive clips that together cover it (instead of only the best moments): cut only where sentences end, steered to topic changes, each with a title, hook, description and score, and the best ones marked with bestRank. | Changes or replaces (asks first) |
get_whole_video | A project's whole-video split: status (queued, splitting, ready, failed), how many clips, how far their reframing is (it runs in batches, best clips first), the chapters with YouTube chapters text to paste into a description, and any export-all (zip) or schedule-all run with its progress. | Reads |
export_whole_video_zip | Exports every clip of a whole-video split (captioned, reframed, in each clip's look; free, no hours), a few at a time, then zips them with youtube-chapters.txt and clips.txt. | Changes or replaces (asks first) |
get_whole_video_zip | The download link (valid for an hour) for the zip export_whole_video_zip built, once wholeVideo.zip.status is ready. | Reads |
schedule_whole_video | Exports every clip of a whole-video split and schedules them in order to one connected account (list_connections), perDay a day from startDate (YYYY-MM-DD) at times ("HH:MM", or the platform's usual best times) in timeZone, with each clip's own title and description. | Publishes (asks first) |
add_whole_video_to_autopilot | Adds a whole-video split's clips to Autopilot (as a video it draws from), which then proposes them for posting at its own pace and with its approval settings. | Publishes (asks first) |
export_clip | Queues the clip's captioned, reframed MP4 export (it doesn't use hours; exporting again replaces the previous MP4). | Changes or replaces (asks first) |
get_export | A clip's export status (idle, queued, rendering, ready, failed) and download links valid for an hour: the MP4 (once ready), SRT/VTT/ASS caption files and the editor timeline (.zip with FCPXML for Final Cut and DaVinci Resolve, Premiere XML and SRT). | Reads |
list_caption_styles | The caption styles a clip can use (id and name), for edit_clip and export_clip. | Reads |
list_polish_options | What edit_clip's polish edits can use: one-tap looks, music tracks (id, mood, and the credit a post needs, if any), stickers, colour filters, text styles and jump-cut styles. | Reads |
list_brand_kits | The workspace's brand kits (made in the Reeltopus app): each one's caption style and colours, font, logo, and intro/outro cards. | Reads |
list_templates | The workspace's clip templates (saved from a clip in the Reeltopus app), each with a description of what it sets: caption style and colours, brand kit, aspect, resolution, layout, silence removal. | Reads |
apply_brand_kit | Puts one clip (clipId) or every clip of a project (projectId) in a brand kit's look: its caption style, colours, font, logo and intro/outro cards. | Adds |
apply_template | Applies a template to one clip (clipId) or every clip of a project (projectId): caption style and colours, its brand kit as the kit is now, aspect, resolution, layout (split only where a clip has two framings) and silence removal. | Adds |
list_connections | Social accounts connected to the workspace (connected by the user in the Reeltopus app: YouTube, TikTok, Instagram, Facebook Pages, LinkedIn, X, Threads, Pinterest or Bluesky), with the visibilities, title and description limits, longest clip (durationMaxSeconds) and extra options (features) each accepts. | Reads |
schedule_post | Publishes an exported clip (export status ready) to a connected account, now or at scheduledAt (ISO 8601, up to a year ahead). | Publishes (asks first) |
get_post | A post's status (scheduled, queued, publishing, published, failed, cancelled), its platform URL once published, or the error. | Reads |
cancel_post | Cancels a scheduled or queued post before it starts publishing. | Changes or replaces (asks first) |
get_packaging_variants | A clip's Packaging Lab variants: A is the clip as it is; B and C are challengers with a different kind of hook (question, number, warning, you, story, statement), sometimes a tighter start, and a cover. | Reads |
write_packaging_variants | Writes the Packaging Lab's challengers for a clip from its transcript (a different kind of hook each, a title, a cover) if it has none yet. | Adds |
export_variant | Starts a challenger variant's own MP4 export and cover (free). | Adds |
get_packaging_report | Per platform, what the creator's posts say about packaging: each hook type, start and cover style as a multiplier on their usual results with a 90 % range, and the Packaging Lab's lift over the posts kept as they are, with a 95 % range. | Reads |
list_sponsor_deals | The user's sponsor deals (set up in the Reeltopus app under Sponsors): brand, fee, invoice status, deliverables with how many are posted, each clip with the sponsor's approval (pending, approved or changes asked, with their comment), and the sponsor's approval and live report links. | Reads |
get_sponsor_report | A sponsor deal's report: every post delivered on it across platforms, with views, likes, comments, tracked link clicks and leads, and totals. | Reads |
make_linkedin_carousel | Writes a LinkedIn carousel from a clip: 4 to 10 slides (cover, one point per slide, a closing call to action) and the post's text, from what is said in the clip, rendered as a PDF in the workspace's brand. | Adds |
post_linkedin_carousel | Posts a carousel (from make_linkedin_carousel) to a connected LinkedIn account as a document post, now or at scheduledAt. | Publishes (asks first) |
list_destinations | The pages the user saved in the Reeltopus app for posts to link to (website, booking page, product, lead magnet), each with its id, name, url and whether it is the default. | Reads |
get_link_stats | How the tracked short links in the user's posts are doing over the last `days` days (default 30): clicks by people (bots and link previews left out), unique clicks, click-through (unique clicks ÷ views, where the platform reports views), leads and sales the user's site reported, per link, per platform and per clip, plus the best-converting clips. | Reads |
list_autopilot_queue | Autopilot's proposed posts (set up by the user in the Reeltopus app): each one's clip, account and platform, time slot (scheduledAt), drafted title, caption and hashtags, and status: proposed (waiting for approval; expires at its slot), approved (posts at its slot once exported), scheduled (handed to the scheduler; see post) or failed (couldn't be posted; error says why). | Reads |
approve_autopilot_item | Approves one proposed post from list_autopilot_queue, optionally with a new title, caption, hashtags or smart-link destination (destinationId from list_destinations, or null for none). | Publishes (asks first) |
What the server tells the agent
Sent in the MCP handshake, so the agent knows the workflow before its first call:
Reeltopus turns long videos into short vertical clips with captions, reframed for 9:16, and posts them. Confirm with the user before posting anything publicly, and only process videos the user owns or has the rights to.
Typical workflow:
1. get_account: check the hours left (processing a video spends its length in hours; exports and posts don't use hours).
2. Start a video: create_project_from_url with a YouTube link; or create_project_from_file with a video the user attached in this chat; or get_upload_link to give the user a reeltopus.com link where they upload a file from their device (start_upload + complete_upload if you can make HTTP requests yourself). To clip a video already in Reeltopus, find it with list_projects.
3. get_status every 30-60 seconds until status is "ready" (or "failed"; failed projects are refunded).
4. get_clips: clips ranked best first, with title, hook, score, transcript.
5. Optionally edit_clip (caption style, trim, silence removal, title, hook, word-level edits), get_broll and edit_broll (the AI B-roll: switch it, swap or remove footage; search_broll for other footage), or put clips in the workspace's look: list_templates or list_brand_kits, then apply_template or apply_brand_kit to one clip or, with projectId, all of them.
6. export_clip, then get_export until status is "ready": it returns the MP4 link. Caption files (SRT/VTT/ASS) and the editor timeline links work right away.
7. Optionally list_connections and schedule_post to publish to a connected account. For the packaging (hook, title, cover) that wins on that platform, call get_packaging_variants with the clipId and connectionId and post its pick with variantId (export_variant first if it isn't exported); get_packaging_report shows what wins. To send viewers somewhere (a booking page, a product, a lead magnet), pass a destinationId from list_destinations: Reeltopus adds a short tracked link to the post. get_link_stats shows clicks, click-through and leads per clip and platform.
To cut the whole video into clips instead of only the best moments (a podcast or a long talk posted as a series): clip_whole_video on a ready project (or upload with clipMode "whole"), get_whole_video until ready, then get_clips; export_whole_video_zip, schedule_whole_video or add_whole_video_to_autopilot handle every clip at once.
If the user runs Autopilot (set up in the Reeltopus app), list_autopilot_queue shows the posts it proposed for the coming weeks; approve_autopilot_item approves one, after the user confirms it.
Download links expire after an hour; call get_export again for fresh ones.Questions
Which AI assistants work with Reeltopus?
Claude (web, Desktop, mobile and Claude Code), ChatGPT and Cursor, plus VS Code, Windsurf, Gemini CLI and any client that speaks the Model Context Protocol over Streamable HTTP. They connect to https://reeltopus.com/api/mcp by signing in to Reeltopus, or with an API key.
What can an AI assistant do with Reeltopus?
Upload or find your videos, show the clips Reeltopus found ranked best first with titles, hooks and transcripts, change captions, trims, B-roll and looks, export MP4s with SRT, VTT and ASS caption files and editor timelines, and post or schedule them to the YouTube and LinkedIn accounts you connected, always after you confirm (for other platforms, download the MP4).
Is there a one-line way to clip a video and schedule the best clip?
Yes. The server offers the prompt clip_and_schedule, and the Reeltopus plugin for Claude Code adds /reeltopus:clip-and-schedule. Either finds your latest video, waits for its clips, picks the best one, exports it and schedules it after you confirm.
Support
Email support@reeltopus.com with the assistant you use and what you asked it. Report security issues to the same address.