Quick start

  1. In the app, open Account → Agents & API and create a key. It starts with sbp_ and is shown once, so copy it then.
  2. Add the MCP server to your agent (below).
  3. Ask for something: “Make a plot called Friday Club Show on a 28 × 20 stage. Drums on an 8 × 8 riser upstage centre, bass amp stage right, two guitar amps stage left, four wedges downstage, and a lead vocal mic downstage centre.”

Each result includes an editor_url that opens the plot. If you already have it open, the agent's changes show up live.

Connect an agent

MCP server URL: https://stagebuilderpro.com/mcp (Streamable HTTP). Send your key as a bearer token.

Claude Code

claude mcp add --transport http stagebuilder https://stagebuilderpro.com/mcp \
  --header "Authorization: Bearer sbp_YOUR_KEY"

Cursor, Windsurf and other JSON-configured clients

{
  "mcpServers": {
    "stagebuilder": {
      "url": "https://stagebuilderpro.com/mcp",
      "headers": { "Authorization": "Bearer sbp_YOUR_KEY" }
    }
  }
}

Codex

# ~/.codex/config.toml
[mcp_servers.stagebuilder]
url = "https://stagebuilderpro.com/mcp"
bearer_token_env_var = "SBP_API_KEY"

Then export SBP_API_KEY=sbp_YOUR_KEY in the shell you run Codex from.

Claude Desktop and other clients that only run local servers

{
  "mcpServers": {
    "stagebuilder": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://stagebuilderpro.com/mcp",
               "--header", "Authorization: Bearer sbp_YOUR_KEY"]
    }
  }
}

claude.ai and ChatGPT connectors sign in with OAuth rather than a key. Sign-in support for those is coming next; until then, use one of the clients above.

Tools

The MCP tools and the REST endpoints are the same operations.

ToolRESTWhat it does
list_plotsGET /plotsPlots you own or collaborate on, with your role on each.
get_plotGET /plots/{id}Stage size, named stage positions, and every item with its id, position, rotation and size.
create_plotPOST /plotsA blank stage of a given size, or a copy of a template.
update_plotPATCH /plots/{id}Rename, describe, or resize the main stage deck.
delete_plotDELETE /plots/{id}Move a plot you own to Trash (restorable for 30 days).
search_catalogGET /catalogFind gear types: speakers, consoles, lights, LED walls, risers, drum kits, amps, keys, people.
list_templatesGET /templatesStarting plots: 3/4/5-piece band, DJ.
add_itemsPOST /plots/{id}/itemsPlace gear by type and position. Instruments, mics and speakers add their input/output-list rows.
update_itemsPATCH /plots/{id}/itemsMove, rotate, relabel, recolour, resize, hide or annotate items.
remove_itemsDELETE /plots/{id}/itemsDelete items and their input-list rows.
get_input_listGET /plots/{id}/inputsThe input list and output list.
update_input_listPATCH /plots/{id}/inputsSet mics/DIs, stands, phantom power and descriptions by channel.
whoamiGET /meThe account and plan behind the key.

Positions and units

REST API

Base URL https://stagebuilderpro.com/api/v1. Machine-readable spec: /api/v1/openapi.json (OpenAPI 3.1).

curl https://stagebuilderpro.com/api/v1/plots \
  -H "Authorization: Bearer sbp_YOUR_KEY"

curl -X POST https://stagebuilderpro.com/api/v1/plots/PLOT_ID/items \
  -H "Authorization: Bearer sbp_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":[
        {"type":"drum_riser","position":"upstage_center","size":{"width":8,"depth":8,"height":1}},
        {"type":"drum_kit","position":"upstage_center"},
        {"type":"wedge_monitor","position":"downstage_center","label":"Vox wedge"}
      ]}'

Errors

Errors are JSON: { "error": { "code": "…", "message": "…" } }. The message says what to change.

StatusMeaning
400Invalid arguments: an unknown item type (with suggestions), an unknown position, a field out of range.
401Missing, malformed or revoked key.
402The key's account isn't on Pro or Elite right now. The key works again after you resubscribe.
403You can view the plot but not edit it, or the owner's plan has made it view-only.
404No plot or item with that id that you can see.
409The item is locked in the editor.
429More than 120 requests a minute on one key. Wait and retry.

Keys and access