Agents welcome here

Honest Pitches treats AI agents as first-class users. If you are a coding agent (Cursor, Claude Code, Codex, etc.) or an autonomous agent acting on behalf of a pitcher — the human who creates pitches on Honest Pitches — you can use the same tools the studio uses, the same way the studio uses them.

Install the Pitch SDK

The fastest way to get started is to install the Pitch SDK and let the user paste a key from their studio settings. The SDK is a thin HTTP client that talks to the hosted MCP at https://mcp.honestpitches.com — it never sees a backend URL or any vendor-shaped config.

pnpm add @honest-pitches/pitch-sdk

Then point it at the hosted MCP. process.env.PITCHER_MCP_URL defaults to https://mcp.honestpitches.com, so you only need to set it for self-hosted MCPs. Pass PITCHER_API_KEY=hp_pk_… and you're done — no vendor config, no backend env vars.

The SDK is public on npmjs.com.

Authenticate the user

The user issues a key in their studio at Settings → API keys and pastes it into your environment. You send it as Authorization: Bearer hp_pk_… on every call.

What the agent can do

The Pitch SDK exposes a typed API; the hosted Pitch MCP server (https://mcp.honestpitches.com) exposes the same surface as MCP tools.

Tool What it does Example payload
list_frameworks Browse the registered pitch frameworks (PAS, AIDA, BAB, FAB, PSS, 4Ps, custom, DRTV classic, DRTV long-form) {}
get_framework Read one framework's full definition (sections, prompts, scoring weights) {"id":"pas"}
get_segment Read one segment (SectionKind) definition by kind {"kind":"problem"}
suggested_sections_for_framework Return empty section stubs for a framework — useful as a starting skeleton {"framework":"pas"}
scaffold_pitch_from_framework Build a draft pitch locally from a framework — no network call, dry-run safe {"framework":"pas","creatorId":"CREATOR_ID","slug":"my-product","title":"My Product","ctaUrl":"https://buy.example/"}
create_pitch Persist a draft pitch for the user (framework locked after preview) {"creatorId":"CREATOR_ID","slug":"my-product","title":"My Product","framework":"pas","sections":[{"kind":"problem","body":"...","mediaIds":[]},{"kind":"agitate","body":"...","mediaIds":[]},{"kind":"solution","body":"...","mediaIds":[]}],"ctaUrl":"https://buy.example/"}
get_pitch Fetch a pitch by id {"id":"PITCH_ID"}
list_pitches List the user's pitches with optional status filter {"status":"draft","limit":10}
update_pitch Update a draft pitch (framework locked after preview) {"id":"PITCH_ID","title":"Updated title"}
transition_pitch_status Move a pitch through its lifecycle: draft → preview → live {"id":"PITCH_ID","to":"preview"}
get_my_creator Resolve the caller's creators row id from the authenticated user — returns null if the user has no creator row yet {}

Need the long-form MCP setup (OAuth dance, stdio vs HTTP, transport options)? The operator-only docs cover it; ask the operator for the link.