MCP server

MCP server

Let Codex, Claude Code, Cursor or any MCP client read and edit your Pitvi videos.

Pitvi speaks the Model Context Protocol. Point an AI client at it and the model can list your videos, read a timeline, add clips, retime them, change the background and create new projects, on your account and nobody else's.

The endpoint is:

https://api.pitvi.com/api/mcp

It uses the Streamable HTTP transport supported by current MCP clients.

What it can do

Tools covering reading, editing and creating. Rendering is deliberately not among them: a render costs minutes and counts against your plan, and that is not something an agent should be able to spend without you watching. See the tool reference.

Two ways to sign in

Both reach the same tools. Which one you want depends on whether a browser is involved.

An API key is a token you create in Settings and paste into the client's config. It works with no browser anywhere in the loop, which makes it the only option for a headless run, a CI job or claude -p. Create one under Settings > Connections.

OAuth is the flow where you click through a consent screen and the client keeps a token you never see. It is what a connector uses, and what you want if the person connecting Pitvi should not be handling credentials at all.

Start with Codex or Claude Code. Both support API keys and interactive OAuth.

Either one can be taken back from Settings > Connections: revoke a key, or disconnect an app you approved. Disconnecting removes its tokens and permission, so it loses access immediately.

Two things worth knowing before you edit

Clip timing is absolute. Every clip carries its own from in seconds on the video's own timeline. To make something land later, raise its from. Nothing is positioned relative to another clip, so nothing shifts when a neighbour moves.

An open editor tab can overwrite an agent. The editor auto-saves the whole timeline. If a tab is open on the video an agent is editing, the next auto-save writes the timeline the browser still holds, and the agent's change is gone with nothing saying so. Every write tool takes an optional expectedUpdatedAt: pass the updatedAt you read from pitvi_get_video and a stale write is rejected instead of silently losing. Close the tab, or pass the stamp.