MCP

BeatBandit, inside your own AI.

MCP, the Model Context Protocol, is an open standard that lets AI assistants like Claude, ChatGPT and Cursor use outside tools. BeatBandit's MCP server plugs the whole story engine into the assistant you already use, so you can work on your projects without opening the website.

Work where you already work

Your notes, research, old drafts and folders stay on your own computer. Your assistant reads them, and calls BeatBandit when it needs real story work done: a beat sheet, a scene list, a sequence of pages, a round of notes.

Your AI orchestrates. BeatBandit brings the craft.

Your assistant decides what happens next. BeatBandit supplies the specialist skills behind it: Beat Wizard, Scene Wizard, the Writer, Room Review, Writing Vitals, with the same rules and the same project memory as on the website.

Nothing gets lost in a chat

Everything your assistant does lands in a real BeatBandit project: cards, scenes, pages. Open it on the website at any time and it is all there, and the next session picks up exactly where the last one stopped.

The same intelligence as the BeatBandit Agent.

On the website, the BeatBandit Agent reads your project and runs the tools for you. MCP gives your own assistant that same intelligence: 41 tools, 5 guided workflows and live access to your cards, scenes and pages. Paid steps quote their price first, and nothing is spent until the quote is accepted.

HOW STATION ONE WAS MADE

Our sample screenplay was made this way: an outside AI agent, working through MCP, ran nearly every step in a normal BeatBandit project.

  1. Premise → Beat Wizard
  2. Scene Wizard · 36 scenes
  3. Writer · 8 sequences
  4. Writing Vitals
  5. Character rewrite
  6. PDF export
Read the result →
Documentation

Setup, tools, prompts and resources. The rest of this page is the reference.

MCP / Overview

BeatBandit MCP server

A Model Context Protocol server for working on BeatBandit projects from any MCP client — Claude, ChatGPT, Cursor, VS Code and others. It exposes the same operations as the website: reading and editing story cards, scenes and screenplay pages, running the development and writing workflows, and generating shot lists, media and exports.

Endpoint
https://beatbandit.ai/api/mcp
Transport
Streamable HTTP
Auth
OAuth 2.1 — browser sign-in on first use; per-project permissions
Billing
Your BeatBandit credits. Paid tools return a price quote before they start.
Surface
5 prompts · 41 tools · 41 resource templates · 24 error codes

Install

Add the endpoint to your client. The first tool call opens a browser window to sign in; the client stores the token.

claude mcp add --transport http beatbandit https://beatbandit.ai/api/mcp

Or in your Claude config:

{
  "mcpServers": {
    "beatbandit": {
      "type": "http",
      "url": "https://beatbandit.ai/api/mcp"
    }
  }
}
.cursor/mcp.json
{
  "mcpServers": {
    "beatbandit": {
      "url": "https://beatbandit.ai/api/mcp"
    }
  }
}

Windsurf, Cline and other HTTP clients use the same shape.

settings.json (GitHub Copilot Chat)
{
  "mcp": {
    "servers": {
      "beatbandit": {
        "url": "https://beatbandit.ai/api/mcp"
      }
    }
  }
}
custom connector
Name:       BeatBandit
Server URL: https://beatbandit.ai/api/mcp
Auth:       OAuth 2.1 (browser consent on first tool call)

Install guide — per-client steps and verification.

Authentication & billing

  • Sign-in is the same account as the website. Every client and the website see the same projects.
  • Read tools are free. Tools that run models are billed in credits from your balance.
  • Paid tools follow quote → accept → start: the first call returns a price, and nothing is charged until the client starts the job with that quote.
  • Write tools change project data directly; proposal tools (*_propose) return changes for review and apply nothing.

Long-running jobs

Development, writing, review and media tools run as background jobs. A typical call sequence:

# 1. quote
screenplay_generation_run(project_id=1567, scope="sequence", sequence_number=2)
  → { quote: { credits: 42, quote_hash: "…" } }
# 2. start with the accepted quote
screenplay_generation_run(project_id=1567, …, accept_quote="…")
  → { job_id: "job_…", status: "running" }
# 3. poll, then read the result
job_get(job_id="job_…")          → { status: "completed" }
screenplay_read(project_id=1567, mode="sequence", sequence_number=2)

Argument names shown are illustrative; each tool's reference page lists its exact schema.

Prompts

Prompts are ready-made instructions a client can load. Each one checks the project's state and chooses the next tool.

PromptDescriptionUses
idea_to_screenplay_pipelineRoute a BeatBandit project from raw idea through outline stages into screenplay generation, branching by template mode and live readiness instead of only raw card counts.project_query, template_list, genre_contract_query, genre_contract, story_development_run …
review_to_revisions_pipelineStart with BeatBandit-led diagnosis first, then route the resulting review findings into the right revision path.story_review_run, story_revision_run, screenplay_edit_propose, screenplay_rewrite_run, story_entity_query …
revision_strategy_pipelineRoute a known revision request to the right screenplay-first or story-first BeatBandit change surface, route Scene List Revision merge survivors through reviewable scene authoring, and route remaining structural-sync queues through Sync Screenplay (`story_review_run` continuity_audit) before more prose edits.screenplay_read, screenplay_edit_propose, screenplay_edit_apply, screenplay_snapshot_apply, screenplay_rewrite_run …
screenplay_to_novel_pipelineRoute an authorized Movie, Genre Movie, or existing Novel project through the canonical source → Blueprint → Chapters → Voice → manuscript → audit → export lifecycle using live readiness.project_query, story_development_run, project_query, story_review_run, export_create …
screenplay_to_video_pipelineGuide BeatBandit through the canonical screenplay-to-video pipeline for one scene or episode scope, keeping identity/art-direction references distinct from reviewed realized-continuity checkpoints.shot_list_generate, shot_list_query, project_assets_query, image_generate, asset_upload …

Tools

41 tools in 9 families. Kinds: read returns data, write changes project data, orchestration runs a workflow or proposes changes, export produces files.

Core Project 3

Discover, create, and read BeatBandit projects and templates.

ToolKindScopeDescription
project_mutatewriteproject:writeCreate or update project-level metadata, settings, and defaults, returning compact stable project identity for follow-up MCP calls.
project_queryreadproject:readList accessible projects, read one project by stable id, re-find a project by exact name, or inspect canonical Novel development, adaptation source, Chapter, manuscript, Voice, audit, canon, candidate, and export-readiness state.
template_listreadproject:readList available BeatBandit templates and return a compact project creation next-action template.

Story Graph 3

Read and mutate the story-graph primitives: cards, scenes, and the graph itself.

ToolKindScopeDescription
story_entity_proposeorchestrationproject:writeQuote first, then accept Start with both billing IDs.
story_entity_queryreadproject:readList, get, or search story graph entities such as cards, scenes, episodes, arcs, and relationships.
story_mutatewriteproject:writeCreate agreed story cards or scenes, or make exact updates, reordering and deletions to story entities.

Screenplay 9

Read, propose, and apply changes to structured screenplay documents.

ToolKindScopeDescription
screenplay_draft_applywriteproject:writeUse after the user approves a complete scene or episode draft saved by screenplay_proposal_create.
screenplay_edit_applywritescreenplay:writeUse to apply user-approved passage edits returned by screenplay_edit_propose, retaining their base_rev, targets and preimages.
screenplay_edit_proposeorchestrationscreenplay:writeQuote, start accepted generation, and finalize revision-aware screenplay edits for a selected passage.
screenplay_import_runorchestrationscreenplay:writeImport screenplay scenes, beats and canonical pages.
screenplay_proposal_createwriteproject:writeSave supplied scene or whole-episode text as a reviewable draft.
screenplay_proposal_queryreadproject:readList or read complete saved screenplay proposals, source evidence, and their native review or Apply authority.
screenplay_readreadproject:readRead compact screenplay document context, one episodic screenplay, one movie sequence, one scene, or the explicit full document from BeatBandit's structured screenplay editor.
screenplay_rewrite_runorchestrationscreenplay:writePropose direction-driven screenplay rewrites scoped to scenes, ranges, characters or the whole draft.
screenplay_snapshot_applywritescreenplay:writeUse when the user has exact text or block changes to save: replace, insert or delete text/blocks, update block metadata, or replace a scene from Fountain/plain text.

Story Workflows 10

Run backend-owned parent workflows for development, revision, review, and screenplay generation.

ToolKindScopeDescription
genre_contractwriteproject:writeApply the selected Genre Movie contract.
genre_contract_queryreadproject:readRead, inspect the registry, or preview a Genre Movie contract without applying changes.
screenplay_generation_runorchestrationscreenplay:writeUse when an existing outline is ready for screenplay prose: a movie/TV draft, selected episodes, a scene, or dependent pages for a saved story revision.
screenplay_writing_voiceorchestrationproject:writeSave or select the project Writing Voice.
screenplay_writing_voice_analyzeorchestrationproject:writeCheck readiness, quote, start, or finalize Writing Voice analysis.
screenplay_writing_voice_queryreadproject:readRead the complete saved Writing Voice, a transparent preset, or completed analysis proposals.
story_development_runorchestrationproject:writeGenerate whole outlines, scene lists, sequences, treatments, trailers, episodes, weave plans, or original/adapted Novels.
story_review_runorchestrationproject:writeREVIEW existing project material and produce editorial feedback — room review (writers'-room style holistic notes), analysis wizard (scored editorial pass with rewrite guidance and comps), or continuity audit / Sync Screenplay (generate, review, and explicitly apply screenplay rewrite suggestions for pending structural-sync update tasks), or Novel audits, reviewable shared manuscript proposals, revision-checked Canon Ledger updates, AI prose edits of a selected manuscript passage, and plan updates from written prose.
story_revision_runorchestrationproject:writeUse when an existing story needs structural changes, connected planning/page revisions, dialogue polish, alternative directions, or planning-to-pages comparison.
take_wizard_runorchestrationproject:writeQuote, then explicitly start 2-5 distinct premise TAKES from raw story material before any beats exist - Faithful, More Dramatic, Wildcard, Intimate, High Concept.

Story Collaboration 1

Collaborate with BeatBandit through conversational guidance and persona-driven passes.

ToolKindScopeDescription
agent_persona_runorchestrationproject:writeRun personas once to propose applyable changes to existing project material.

Shot / Media / Export 10

Generate shot lists, images, videos, and export artifacts.

ToolKindScopeDescription
asset_uploadwriteproject:writeUpload a local, public-URL, or base64 image/audio into BeatBandit as a shot image, recurring shot-element reference, scene moodboard asset, project visual-style reference, or reusable voice reference.
export_createexportexport:readStart exports and retrieve export artifacts.
export_queryreadproject:readList owned project exports or reopen one retained export without regenerating it.
image_generateorchestrationmedia:writeGenerate still-image assets, with distinct workflows for per-shot storyboard/frame images, reusable shot-element references, and scene-level moodboards; fal-backed requests return an async job to poll with `job_get`.
media_generateorchestrationmedia:writeGenerate music, speech, dialogue, sound effects, or shot-scoped scene audio.
shot_list_generateorchestrationproject:writeRun or cancel BeatBandit's backend-owned shot-list generation workflow for a project, scene, or episode scope.
shot_list_queryreadproject:readRead shot-list scope summaries, shots, recurring elements, and linked shot assets.
shot_mutatewriteproject:writeCreate, update, delete, reorder, or reposition shots, recurring shot elements, scene moodboard selections, selected shot-audio takes, and reviewed video-continuity checkpoints inside an existing shot-list scope using an entity_type discriminator.
video_generateorchestrationmedia:writeGenerate shot videos and start video timeline exports, with discoverable model constraints, reference roles, prompt/default resolution, and asset handoff metadata.
voice_profilewriteproject:writeList, create, update, archive, and attach reusable voice reference samples for Seed Audio workflows.

Asset Query 2

Filter generated media and shot-element libraries without leaving the MCP surface.

ToolKindScopeDescription
asset_displayreadproject:readDisplay one BeatBandit asset with inline image rendering or media-ready metadata.
project_assets_queryreadproject:readFilter generated media assets, recurring shot elements, or scene moodboards for one BeatBandit project.

Jobs 1

Poll async workflow progress through the canonical job surface.

ToolKindScopeDescription
job_getorchestrationproject:readObserve an accepted async job and its results.

Other 2

ToolKindScopeDescription
account_mutatewriteaccount:writeUpdate caller-scoped account preferences such as the default BeatBandit LLM identifier and default video model path.
novel_mutatewriteproject:writeMake exact Novel Chapter structure, manuscript/private-note, metadata, checkpoint/restore or manual Writing Voice changes using native revision guards.

Resources

Resource URIs returned in tool results. Clients can read them directly for larger payloads such as full screenplays, canon summaries and assets.

All 41 resource templates
URI templateDescription
beatbandit://account/statusCaller-scoped BeatBandit account state including credits plus current default LLM and video model preferences.
beatbandit://projects/{project_id}/analysis-wizard/{job_id}Read-only finalized Analysis Wizard scores, comments, and rewrite guidance.
beatbandit://projects/{project_id}/assets/{source_type}/{asset_id}/contentBinary content for one generated BeatBandit asset, delivered through BeatBandit instead of expiring storage URLs.
beatbandit://projects/{project_id}/change-wizard/{job_id}Read-only finalized Change Story proposed changes and summary.
beatbandit://projects/{project_id}/creative-canvas/{job_id}Read-only finalized Creative Canvas directions.
beatbandit://projects/{project_id}/diff-proposals/{proposal_id}Full MCP diff proposal envelope for one saved rewrite or persona proposal.
beatbandit://projects/{project_id}/episode-screenplay/{job_id}Read-only episodic screenplay generation result for one parent job.
beatbandit://projects/{project_id}/exports/{export_id}Read-only export artifact metadata or links.
beatbandit://projects/{project_id}/media-catalogPaginated catalog of generated media assets for one project.
beatbandit://projects/{project_id}/mentor/decisionsLatest durable Story Mentor decision snapshot for one project.
beatbandit://projects/{project_id}/novel/auditsRead-only history and findings for Novel continuity audit runs.
beatbandit://projects/{project_id}/novel/blueprintRead-only authored Novel development, including unfinished Foundation and Direction; source diagnosis and adaptation units exist only for adaptations.
beatbandit://projects/{project_id}/novel/candidates/{child_job_id}Read-only complete current and proposed Chapter documents for one Writer review checkpoint.
beatbandit://projects/{project_id}/novel/canonRead-only canonical continuity ledger for a Novel project.
beatbandit://projects/{project_id}/novel/changesRead-only Chapters flagged by upstream changes and open shared manuscript proposal summaries.
beatbandit://projects/{project_id}/novel/chapters/{chapter_card_id}Read-only complete prose and canonical editable Lexical body, including private author notes and formatting, compact Chapter plan and linked source units. Excludes generation-debug payloads.
beatbandit://projects/{project_id}/novel/manuscriptRead-only canonical manuscript assembly in Chapter order.
beatbandit://projects/{project_id}/novel/sourceRead-only normalized source package used by a Novel adaptation project.
beatbandit://projects/{project_id}/novel/source/units/{source_id}Read-only canonical source text and metadata for one source unit linked from a Novel Chapter.
beatbandit://projects/{project_id}/novel/voiceRead-only complete Voice Guidelines, Writing Samples, and revision state for a Novel project.
beatbandit://projects/{project_id}/novel/voice/proposals/{job_id}Read-only complete Voice Options proposal and proof excerpts for an explicitly selected completed job.
beatbandit://projects/{project_id}/polish-wizard/{job_id}Read-only finalized Polish Screenplay suggestions and conflicts.
beatbandit://projects/{project_id}/canon/summaryCompact read-only summary of a BeatBandit project canon.
beatbandit://projects/{project_id}/chat-history/{stage_id}Paginated freeform project chat history for one project stage.
beatbandit://projects/{project_id}/diff-proposalsRecent unapplied MCP diff proposals for one project, including rewrite and persona proposals that can still be applied.
beatbandit://projects/{project_id}/preferencesEffective chat-facing project preferences, including provider/model defaults and the default stage snapshot.
beatbandit://projects/{project_id}/updatesCurrent rewrite and structural-sync update queue for one project.
beatbandit://projects/{project_id}/room-review/{job_id}Read-only finalized Room Review summary and notes.
beatbandit://projects/{project_id}/screenplayRead-only snapshot of the structured screenplay document. Use the screenplay_sequence resource for a sequence-scoped read.
beatbandit://projects/{project_id}/screenplay/scenes/{scene_id}Read-only snapshot of one screenplay scene.
beatbandit://projects/{project_id}/screenplay?sequence_number={sequence_number}Read-only movie sequence slice using the same scene membership as screenplay_read. sequence_number must be an integer from 1 to 8; episodic documents require episode reads.
beatbandit://projects/{project_id}/screenplay/writing-voiceComplete revisioned project Writing Voice artifact, including explicitly requested samples.
beatbandit://projects/{project_id}/screenplay/writing-voice/proposals/{job_id}Completed editable Screenplay Writing Voice analysis proposal and its base expected revision.
beatbandit://projects/{project_id}/sequence-wizard/{job_id}Read-only finalized Sequence Wizard update summary.
beatbandit://projects/{project_id}/shot-element-libraryPaginated recurring shot-element library for one project.
beatbandit://projects/{project_id}/shot-list/scopes/{scope_type}/{scope_code}Read-only snapshot of a shot-list scope.
beatbandit://projects/{project_id}/mentor/sessions/{session_id}Story Mentor transcript, decision state, and active turn snapshot for one session.
beatbandit://templates/{template_mode}Read-only BeatBandit template manifest.
beatbandit://projects/{project_id}/treatment-wizard/{job_id}Read-only finalized Treatment Wizard sections and update summary.
beatbandit://projects/{project_id}/visual-style/effective/{scope}Read-only effective visual style resolution for a project, scene, or shot scope.
beatbandit://projects/{project_id}/weave/{job_id}Read-only finalized Weave result with saved episodes and warnings.

Errors

Errors are structured: a stable code, an HTTP status, and whether a retry can succeed.

All 24 error codes
CodeHTTPRetryableMeaning
scene_authoring_required409noReview the saved scene changes before checking screenplay ripple effects.
unauthorized401noAuthentication is required.
forbidden403noYou do not have access to this BeatBandit resource.
not_found404noThe requested BeatBandit resource was not found.
validation_error400noThe request arguments were invalid.
unsupported_mode400noThis tool mode is not supported.
conflict409noThe requested operation conflicts with current BeatBandit state.
stale_version409noThe requested change was based on an older revision. Refresh and retry.
stale_precondition409noThe object changed since you read it. Re-read and retry.
input_mutated_during_job409noOne or more inputs to the async job changed while it was running. Restart the job.
idempotency_conflict409noThis idempotency key was already used with different inputs.
workflow_in_progress409yesA higher-level BeatBandit workflow is still updating this project. Poll job_get and retry after it completes.
insufficient_credits402noThe user does not have enough credits for this operation.
rate_limited429yesThe request was rate limited. Retry later.
upstream_error502yesAn upstream service (LLM or provider) returned an unexpected result.
content_safety_blocked400noImage generation was blocked by the provider safety system. Retry only the failed shot with safer prompt_override wording.
asset_too_large413noThe asset is too large to return as MCP blob content. Use asset_display or an export workflow instead.
screenplay_missing404noThis project does not have a screenplay document to sync.
no_sync_updates400noNo Sync Screenplay update tasks are available.
structural_sync_required409yesStructural Sync must complete before Sync Screenplay can generate rewrite suggestions.
continuity_job_not_found404noThe requested continuity audit job was not found.
continuity_job_not_complete400yesThe continuity audit job is not complete yet.
suggestion_not_found404noA selected continuity suggestion was not found.
internal_error500noBeatBandit failed to complete the request.