Generate videos in ChatGPT
Describe the video in chat, approve it once, download the file. Renderly runs a hosted MCP server, so ChatGPT renders from the templates you already built - and previews cost nothing.
5 free credits · no card · hosted MCP, nothing to install
You
Tonight's special is pan-fried sea bass, £18, served until 9pm. Make the vertical video.
renderly_list_projectsFinds Daily Special in your library
1 match · 9:16 · 20 seconds
renderly_get_variablesReads the fields it has to fill
dish_name · price · description · served_until · dish_photo
You have not given me a photo, so I will reuse last Friday's plate shot. Previewing before anything is charged.
renderly_preview_render0 creditsChecks the wording for free
resolved 4/5 · warning: UNKNOWN_REPLACEMENT "special_price"
The field is called `price`, not `special_price`, so the £18 never landed. Fixing it and previewing again, still free.
renderly_preview_render0 creditsUpdates the same preview in place
revision 2 · resolved 5/5 · quote 0.5 credits
Frames look right at ?mode=grid. ChatGPT will ask you to approve the render, because it spends credits.
renderly_create_render0.5 creditsRenders once you approve the prompt
queued · 20s at 1080×1920 · 0.5 credits
renderly_get_render_statusPolls until the file is ready
COMPLETED · sea-bass-special.mp4
Done. The download link is above. It is an MP4; posting it is still your job, because Renderly never posts anything for you.
ChatGPT is where a lot of video copy gets settled before anyone opens a video tool. The wording for tonight's special, the price, the closing time - all of that gets argued out in a chat window, and then somebody retypes the result into whatever actually produces the file. Renderly's connector removes the retyping. You paste our endpoint into ChatGPT's Apps settings, ChatGPT scans the tools it finds before it saves anything, and an admin publishes the app so a whole workspace works from one entry. After that, the conversation can finish the job. ChatGPT reads the variables on a project you built in the Renderly editor, fills them from the thread it is already holding, and returns a free preview you can inspect as ordinary frames. Each pass reuses the same previewId, so a single link in the thread updates in place and the revision number climbs rather than the thread filling with dead drafts. Credits move once, at the end, and only after you approve the render in the chat.
Renderly is the rendering engine, not the publisher. It hands back a finished MP4 at a URL - where that file goes next is up to you or one of our no-code integrations. The same engine and the same credits drive the REST API, so nothing about a render differs because ChatGPT asked for it.
The free preview loop
ChatGPT can check its work before you pay for it
An agent filling in a template will get something wrong - a mistyped variable name, a headline too long for its line. Renderly gives it a way to find out for nothing. A preview takes the same arguments as a real render and resolves them exactly the same way, but produces no video and costs no credits.
- Preview0 credits
- Fix, preview again0 credits
- Once more0 credits
- Rendercredits charged
It can look at the frames
Append ?mode=grid and the preview page draws a labelled contact sheet spanning the whole video, as ordinary images. Any agent that can open a page and screenshot it can then see a collided caption or a wrong colour - the failures no validator catches.
?mode=gridOr one exact moment
Append ?frame=N to check a specific instant, where N is the second you care about multiplied by the frame rate. The page publishes its own rate, so the agent works it out rather than guessing from the nearest tile on the grid.
?frame=NAnd fix it in place
Pass the previewId back with corrected values and the same preview updates. The link never changes, so the agent reloads and looks again. A revision counter goes up each time, which is how it knows it is seeing its own latest attempt and not a cached earlier one.
previewIdThe warning that saves the most credits. If a variable name does not match, Renderly ignores it silently and renders the authored default instead - so the video comes back looking fine and carrying the wrong text. A preview returns a resolved map of what actually applied plus an UNKNOWN_REPLACEMENT warning, which is how ChatGPT catches that before it becomes a charge.
Setup
Connect Renderly to ChatGPT
There is nothing to install and no file to edit. You create the app in ChatGPT's Apps settings, the only value you supply is our endpoint, and ChatGPT enumerates the tools itself before it saves anything.
https://renderly.video/api/mcpGet developer mode switched on. On Enterprise and Edu plans an admin grants access under Permissions & Roles → Connected Data, and each enabled user then turns it on at Settings → Apps → Advanced settings. On Business plans only admins and owners have it, and each one enables it for themselves.
In Apps settings, choose Create. Admins can instead use Workspace settings → Apps → Create, which also offers developer mode at that point.
Name the app ("Renderly"), add a short description, paste the MCP server URL above as the endpoint, and pick OAuth as the authentication mechanism.
Select Scan Tools, complete the Renderly sign-in prompt when it opens, and wait for the scan to finish before selecting Create. Ten tools should come back.
The app is now a draft. Open a new chat, select it from the tools menu, and ask it to list your projects. Once it behaves, an admin publishes it from Workspace settings → Apps → Drafts.
When we add tools later, nothing changes on your side by itself - an approved app is a frozen snapshot. An admin selects Refresh, reads the diff and enables what they want; new actions arrive off by default.
Sign-in only - an API key will not work here
OAuth is the only option that fits here, and it is not a limitation you have to work around. The form's choices are OAuth, No authentication and Mixed authentication, and there is no field anywhere in it for a custom request header, so a static Renderly key has nowhere to travel. Pick OAuth and ChatGPT does the rest by itself: it reads the 401 challenge from our endpoint, follows it to the WorkOS AuthKit authorization server, registers itself through Dynamic Client Registration and runs an authorization-code flow with PKCE S256. You never paste a client ID or a secret, and everyone using the published app signs in as themselves and spends their own credits. OpenAI also warns that ChatGPT needs the authorization server to issue refresh tokens to hold a connection open, so if the app ever asks you to sign in again, that is an authorisation expiring rather than a broken tool.
How this was checked. Server verified live on 2026-08-19: an unauthenticated POST returns 401 with an RFC 9728 challenge, WorkOS AuthKit advertises Dynamic Client Registration, and all ten tools are registered. The setup below was confirmed against OpenAI's current MCP documentation and survived an independent adversarial recheck on the same date. Nobody here drove ChatGPT end to end. OpenAI’s documentation
The surface
Ten tools ChatGPT gets
You never call these by hand. ChatGPT picks the right one from what you asked for. They are listed because it is worth knowing which of them can cost you money - and that seven of the ten cannot.
They are thin wrappers over the same service layer the public REST API uses, so the two surfaces cannot drift apart.
| Tool | What it does | Cost |
|---|---|---|
renderly_whoamiConnect | Confirms the connection and reports your credit balance | free |
renderly_list_projectsFind | Lists your own projects that have something to personalise | free |
renderly_list_templatesFind | Lists the public system templates | free |
renderly_get_variablesFind | Reads which fields a template or project accepts, and their current values | free |
renderly_preview_renderCheck | Resolves your values exactly as a render would, without producing a video - returns a public preview link, what actually applied, a credit quote and any warnings | free |
renderly_create_renderRender | Renders the video. Annotated as not read-only, so clients ask before calling it | credits |
renderly_get_render_statusTrack | Polls the job and returns the finished video URL | free |
renderly_generate_captionsAdd AI | Transcribes audio into word-synced captions you can drop straight onto a layer | credits |
renderly_generate_voiceoverAdd AI | Turns a script into narration saved to your media library | credits |
renderly_get_ai_jobAdd AI | Polls a captions or voiceover job for its result | free |
Why ChatGPT
What this client is good at
Renderly arrives in ChatGPT as workspace plumbing rather than a personal switch. You create the app in Apps settings, ChatGPT scans our tools before it saves, the entry waits in Drafts, and an admin publishes it into the workspace's app list. Two consequences are worth having. First, an approved app is a frozen snapshot: nothing we change on our server reaches your workspace until an admin selects Refresh and reviews the diff, and new actions arrive switched off. Second, on Enterprise and Edu plans an admin can publish Renderly with only part of it live - Configure Actions deselects individual actions, Configure Access limits them to chosen groups - so free previews can go to everyone while renders stay with a smaller group. Write actions ask for confirmation in the chat, and OpenAI blocks some especially risky ones outright instead of offering them for approval. This is a web feature; the ChatGPT mobile apps do not expose custom MCP apps at all.
Questions people actually hit
Which ChatGPT plans can add Renderly as a custom MCP app?
Can I paste my Renderly API key into ChatGPT instead of signing in?
When Renderly returns a preview link, can ChatGPT actually look at the video?
Will ChatGPT ask me before a Renderly tool spends credits?
I cannot find the developer mode toggle. Where does it live?
Can agent mode or deep research use the Renderly app?
The same server, in every other client
One endpoint, one account, one credit balance. Only the wrapper changes.
Using something not listed? Any client that speaks remote MCP over Streamable HTTP can connect to https://renderly.video/api/mcp - these pages exist because the setup differs, not the server.