← Home
CONNECTOR GUIDE

Published · Updated

Can ChatGPT Edit Video? Connecting Valmera over MCP

ChatGPT can add a remote MCP server as a connector, and write actions are permitted — but only through developer mode, only on the web, and writes require confirmation in the conversation by default. The read-only search/fetch restriction people quote is real, but it belongs to a different path.

This page is the connector-level detail: which ChatGPT path can carry an editing toolset, what the setup actually is, the four places it stops — including a contradiction inside OpenAI's own documentation about which plans get write actions — and what to do instead. For the plainer question of whether ChatGPT edits video on its own, see can ChatGPT edit videos.

THE SERVER URL
https://entrepreneur-bot-backend.onrender.com/mcp

Two Connector Paths, and Only One Can Edit

ChatGPT reaches MCP servers in two ways, and they have different rules. Confusing them is where "ChatGPT MCP is read-only" comes from — a statement that is true of the top lane and false of the bottom one.

ChatGPT's two MCP connector pathsChatGPT branches into two MCP paths. The company knowledge and deep research path requires the server to expose read-only search and fetch tools in a fixed shape, which is a search corpus rather than an editing surface. The developer mode path loads whatever tools the server declares, permits write actions with a manual confirmation in the conversation, and is therefore the only one that can call a video editor.CHATGPTCOMPANY KNOWLEDGE+ DEEP RESEARCHNOT AN EDITING PATHDEVELOPER MODECONNECTOR108 EDITING TOOLSserver must exposesearch + fetch, read-onlyread-only by design, anda fixed tool shapeany tool shape — each writeconfirmed in the conversationcut · caption · mix · renderexport from the original file

The top lane is a search corpus. OpenAI's documentation is explicit that a server used there "should implement two read-only tools: search and fetch" conforming to a defined schema — the first returning results with an id, title and url, the second returning the text behind an id. Valmera has search_transcript, search_stock and fetch_url, none of which are those two tools in that shape, so it is not eligible as a company knowledge source and should not be added as one. That is a design difference, not an oversight: an editor is a tool surface, and pretending to be a document index would make it worse at both.

The bottom lane loads whatever the server declares. OpenAI's developer mode guide is unambiguous — "ChatGPT developer mode provides full Model Context Protocol (MCP) client support for all tools, both read and write", with the one standing caveat that "write actions by default require confirmation". Its MCP documentation adds that "ChatGPT currently requires manual confirmation in any conversation before write actions can be taken". Writes are allowed. They are gated behind a click.

Which click, though, is decided by the server. The same guide says "we respect the readOnlyHint tool annotation" and that "tools without this hint are treated as write actions" — so an unannotated registry turns every glance at a transcript into an approval prompt. That is not a hypothetical for an editor: an editing session is mostly looking. Valmera annotates all 108 tools, and the arithmetic is the reason why — get_transcript, look_at, get_shots and project_state carry readOnlyHint and pass without a prompt, which is the difference between an agent that edits and an agent you supervise keystroke by keystroke.

How to Add Valmera to ChatGPT in Developer Mode

  1. 1
    Create a Valmera account
    Sign up free at valmera.io with email or Google — 50 credits, no card. If you sign up with Google, set a password with "Forgot password" first: the connector's consent screen asks for one, and a Google-only account does not have one yet.
  2. 2
    Turn on developer mode
    In ChatGPT on the web, open Settings → Security and login and enable Developer mode. OpenAI documents it as available to Pro, Plus, Business, Enterprise and Education accounts on the web — there is no mobile path, so do this on a desktop browser. If the toggle is not there, your account or workspace does not have it, and no configuration on the server side changes that.
  3. 3
    Add the server
    Go to Plugins, press the plus button, and paste https://entrepreneur-bot-backend.onrender.com/mcp. Give it a name and a one-line description, then press Create. There is no client id, secret or token to enter — authorization is discovered from the endpoint.
  4. 4
    Select it in a chat and sign in
    Open a new chat, open the plus menu, choose Developer mode, and select the app you just created. On the first tool call ChatGPT runs the OAuth flow: it reads the 401 challenge, registers itself, and opens a Valmera sign-in and consent page. Sign in and press Allow.
  5. 5
    Confirm, then get footage into a project
    Say "list my Valmera projects". A list back — even an empty one — means the connection is live. Then upload your video at valmera.io and say "open my latest project", or give the assistant a public link to the footage and let Valmera fetch it.

Setup is one paste and one sign-in. The first upload needs a one-time analysis pass — transcript, silences, shot boundaries and frame tiles — which reports progress and is reused by every edit afterwards.

Where This Stops

Four walls, in the order you will hit them. None of them are fatal, and all four are worth knowing before you spend an evening on it.

1. OpenAI's own docs disagree about which plans get write actions

This is the single most consequential thing on the page, so it gets stated flatly rather than smoothed over. OpenAI's developer mode guide says the feature is "available to Pro, Plus, Business, Enterprise, and Education accounts on the web" with "full MCP client support for all tools, both read and write". OpenAI's help centre article on the same feature has been reported to say something narrower — that full MCP including write actions is a beta for Business, Enterprise and Edu, with Pro limited to read and fetch. The two have not been reconciled publicly, and they may be describing two mechanisms that share a name: a personal developer toggle, and workspace-published apps an administrator enables.

What that means for you is unromantic but simple: on a personal Plus or Pro account, treat write actions as something to test rather than assume. Add the connector, ask it to create a project, and see whether you get a confirmation prompt or a refusal. That is a two-minute check and it beats any tier table, including this one — availability here has moved more than once, workspace administrators can disable the whole thing centrally, and the feature is web-only, so a phone will never show the toggle at all.

2. Writes are confirmed by default, and an edit is many writes

"Cut the dead air, caption it, put music under my voice and reframe it for Reels" is four operations with dependencies between them, and in practice more than four calls once the agent checks its own work. Write actions require confirmation by default, so that is a sequence of approvals rather than one. It is a reasonable safety default, and it is also the difference between conversational editing and clicking through a wizard.

Annotations are what keep the prompts honest, and Valmera sets all four rather than the one that would have been enough. Reads carry readOnlyHint. The only tool carrying destructiveHint is reset_edit — not modesty, but a property of the design: tools write to a versioned decision list, your upload is never modified, and any cut can be restored. openWorldHint is set on the ten tools that reach outside your project — stock search, link fetching and downloading, image, video and sound generation, and website recording — because a confirmation prompt that cannot distinguish "trim two seconds" from "go and load a URL" is not doing its job. OpenAI's app submission guidelines require exactly these three, and name incorrect labels as a common cause of rejection.

3. Your footage cannot be pushed from the chat window

MCP arguments are JSON, so raw bytes never cross the protocol. Valmera's upload_start hands back a presigned URL and the exact command to PUT the file to it — which needs a shell. A chat window does not have one. So footage arrives one of two ways: uploaded at valmera.io in the browser, or fetched by Valmera from a public link you paste. Both work fine; neither is the drag-and-drop people expect. Claude Code is the only client that does the whole thing headlessly, because it can run the command. Details in the upload documentation.

4. We have not verified this path end to end

Every step of the handshake below is checkable from outside and checks out. What we have not done is run a complete edit — connect, upload, cut, caption, render, export, download — from inside ChatGPT and watch it finish. We have done exactly that in the Claude app and in Claude Code, many times, including the failure cases. Saying "compatible" when we mean "tested" is the kind of claim that costs a reader an afternoon, so the two are kept apart on this page.

The Handshake, Step by Step

OpenAI documents what ChatGPT does when it connects to a protected MCP server. Here is each of those steps against what Valmera's live endpoint actually answers. The right-hand column is reproducible with one curl — which is the only reason it is worth printing.

Step in the connect flowWhat the endpoint answers
Unauthenticated request to the server URL401 with WWW-Authenticate: Bearer realm="valmera", resource_metadata="…/.well-known/oauth-protected-resource"
Read protected resource metadata (RFC 9728)resource, authorization_servers, bearer_methods_supported: header, scopes_supported: valmera.edit
Identify itself as an OAuth clientDynamic client registration (RFC 7591) at /mcp/oauth/register. Open registration, because the client has to enrol before any human is involved — it grants nothing on its own
Authorization code flow with PKCE, S256Required rather than accepted: code_challenge_methods_supported is ["S256"], and a request without a challenge is refused
Exchange the code, attach Authorization: Bearer8-hour access token, 90-day rotating refresh. Every credential is stored as a sha256 hash only
Streamable HTTP POSTJSON or a single-frame SSE reply, chosen by which one the client ranks first in its Accept header
Optionally open a server-initiated SSE stream405 — there is no stream to open. The server holds no session state; the active project lives on the grant, so a reconnect resumes where it left off

Two details are worth pulling out. OpenAI prefers Client ID Metadata Documents for client identification where an authorization server supports them, and states that dynamic client registration "remains supported when configured" — Valmera implements the registration route, which is the path the Claude app already takes. And the last row is not a gap: the streamable HTTP transport makes a server-initiated stream optional, so answering 405 to a GET is the specified behaviour for a server that keeps no stream, not a missing feature.

One behaviour every client has to tolerate: slow work does not block. Renders, exports, pixel repainting and website recording exceed any sensible request budget, so they return a job id and the model calls wait_for_job. The server never reports a completion it has not seen. If your client treats a job id as a failure, that is the shape it will trip on.

Which Clients Can Drive Valmera Today

The column that decides your workflow is the third one. Everything else is setup you do once.

ClientHow the server is addedGetting your footage inVerified end to end
Claude appSettings → Connectors → Add custom connector, then an OAuth sign-inUpload at valmera.io, or hand it a public linkYes
Claude Codeclaude mcp add --transport http, with OAuth or a bearer tokenDirectly — it has a shell and can run the presigned uploadYes
ChatGPT, developer modeSettings → Security and login → Developer mode, then Plugins → +. Web only, and check that writes are permitted on your planUpload at valmera.io, or hand it a public linkProtocol-compatible, not verified by us
ChatGPT, company knowledge and deep researchClosed — that path wants a server exposing search and fetchNot applicable
Any other MCP clientStreamable HTTP with OAuth 2.1, dynamic registration and PKCEDepends whether the client can run a shell commandNot verified by us

It is a standard streamable-HTTP MCP server with OAuth 2.1, so a compliant client should work. We name the two we have tested rather than listing logos we have not — and we keep an honest comparison of every video editing MCP server, including where a different one is the better answer for what you are doing.

If the Connector Path Is Closed

If developer mode is not available on your account, nothing is lost — the connector was never the product. It is one way to reach an editor that also has a front door.

  • Use valmera.io directly. The studio runs the same agent on the same engine, with the same 108 tools, and it does not ask you to approve each call. Upload, type the edit, watch the preview, correct it by talking. Everything the MCP path can do, this can do — plus a timeline, a player and an editable transcript when you want your hands on it.
  • Use Claude. If what you want specifically is editing from a chat you are already in, the Claude setup guide is the verified route — one paste and one sign-in in the Claude app, or a bearer token in Claude Code.
  • Keep ChatGPT for the part it is good at. Structure, script, titles, turning "something feels off" into a specific brief. That brief pastes straight into the studio as a request. Splitting the work along that line loses nothing and is what most people end up doing anyway.

Whichever route you take, the editing model underneath is the same: the agent writes to an edit decision list, never to your file. Your original upload is never modified, every operation is a version you can reverse by asking, and the final export renders from that original at source quality. That is what makes it reasonable to let an autonomous agent work on footage you cannot re-shoot.

Frequently Asked Questions

Yes, and it has two separate paths that are easy to confuse. The first is company knowledge and deep research, where OpenAI's documentation says a server "should implement two read-only tools: search and fetch" conforming to a fixed schema — that path is a search corpus, not a tool surface. The second is developer mode: you turn on Developer mode under Settings → Security and login, add your server's HTTPS URL under Plugins, and ChatGPT loads whatever tools the server declares. Developer mode is the only one of the two that can drive a video editor.
No, and this is the most repeated wrong answer about it. The read-only search-and-fetch requirement is real but belongs to the deep research and company knowledge path specifically. OpenAI's developer mode guide says the opposite of read-only for the other path: "ChatGPT developer mode provides full Model Context Protocol (MCP) client support for all tools, both read and write", with the caveat that "write actions by default require confirmation". The one caveat worth carrying is that OpenAI's help centre has been reported to describe write support as a Business/Enterprise/Edu beta, which its developer guide does not — so on a personal plan, test rather than assume.
It can call an editing server's tools, which is a different claim from editing the video itself — the model chooses and sequences the calls while an editing engine does the work. Three practical limits shape what that feels like. Writes require confirmation by default, so a request that expands into eight write calls is eight approvals rather than one — though tools annotated readOnlyHint, which is most of an editing session, pass without a prompt. ChatGPT has no shell, so it cannot push a local file into the project: footage arrives by browser upload or by a public link the server fetches itself. And it is web-only, so none of this happens on a phone.
Open Settings → Security and login and turn on Developer mode. Go to Plugins, press the plus button, paste your server's public HTTPS URL — typically ending in /mcp — give it a name and short description, and press Create. In a new chat, open the plus menu, choose Developer mode, and select the app you just created. If the server is protected, ChatGPT runs the OAuth flow on the first tool call: it reads the 401 challenge, registers itself, sends you through a sign-in, and attaches a bearer token from then on.
OpenAI's developer mode guide states it is "available to Pro, Plus, Business, Enterprise, and Education accounts on the web" — so every paid tier, and no mobile. Write actions are the part that is genuinely unsettled: the same guide grants "all tools, both read and write", while OpenAI's help centre article has been reported to scope full MCP with writes to Business, Enterprise and Edu as a beta, leaving Pro on read and fetch. Those two have not been reconciled publicly. The reliable move is to open Settings → Security and login, check the toggle is there, add the connector, and ask it to perform one write. Workspace administrators can also disable the feature centrally, and nothing on the server side changes any of this.
Not from the chat itself. MCP arguments are JSON, so raw bytes never cross the protocol — the upload_start tool hands back a presigned URL and the command to PUT the file to it, which needs a shell the chat window does not have. Two ways round it, both fine: upload the footage at valmera.io in the browser and then say "open my latest project", or give the assistant a public link and let Valmera fetch the media itself. Claude Code is the one client that can do the whole thing headlessly, because it can run the command.
OpenAI's API also accepts remote MCP servers as tools, and that is a genuinely different surface with its own auth handling and its own limits. We have not tested Valmera against it, so we are not going to describe it as supported. What is true either way is that slow operations — renders, exports, pixel repainting — return a job id and a wait_for_job call rather than blocking, so any caller has to tolerate that pattern instead of expecting a single long request to complete.
Because that is the path we have run end to end, repeatedly, including the failure cases. The Claude app and Claude Code both connect, authenticate, edit, render, export and download. ChatGPT's developer mode is protocol-compatible with the same endpoint on every step we can check from outside, and we would rather say exactly that than imply a level of testing we have not done. If you get it working, the endpoint is the same one on this page.
Generating footage and editing footage are separate problems, and this page is about the second one. Valmera edits real material you already have — it indexes your upload, cuts against a word-level transcript, and exports from the original file. It is not a text-to-video generator, and no connector arrangement turns it into one.

Skip the Connector, Keep the Chat

50 free credits, no card. Upload real footage at valmera.io and describe the edit — or connect it to Claude and do it from the conversation.

Start free →
See pricing →

Related Articles

Can ChatGPT Edit Videos?
The general answer, without the connector plumbing: what ChatGPT genuinely helps with around an edit, and what it cannot do at all.
Connect Claude to Video Editing
The setup guide for the path we have verified end to end — the Claude app and Claude Code.
Valmera MCP Server
The server itself: endpoint, transport, auth and the design decisions behind them.
MCP Tool Reference
All 108 tools a connected client receives, what each does and what it refuses.
Best Video Editing MCP Servers
Every MCP server that edits video, compared on tool surface, auth and scope — including where another one is the better answer.