Skip to content

Connect an AI assistant

GPT-Video speaks MCP, so Claude, ChatGPT, Cursor and anything else that speaks it can edit video through it. Here is the address, and the setup for each of them.

What this is

GPT-Video speaks MCP — the Model Context Protocol — so an AI assistant can do the editing work directly: create a project, find the strong moments in a video you uploaded, caption and reframe them, and hand you back an MP4. You stay in the assistant; the rendering happens here.

The server is remote, so for most assistants connecting it means pasting one URL. It exposes eight tools and nothing that generates images, video or audio: everything it does is an edit of footage you provided.

Before you connect

  1. Sign in to GPT-Video and open Settings → Connections.
  2. Create an API key. It is shown once — copy it then, because it is stored hashed and cannot be shown again. If you lose it, revoke it and make another.
  3. Keep it somewhere your assistant can read it as an environment variable. Anything typed on a command line is readable by every process on the same machine.

Where your assistant offers it, you can sign in with your GPT-Video account instead of pasting a key. Either way the connection opens exactly one workspace — yours — and you can revoke it from the same page at any time.

The address

Endpointhttps://www.gpt-video.com/api/mcp
TransportStreamable HTTP
AuthenticationAuthorization: Bearer gvk_…

That is the whole configuration. Everything below is the same two facts in the shape a particular assistant wants them.

Claude Code

claude mcp add --transport http gpt-video https://www.gpt-video.com/api/mcp \
  --header "Authorization: Bearer gvk_…"

Claude, Cursor, Windsurf and most desktop assistants

These read a JSON file listing MCP servers — the file's location differs, its shape does not:

{
  "mcpServers": {
    "gpt-video": {
      "type": "http",
      "url": "https://www.gpt-video.com/api/mcp",
      "headers": { "Authorization": "Bearer gvk_…" }
    }
  }
}

In Claude's own connector UI there is no file at all: add a custom connector, paste the URL, and sign in when it asks.

An entry with a url and no type is read as a local command by some hosts, and fails with a confusing error. Keep the type.

ChatGPT

Enable developer mode, add an MCP server, and paste the endpoint above. ChatGPT asks for the credential itself rather than reading a file.

VS Code, JetBrains AI, and other editors

Editors change their configuration format more often than this page can follow. Use their own instructions for adding a remote MCP server over HTTP, with the endpoint and the Authorization header above.

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 here over HTTPS.

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 get you a build. Everything else on this page works right now.

{
  "mcpServers": {
    "gpt-video": {
      "command": "npx",
      "args": ["-y", "gpt-video-mcp"],
      "env": { "GPT_VIDEO_API_KEY": "gvk_…" }
    }
  }
}

It has no dependencies, keeps nothing, and never writes your key anywhere.

Your own code

Any MCP client library connects with the endpoint and the header — the OpenAI Agents SDK, LangChain, LlamaIndex, Pydantic AI, or a few lines of your own. There is no handshake to perform first: the server is stateless, so a tools/call on a cold connection works.

The tools

ToolWhat it doesSpends credits
list_projectsLists your projects, newest firstno
create_projectStarts a project and gives you the upload linkno
get_projectStatus, settings and finished exportsno
configure_projectCaptions, aspect ratio, language, clip lengthno
find_clipsTranscribes the source and finds the best momentsyes
list_clipsThe clips found, with scores and timecodesno
export_clipRenders one clip to a vertical MP4yes
get_jobHow a running job is going; the download link when doneno

Uploading the source video happens in GPT-Video, not through the assistant: create_project returns a link, you open it and drop the file in. An upload endpoint that accepted large writes without a session is a door we would rather not have.

What it costs, and what protects you

find_clips and export_clip spend from your plan. Credits are taken when the work is queued and are not returned if it fails, so three things stand in front of them:

  • both tools require an explicit confirm, which is what makes the assistant ask you first;
  • both are safe to retry — asking twice for the same thing returns the work already running instead of buying it again;
  • each connection has an hourly ceiling on jobs that spend, so a looping agent cannot empty a plan.

An assistant that reports it has started something has started it once.

Long jobs

Finding clips and exporting take minutes. Hosts that implement the MCP tasks extension get a task handle and show you progress; the rest get the job id in the reply and poll get_job. Both lead to the same place, and get_job returns a fresh download link each time — links expire after a few minutes on purpose.

Limits

Calls60 per minute, per connection
Jobs that spend30 per hour, per connection
Download linksvalid a few minutes; ask again for a new one

Exceeding the first gives you a message telling you to slow down, not a broken connection.

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 under Settings → Connections; the old one stops working immediately.

The assistant sees no tools. Check the URL ends in /api/mcp, and that the entry declares an HTTP transport rather than a local command.

A tool says it is not allowed to do that. The connection was granted narrower permissions than the tool needs — reconnect and grant the missing one. Read-only connections cannot spend.

An export never finishes. Call get_job 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: it reaches the same person, faster.