/MCP connector
Model Context Protocol · Remote server

Make Renderforest AI videos from your chat

The Renderforest MCP connector lets Claude, ChatGPT and other MCP clients plan, price and generate AI videos in your own Renderforest account: single clips, multi-scene stories with narration, and music videos. You describe the video; the assistant handles the tools and hands you the finished result.

Server URL
https://mcp.renderforest.com/mcp
Transport
Streamable HTTP
Authentication
OAuth 2.1 · PKCE · Dynamic client registration
Tools
23 (16 read-only, 7 write)

Overview

Renderforest is an online video, animation and design platform. This connector exposes its generative-AI video and image pipeline over the Model Context Protocol, so an AI assistant can act on your behalf inside your Renderforest account.

Single clips

Text-to-video or image-to-video, up to the chosen model's maximum clip length, in any supported aspect ratio and quality.

Multi-scene stories

Explainers, shorts, animations and ads: the brief is split into scenes with a shared scenario and consistent characters, optionally narrated, then composited into one video.

Music videos

Provide a track and the visuals are cut to it, using the trimmed section you choose.

AI images

Generate one to four stills from a prompt with the image model of your choice, preview them in the chat, and reuse them as first frames or references for a video.

Your own images

Upload reference images from the chat and use them as first frames, last frames or style references.

Everything the connector creates is stored in your Renderforest account and can be opened in the Renderforest editor. Generation uses AI credits from your plan; read-only tools never charge anything, and the assistant always has an exact price available before it starts a generation.

How it works. The connector is a thin gateway in front of Renderforest's own APIs. It holds no video logic and no database of its own: each tool call is forwarded to the Renderforest service that owns that operation, using an access token bound to the signed-in user.

Quick start

You need a Renderforest account (free or paid). Sign up at www.renderforest.com if you do not have one. Connecting takes about a minute.

Claude (web and desktop)

  1. Open Settings → Connectors and choose Add custom connector (or pick Renderforest from the connector directory if listed).
  2. Paste the server URL https://mcp.renderforest.com/mcp and confirm.
  3. Click Connect. A Renderforest page opens: sign in if needed, then choose Allow.
  4. Back in the chat, enable the connector and ask for a video, for example "Make a 10-second vertical clip of a surfer at sunset."

Claude Code

claude mcp add --transport http renderforest https://mcp.renderforest.com/mcp
# then, inside a session:
/mcp   # pick "renderforest" and complete the sign-in in your browser

ChatGPT

  1. Turn on Developer mode (Settings → Apps & Connectors → Advanced settings). Business and Enterprise workspaces may need an admin to enable it.
  2. Choose Create under Connectors, give it the name Renderforest and the MCP server URL https://mcp.renderforest.com/mcp.
  3. Select OAuth as the authentication method. No client ID or secret is needed: the server registers the client automatically.
  4. Complete the Renderforest sign-in and consent screen, then enable the connector in a chat.

Other MCP clients

Any client that supports Streamable HTTP with OAuth 2.1 discovery works. To inspect the server interactively:

npx @modelcontextprotocol/inspector --transport http --server-url https://mcp.renderforest.com/mcp

The inspector discovers the authorization server from the WWW-Authenticate challenge, registers itself and walks you through the same consent page.

Authentication

Every connection is authorized by the user, for the user. The connector is a standards-compliant OAuth 2.1 authorization server and resource server; there are no API keys to manage and no shared credentials.

Flow

  1. The client calls POST https://mcp.renderforest.com/mcp without a token and receives 401 with a WWW-Authenticate challenge pointing at the protected-resource metadata.
  2. It reads the metadata documents and registers itself with dynamic client registration (RFC 7591). Only public clients are issued; redirect URIs must belong to an allow-listed host.
  3. It starts the authorization code flow with PKCE (S256). The user signs in to Renderforest (if not already) and sees a consent page listing exactly what will be granted.
  4. On Allow, a one-time code is returned and exchanged for an access token and a refresh token. Codes and refresh tokens are single-use.
  5. Tool calls carry the access token as Authorization: Bearer. Refreshing rotates the refresh token and can only narrow the granted scope, never widen it.
EndpointURL
MCP endpoint (resource)https://mcp.renderforest.com/mcp
Authorization server metadatahttps://mcp.renderforest.com/.well-known/oauth-authorization-server
Protected resource metadatahttps://mcp.renderforest.com/.well-known/oauth-protected-resource/mcp
Dynamic client registrationhttps://mcp.renderforest.com/register
Authorizationhttps://mcp.renderforest.com/authorize
Tokenhttps://mcp.renderforest.com/token
Revocation (RFC 7009)https://mcp.renderforest.com/revoke

Scope and lifetimes

renderforest:videos
Generating AI videos in the user's account, spending the user's AI credits when a generation is started, and reading the status and results of those generations.
renderforest:images
Generating AI images in the user's account, spending AI credits when a generation is started, and reading the user's generated images.
What no scope grants
Billing details, account settings, other users, or anything outside the tools listed on this page. Both scopes are granted together, whichever subset a client requests; connections authorized before the images scope existed keep working unchanged.
Access token
Opaque, valid for 1 hour.
Refresh token
Valid for 30 days of inactivity; rotated on every use.
Registered clients
Kept for 90 days after last use, then expire automatically.

Disconnecting

Remove or disconnect the connector in your assistant's settings. Compliant clients call the revocation endpoint, which invalidates the token immediately; otherwise the access token lapses within the hour and the refresh token is never used again. Generated videos stay in your Renderforest account.

Tools reference

The connector exposes 23 tools to the assistant. Every tool carries a title and access annotations, so hosts can run read-only tools without a prompt and always confirm write tools with you. The table and the details below are generated from the live tool definitions of this server. Internal widget-only tools (hidden from the assistant by the host) are not listed.

ToolAccessCostPurpose
analyze_promptRead-onlyNo chargeTurn a video idea into recommended settings (type, style, duration, aspect ratio, voiceover) with an exact cost estimate.
list_video_modelsRead-onlyNo chargeList the AI video models, their durations, qualities, costs and capabilities.
list_tts_voicesRead-onlyNo chargeList voiceover languages and voices for narrated videos.
get_credit_balanceRead-onlyNo chargeRead the user's current AI credit balance.
estimate_video_costRead-onlyNo chargePrice a single clip before generating it. Charges nothing.
generate_videoWriteSpends AI creditsGenerate one AI video clip from text, or animate an image.
get_video_statusRead-onlyNo chargeWait on a running generation job and return its progress or result.
show_videoRead-onlyNo chargeShow a finished video in an inline player (hosts with interactive widgets).
submit_feedbackWriteNo chargeSend the user's own feedback about a finished video to the Renderforest team.
estimate_story_costRead-onlyNo chargePrice a multi-scene story before generating it. Charges nothing.
generate_video_storyWriteSpends AI creditsGenerate a multi-scene story, explainer, animation or music video and render it as one video.
get_video_projectRead-onlyNo chargeInspect a generated project's scenes to pick one to edit or extend.
export_videoWritePlan-gatedRe-render an existing story at a different quality. No AI credits; 1080p+ needs a paid plan.
add_sceneWriteSpends AI creditsGenerate an additional scene clip for an existing project.
edit_sceneWrite · replaces contentSpends AI creditsRegenerate one scene of an existing project from a new prompt (replaces that scene).
upload_mediaRead-onlyNo chargeOpen the in-chat upload widget so the user can add their own images and audio to their Renderforest library.
get_uploaded_mediaRead-onlyNo chargeCheck whether the user finished uploading and fetch the resulting image URLs.
list_image_modelsRead-onlyNo chargeList AI image models, their per-image cost, aspect ratios and the available styles.
generate_imageWriteSpends AI creditsGenerate 1–4 AI images from a prompt (optionally with reference images). Also the "preview a still before the video" step.
get_image_projectRead-onlyNo chargeRead one image generation and its image URLs.
list_ai_imagesRead-onlyNo chargeBrowse the user's previously generated AI images.
list_videosRead-onlyNo chargeBrowse the user's short AI clips or long story / editor projects (the assistant asks which).
show_mediaRead-onlyNo chargeShow images or videos in an inline gallery (hosts with interactive widgets).

Plan and estimate

Read-only. Nothing here spends credits — these tools exist so the assistant can quote a price and confirm settings before anything is generated.

analyze_promptAnalyze video idea Read-onlyNo charge

Turn a video idea into recommended settings (type, style, duration, aspect ratio, voiceover) with an exact cost estimate.

Description shown to the assistant

Analyze a video idea and suggest a video type (creative direction), style, duration (seconds), aspect ratio and whether voiceover fits, plus per-second pricing. START HERE for any longer, multi-scene, narrative, or animated video (a story/short/explainer/animation of more than a single short clip). The response is designed to be ALL you need before generating: costEstimate (exact credits + the user's balance + affordability for the suggested parameters), videoModelInfo, and modelOptions — so in the standard flow you do NOT need list_video_models, get_credit_balance or estimate_story_cost. IMPORTANT — the model and style choices belong to the user: videoModel is only the platform default (modelOptions lists every story-capable model with best-for text, indicative Standard-generation credits — estimatedCredits, with includedInPlan:true and no video credits where the user’s plan includes the model — and the Priority-generation price, fastTrackEstimatedCredits), and suggestedStyle is only the analyzer's pick (styleOptions lists EVERY available visual style, the pick marked isSuggested). Present both choices in this exact pattern before generating: (1) as TEXT, list ALL styles by name with a one-line description each, and the 2-4 fitting models with credits, so the user sees the complete catalogs; (2) if your host supports clickable options (a question/choice UI), ALSO offer buttons — style: the suggested one + the 2-3 best fits for this brief; model: those 2-4 fitting options with the default marked — relying on the host's free-text 'Other' for anything else from the printed lists (style is accepted by NAME, case-insensitively). If there is no choice UI, ask in text. The detected suggestedVideoType (e.g. ugc / product-promo / whiteboard) steers the whole scenario's direction — mention it alongside the style ask and pass it (or the user's pick from videoTypeOptions) as videoType to the story tools. generate_video_story rejects calls without a chosen style; if the user picks a non-default model, re-check the exact cost with estimate_story_cost. For a MUSIC VIDEO pass audioUrl (the user's track): the suggested style is tailored to the song and the response includes audioDurationSeconds + suggestedSoundWindow (pass its soundEnd to the follow-up calls) + maxMusicClipSeconds (the longest clip this track can become here). Pass referenceImageUrls to let uploaded images steer the suggested style. Also returned: freeGift (the free seconds a non-subscriber can generate — offer it as the web does), webSearchRecommended (the brief cites a URL and the user can use web grounding), styleOptions[].recommendedForVideoType (the styles the detected video type is tuned for — list those first), and modelOptions[].requiresPaidPlan / supportsAudio.

Parameters

ParameterTypeDescription
prompt
optional
stringThe video idea / brief. Optional when audioUrl is given (a music clip).
videoType
optional
stringOptional creative-direction hint (e.g. 'ugc', 'product-promo', 'whiteboard'): the analyzer then suggests a style from that type's mapped styles and echoes the type back. Omit to auto-detect — the response's suggestedVideoType + videoTypeOptions list what was detected and every selectable type.
audioUrl
optional
stringThe user's audio track for a music video (mp3/wav/…). Makes the analysis music-aware and returns the detected duration + suggested trim window.
soundStart
optional
numberMusic clip only: start of the audio section, seconds (default 0).
soundEnd
optional
numberMusic clip only: end of the audio section, seconds. Omit to auto-detect the full track.
referenceImageUrls
optional
array of stringOptional user image URLs (up to 15) to influence the suggested style.
estimate_video_costEstimate video cost Read-onlyNo charge

Price a single clip before generating it. Charges nothing.

Description shown to the assistant

Dry-run cost estimate for generate_video with the same parameters. Returns the credit cost of the requested lane (generation.mode: standard by default, fastTrack when fastTrack:true) and the current balance WITHOUT charging or generating anything. ALWAYS call this and tell the user the cost before calling generate_video. When generation.includedInPlan is true the clip is included in the user’s plan (0 credits with standard generation) — say so instead of quoting a price. If the response carries fastTrack (Priority generation, ready in minutes) or standardGeneration (low-priority queue), present that other lane with its estimatedCredits so the user can choose between speed and credits. If affordable is false, tell the user to top up credits or upgrade on the returned subscriptionUrl (the Renderforest subscription page).

Parameters

ParameterTypeDescription
prompt
optional
stringWhat the video should show. Required for text-to-video; optional only when imageUrl is provided.
imageUrl
optional
stringOptional image URL (jpg/png/webp) to animate — image-to-video. When set, prompt becomes optional.
aspectRatio
optional
16:9 | 1:1 | 9:16Video aspect ratio. Required for text-to-video (e.g. 9:16 for TikTok/Reels UGC).
videoModel
optional
stringModel id from list_video_models. Omit to use the platform default model.
videoDurationSeconds
optional
integerMust be one of the durations the chosen model offers (see list_video_models). Omit for the model default.
quality
optional
integerVideo quality, e.g. 720 or 1080. Omit for the model default.
fastTrack
optional
booleanPriority generation (the website’s Power mode): skips the standard queue and is usually ready in minutes, charged at fastTrackCredits (creditMultiplier × the list price) even when the user’s plan includes the model. Omitted/false = Standard generation: queued at low priority (may take a while; a model may cap how many standard generations run at once per user — standardConcurrentLimit), 0 credits for qualities marked includedInPlan in list_video_models, otherwise the listed credits. Only allowed when the model supports it.
referenceMedias
optional
objectReference images for the model. Only types listed in list_video_models.referenceInputs are allowed.
estimate_story_costEstimate story cost Read-onlyNo charge

Price a multi-scene story before generating it. Charges nothing.

Description shown to the assistant

Dry-run credit cost for a long AI video (generate_video_story) with the same parameters. Charges nothing. NOTE: analyze_prompt already returns this as costEstimate for its suggested parameters — only call this tool when the parameters differ from that suggestion (changed duration/model/quality/fastTrack, or no analysis was run). The estimate is computed from the requested duration; for narrated stories the final charge is recomputed after the voiceover is generated (scenes are sized to the actual narration length) and is always capped at the user’s balance — so present it as "about N credits", not an exact invoice. estimatedCredits is for the requested lane (generation.mode); when generation.includedInPlan is true the user’s plan covers the video credits and only the flat production cost remains — say so. The other lane rides along as fastTrack.estimatedCredits (Priority generation: ready in minutes) or standardGeneration.estimatedCredits (Standard generation: low-priority queue, could take a few hours) — present both when the model offers them so the user can choose. If affordable is false, tell the user to top up credits or upgrade on the returned subscriptionUrl (the Renderforest subscription page). For a music clip pass audioUrl (+ optional soundStart/soundEnd) instead of durationSeconds.

Parameters

ParameterTypeDescription
prompt
optional
stringThe video brief. Required for a normal story; optional for a music clip (audioUrl), where the song lyrics drive the scenes.
durationSeconds
optional
integerTotal video length in seconds (5–300). Required for a normal story. OMIT for a music clip (audioUrl) — the length comes from the audio trim window (soundStart/soundEnd).
keepScriptVerbatim
optional
booleanUse the prompt as the exact script instead of letting Renderforest enhance/expand it. Set true when the user wrote (or approved) the precise narration; default false (enhanced, like the web flow).
includeSubtitles
optional
booleanBurn the narration into the video as editable subtitle text layers (for a music clip: the transcribed lyrics). Needs voiceover on, or a music clip — otherwise rejected before any charge. Default false.
aspectRatio
required
16:9 | 1:1 | 9:16
style
required
object,stringThe visual style of the video — the STYLE CHOICE BELONGS TO THE USER: before generating, show them ALL styles from analyze_prompt.styleOptions as a text list (name + one-line description, marking the suggested one); if your host can present clickable options, ALSO offer the suggested style plus the 2-3 best fits for the brief as buttons — the free-text 'Other' choice covers any other style from the list, since style can be passed simply by NAME (case-insensitive, e.g. 'Anime') as well as by the option's `style` object. Never silently use the suggestion. A call without a valid style is rejected together with the full style catalog.
storyType
optional
videoStory type. Only video (animated scenes) is currently supported via MCP; still-image stories are not yet available here. Default video.
videoType
optional
stringThe video's creative direction (scenario director): one of the codes from analyze_prompt.videoTypeOptions (e.g. 'ugc', 'product-promo', 'app-promo', 'cinematic', 'cartoon', 'whiteboard', 'anime', 'comic-book'). analyze_prompt returns suggestedVideoType — pass it (or the user's pick) here so scenes are directed for that format. Omit to use the default cinematic story direction. Ignored for music clips.
videoModel
optional
stringVideo model id (video storyType).
quality
optional
integerVideo quality, e.g. 720 or 1080. Omit to use the model default.
voiceoverEnabled
optional
booleanWhether to add voiceover narration. Default true. Ignored for a music clip (audioUrl) — voiceover is always off there.
speakerId
optional
integerOptional TTS voice id from list_tts_voices (voices[].speakerId). Omit to auto-select a voice matching the script language.
language
optional
stringVoiceover/script language — an ISO code ('hy') or English name ('Armenian'). The script is written in this language and a NATIVE voice for it is picked automatically when one exists (multilingual voices are only the fallback); pass speakerId from list_tts_voices to choose a specific voice/gender instead. Omit to use the language the brief is written in.
voiceGender
optional
male | femalePreferred narrator gender when the user has not named a speakerId; a native voice of that gender is picked for the script language. Omit to let the platform choose.
fastTrack
optional
booleanPriority generation (the website’s “Priority generation”): ready in minutes (up to about an hour for long videos), charged the multiplied video credits (list_video_models fastTrack.creditMultiplier) even when the user’s plan includes the model. Omitted/false = Standard generation: low-priority queue, could take a few hours; models the plan includes charge no video credits there. estimate_story_cost returns both prices (estimatedCredits for the requested lane, fastTrack.estimatedCredits or standardGeneration.estimatedCredits for the other) — present the choice when the model supports it.
useWebSearch
optional
booleanGround the scenario on live web search results (useful for briefs about real products, brands, places or current events). SUBSCRIBERS ONLY — a free account gets a validation error, so only pass it when the user asks for up-to-date/factual grounding and drop it if rejected.
audioUrl
optional
stringTurn this into a MUSIC VIDEO synced to the user's audio (the Renderforest AI music flow): the song is transcribed, beat/lyric-timed into scenes, and the track is laid under the render. Pass the direct audio URL (mp3/wav/…). When set, this is a music clip: OMIT durationSeconds, and voiceover is off. Optionally narrow the section with soundStart/soundEnd.
soundStart
optional
numberMusic clip only: start of the audio section to use, in seconds (default 0).
soundEnd
optional
numberMusic clip only: end of the audio section to use, in seconds. Omit to use the whole track (auto-detected; capped at analyze_prompt.maxMusicClipSeconds — up to 12 minutes, less when the model cannot schedule that many scenes). soundEnd − soundStart is the final video length.
audioTitle
optional
stringMusic clip only: optional display title for the track.
referenceImageUrls
optional
array of stringOptional user image URLs (up to 15) to steer the story: used as character/identity references, style guidance, and per-scene source imagery across the whole video (works for both normal and music-clip stories). These are NOT per-scene first/last frames — the model decides how each image is used. Plain image URLs (jpg/png/webp).
list_video_modelsList AI video models Read-onlyNo charge

List the AI video models, their durations, qualities, costs and capabilities.

Description shown to the assistant

List available Renderforest AI video models PRICED FOR THIS USER: per duration and quality, `credits` is the Standard-generation price (0 with includedInPlan:true where the user’s plan includes the model — tell the user those are included in their plan, never quote the list price) and `fastTrackCredits` the Priority-generation price; plus reference-image inputs, fast-track support (with standardConcurrentLimit = how many standard generations may run at once), the platform default model, allowed aspect ratios and generationModes (what the two lanes mean). Each model carries a name, a description of what it's best for (speed, cinematic quality, social content, storytelling…) and a storyCapable flag (whether generate_video_story accepts it) — when the user hasn't named a model and the choice materially affects the result or cost, present 2-3 fitting options with a one-line summary each and let the user pick instead of silently using the default. Models with fastTrack.supported generate much faster for fastTrackCredits (Priority generation) — offer that when the user is in a hurry or hits the concurrency limit. The listed durations are the max length of a SINGLE clip per model — a request longer than that is not a reason to stitch clips, it's a reason to use generate_video_story (which composites multiple scenes into one video, and accepts any of these models as its videoModel). Call this when the user cares about model choice, duration, quality, or cost details.

Parameters

No parameters.

list_image_modelsList image models Read-onlyNo charge

List AI image models, their per-image cost, aspect ratios and the available styles.

Description shown to the assistant

List the AI image models (code, credit cost per image for THIS user — 0 with includedInPlan:true when the user’s plan includes the model —, supported aspect ratios, how many reference images each accepts), the image styles the user can pick by name, and the user's current AI credit balance. Read-only. ALWAYS call it before the first generate_image of a conversation: the model choice belongs to the user — present the models by name with their price (default marked; say “included in your plan” instead of a price for includedInPlan models) and ask which one to use, unless the user already named a model. Also quote the charge (creditsPerImage × count) and the balance before generating.

Parameters

No parameters.

list_tts_voicesList TTS voices Read-onlyNo charge

List voiceover languages and voices for narrated videos.

Description shown to the assistant

List the voiceover (TTS) languages and voices available for narrated videos, grouped by language, plus multilingual voices that can narrate any language. Use this to answer 'do you support <language> narration?' (e.g. Armenian → yes) and to pick a speakerId when the user wants a specific voice. For a specific narration language, set `language` on the story tools — the script is then written in that language and a fitting voice is auto-selected.

Parameters

No parameters.

get_credit_balanceGet credit balance Read-onlyNo charge

Read the user's current AI credit balance.

Description shown to the assistant

Get the user's current Renderforest AI credit balance. Rarely needed: analyze_prompt (costEstimate) and the estimate tools already return availableCredits — call this only when the user asks for their balance outright. ALWAYS state the exact availableCredits number in your reply — the user cannot see this tool's raw response. The response includes subscriptionUrl — the Renderforest subscription page where the user can top up credits or upgrade their plan; point them there when credits run short.

Parameters

No parameters.

Generate

Write tools. Each starts an asynchronous generation job in the user’s Renderforest account and spends AI credits from their balance. Claude and ChatGPT ask for confirmation before running them.

generate_videoGenerate AI video WriteSpends AI credits

Generate one AI video clip from text, or animate an image.

Description shown to the assistant

Start a SINGLE AI video generation on Renderforest — one clip, up to the chosen model's max clip length (see list_video_models; e.g. some models cap at 15s). Do NOT use this for longer videos by stitching multiple clips yourself: if the request is longer than one clip, has multiple scenes, or is a narrative/animation/story, use generate_video_story instead (it splits the brief into scenes and composites them into one continuous rendered video). Charges the user's AI credits — except in the standard lane for models the plan includes (0 credits). LANES: fastTrack omitted = Standard generation (queued at low priority, may take a while); fastTrack:true = Priority generation (minutes, always charged). Returns a jobId immediately — then poll get_video_status in a loop with waitSeconds: 45 (the server holds each call) until completed or failed — do not stop polling and never ask the user to check status themselves. Call estimate_video_cost first and confirm the cost with the user.

Parameters

ParameterTypeDescription
prompt
optional
stringWhat the video should show. Required for text-to-video; optional only when imageUrl is provided.
imageUrl
optional
stringOptional image URL (jpg/png/webp) to animate — image-to-video. When set, prompt becomes optional.
aspectRatio
optional
16:9 | 1:1 | 9:16Video aspect ratio. Required for text-to-video (e.g. 9:16 for TikTok/Reels UGC).
videoModel
optional
stringModel id from list_video_models. Omit to use the platform default model.
videoDurationSeconds
optional
integerMust be one of the durations the chosen model offers (see list_video_models). Omit for the model default.
quality
optional
integerVideo quality, e.g. 720 or 1080. Omit for the model default.
fastTrack
optional
booleanPriority generation (the website’s Power mode): skips the standard queue and is usually ready in minutes, charged at fastTrackCredits (creditMultiplier × the list price) even when the user’s plan includes the model. Omitted/false = Standard generation: queued at low priority (may take a while; a model may cap how many standard generations run at once per user — standardConcurrentLimit), 0 credits for qualities marked includedInPlan in list_video_models, otherwise the listed credits. Only allowed when the model supports it.
referenceMedias
optional
objectReference images for the model. Only types listed in list_video_models.referenceInputs are allowed.
generate_video_storyGenerate AI video story WriteSpends AI credits

Generate a multi-scene story, explainer, animation or music video and render it as one video.

Description shown to the assistant

Generate a long, multi-scene AI video (a story / short / explainer / animation / MUSIC VIDEO) from a brief and render it into ONE continuous watchable video. This is the right tool whenever the requested length exceeds a single model's max clip, or the content spans multiple shots/scenes — it automatically breaks the brief into scenes, generates each (using the chosen videoModel, so naming a specific model is fine), keeps a shared scenario + consistent characters across scenes (subscribers get dedicated upfront character reference images), and composites + renders everything into a single video. Pass videoType (from analyze_prompt's suggestedVideoType / videoTypeOptions) to direct the scenario for a specific format — UGC, product promo, app promo, whiteboard, comic book, cinematic… You do NOT stitch clips yourself — prefer this over generate_video for anything longer than one clip. durationSeconds is the TOTAL length (5–300 seconds). MUSIC VIDEO: pass audioUrl to build a clip synced to the user's song (lyrics/beats drive the scenes and the track is laid under the render) — then OMIT durationSeconds (length comes from soundStart/soundEnd, whole track by default) and voiceover is off. REFERENCE IMAGES: pass referenceImageUrls to reuse the user's images as characters/style/source imagery across scenes (works with or without audio). Charges the user's AI credits. Returns a jobId immediately; then poll get_video_status in a loop with waitSeconds: 45 (the server holds each call) until completed or failed — do not stop polling and never ask the user to check status themselves. The job completes only when the video is generated AND rendered. LANES: fastTrack omitted = Standard generation (low-priority queue, could take a few hours; models the plan includes charge no video credits); fastTrack:true = Priority generation (minutes, the multiplied video credits are always charged). Call analyze_prompt then estimate_story_cost first and confirm the cost. FAILURES: if a story job fails, do NOT call this tool again to retry on your own — each run charges credits (failed work is auto-refunded); report the failure and wait for the user to explicitly ask for a retry. STYLE: the user must explicitly choose the visual style — present all analyze_prompt.styleOptions and pass the user's pick as `style`; a missing or unknown style is rejected along with the full catalog (ask the user, then retry).

Parameters

ParameterTypeDescription
prompt
optional
stringThe video brief. Required for a normal story; optional for a music clip (audioUrl), where the song lyrics drive the scenes.
durationSeconds
optional
integerTotal video length in seconds (5–300). Required for a normal story. OMIT for a music clip (audioUrl) — the length comes from the audio trim window (soundStart/soundEnd).
keepScriptVerbatim
optional
booleanUse the prompt as the exact script instead of letting Renderforest enhance/expand it. Set true when the user wrote (or approved) the precise narration; default false (enhanced, like the web flow).
includeSubtitles
optional
booleanBurn the narration into the video as editable subtitle text layers (for a music clip: the transcribed lyrics). Needs voiceover on, or a music clip — otherwise rejected before any charge. Default false.
aspectRatio
required
16:9 | 1:1 | 9:16
style
required
object,stringThe visual style of the video — the STYLE CHOICE BELONGS TO THE USER: before generating, show them ALL styles from analyze_prompt.styleOptions as a text list (name + one-line description, marking the suggested one); if your host can present clickable options, ALSO offer the suggested style plus the 2-3 best fits for the brief as buttons — the free-text 'Other' choice covers any other style from the list, since style can be passed simply by NAME (case-insensitive, e.g. 'Anime') as well as by the option's `style` object. Never silently use the suggestion. A call without a valid style is rejected together with the full style catalog.
storyType
optional
videoStory type. Only video (animated scenes) is currently supported via MCP; still-image stories are not yet available here. Default video.
videoType
optional
stringThe video's creative direction (scenario director): one of the codes from analyze_prompt.videoTypeOptions (e.g. 'ugc', 'product-promo', 'app-promo', 'cinematic', 'cartoon', 'whiteboard', 'anime', 'comic-book'). analyze_prompt returns suggestedVideoType — pass it (or the user's pick) here so scenes are directed for that format. Omit to use the default cinematic story direction. Ignored for music clips.
videoModel
optional
stringVideo model id (video storyType).
quality
optional
integerVideo quality, e.g. 720 or 1080. Omit to use the model default.
voiceoverEnabled
optional
booleanWhether to add voiceover narration. Default true. Ignored for a music clip (audioUrl) — voiceover is always off there.
speakerId
optional
integerOptional TTS voice id from list_tts_voices (voices[].speakerId). Omit to auto-select a voice matching the script language.
language
optional
stringVoiceover/script language — an ISO code ('hy') or English name ('Armenian'). The script is written in this language and a NATIVE voice for it is picked automatically when one exists (multilingual voices are only the fallback); pass speakerId from list_tts_voices to choose a specific voice/gender instead. Omit to use the language the brief is written in.
voiceGender
optional
male | femalePreferred narrator gender when the user has not named a speakerId; a native voice of that gender is picked for the script language. Omit to let the platform choose.
fastTrack
optional
booleanPriority generation (the website’s “Priority generation”): ready in minutes (up to about an hour for long videos), charged the multiplied video credits (list_video_models fastTrack.creditMultiplier) even when the user’s plan includes the model. Omitted/false = Standard generation: low-priority queue, could take a few hours; models the plan includes charge no video credits there. estimate_story_cost returns both prices (estimatedCredits for the requested lane, fastTrack.estimatedCredits or standardGeneration.estimatedCredits for the other) — present the choice when the model supports it.
useWebSearch
optional
booleanGround the scenario on live web search results (useful for briefs about real products, brands, places or current events). SUBSCRIBERS ONLY — a free account gets a validation error, so only pass it when the user asks for up-to-date/factual grounding and drop it if rejected.
audioUrl
optional
stringTurn this into a MUSIC VIDEO synced to the user's audio (the Renderforest AI music flow): the song is transcribed, beat/lyric-timed into scenes, and the track is laid under the render. Pass the direct audio URL (mp3/wav/…). When set, this is a music clip: OMIT durationSeconds, and voiceover is off. Optionally narrow the section with soundStart/soundEnd.
soundStart
optional
numberMusic clip only: start of the audio section to use, in seconds (default 0).
soundEnd
optional
numberMusic clip only: end of the audio section to use, in seconds. Omit to use the whole track (auto-detected; capped at analyze_prompt.maxMusicClipSeconds — up to 12 minutes, less when the model cannot schedule that many scenes). soundEnd − soundStart is the final video length.
audioTitle
optional
stringMusic clip only: optional display title for the track.
referenceImageUrls
optional
array of stringOptional user image URLs (up to 15) to steer the story: used as character/identity references, style guidance, and per-scene source imagery across the whole video (works for both normal and music-clip stories). These are NOT per-scene first/last frames — the model decides how each image is used. Plain image URLs (jpg/png/webp).
add_sceneAdd scene WriteSpends AI credits

Generate an additional scene clip for an existing project.

Description shown to the assistant

Smart add: generate a NEW scene clip for an existing gen-AI video project, consistent with its scenario and style. Charges the user's AI credits. NOTE: the output is a STANDALONE clip — the project's already-rendered story video is NOT re-composited/re-rendered with it; the user downloads the clip or places it into the story in the Renderforest editor. Say this to the user up front. Returns a jobId immediately; then poll get_video_status in a loop with waitSeconds: 45 (the server holds each call) until completed or failed — do not stop polling and never ask the user to check status themselves. Call get_video_project first if you need to see the current scenes.

Parameters

ParameterTypeDescription
projectId
required
integerThe gen-AI project id to add the scene to (from get_video_project).
prompt
required
stringWhat the new scene should show.
referenceMedias
optional
objectReference images for the model. Only types listed in list_video_models.referenceInputs are allowed.
videoDurationSeconds
optional
integerMust be one of the durations the chosen model offers (see list_video_models). Omit for the model default.
videoModel
optional
stringModel id from list_video_models. Omit to use the platform default model.
aspectRatio
optional
16:9 | 1:1 | 9:16Video aspect ratio. Required for text-to-video (e.g. 9:16 for TikTok/Reels UGC).
quality
optional
integerVideo quality, e.g. 720 or 1080. Omit for the model default.
fastTrack
optional
booleanPriority generation (the website’s Power mode): skips the standard queue and is usually ready in minutes, charged at fastTrackCredits (creditMultiplier × the list price) even when the user’s plan includes the model. Omitted/false = Standard generation: queued at low priority (may take a while; a model may cap how many standard generations run at once per user — standardConcurrentLimit), 0 credits for qualities marked includedInPlan in list_video_models, otherwise the listed credits. Only allowed when the model supports it.
edit_sceneEdit scene Write · replaces contentSpends AI credits

Regenerate one scene of an existing project from a new prompt (replaces that scene).

Description shown to the assistant

Smart edit: regenerate one scene of a gen-AI video project from a new prompt, consistent with its scenario and style. Charges the user's AI credits. NOTE: the output is a STANDALONE replacement clip — the project's already-rendered story video is NOT re-composited/re-rendered with it; the user downloads the clip or places it into the story in the Renderforest editor. Say this to the user up front. Returns a jobId immediately; then poll get_video_status in a loop with waitSeconds: 45 (the server holds each call) until completed or failed — do not stop polling and never ask the user to check status themselves. Call get_video_project first to get a valid sceneIndex.

Parameters

ParameterTypeDescription
projectId
required
integerThe gen-AI project id containing the scene to edit (from get_video_project).
sceneIndex
required
integerIndex of the scene to edit, from get_video_project.scenes[].sceneIndex.
prompt
required
stringWhat the edited scene should show.
referenceMedias
optional
objectReference images for the model. Only types listed in list_video_models.referenceInputs are allowed.
videoDurationSeconds
optional
integerMust be one of the durations the chosen model offers (see list_video_models). Omit for the model default.
videoModel
optional
stringModel id from list_video_models. Omit to use the platform default model.
aspectRatio
optional
16:9 | 1:1 | 9:16Video aspect ratio. Required for text-to-video (e.g. 9:16 for TikTok/Reels UGC).
quality
optional
integerVideo quality, e.g. 720 or 1080. Omit for the model default.
fastTrack
optional
booleanPriority generation (the website’s Power mode): skips the standard queue and is usually ready in minutes, charged at fastTrackCredits (creditMultiplier × the list price) even when the user’s plan includes the model. Omitted/false = Standard generation: queued at low priority (may take a while; a model may cap how many standard generations run at once per user — standardConcurrentLimit), 0 credits for qualities marked includedInPlan in list_video_models, otherwise the listed credits. Only allowed when the model supports it.
generate_imageGenerate AI image WriteSpends AI credits

Generate 1–4 AI images from a prompt (optionally with reference images). Also the "preview a still before the video" step.

Description shown to the assistant

Generate 1–4 AI images from a text prompt in the user's Renderforest account. Charges AI credits (creditsPerImage × count from list_image_models; nothing for a model marked includedInPlan). NEVER choose the model for the user: unless they named one, first call list_image_models and ask which model to use, and tell them the exact charge and their current balance before calling this. When the images are ready, report the charge and the availableCredits the result returns (do not subtract yourself). Optional: model (code), aspectRatio (must be one the model supports, default 1:1), style (a style name from list_image_models), referenceImageUrls (the user's own images from get_uploaded_media, up to the model's referenceImagesMax). The call waits up to ~40 s and usually returns the finished images; if it returns status processing, call get_image_project with the imageProjectId a few seconds later. PREVIEW A STILL BEFORE A VIDEO: when the user wants to see how a video would look before spending video credits, generate one image with the same prompt, style and aspect ratio, show it with show_media, and once approved pass its url as referenceMedias.images[0] (type firstFrame) to generate_video or in referenceImageUrls to generate_video_story. Never fetch, open or describe the image yourself.

Parameters

ParameterTypeDescription
prompt
required
stringWhat to draw. Be concrete: subject, setting, lighting, mood.
model
optional
stringImage model code from list_image_models — the one the user picked. Omit only when the user explicitly asked for the default.
aspectRatio
optional
stringOne of the model’s supported ratios, e.g. 1:1, 16:9, 9:16. Default 1:1.
style
optional
stringStyle name from list_image_models (optional).
count
optional
integerHow many images (1–4). Default 1.
referenceImageUrls
optional
array of stringOptional user image URLs (from get_uploaded_media) to steer the result; the model must accept references.

Track and deliver

Read-only. Follow a job to completion and hand the finished video to the user.

get_video_statusCheck video status Read-onlyNo charge

Wait on a running generation job and return its progress or result.

Description shown to the assistant

Wait on / check a generation job from any of the async tools. ALWAYS pass waitSeconds: 45 — the server HOLDS the call and returns as soon as the job finishes or the window elapses, so one call replaces many instant polls; calling it in a loop IS how you wait. Keep looping until status is completed or failed — never stop mid-job and never ask the user to request status checks themselves; they expect the finished video, delivered by you, unprompted. If your host forces the turn to end (a hard tool-call limit), tell the user the video keeps generating server-side and any short reply resumes tracking — then resume the loop immediately next turn. Returns status (submitted | processing | completed | failed), progress percent, and — once completed — videoUrl (the MP4 file) plus, for story jobs, previewUrl (a shareable Renderforest watch page; prefer showing the user this link).

Parameters

ParameterTypeDescription
jobId
required
stringThe jobId returned by the generation tool.
waitSeconds
optional
integerLong-poll window in seconds (max 45). ALWAYS pass 45 for an in-flight job: the server holds the call and returns early on completion. Omit only for a one-off instant check.
show_videoShow video player Read-onlyNo charge

Show a finished video in an inline player (hosts with interactive widgets).

Description shown to the assistant

Display the finished video in an inline player widget. Call at most ONCE per job, and ONLY after get_video_status reports status: completed — it rejects jobs that are still processing. Skip it entirely if your host does not render interactive widgets; in that case the videoUrl link from get_video_status is the deliverable.

Parameters

ParameterTypeDescription
jobId
required
stringThe jobId of a COMPLETED generation job.
submit_feedbackSubmit feedback WriteNo charge

Send the user's own feedback about a finished video to the Renderforest team.

Description shown to the assistant

Send feedback the USER typed about a generated video (or about the Renderforest experience) to the Renderforest team. Call it ONLY after the user has written feedback themselves — normally in reply to the one feedback question you ask when get_video_status reports a video completed — and pass their words verbatim in message (never your paraphrase, never text they did not write). Pass the jobId of the video the feedback is about when there is one. At most one call per piece of user feedback; nothing is charged.

Parameters

ParameterTypeDescription
message
required
stringThe user's feedback, verbatim.
jobId
optional
stringjobId of the generation the feedback is about, when it concerns a specific video.
get_video_projectView video project Read-onlyNo charge

Inspect a generated project's scenes to pick one to edit or extend.

Description shown to the assistant

Get a curated view of a generated video project: status, aspect ratio, video model, and each scene indexed with its (truncated) prompt, duration in seconds, and whether it already has a rendered video. Use this to pick a sceneIndex before editing or adding scenes.

Parameters

ParameterTypeDescription
projectId
required
integerThe gen-AI project id.
export_videoRe-export video WritePlan-gated

Re-render an existing story at a different quality. No AI credits; 1080p+ needs a paid plan.

Description shown to the assistant

Re-export (re-render) an already-generated story project at a DIFFERENT quality — e.g. the user generated/exported at 720 and now wants 1080. This does NOT regenerate the video: no scenes are recreated, no AI credits are charged; it just re-renders the existing composited project at the new resolution. Use this (NOT generate_video_story) when the user asks for the same video in another quality — only on request; never offer higher resolutions unprompted after a generation. Allowed qualities: 360, 720, 1080, 2160 — 1080 and 2160 are paid-plan only (free exports cap at 720; a free user gets an upgrade message). Call get_video_project first to see which qualities already exist in `exports`. Returns a jobId immediately; then poll get_video_status in a loop with waitSeconds: 45 until completed — the completed videoUrl is the new-quality file. projectId is the gen-AI project id (from get_video_project / analyze_prompt flow).

Parameters

ParameterTypeDescription
projectId
required
integerThe gen-AI project id to re-export (from get_video_project).
quality
required
integerTarget export quality in pixels: one of 360, 720, 1080, 2160. 1080/2160 require a paid plan.

Your library

Read-only. Browse what the user already made — AI images, short clips and long projects — and show them in the inline gallery. "Show my latest videos" makes the assistant ask whether you mean short clips or long projects.

list_ai_imagesList AI images Read-onlyNo charge

Browse the user's previously generated AI images.

Description shown to the assistant

List the user's previously generated AI images (newest first; every Renderforest surface, not only this chat). Each entry is one generation with its prompt, model and images. Then call show_media with { kind: 'image', ids: [imageProjectIds] } to display them — do not paste URLs. Page with offset.

Parameters

ParameterTypeDescription
limit
optional
integerPage size, default 12.
offset
optional
integerSkip this many generations (paging).
model
optional
stringOnly this image model code.
aspectRatio
optional
stringOnly this aspect ratio.
get_image_projectGet image project Read-onlyNo charge

Read one image generation and its image URLs.

Description shown to the assistant

Read one image generation (an image project) by imageProjectId: status (processing / completed / failed) and each image’s url + thumbnailUrl. Use it to finish a generate_image that returned processing, or to fetch an older generation before show_media.

Parameters

ParameterTypeDescription
imageProjectId
required
integerThe imageProjectId returned by generate_image or list_ai_images.
list_videosList videos Read-onlyNo charge

Browse the user's short AI clips or long story / editor projects (the assistant asks which).

Description shown to the assistant

List the user's videos. kind is REQUIRED: 'short' = single AI clips generated from a prompt or an image (a few seconds long, made with generate_video / add_scene / edit_scene or the website's AI video generator); 'long' = multi-scene projects (AI stories from generate_video_story and Renderforest editor projects) rendered into one video. If the user's request does not make clear which they mean (e.g. 'show my latest videos'), ASK in one line before calling. Newest first. Then call show_media with the same kind and the ids to display them; drafts (long) have no video yet and open in the editor via editorUrl.

Parameters

ParameterTypeDescription
kind
required
short | long'short' single AI clips · 'long' multi-scene story / editor projects.
limit
optional
integerPage size (default 12; long is capped at 12).
offset
optional
integerSkip this many items (paging).
model
optional
stringshort only: filter by video model code.
aspectRatio
optional
stringshort only: 16:9, 9:16 or 1:1.
includeProcessing
optional
booleanshort only: also list clips still generating.
state
optional
draft | exported | exporting | failedlong only: filter by project state.
search
optional
stringlong only: filter by project name.
show_mediaShow media gallery Read-onlyNo charge

Show images or videos in an inline gallery (hosts with interactive widgets).

Description shown to the assistant

Display images or videos in an inline gallery widget. kind is REQUIRED and must match the ids: 'image' → imageProjectIds from generate_image / list_ai_images (every image of each generation is shown); 'short' → ids from list_videos({ kind: 'short' }) or a completed generate_video; 'long' → ids from list_videos({ kind: 'long' }) (the rendered video is resolved for each). Up to 12 ids, newest first. Call it ONCE per set; skip it if the host does not render widgets and give links instead. Never mix kinds in one call.

Parameters

ParameterTypeDescription
kind
required
image | short | longWhat the ids are.
ids
required
array of integerIds of that kind, in display order.

Your own media

MCP has no file transfer, so reference images and audio are added in a short-lived, single-user in-chat upload widget and then referenced by URL.

upload_mediaUpload media Read-onlyNo charge

Open the in-chat upload widget so the user can add their own images and audio to their Renderforest library.

Description shown to the assistant

Open the in-chat upload widget so the USER can add their own IMAGES (png/jpg/webp) and AUDIO (mp3/wav/m4a — their own or licensed track for a music video) to their Renderforest media library. The widget rendered with this result is the ONLY way to add files: there is no upload link or upload page, so never invent one or send the user to a browser. Returns { uploadId }. The widget is EMPTY when this returns, so do NOT call get_uploaded_media yet and NEVER poll it: in ONE short line ask the user to add the files in the widget above and say "done" when finished, then END your turn and wait. Only after they confirm, call get_uploaded_media once with the uploadId; its hint says how to pass each file: images as referenceImageUrls (story tools) or typed referenceMedias.images per list_video_models.referenceInputs; audio as audioUrl (+ audioTitle) to analyze_prompt / generate_video_story for a MUSIC VIDEO (soundStart/soundEnd cut a shorter clip). Files attached to the chat cannot be forwarded: the user must add them through the widget.

Parameters

ParameterTypeDescription
purpose
optional
stringALWAYS pass this: one short line saying what the images are for (e.g. "Reference images for the Seedance product clip"). Shown to the user in the permission prompt and as the upload widget subtitle. Max 140 characters.
get_uploaded_mediaCheck uploaded media Read-onlyNo charge

Check whether the user finished uploading and fetch the resulting image URLs.

Description shown to the assistant

Read the media the user uploaded in upload_media's in-chat widget. Call it ONCE, after the user says they have finished uploading — never right after upload_media and never in a polling loop (the widget is empty until the user acts, and each call may need their approval). Returns status 'pending' when nothing has arrived yet — then tell the user in one line that no files were received and wait for them — or 'ready' with images (URLs), audios ([{ url, name }]) and mediaUrls (all). NEVER fetch, open or view these URLs yourself — they are opaque inputs for the video tools and the user already sees the files in the widget; acknowledge the upload in one line and continue. The result also carries a hint on how to pass each: images as referenceImageUrls (story tools) or typed referenceMedias.images per list_video_models.referenceInputs (generate_video / add_scene / edit_scene); audio as audioUrl (+ audioTitle) to analyze_prompt / generate_video_story for a music video.

Parameters

ParameterTypeDescription
uploadId
required
stringThe uploadId returned by upload_media.

Workflows

A few things people ask for, and which tools the assistant uses to deliver them. You never call tools yourself; you describe the outcome.

A short clip

"Make a 10-second 9:16 clip of a golden retriever running through autumn leaves, cinematic."

estimate_video_cost → confirm price → generate_video → get_video_status (repeated while it renders) → show_video or a download link.

list_image_models → generate_image → show_media (kind image). Preview a still before a video: generate one image with the video's prompt and style, approve it, then generate_video with it as the first frame or generate_video_story with it as a reference.

list_ai_images / list_videos (short or long) → show_media with the same kind.

An explainer with narration

"Create a 60-second explainer about our new recycling program, friendly tone, with a female English voiceover."

analyze_prompt suggests type, style, duration and price → you approve → generate_video_story → get_video_status → finished video.

A music video

"Turn this track into a dreamy animated music video: https://…/song.mp3, use 0:30 to 1:30."

analyze_prompt with the audio URL and trim window → generate_video_story (visuals are cut to the music, no voiceover) → get_video_status.

Using your own images

"Animate our product photos into a 15-second ad."

upload_media opens an in-chat dropzone → get_uploaded_media waits for the upload → the image URLs become reference images for generate_video or generate_video_story.

Changing a finished video

"Redo scene 3 with a night-time city instead." "Export the same video in 1080p."

get_video_project → edit_scene or add_scene (new standalone clips you can place in the Renderforest editor) · export_video re-renders the existing project at another quality without regenerating anything.

Long generations. Videos take from under a minute to several minutes. The assistant keeps checking status server-side; if your host ends the turn first, the job keeps running and any short reply resumes tracking it.

Credits and billing

Generation is paid with the AI credits included in your Renderforest plan. The connector never bills anything itself and never touches payment details.

  • Read-only tools are free. Analysis, estimates, model lists, voice lists, balance, status checks, project views and the video player never spend credits.
  • You see the price first. The estimate tools return the exact credit cost and whether your balance covers it, and the assistant is instructed to tell you before starting.
  • Charges happen when a generation starts (generate_video, generate_video_story, add_scene, edit_scene, generate_image). Stories are charged up front for the requested length; scenes and images that fail to generate are refunded automatically.
  • Two generation lanes, as on the website. By default a generation runs as Standard generation: queued at low priority, so it can take a while, and free for the models your plan includes. Priority generation (the website’s Power mode, fastTrack) skips the queue and is charged at a multiplied credit price even on included models; the assistant only uses it when you ask for it, and the estimates show both prices.
  • Plan-included models cost nothing in the standard lane. Models your subscription lists as unlimited are marked includedInPlan in the model lists and estimates and charge 0 credits with standard generation.
  • Re-exports are not generations. export_video re-renders an existing story and spends no AI credits. Exporting at 1080p or 2160p requires a paid plan; 360p and 720p are available to everyone.
  • Free accounts receive a gift allowance and may get a trial version of a longer story (the first scenes) when the balance does not cover the whole request.

Top up credits or change plans on your Renderforest subscription page. When a tool fails for lack of credits, it says so and points there.

Data and privacy

The connector receives only the arguments of the tool calls the assistant makes. It has no access to your conversation, your other chats, files you shared with the assistant, or the assistant's memory.

What is sent to Renderforest

  • The video brief (prompt) and generation settings you or the assistant chose.
  • Optional URLs of images or audio you asked to use, and files you add in the upload widget, which are stored in your Renderforest media library.
  • The identity of your Renderforest account, established by the OAuth sign-in. The user id is taken only from the token, never from tool arguments.

Prompts and media are processed by Renderforest's AI video pipeline, which uses third-party AI model providers under contract to Renderforest, as described in the Renderforest Privacy Policy. Generated projects and videos are stored in your Renderforest account like any other project you create on the website, under the same policy and retention rules.

What the gateway itself stores

DataPurposeRetention
OAuth access and refresh tokens (opaque, stored hashed)Authenticate your client1 hour / 30 days, deleted on revocation
Registered OAuth client recordsBind tokens to your client and its redirect URI90 days after last use
Generation job status (job id, state, progress, result URL)Answer status checks48 hours
Upload sessions (upload id, your user id, uploaded file URLs)Hand uploaded files back to the assistant30 minutes
Operational logs and error reportsReliability and security monitoringPer Renderforest's internal logging policy
  • No conversation content is collected beyond the tool arguments needed to perform each call.
  • No advertising, sponsored content or product placement is ever returned by any tool.
  • No personal health data is requested, processed or stored.
  • Media URLs you supply are validated before being fetched (public https only) and reference images must come from your own Renderforest library or explicitly allowed hosts.

Full details: Privacy Policy · Terms and Conditions.

Enterprise setup

For IT administrators enabling the connector for a Claude Team/Enterprise organization or a ChatGPT Business/Enterprise workspace.

Authentication model

  • Per-user OAuth 2.1. Each member authorizes the connector with their own Renderforest account. There is no organization-level credential, API key or service account to provision, and nothing for an admin to store on Renderforest's side.
  • Dynamic client registration. Claude and ChatGPT register themselves automatically. If your platform requires a pre-registered client ID (Anthropic-held or client-ID-metadata modes), contact support and we will provision one.
  • Redirect hosts are allow-listed on the server (Claude and ChatGPT callback hosts). Additional MCP clients can be allow-listed on request.
  • Scopes are fixed to renderforest:videos and renderforest:images, both shown on the consent screen.

Enabling in Claude (Team/Enterprise)

  1. In Admin settings → Connectors, add the connector from the directory or as a custom connector with the URL https://mcp.renderforest.com/mcp.
  2. Choose which members or groups may use it. No credentials are needed at this step.
  3. Each member connects once from Settings → Connectors, signing in to their own Renderforest account.

Enabling in ChatGPT (Business/Enterprise)

  1. An admin enables Developer mode (or publishes the connector to the workspace) and creates the connector with the URL https://mcp.renderforest.com/mcp and authentication set to OAuth.
  2. Members complete the Renderforest sign-in the first time they use it.

Network and account requirements

  • Members must be able to reach https://mcp.renderforest.com and https://www.renderforest.com from their browser to complete the consent flow.
  • Members need a Renderforest account. Teams that centralize billing can use Renderforest team plans; credits are consumed from the account that authorized the connector.
  • To offboard a member, disconnect the connector in the assistant (revokes the token) and/or deactivate their Renderforest account.

Limits and reliability

LimitValue
Requests to the MCP endpoint240 per minute per client address (429 with a JSON-RPC error when exceeded)
OAuth endpoints30 per minute per client address
Status long-pollUp to 45 seconds per get_video_status call; the assistant loops until the job finishes
Job status retention48 hours after the job is created
Clip length and qualityPer model, see list_video_models
Story lengthReturned by analyze_prompt for the chosen model; longer requests are split into more scenes
UploadsIn-chat widget only, up to 10 files per batch, 50 files per upload session; sessions expire after 30 minutes
  • The transport is stateless: every request is independent, so the service scales horizontally and a restart never loses a running generation.
  • Errors are specific and actionable. Validation, credit and moderation problems return the exact reason; unexpected internal failures return a generic message and are reported to our on-call monitoring.
  • Health: https://mcp.renderforest.com/health returns OK when the service is up.

Troubleshooting

"Couldn't connect" or the connector never asks me to sign in
Check the URL is exactly https://mcp.renderforest.com/mcp (https, no trailing slash after mcp). Corporate proxies that strip the WWW-Authenticate header break OAuth discovery; try from another network to confirm.
The consent page keeps redirecting to sign-in
Sign in to renderforest.com in the same browser first, then retry the connection. Third-party cookie blockers can prevent the session from being read; allow cookies for renderforest.com.
"Not enough credits"
The estimate exceeded your balance. Top up or upgrade on the subscription page, or ask for a shorter or lower-quality video.
The video seems stuck in processing
Long stories can take several minutes. Ask the assistant to check the status again; the job keeps running server-side. If a job fails, credits for scenes that were not generated are refunded.
I only got a link, not an inline player
Inline widgets render only in hosts that support MCP Apps. The link opens the video on Renderforest and also offers a download.
"Rate limit exceeded"
Wait a minute and try again. Status checks already wait server-side, so rapid repeated calls are unnecessary.
My upload widget says the session expired
Upload sessions are valid for 30 minutes. Ask the assistant to start a new upload.

Support and legal

Help center

help.renderforest.com for guides and to contact the support team, including questions about this connector.

Security

Report a vulnerability through the help center marked "Security". We acknowledge reports promptly and fix confirmed issues as a priority.

Renderforest owns and operates both this connector and the APIs it calls. The connector is maintained by the Renderforest engineering team; documentation on this page is versioned with the server and always reflects the deployment you are connected to.