Guide

AI agents (MCP)

Connect Claude, Cursor, ChatGPT, or any MCP client to Pitch. The agent gets tools for starting projects, talking to them, and checking on them itself.

The server speaks the Model Context Protocol over Streamable HTTP. It is listed on the official MCP registry as co.trypitch/pitch.

EndpointPOST https://api.trypitch.co/mcp
TransportStreamable HTTP, stateless
AuthAuthorization: Bearer pk_...
Registry nameco.trypitch/pitch
Stateless means every request stands alone. There is no session id and no server-sent stream to hold open. GET and DELETE on /mcp return 405 Method Not Allowed on purpose.

#Claude

From the command line:

bash
claude mcp add --transport http pitch \
  https://api.trypitch.co/mcp \
  --header "Authorization: Bearer pk_your_key"

In claude.ai, go to Settings, then Connectors, then Add custom connector, and paste the endpoint with the same header.

#Cursor

Open Settings, then MCP, then New server. Or edit .cursor/mcp.json directly.

json
{
  "mcpServers": {
    "pitch": {
      "url": "https://api.trypitch.co/mcp",
      "headers": { "Authorization": "Bearer pk_your_key" }
    }
  }
}

#ChatGPT

Settings, then Connectors, then Advanced, then Developer mode, then Add. Paste the endpoint and add a custom header.

text
URL     https://api.trypitch.co/mcp
Header  Authorization: Bearer pk_your_key

The same connector works from the Responses and Agents APIs.

#Perplexity

Settings, then Connectors, then Add connector, then Custom (MCP). Paste the endpoint and set the auth header. The same setup works in Comet and the Perplexity API.

#Any other client

If a client speaks Streamable HTTP and lets you set a header, it works. There is nothing Pitch-specific to install.

bash
curl -X POST https://api.trypitch.co/mcp \
  -H "Authorization: Bearer pk_your_key" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list"
  }'
Most clients need the Accept header to include both application/json and text/event-stream. The MCP SDK sets this for you.

#What the agent can do

Eight tools create, edit, inspect, and export projects. Work-producing tools are usage-metered; reads are free. Full argument lists are in MCP tools.

ToolCredits
create_projectusage-metered
prompt_projectusage-metered
get_projectfree
list_projectsfree
get_creditsfree
get_pricingfree
export_projectusage-metered
export_statusfree

#Telling the agent how to behave

Agents tend to call create_project and then stop, because the project is not finished yet. Put something like this in your system prompt or project instructions.

text
When you use Pitch:
- Call get_credits before create_project so you know the project can pay for itself.
- create_project returns a project with status "working". The video is not ready at that point.
- Poll get_project every 10 seconds until status is "ready" or "failed".
- On "ready", give the user the url of the newest entry in outputs (kind "video" or "pdf").
- On "failed", read the error field and say what went wrong.
- To change something, call prompt_project on the same project. Never create a second project for an edit.
- Never call create_project twice for the same request.
That last line matters. There are no idempotency keys, so a retried create can make a second project. Edits belong in prompt_project and are metered by actual usage.