GPT-Video MCP server
GPT-Video has an MCP server in two editions. The directory edition has eight tools and connects Claude and ChatGPT by URL. The full edition has the whole catalogue for Claude Code, Cursor, VS Code, Windsurf and n8n. This page gives the addresses and the setup for each.
What this is
GPT-Video has an MCP server. MCP is the Model Context Protocol, and it lets an AI assistant do the editing work for you. The assistant can find the strong moments in a video, caption and reframe them, build split screen or fake text videos, and give you back an MP4. You keep talking to the assistant, and the rendering runs on GPT-Video.
The server comes in two editions. Connect one of them.
| Directory | Full | |
|---|---|---|
| Name | GPT-Video | GPT-Video Full |
| Address | https://www.gpt-video.com/api/mcp | https://api.gpt-video.com/mcp |
| Tools | 8, all for Auto Clip | 70, in five toolsets |
| Sign-in | API key, or your GPT-Video account where the assistant offers it | API key |
| Made for | Assistants that add a connector by URL | Coding assistants, editors and automation |
Both work on footage you provided, and both take the same API key. Each tool that spends tells you what it spends before it runs.
Before you connect
- Sign in to GPT-Video and open Developers in the sidebar.
- Create an API key. It is shown once, so copy it right away. We store it hashed and cannot show it again. If you lose it, revoke it and create another. Leave Expires after on Never for an assistant. A key that expires stops working on that date, and the connection stops with it.
- Keep the key somewhere your assistant can read it as an environment variable. A key typed on a command line can be seen by other processes on the same machine.
With a key, or with your account where the directory edition offers it, the connection opens your workspace and no other, and you can revoke it from the same page at any time.
Which edition for which assistant
| Assistant | Edition | How it connects |
|---|---|---|
| Claude on the web and on desktop | Directory | A custom connector with the directory address; sign in when it asks |
| ChatGPT | Directory | Developer mode, then add the directory address; ChatGPT asks for the credential itself |
| Claude Code | Full | claude mcp add, with all toolsets |
| VS Code | Full | A remote HTTP server, with all toolsets |
| Cursor | Full | A remote HTTP server, with one or two toolsets |
| Windsurf | Full | A remote HTTP server, with one or two toolsets |
| n8n and your own code | Full | An MCP client with the address and the header |
| Zed, JetBrains and machines behind a proxy | Either | The stdio bridge, with --edition |
Cursor and Windsurf limit how many tools an assistant can use at once. Give them one or two toolsets, as the section on toolsets shows. Connect only one edition. The full edition already holds the eight directory tools, and an assistant that sees both has every tool twice.
The address
| Directory | Full | |
|---|---|---|
| Endpoint | https://www.gpt-video.com/api/mcp | https://api.gpt-video.com/mcp |
| Transport | Streamable HTTP | Streamable HTTP |
| Authentication | Authorization: Bearer gvk_… | Authorization: Bearer gvk_… |
Every setup below puts the endpoint and the header in the format that a particular assistant reads.
Claude Code
claude mcp add --transport http gpt-video-full https://api.gpt-video.com/mcp \
--header "Authorization: Bearer gvk_…"Cursor, Windsurf and most desktop assistants
These read a JSON file that lists MCP servers. Where the file is depends on the assistant, and its content looks like this. The toolsets part of the address is optional and is explained below.
{
"mcpServers": {
"gpt-video-full": {
"type": "http",
"url": "https://api.gpt-video.com/mcp?toolsets=clips",
"headers": { "Authorization": "Bearer gvk_…" }
}
}
}Some hosts read an entry with a
urland notypeas a local command, and fail with a confusing error. Keep thetype.
Claude and ChatGPT
These two connect to the directory edition. In Claude's own connector settings there is no file to edit. Add a custom connector, paste the directory address, and sign in when it asks.
https://www.gpt-video.com/api/mcpFor ChatGPT, turn on developer mode, add an MCP server, and paste the same address. ChatGPT asks you for the credential itself. The directory edition has the eight Auto Clip tools listed below.
VS Code, JetBrains AI and other editors
Editors change their configuration format often, so this page does not copy it. Follow their instructions for adding a remote MCP server over HTTP, with the address and the Authorization header of the edition you chose.
Assistants that only speak stdio
Zed, some JetBrains and Windsurf builds, self-hosted n8n, and any machine behind a corporate proxy can launch a local process but cannot reach a remote MCP server. A small bridge covers them. It reads MCP messages on standard input and forwards them to GPT-Video over HTTPS. It connects to the directory edition unless you pass --edition full.
Not on npm yet. The bridge is written and tested but not published, so the command below does not work today. If you need it now, write to us and we will send you a build. Everything else on this page works today.
{
"mcpServers": {
"gpt-video-full": {
"command": "npx",
"args": ["-y", "gpt-video-mcp", "--edition", "full", "--toolsets", "clips"],
"env": { "GPT_VIDEO_API_KEY": "gvk_…" }
}
}
}For the directory edition, leave out --edition and --toolsets. On Windows, some hosts need cmd /c npx in place of npx. The bridge has no dependencies. It keeps no data and never writes your key anywhere.
Your own code
Any MCP client library connects with the address and the header, for example the OpenAI Agents SDK, LangChain, LlamaIndex or Pydantic AI. There is no handshake to perform first. The server is stateless, so a tools/call on a new connection works.
A program can also use the REST API. It covers the whole product, uploads included, with one page for each endpoint. The page of an operation that has an MCP tool shows the call in an MCP (Full) tab.
Toolsets of the full edition
The full edition has 70 tools. Most assistants cope with that, and some do better with fewer. Add ?toolsets= to the address with the names you want, separated by commas, for example https://api.gpt-video.com/mcp?toolsets=clips,studio. Without it you get all of them. core is always included, and an unknown name is refused with a message that lists the right ones.
| Toolset | Tools | What it holds |
|---|---|---|
core | 13 | Credits and settings, your library, exports, jobs and voices. Always on. |
clips | 17 | Auto Clip: projects, analysis, clips and transcripts. The eight directory tools are here. |
studio | 20 | Split screen, streamer, Reddit story and fake text videos, voiceovers, audio tools and ideas. |
editor | 16 | Edit a finished video, its captions and timeline, and ask the Editor Assistant. |
files | 4 | Upload a video file of your own. |
A key only sees the tools its permissions allow, so a read-only key lists the reading tools and no others.
The directory tools
The eight tools of the directory edition. The full edition has them too, in clips, with the same names and the same input.
| Tool | What it does | What it uses |
|---|---|---|
list_projects | Lists your projects, newest first | nothing |
create_project | Starts a project and gives you the upload link | nothing |
get_project | Status, settings and finished exports | nothing |
configure_project | Captions, aspect ratio, language, clip length | nothing |
find_clips | Transcribes the source and finds the best moments | credits |
list_clips | The clips found, with scores and timecodes | nothing |
export_clip | Renders one clip to a vertical MP4 | one export of the day |
get_job | How a running job is going, and the download link when it is done | nothing |
The directory tools cannot upload a file. create_project returns a link, and you open it in a browser to drop the file in. With the full edition the assistant can upload for you, as the next section shows.
Uploading a file
The full edition has an upload toolset, files. The assistant calls create_upload with the name and the exact size of the file, and the answer says how many parts to send and gives a curl command with your API key. The bytes go straight to the GPT-Video REST API and do not pass through the MCP connection, so the assistant needs a shell on the machine that has the file. Then it calls complete_upload, and the file becomes a video in your library.
If the assistant has no shell, upload the file in the GPT-Video app and tell the assistant to use list_assets. Importing a video from a link is not available yet.
MCP and REST names
MCP tool names and REST operation ids are different things. Five names exist in both, and they take different input.
| Name | As an MCP tool | As a REST operation, it takes |
|---|---|---|
list_projects | Takes limit, from 1 to 100, 20 by default. It answers in text and lists projects of every kind. | limit, cursor |
create_project | Creates an empty project and returns an uploadUrl to upload the video in a browser. | sourceAssetId, title, settings |
get_project | Takes the project id and answers in structured text for the model. | projectId |
list_clips | Takes limit, 10 by default. | projectId, status, limit, cursor |
get_job | Takes a job id (job_) or an export id (rnd_). | jobId, wait |
The full edition adds two tools with new names, because the old ones must not change. create_auto_clip_project is the REST create_project (POST /v1/projects): it starts an Auto Clip project on a video that is already in your library. wait_for_job is the REST get_job (GET /v1/jobs/{jobId}): it takes jobId and can wait for the job to end. configure_project takes instruction, where the REST operations take settings.instructions. The tools that have no twin in the directory use the REST names and fields.
The API reference has a page for each REST operation.
What it costs, and what protects you
find_clips spends credits, and export_clip uses one export from the daily limit of your plan. When the API bonus pays, both use bonus credits instead. Credits and exports are taken when the work is queued and are not returned if it fails.
Through MCP, as through the REST API, the API bonus pays first while it is active. After the bonus, the API needs a Creator or Studio plan. API pricing explains the bonus and the limits of each plan.
Both tools need an explicit confirm before they spend, so the assistant asks you first. Both are safe to retry. Asking twice for the same thing returns the work already running, and you pay for it once. Each connection also has an hourly limit on jobs that spend, so an agent stuck in a loop cannot use up your plan.
Spending in the full edition
Every tool of the full edition that spends says so in its description and gives the cost. Two things are asked of the assistant before it can spend:
confirm: true, which it sends only after you agree to the price.- An idempotencyKey, a string it makes up for the call, such as a UUID. It reuses the same key if it retries. The same key with the same arguments returns the first answer and never charges twice. The same key with other arguments is refused.
The key is shared with the REST API: one string cannot start two different things on the two doors. Tools that create things without spending accept an idempotencyKey too.
A tool that writes or spends refuses an argument it does not know, and says which arguments it takes and which one you probably meant. Tools that only read ignore an unknown argument and say so.
Long jobs
Finding clips and exporting take a few minutes. Hosts that support the MCP tasks extension get a task handle and show you the progress. Other hosts get the job id in the reply and poll get_job, or wait_for_job in the full edition, which can hold the call for up to 25 seconds. An export is followed with get_export in the full edition. In every case the reply gives a fresh download link each time, because the links expire after a few minutes.
Labelling AI-edited media
A reply that gives a download link reminds the assistant to tell you to label the media where the platform asks for it. When the file has a synthetic voice, the reply says so. This holds for both editions.
Limits
| Calls | 60 per minute, per connection |
| Jobs that spend | 30 per hour, per connection |
| Download links | valid a few minutes; ask again for a new one |
| Size of a reply | long answers, such as a transcript, come with a way to ask for less |
A call over the first limit gets a message that asks you to slow down. The connection stays open. The two editions count together: a key that calls both has one budget.
When something does not work
"Unauthorized", or the connector will not add. The key is wrong, revoked, or has a stray space. Create a new one on the Developers page. The old one stops working at once. The full edition takes only API keys.
The assistant sees no tools. Check that the address is the one in the table above, and that the entry declares an HTTP transport. If you added ?toolsets=, check the names.
The assistant sees eight tools and expected more. It is connected to the directory edition. Use the full address, or pass --edition full to the bridge.
A tool says it is not allowed to do that. The connection has fewer permissions than the tool needs. Reconnect and grant the missing one. Read-only connections cannot spend.
A tool says the API needs a Creator or Studio plan. The API bonus cannot pay for the call, and the plan of the account cannot spend through the API. Compare the plans on the pricing page.
An export never finishes. Ask for the job again with the id you were given. If it reports a failure, the reason is in the reply. Nothing was charged twice.
Privacy
The assistant sends us what the tool call contains and nothing else. We do not receive your conversation, and we do not log tool arguments. What we do with the video you upload is in the privacy notice, and what you may do with what comes out is in the terms. Your material is not used to train models.
Reporting a security problem
Write to the address in our security.txt. If it concerns this endpoint, say so in the message.