Revid
Server Details
Research what goes viral, make finished short videos and post them to TikTok, YouTube, Instagram, X
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 36 tools
Most tools target distinct resources or lifecycle stages, and the descriptions clearly map status pollers to their originating actions. There is some overlap: rename_project is also listed as an edit_project operation, and create_upload_url vs. upload_files plus render_video vs. create_episode vs. generate_media require careful reading to choose correctly.
All tool names use a consistent snake_case verb_noun convention, including list_*, get_*, create_*, delete_*, and generate_* forms. There is no mixing of camelCase or vague standalone verbs.
At 36 tools, the surface is heavy for practical selection even though Revid is a broad platform. Some operations could be consolidated, such as rename_project into edit_project, and the large number of status pollers and list tools increases cognitive load.
The set covers the main lifecycle: account/credits, project creation, editing, export, publishing, scheduling, status polling, characters, voices, presets, series, and uploads. Minor gaps remain, such as media-library listing/deletion, character updates, and cancellation for render/export/media jobs.
Available Tools
36 toolscalculate_creditsCalculate creditsARead-onlyInspect
Estimate credits from either a legacy creationParams payload or the same v3 payload used by render_video.
Inputs: pid, name, audio, input, +21 more. Returns: ok, data, error, method, +3 more
cancel_episodeCancel episodeADestructiveIdempotentInspect
Stop a Series Maker run from create_episode: the step in progress finishes (what it generates is charged), nothing after it starts. Requires an active Revid plan.
Inputs: runId (required). Returns: ok, data, error, method, +3 more
clone_voiceClone voiceAInspect
Clone a custom voice from a public sample URL. Requires an Elite plan or better on Revid.
Inputs: name (required), voiceUrl (required), description. Returns: ok, data, error, method, +3 more
create_characterCreate characterAInspect
Create a new consistent character from a PNG or JPEG image URL. Requires an active Revid plan.
Inputs: name (required), imageUrl (required), description (required). Returns: ok, data, error, method, +3 more
create_episodeMake a series episodeAInspect
Make a whole episode of a series with Revid's Series Maker, on Autopilot: the server plans the story and shot list, draws each character, place and prop once, generates every scene clip with them so they look the same in every scene, and assembles the episode with music, captions and the series outro. Without seriesId this starts a new series; with a seriesId from list_series it makes that series' next episode with the same cast, places, style, ratio, model and language (do not send those then). Returns a runId: poll get_episode_status every 30 to 60 seconds (a whole episode usually takes 10 to 30 minutes). When it is done, call export_video with its pid, then get_project_status until videoUrl. Credits are charged per reference image and scene clip as they come back, never past maxCredits (default 2500): the run stops with status needs_attention first. Call get_account to check the balance before a long Ultra episode. Requires an active Revid plan.
Inputs: prompt (required), ratio, style, language, +4 more. Returns: ok, data, error, method, +3 more
create_upload_urlUpload a fileAInspect
Get a public cdn.revid.ai URL for a local image, video or audio file, to use wherever Revid takes a media URL (render_video media and references, generate_media references and frames, create_character, clone_voice). This server cannot read your files: the call returns a one-time uploadUrl; PUT the file bytes to it with the returned headers within expiresIn seconds, e.g. curl -X PUT -H "Content-Type: <contentType>" --data-binary @<path> "<uploadUrl>". The file is then served at url. With a shell and the Revid CLI, revid upload <file> does both steps. For a file attached in a chat (ChatGPT), or without a way to send the bytes, use upload_files instead: url stays dead until the bytes are PUT, so never pass it on without having sent them. Uses no credits.
Inputs: contentType (required), fileName. Returns: ok, data, error, method, +3 more
delete_characterDelete characterADestructiveIdempotentInspect
Delete a saved consistent character or trained character by id. Requires an active Revid plan.
Inputs: id (required). Returns: ok, data, error, method, +3 more
delete_projectDelete projectADestructiveIdempotentInspect
Delete a Revid project: it leaves the project list and its public page goes offline. A project still generating cannot be deleted. Confirm with the user first.
Inputs: pid (required). Returns: ok, data, error, method, +3 more
describe_edit_toolsDescribe edit toolsARead-onlyInspect
List the tools edit_project accepts, each with one line and whether it costs credits. Name some in tools for their full description and JSON schema.
Inputs: pid (required), tools. Returns: ok, data, error, method, +3 more
duplicate_projectDuplicate projectAInspect
Duplicate an existing Revid project: same content and folder, a new project id. Uses no credits.
Inputs: pid (required), name. Returns: ok, data, error, method, +3 more
edit_projectEdit projectADestructiveInspect
Edit an existing project in place, with the same tools as the assistant in the Revid editor. Send every change for one video in one call as edits: they run in order and save as one revision. Either all apply or none, unless a paid edit already ran. Changing words in a motion graphic: list_composition_text to read them, then replace_composition_text ({ mediaId, replacements: [{ find, replace }] }). Free, instant, nothing else in the scene moves, wherever the words live. Other free edits: update_text, set_caption_text, translate_captions (every caption line into another language in one call, the audio untouched), set_caption_style, apply_caption_preset, set_media_props, set_animation, set_transition, move_media, trim_media, split_media, remove_media, close_gap, duplicate_media, add_text_media, add_image_media, add_video_media, add_audio_media, add_music, rename_project. Paid, charged like in the editor, and needing an active plan: edit_composition (rebuild a motion graphic's design, layout or motion from a prompt: 5 credits, several minutes and up to 15 on a long scene; do it before split_media, since a rebuilt piece restarts its animation; it retypes the whole scene, so read sourceChanges when it lands, and restore_composition undoes it for free), generate_motion_graphic, generate_video (replaceMediaId redoes a clip), generate_image, edit_image, generate_voiceover, generate_music, generate_sound_effect. Long ones return a jobId: follow it with get_edit_job. At most one of generate_image, edit_image, create_ingredient, generate_title_graphic, generate_music, generate_voiceover, generate_sound_effect per call: each takes up to 90 seconds, so split a batch with more and send the parts in order. While a paid edit runs on a project, other edits to it answer 409 EDIT_IN_PROGRESS: if a call times out, wait, then call get_timeline before trying again, never resend a paid edit blind. dryRun: true returns the credit estimate of a batch and saves nothing. describe_edit_tools gives every tool and its schema; an invalid call answers with the schema too. Check the result with view_frames. It does not change any mp4 already exported: call export_video when the edit is right.
Inputs: pid (required), edits (required), dryRun, baseRevision. Returns: ok, data, error, method, +3 more
export_videoExport videoAInspect
Export an mp4 for an existing Revid project, with the export modal's resolution, frame rate and compression settings. The call waits up to 40 seconds. An export done by then returns status "ready" with its videoUrl. A longer render (most videos over a minute, 4k) returns status "processing" with an exportId: call get_export_status with it until ready or failed. Do not call export_video again for the same project while it is processing: every call charges a new export. Requires an active Revid plan.
Inputs: pid (required), fileName, frameRate, resolution, +1 more. Returns: ok, data, error, method, +3 more
generate_mediaGenerate mediaAInspect
Generate standalone image or video media using the same prompt, quality, ratio, preset, duration, frame, reference, audio, and character options as the Revid media generator. The media is saved to the user's Revid media library. The call waits up to 40 seconds. A generation done by then returns status "ready" with each media's url. A longer one (ultra images often, videos usually: 1 to 10 minutes) returns status "processing" with mediaIds: call get_media_status with them until the status is ready or failed. Do not call generate_media again for the same request while it is processing: every call starts and charges a new generation. Requires an active Revid plan.
Inputs: audio, count, media, ratio, +21 more. Returns: ok, data, error, method, +3 more
get_accountGet accountARead-onlyInspect
Get the Revid account behind the API key: credits left, plan and subscription status, and the workspace.
Inputs: no named parameters. Returns: ok, data, error, method, +3 more
get_edit_jobGet edit jobARead-onlyInspect
Follow a background edit edit_project started (a motion graphic rebuild, a generated clip). Waits up to 40 seconds per call; returns status running, applied or failed. A rebuild comes back with sourceChanges, the lines it changed: check they all belong to the request. Do not start the edit again while it runs: that charges again.
Inputs: jobId (required). Returns: ok, data, error, method, +3 more
get_episode_statusGet episode statusARead-onlyInspect
Follow a Series Maker run from create_episode: status (queued, running, done, needs_attention, failed, cancelled), step (plan, approve_plan, budget, references, scenes, assemble, done), credits, and once planned the episode's title and scenes. When done, pid is the editor project: export it with export_video. needs_attention means it stopped before spending more; message says why. Requires an active Revid plan.
Inputs: runId (required). Returns: ok, data, error, method, +3 more
get_export_statusGet export statusARead-onlyInspect
Follow an export_video call that returned status "processing": pass its exportId. Waits up to waitSeconds (default 40) for the render, then returns status "ready" with the videoUrl, "failed" with the reason, or still "processing" with the render's progress (0 to 1): then call it again. Renders usually take 1 to 10 minutes; one still rendering after an hour fails with Timeout. Requires an active Revid plan.
Inputs: exportId (required), waitSeconds. Returns: ok, data, error, method, +3 more
get_media_statusGet media statusARead-onlyInspect
Follow a generate_media call that returned status "processing": pass its mediaIds. Waits up to waitSeconds (default 40) for the generation to finish, then returns status "ready" with each media's url, "failed" with the reason, or still "processing": then call it again with the same mediaIds. Images usually take under a minute, videos 1 to 10 minutes; a media still generating after an hour fails with Timeout. Requires an active Revid plan.
Inputs: mediaIds (required), waitSeconds. Returns: ok, data, error, method, +3 more
get_project_statusGet project statusARead-onlyInspect
Follow a video started by render_video, with its project id (pid). While the video is still being made, the call waits up to waitSeconds (default 40), then returns status "ready" with the videoUrl, "error" with the reason, or still "building" with progress (0 to 1), stageLabel and estimatedSecondsLeft: then call it again. Every answer carries projectUrl, the Revid page where the video appears: give it to the user if you stop checking. Renders usually take 2 to 10 minutes. Requires an active Revid plan.
Inputs: pid (required), waitSeconds. Returns: ok, data, error, method, +3 more
get_publish_statusGet publish statusARead-onlyInspect
Check whether a post created by publish_now or schedule_publish went out, per platform (queued, processing, published, failed, with post links and error reasons). TikTok reports processing for a few minutes until it confirms the post.
Inputs: contentId (required). Returns: ok, data, error, method, +3 more
get_timelineGet timelineARead-onlyInspect
Read what is on a project's timeline: every item's id, type, track and timing, text and caption styling, a motion graphic's props, plus editRevision and editorUrl (the link to give your user to open it in the editor). Call this first when changing an existing video. Changing it beats a new render_video whenever the video is mostly right: nothing already made is generated again.
Inputs: pid (required), at. Returns: ok, data, error, method, +3 more
list_charactersList charactersARead-onlyInspect
List saved consistent characters available to the authenticated user. The list is empty on an account with no active Revid plan.
Inputs: no named parameters. Returns: ok, data, error, method, +3 more
list_music_tracksList music tracksARead-onlyInspect
List the background music library (music.trackName for render_video) with moods, descriptions and lengths. Use it only when the user asks for a library track: you cannot listen to them, so music.generateMusic: true is the better default.
Inputs: mood, search, instrumental. Returns: ok, data, error, method, +3 more
list_presetsList presetsBRead-onlyInspect
List the style presets of Revid's create form: visual presets (media.mediaPreset for moving-image and ai-video), motion graphics categories (media.mediaPreset for motion-graphics) and caption presets (captions.preset).
Inputs: search. Returns: ok, data, error, method, +3 more
list_projectsList projectsARead-onlyInspect
List projects owned by the authenticated API key user, newest change first. Pass search to find one by words from its name or prompt.
Inputs: full, limit, search. Returns: ok, data, error, method, +3 more
list_seriesList seriesARead-onlyInspect
List the account's Series Maker series (newest first) with their style, ratio, video model and episode count. Pass a seriesId to create_episode to make its next episode with the same characters and places. Requires an active Revid plan.
Inputs: no named parameters. Returns: ok, data, error, method, +3 more
list_social_accountsList social accountsARead-onlyInspect
List the social accounts (TikTok, YouTube, Instagram, X, Facebook Pages, webhooks) and channels connected to the Revid account or active workspace, without tokens. Call this before publish_now or schedule_publish to pick a destination: pass accounts[].id as <platform>.id (or accounts[].username as <platform>.username, facebook.name for Pages), or channels[].id as channelId. Accounts with tokenInvalid: true must be reconnected by the user in Revid settings before publishing.
Inputs: no named parameters. Returns: ok, data, error, method, +3 more
list_voicesList voicesARead-onlyInspect
List the narration voices of the Revid voice picker (gender, accent, age, language, preview URL) to pick voice.voiceId for render_video. The account's cloned voices come first.
Inputs: age, limit, accent, gender, +3 more. Returns: ok, data, error, method, +3 more
publish_nowPublish nowADestructiveInspect
Publish a rendered video immediately using the selected channel or connected accounts (TikTok, YouTube, Instagram, X, Facebook Pages, webhook). Use list_social_accounts first to find ids and handles.
Inputs: videoUrl (required), x, tiktok, webhook, +6 more. Returns: ok, data, error, method, +3 more
rename_projectRename projectCDestructiveIdempotentInspect
Rename an existing Revid project.
Inputs: pid (required), name (required). Returns: ok, data, error, method, +3 more
render_videoRender videoAInspect
Start a new Revid render using the v3 public API. Returns a pid and a projectUrl, the Revid page where the finished video appears. A render usually takes 2 to 10 minutes: follow it with get_project_status, which waits up to 40 seconds per call and reports progress. Requires an active Revid plan.
Inputs: workflow (required), pid, name, audio, +21 more. Returns: ok, data, error, method, +3 more
schedule_publishSchedule publishADestructiveInspect
Schedule a rendered video for the selected channel or connected accounts (TikTok, YouTube, Instagram, X, Facebook Pages, webhook). Pass scheduledTime to publish at an exact date and time; omit it to use the next open queue slot. Use list_social_accounts first to find ids and handles.
Inputs: videoUrl (required), x, tiktok, webhook, +7 more. Returns: ok, data, error, method, +3 more
search_viral_videosSearch viral videosARead-onlyInspect
Search viral short-form videos and posts across YouTube, Instagram, TikTok, X, Reddit, Threads, and LinkedIn (same engine as revid.ai/search). Semantic query plus filters on engagement (min likes/views/shares/comments), platform, language, hashtags, posting date, duration, and AI-analyzed style (mood, content type, perspective, shooting style, visual origin, brand promotion). Each result includes the post URL, a playable video URL when available, the full transcript, a content summary, engagement counts and rate, author info, and hashtags — useful for studying what works before creating content with render_video. Rate limited per plan (free keys get a small daily allowance); a RATE_LIMIT_EXCEEDED error says when the allowance resets.
Inputs: mood, sort, limit, query, +18 more. Returns: ok, data, error, method, +3 more
set_project_visibilitySet project visibilityAIdempotentInspect
Set who can watch a project's public page (revid.ai/view/): public (on and listed), unlisted (anyone with the link) or private (page off). Returns the public URL.
Inputs: pid (required), visibility (required). Returns: ok, data, error, method, +3 more
upload_filesUpload attached filesAInspect
Copy files the user attached in the chat to Revid and get a public cdn.revid.ai URL for each, to use wherever Revid takes a media URL (render_video media and references, generate_media references and frames, create_character, clone_voice). In ChatGPT, use this for attached images, videos and audio rather than create_upload_url. Up to 10 files per call, 200 MB each; call it again for more. Use only the url values it returns. If nothing is attached, ask the user to attach the files or give a public link. Uses no credits.
Inputs: files (required). Returns: ok, data, error, method, +3 more
view_framesView framesARead-onlyInspect
Look at a project's current timeline: composed frames at the seconds you ask for, returned as images, with no export and no credits. A motion graphic shows its real frame at that second; a video clip shows its poster. Read every word you changed before you tell your user it is done.
Inputs: pid (required), seconds (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Discover and research viral social content on TikTok, Instagram Reels, and YouTube Shorts.
Schedule social posts to TikTok, Instagram, Facebook, YouTube and X; manage accounts and media
Find viral posts, outliers, hooks and ads on Instagram, TikTok, YouTube and Facebook, then write.
Related MCP Servers
- AlicenseAqualityDmaintenanceAI tools for short-form video creators (TikTok, Instagram Reels, YouTube Shorts, Facebook Reels) — viral trend search, video analysis info, content strategy use cases.367 npm1MIT
- AlicenseAqualityBmaintenanceEnables agents to search a curated base of viral TikTok posts from small accounts, inspect their stats to see why they worked, and then produce carousels and video edits locally on the user's machine following a proven creation method. It also covers video formatting, subtitling, assembly and slideshows via ffmpeg or Remotion, plus optional TikTok draft uploads.25Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables agents to research and analyze public short-form video content on Instagram Reels, TikTok, and YouTube Shorts for trend spotting, creator research, competitive briefs, and content ideation.1MIT
- FlicenseCqualityDmaintenanceGenerates production-ready short video scripts from real-time web search data using Tavily and Gemini, exposed as MCP tools.2-
Glama MCP Gateway
Add one secure layer between your agents and this server.