Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.soundchecklive.io/llms.txt

Use this file to discover all available pages before exploring further.

The Soundcheck MCP server lets AI assistants like Claude Code and Cursor read your events, setlists, and crew data — and run common workflow actions (accept invitations, archive events, respond to crew offers) — through the Model Context Protocol. It is a hosted service that authenticates each user with their own Soundcheck (Clerk) account.
The server exposes both reads and a curated set of write actions. It never deletes data, changes billing, or impersonates other users. It cannot delete, change billing, or impersonate other users.

What you can do

Ask questions

“Summarize my next gig and who’s playing what.” Claude uses the MCP to fetch your events, setlists, and lineup before answering.

Take action

“Accept invitation INV-…” Claude calls the right mutation tool, with a confirmation prompt because mutations are annotated as such.

Get a brief before a show

Use the built-in prepare_for_show prompt to get a single-page brief: lineup, schedule, setlists, open checklist items.

Weekly status

Use the weekly_status prompt to get a punch list of pending invitations, crew offers, and unfilled positions.

Server endpoints

EnvironmentURL
Productionhttps://mcp.soundchecklive.io/mcp
QAhttps://mcp.qa.soundchecklive.io/mcp
Devhttps://mcp.dev.soundchecklive.io/mcp
All endpoints implement OAuth 2.0 Protected Resource Metadata (RFC 9728). Spec-compliant clients discover the Clerk authorization server automatically; you don’t paste API keys.

Set up with Claude Code

Add an entry to your global ~/.claude.json (or per-project .mcp.json):
{
  "mcpServers": {
    "soundcheck": {
      "type": "http",
      "url": "https://mcp.soundchecklive.io/mcp"
    }
  }
}
Restart Claude Code. The first time you use a Soundcheck tool, Claude Code will:
  1. Hit /mcp and receive a 401 with a WWW-Authenticate challenge pointing at our PRM document.
  2. Read PRM and discover the Clerk authorization server.
  3. Open a browser tab to Clerk so you can sign in.
  4. Cache the access token for subsequent calls.
You can verify the connection in Claude Code with /mcp — the soundcheck server should be listed as connected.

Set up with Cursor

Add to ~/.cursor/mcp.json (or per-workspace .cursor/mcp.json):
{
  "mcpServers": {
    "soundcheck": {
      "type": "http",
      "url": "https://mcp.soundchecklive.io/mcp"
    }
  }
}
Cursor uses the same OAuth flow on first connect. If your version of Cursor does not yet support OAuth discovery, fall back to manual token mode (below).

Manual token mode (fallback)

If your client doesn’t support automatic OAuth discovery, get a short-lived Clerk session JWT from a logged-in Soundcheck session (browser dev tools → run await window.Clerk.session.getToken() in the console) and add it as a static header:
{
  "mcpServers": {
    "soundcheck": {
      "type": "http",
      "url": "https://mcp.soundchecklive.io/mcp",
      "headers": {
        "Authorization": "Bearer paste-your-clerk-jwt-here"
      }
    }
  }
}
Session JWTs expire after ~1 hour. When you start seeing 401s, refresh the token.

Available tools

The server exposes 33 tools across reads and writes, plus 4 resources and 3 prompts. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) let clients prompt for confirmation where appropriate.

Read tools (21)

list_events, get_event, get_event_audit_logs, get_event_schedule, get_event_checklist
list_setlists, get_setlist, get_setlists_by_event
list_calllists, get_calllist
get_me, list_users, list_organizations, get_organization, list_org_positions
list_crew_offers, list_availability_requests
list_venues, list_customers, list_sponsors, list_inventory

Write tools (12)

accept_invitation, decline_invitation
accept_crew_offer, decline_crew_offer
create_event, update_event (partial merge), archive_event, unarchive_event
create_setlist
create_calllist, apply_calllist_to_event
set_availability

Resources

Browse and attach platform data as context using @ (in Claude Code) or + (in Cursor):
URI templateWhat it returns
soundcheck://user/meYour authenticated user.
soundcheck://event/{event_id}Full event details.
soundcheck://setlist/{setlist_id}A setlist with its sets and songs.
soundcheck://organization/{organization_id}Organization details.

Prompts

Ready-made workflow prompts that orchestrate the right tools:
PromptArguments
summarize_eventevent_id (required)
prepare_for_showevent_id (required)
weekly_statusorganization_id (optional)

Security model

  • Each MCP request carries your Clerk JWT. The server validates the JWT against Clerk on every call and forwards the validated token to the Soundcheck API.
  • The server has no privileged credentials beyond what your account already has — it acts as you, never as an admin.
  • Mutations are flagged with MCP’s destructiveHint/idempotentHint annotations so clients can prompt for confirmation before running them.
  • TLS is required (HTTPS only). The hosted server enforces HSTS and HTTPS-only redirects.

Troubleshooting

Re-run the OAuth flow by removing and re-adding the server config, or run /mcp in Claude Code and re-authenticate.
Your token expired or was rejected by Clerk. For OAuth clients, sign in again. For manual token mode, paste a fresh JWT.
Tool responses surface the underlying API status code and body. Common causes: missing org membership for the resource you queried, or a stale id.

Self-hosting

The server source is open in our monorepo at mcp/. See the engineering docs for self-hosting, environment variables, and Terraform module reference.