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/mcpOr in your Claude config:
{
"mcpServers": {
"beatbandit": {
"type": "http",
"url": "https://beatbandit.ai/api/mcp"
}
}
}{
"mcpServers": {
"beatbandit": {
"url": "https://beatbandit.ai/api/mcp"
}
}
}Windsurf, Cline and other HTTP clients use the same shape.
{
"mcp": {
"servers": {
"beatbandit": {
"url": "https://beatbandit.ai/api/mcp"
}
}
}
}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.
| Prompt | Description | Uses |
|---|---|---|
idea_to_screenplay_pipeline | Route 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_pipeline | Start 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_pipeline | Route 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_pipeline | Route 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_pipeline | Guide 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.
| Tool | Kind | Scope | Description |
|---|---|---|---|
project_mutate | write | project:write | Create or update project-level metadata, settings, and defaults, returning compact stable project identity for follow-up MCP calls. |
project_query | read | project:read | List 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_list | read | project:read | List 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.
| Tool | Kind | Scope | Description |
|---|---|---|---|
story_entity_propose | orchestration | project:write | Quote first, then accept Start with both billing IDs. |
story_entity_query | read | project:read | List, get, or search story graph entities such as cards, scenes, episodes, arcs, and relationships. |
story_mutate | write | project:write | Create 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.
| Tool | Kind | Scope | Description |
|---|---|---|---|
screenplay_draft_apply | write | project:write | Use after the user approves a complete scene or episode draft saved by screenplay_proposal_create. |
screenplay_edit_apply | write | screenplay:write | Use to apply user-approved passage edits returned by screenplay_edit_propose, retaining their base_rev, targets and preimages. |
screenplay_edit_propose | orchestration | screenplay:write | Quote, start accepted generation, and finalize revision-aware screenplay edits for a selected passage. |
screenplay_import_run | orchestration | screenplay:write | Import screenplay scenes, beats and canonical pages. |
screenplay_proposal_create | write | project:write | Save supplied scene or whole-episode text as a reviewable draft. |
screenplay_proposal_query | read | project:read | List or read complete saved screenplay proposals, source evidence, and their native review or Apply authority. |
screenplay_read | read | project:read | Read 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_run | orchestration | screenplay:write | Propose direction-driven screenplay rewrites scoped to scenes, ranges, characters or the whole draft. |
screenplay_snapshot_apply | write | screenplay:write | Use 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.
| Tool | Kind | Scope | Description |
|---|---|---|---|
genre_contract | write | project:write | Apply the selected Genre Movie contract. |
genre_contract_query | read | project:read | Read, inspect the registry, or preview a Genre Movie contract without applying changes. |
screenplay_generation_run | orchestration | screenplay:write | Use 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_voice | orchestration | project:write | Save or select the project Writing Voice. |
screenplay_writing_voice_analyze | orchestration | project:write | Check readiness, quote, start, or finalize Writing Voice analysis. |
screenplay_writing_voice_query | read | project:read | Read the complete saved Writing Voice, a transparent preset, or completed analysis proposals. |
story_development_run | orchestration | project:write | Generate whole outlines, scene lists, sequences, treatments, trailers, episodes, weave plans, or original/adapted Novels. |
story_review_run | orchestration | project:write | REVIEW 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_run | orchestration | project:write | Use when an existing story needs structural changes, connected planning/page revisions, dialogue polish, alternative directions, or planning-to-pages comparison. |
take_wizard_run | orchestration | project:write | Quote, 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.
| Tool | Kind | Scope | Description |
|---|---|---|---|
agent_persona_run | orchestration | project:write | Run personas once to propose applyable changes to existing project material. |
Shot / Media / Export 10
Generate shot lists, images, videos, and export artifacts.
| Tool | Kind | Scope | Description |
|---|---|---|---|
asset_upload | write | project:write | Upload 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_create | export | export:read | Start exports and retrieve export artifacts. |
export_query | read | project:read | List owned project exports or reopen one retained export without regenerating it. |
image_generate | orchestration | media:write | Generate 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_generate | orchestration | media:write | Generate music, speech, dialogue, sound effects, or shot-scoped scene audio. |
shot_list_generate | orchestration | project:write | Run or cancel BeatBandit's backend-owned shot-list generation workflow for a project, scene, or episode scope. |
shot_list_query | read | project:read | Read shot-list scope summaries, shots, recurring elements, and linked shot assets. |
shot_mutate | write | project:write | Create, 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_generate | orchestration | media:write | Generate shot videos and start video timeline exports, with discoverable model constraints, reference roles, prompt/default resolution, and asset handoff metadata. |
voice_profile | write | project:write | List, 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.
| Tool | Kind | Scope | Description |
|---|---|---|---|
asset_display | read | project:read | Display one BeatBandit asset with inline image rendering or media-ready metadata. |
project_assets_query | read | project:read | Filter generated media assets, recurring shot elements, or scene moodboards for one BeatBandit project. |
Jobs 1
Poll async workflow progress through the canonical job surface.
| Tool | Kind | Scope | Description |
|---|---|---|---|
job_get | orchestration | project:read | Observe an accepted async job and its results. |
Other 2
| Tool | Kind | Scope | Description |
|---|---|---|---|
account_mutate | write | account:write | Update caller-scoped account preferences such as the default BeatBandit LLM identifier and default video model path. |
novel_mutate | write | project:write | Make 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 template | Description |
|---|---|
beatbandit://account/status | Caller-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}/content | Binary 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-catalog | Paginated catalog of generated media assets for one project. |
beatbandit://projects/{project_id}/mentor/decisions | Latest durable Story Mentor decision snapshot for one project. |
beatbandit://projects/{project_id}/novel/audits | Read-only history and findings for Novel continuity audit runs. |
beatbandit://projects/{project_id}/novel/blueprint | Read-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/canon | Read-only canonical continuity ledger for a Novel project. |
beatbandit://projects/{project_id}/novel/changes | Read-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/manuscript | Read-only canonical manuscript assembly in Chapter order. |
beatbandit://projects/{project_id}/novel/source | Read-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/voice | Read-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/summary | Compact 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-proposals | Recent unapplied MCP diff proposals for one project, including rewrite and persona proposals that can still be applied. |
beatbandit://projects/{project_id}/preferences | Effective chat-facing project preferences, including provider/model defaults and the default stage snapshot. |
beatbandit://projects/{project_id}/updates | Current 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}/screenplay | Read-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-voice | Complete 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-library | Paginated 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
| Code | HTTP | Retryable | Meaning |
|---|---|---|---|
scene_authoring_required | 409 | no | Review the saved scene changes before checking screenplay ripple effects. |
unauthorized | 401 | no | Authentication is required. |
forbidden | 403 | no | You do not have access to this BeatBandit resource. |
not_found | 404 | no | The requested BeatBandit resource was not found. |
validation_error | 400 | no | The request arguments were invalid. |
unsupported_mode | 400 | no | This tool mode is not supported. |
conflict | 409 | no | The requested operation conflicts with current BeatBandit state. |
stale_version | 409 | no | The requested change was based on an older revision. Refresh and retry. |
stale_precondition | 409 | no | The object changed since you read it. Re-read and retry. |
input_mutated_during_job | 409 | no | One or more inputs to the async job changed while it was running. Restart the job. |
idempotency_conflict | 409 | no | This idempotency key was already used with different inputs. |
workflow_in_progress | 409 | yes | A higher-level BeatBandit workflow is still updating this project. Poll job_get and retry after it completes. |
insufficient_credits | 402 | no | The user does not have enough credits for this operation. |
rate_limited | 429 | yes | The request was rate limited. Retry later. |
upstream_error | 502 | yes | An upstream service (LLM or provider) returned an unexpected result. |
content_safety_blocked | 400 | no | Image generation was blocked by the provider safety system. Retry only the failed shot with safer prompt_override wording. |
asset_too_large | 413 | no | The asset is too large to return as MCP blob content. Use asset_display or an export workflow instead. |
screenplay_missing | 404 | no | This project does not have a screenplay document to sync. |
no_sync_updates | 400 | no | No Sync Screenplay update tasks are available. |
structural_sync_required | 409 | yes | Structural Sync must complete before Sync Screenplay can generate rewrite suggestions. |
continuity_job_not_found | 404 | no | The requested continuity audit job was not found. |
continuity_job_not_complete | 400 | yes | The continuity audit job is not complete yet. |
suggestion_not_found | 404 | no | A selected continuity suggestion was not found. |
internal_error | 500 | no | BeatBandit failed to complete the request. |