synthesia_create_ videoStart a video with the full set of options, returning at once.
Ask for a video and get the download link back. Your AI writes to a presenter, starts the render and waits for it, and it tries a free watermarked version first so nothing is spent by accident.
PopMCPSynthesia
Every endpoint in Synthesia's API, plus tools that find avatars and voices by name, check template variables before anything starts, handle the upload for dubbing, and wait for the finished video.
42 tools in the full catalog: 23 read and 19 write. 35 load by default, and the rest are found with tool search.
synthesia_create_ videoStart a video with the full set of options, returning at once.
synthesia_delete_ videoDelete a video.
synthesia_find_ stock_ avatarsFind a stock avatar's id for synthesia_render_video, by name or gender.
synthesia_find_ voicesFind a voice id for synthesia_render_video, by language ("fr", "fr-CA" or "French"), gender (male or female) and name.
synthesia_get_ videoCheck one video once: status, duration, a time-limited download link, thumbnail and captions when complete.
synthesia_get_ video_ thumbnailGet a finished video's thumbnail so you can see it.
synthesia_list_ videosList videos with id, title, status, visibility, duration, dates and the download link once complete.
synthesia_render_ videoThe easiest way to make a video: give a title and a script, and this starts it and waits for the download link.
synthesia_render_ video_ from_ templateMake a video from a template: checks your variable names against the template, starts it and waits for the download link.
synthesia_update_ videoChange a video's title, description, share setting or call to action.
synthesia_wait_ for_ videoWait for a video that is still rendering, then get its download link, thumbnail and captions.
synthesia_add_ localization_ localesAdd more languages to an existing localization.
synthesia_create_ localization_ from_ media_ urlDub a video that sits behind a presigned S3 link into up to 20 languages.
synthesia_dub_ videoDub a video into up to 20 languages from a public link, a presigned S3 link, a file in base64 (up to 100 MB) or an asset_id.
synthesia_get_ localizationCheck one localization once: status (queued, processing, completed, failed), done and any error.
synthesia_list_ localization_ languagesList the languages videos can be dubbed from and into.
synthesia_wait_ for_ localizationWait for dubbing to finish, then list each language with its status, video id, download link, thumbnail and captions.
synthesia_get_ video_ translationsCheck the translation of a Studio video, one entry per language: complete, in_progress or error with a code.
synthesia_get_ video_ xliffExport a video's text as XLIFF 1.2: script, chapters and text elements, to translate elsewhere.
synthesia_list_ translation_ languagesList the language codes a Studio video can be translated into with synthesia_start_video_translation.
synthesia_start_ video_ translationTranslate a Studio video into one or more languages.
synthesia_translate_ video_ from_ xliffMake a translated copy of a video from translated XLIFF.
synthesia_create_ webhookHave Synthesia POST to a link when a video finishes or fails, as an alternative to waiting.
synthesia_delete_ webhookDelete a webhook so its link stops getting events.
synthesia_list_ webhooksList webhooks with id, link, status and dates.
synthesia_list_ audit_ eventsRead who did what and when across a workspace or organization.
synthesia_check_ key_ accessSee which parts of Synthesia this API key can reach: the Video API (Legacy (v2) scope), Localization (read) and the credit balance.
synthesia_create_ interactive_ avatarTurn a Studio avatar into an interactive one.
synthesia_get_ credit_ balanceGet this workspace's credit balance for the current billing period: total, consumed and available (decimal strings), with the period's start and end.
synthesia_get_ media_ assetCheck an uploaded asset: awaiting_upload, processing, ready or error, with the language detected.
synthesia_get_ templateGet one template with the exact variables it takes: id (the name, which is case sensitive), type and any default value.
synthesia_list_ templatesList video templates with their ids, titles and the variables each one takes.
synthesia_start_ interactive_ avatar_ sessionStart a live interactive avatar session in your own LiveKit room.
synthesia_upload_ assetUpload an image or video to use as a background or scene element.
synthesia_upload_ script_ audioUpload your own narration audio to use in place of a written script.
synthesia_create_ video_ from_ templateStart a video from a template, returning at once.
synthesia_list_ localization_ localesList each language of a localization with its status, video id, time-limited download link, thumbnail and captions.
synthesia_get_ webhookGet one webhook: link, status and dates.
synthesia_export_ audit_ eventsExport audit events as CSV text, up to 10,000 rows.
synthesia_search_ audit_ eventsThe same audit search as synthesia_list_audit_events, for when you filter by more than 50 actions or actors.
synthesia_create_ media_ assetRegister a video for dubbing and get temporary S3 upload credentials, for files too big for synthesia_dub_video, when you can run an upload yourself.
synthesia_create_ dubbing_ projectStart dubbing an uploaded video asset.
Credentials off one Synthesia screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
Paste an API key from Developers, then API keys, in Synthesia. Tick Legacy (v2) for videos and Localization (write) for dubbing when you make it. PopMCP tries each part with free reads and tells you if one is missing.
••••••••••••3f7aMaking and dubbing videos spend your Synthesia credit, so they count as writes, along with uploads, changes and deletes, and wait until an owner or admin allows write actions. New connections start read-only, which still lets your AI list videos and templates and read your balance. Tick Synthesia on the PopMCP consent screen only for clients that need it.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Synthesia credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
Make a free test video welcoming new customers, with a French presenter, and give me the link
synthesia_find_stock_avatarsok
Then just ask for the work
“Make a free test video welcoming new customers, with a French presenter, and give me the link”
“Make a video from my onboarding template for Sam at Acme”
“Dub this product video into French, German and Spanish and give me each download link”
“Translate my latest training video into Japanese”
“How many credits do I have left, and which videos did I make this week?”
“Use this picture as the background for a short video announcing our sale”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Synthesia behind an AI client.
A Synthesia API key. Make one in Synthesia under Developers, then API keys, and paste it into PopMCP. There is no app to review and nothing to deploy. The key is only shown once, so copy it when you make it.
Making videos through the API needs a Pro plan or above, because that is what can grant the Legacy (v2) scope. Dubbing through the Localization API is on every plan, as long as the workspace has credit. Audit logs and XLIFF are for Enterprise.
Only if you let it. New PopMCP connections start read-only, so nothing can be made until an owner or admin allows write actions. After that the video tools make a free test with a watermark unless told otherwise, and test videos are limited to 30 a day.
Usually a few minutes, and a finished video stays in progress while it passes moderation review. Your AI waits for a while, then picks the same video up again, so nothing starts twice. Download links are time-limited, and a fresh read gives a new one.
No. Synthesia's API has no list of them, so PopMCP reads Synthesia's published tables, and your AI can find a presenter by name or a voice by language. A custom avatar's id is under Copy ID on the Avatars page in Synthesia.
Yes. Give a public link or a file up to 100 MB, and PopMCP uploads it and starts dubbing. Lip-sync stays off unless you ask, because it costs extra and needs a plan with it. For a bigger file, a presigned S3 link goes straight through.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect Synthesia in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Synthesia on the consent screen. The Synthesia tools are then available in that session, and no Synthesia credential is stored on your machine.
Loading 42 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 35-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 42 here. A trigger is something PopMCP watches for you: 4 Synthesia events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Synthesia.
Launch a hosted MCP endpoint for Synthesia, keep tool access under control, and start testing real workflow prompts right away.