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.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 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
| Environment | URL |
|---|---|
| Production | https://mcp.soundchecklive.io/mcp |
| QA | https://mcp.qa.soundchecklive.io/mcp |
| Dev | https://mcp.dev.soundchecklive.io/mcp |
Set up with Claude Code
Add an entry to your global~/.claude.json (or per-project .mcp.json):
- Hit
/mcpand receive a 401 with aWWW-Authenticatechallenge pointing at our PRM document. - Read PRM and discover the Clerk authorization server.
- Open a browser tab to Clerk so you can sign in.
- Cache the access token for subsequent calls.
/mcp — the soundcheck server should be listed as connected.
Set up with Cursor
Add to~/.cursor/mcp.json (or per-workspace .cursor/mcp.json):
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 → runawait window.Clerk.session.getToken() in the console) and add it as a static header:
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)
Events
Events
list_events, get_event, get_event_audit_logs, get_event_schedule, get_event_checklistSetlists
Setlists
list_setlists, get_setlist, get_setlists_by_eventCalllists
Calllists
list_calllists, get_calllistPeople & orgs
People & orgs
get_me, list_users, list_organizations, get_organization, list_org_positionsEngagements
Engagements
list_crew_offers, list_availability_requestsCRM
CRM
list_venues, list_customers, list_sponsors, list_inventoryWrite tools (12)
Invitations
Invitations
accept_invitation, decline_invitationCrew offers
Crew offers
accept_crew_offer, decline_crew_offerEvent lifecycle
Event lifecycle
create_event, update_event (partial merge), archive_event, unarchive_eventSetlists
Setlists
create_setlistCalllists
Calllists
create_calllist, apply_calllist_to_eventAvailability
Availability
set_availabilityResources
Browse and attach platform data as context using@ (in Claude Code) or + (in Cursor):
| URI template | What it returns |
|---|---|
soundcheck://user/me | Your 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:| Prompt | Arguments |
|---|---|
summarize_event | event_id (required) |
prepare_for_show | event_id (required) |
weekly_status | organization_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/idempotentHintannotations so clients can prompt for confirmation before running them. - TLS is required (HTTPS only). The hosted server enforces HSTS and HTTPS-only redirects.
Troubleshooting
Claude Code or Cursor says the server is 'disconnected'
Claude Code or Cursor says the server is 'disconnected'
Re-run the OAuth flow by removing and re-adding the server config, or run
/mcp in Claude Code and re-authenticate.I'm getting 401 Unauthorized on every tool call
I'm getting 401 Unauthorized on every tool call
A tool returned a JSON error from the API
A tool returned a JSON error from the API
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 atmcp/. See the engineering docs for self-hosting, environment variables, and Terraform module reference.