What you can do with it
Get briefed
Run the engagement loop
Build & manage gigs
Close out & settle
Migrate & ingest data
Reach your crew
Server endpoints
/public/mcp with a smaller, unauthenticated tool set; everything in this guide is the signed-in member tier at /mcp.
Connect your client
The server is a standard Streamable HTTP MCP endpoint. Any compliant client connects the same way: give it the URL, and sign in through your browser when prompted. The three most common clients are below; other clients follow the same shape.- Claude Code
- Claude Desktop
- Cursor
- Any MCP client
~/.claude.json (or a per-project .mcp.json):/mcp — soundcheck should show as connected.How sign-in works
The first time your client calls a Soundcheck tool it will:- Hit
/mcpand receive a401with aWWW-Authenticatechallenge pointing at our metadata document. - Read the metadata and discover the Soundcheck (Clerk) sign-in server.
- Open a browser tab so you can sign in with your normal Soundcheck credentials.
- Cache the access token for later calls.
Manual token mode (fallback)
If your client doesn’t support automatic OAuth discovery, get a short-lived session token from a signed-in Soundcheck browser session (dev tools console →await window.Clerk.session.getToken()) and set it as a static header:
What the assistant can do
The member tier exposes 82 tools — 43 reads and 39 write/action tools — plus 9 resources you can attach as context and a set of ready-made workflow prompts. Read tools are annotated read-only so clients know they’re always safe to run; write tools carry annotations (and, for the consequential ones, a confirmation gate) so your client can prompt before acting.Read tools
Attention & your day
Attention & your day
get_org_attention (upcoming shows + everything waiting on you), get_org_brief (a context primer on your organization), my_agenda, my_pending_actions.Events
Events
list_events, get_event, get_event_audit_logs, get_event_schedule, get_event_checklist, list_event_members.Setlists & call lists
Setlists & call lists
list_setlists, get_setlist, get_setlists_by_event, list_calllists, get_calllist.Money & closeout
Money & closeout
get_event_ledger (payables, receivables, income, expenses), get_event_settlement_status (is a show ready to settle).Availability & engagements
Availability & engagements
get_user_availability, get_availability_request, list_availability_requests, list_crew_offers.People & orgs
People & orgs
get_me, list_users, list_organizations, get_organization, list_org_positions.CRM
CRM
list_venues, get_venue, list_customers, get_customer, list_sponsors, list_inventory.Agent playbook
Agent playbook
get_org_playbook — read the free-text rules and preferences that steer the assistant for your organization.Messaging & imports (read)
Messaging & imports (read)
preview_event_recipients, list_notifications, list_imports, get_import, get_import_field_catalog.File ingestion (read)
File ingestion (read)
list_ingestion_batches, get_ingestion_batch, get_ingestion_file_review (proposals + dry-run preview), get_ingestion_batch_review (merged proposals + warnings), request_attachment_upload (asks the host app to upload staged files).Write & action tools
Invitations & crew offers
Invitations & crew offers
accept_invitation, decline_invitation, accept_crew_offer, decline_crew_offer.Availability
Availability
set_availability, create_availability_request, send_availability_request, respond_to_availability_request.Event lifecycle
Event lifecycle
create_event, update_event (partial merge), duplicate_event, archive_event, unarchive_event, add_event_member, link_venue_to_event.Closeout & settlement
Closeout & settlement
complete_event (mark a show complete), settle_event (close the books — gated), reopen_event (undo a premature closeout — gated).Setlists & call lists
Setlists & call lists
create_setlist, create_calllist, apply_calllist_to_event.CRM
CRM
create_venue, create_customer, create_sponsor.Data import
Data import
create_import_from_paste, map_import, preview_import (dry run), commit_import (gated).File ingestion
File ingestion
create_ingestion_batch, add_ingestion_text, trigger_ingestion_merge, dismiss_ingestion_merge, retry_ingestion_file, dismiss_ingestion_file, commit_ingestion_file (gated), commit_ingestion_batch (gated) — drop gig files, review extracted proposals, and commit what you choose.Agent playbook
Agent playbook
set_org_playbook (gated; owner/admin) — rewrite the rules that steer the assistant for your organization.Messaging
Messaging
send_message, broadcast_event_reminder — both gated; they preview and require an explicit confirmation before sending.Resources
Browse and attach platform data as context using@ (in Claude Code) or + (in Cursor):
Worked examples
Everything below is one message you can send your assistant. It picks the right tools; you approve anything consequential."What needs my attention this week?"
"What needs my attention this week?"
get_org_attention to pull your upcoming shows plus every invitation, crew offer, and availability request waiting on you, and summarizes them. Follow up with “clear the ones I can” and it walks the accepts/declines with you."Give me a one-page brief for Friday's show at the Blue Note."
"Give me a one-page brief for Friday's show at the Blue Note."
list_events → get_event), then pulls the schedule, roster, setlist, and open checklist items (get_event_schedule, list_event_members, get_setlists_by_event, get_event_checklist) into a single pre-show sheet."Is the Saturday wedding ready to settle? Show me the ledger first."
"Is the Saturday wedding ready to settle? Show me the ledger first."
get_event_settlement_status to check outstanding items and get_event_ledger to lay out payables and receivables. If it’s ready, “settle it” runs settle_event — a gated action, so you confirm before the books close."Who's free the weekend of the 14th? Ask my drummers."
"Who's free the weekend of the 14th? Ask my drummers."
create_availability_request) and sends it to the crew (send_availability_request). Responses land in each member’s Mailbox and flow back into the calendar."Duplicate last month's corporate gig for June 3rd and put it at the Fairmont."
"Duplicate last month's corporate gig for June 3rd and put it at the Fairmont."
duplicate_event to clone the positions and structure, update_event to set the new date, and link_venue_to_event (looking the venue up or creating it with get_venue / create_venue)."Clear my inbox — accept anything I'm confirmed for."
"Clear my inbox — accept anything I'm confirmed for."
my_pending_actions / list_crew_offers, then runs accept_invitation / accept_crew_offer on the ones you name. Nothing is accepted without you saying so."I dropped the contract onto the June 3rd gig — pull the details in."
"I dropped the contract onto the June 3rd gig — pull the details in."
get_ingestion_batch_review, shows you the schedule, crew, and money it found, and commits only what you approve with commit_ingestion_batch (a gated action). See AI file ingestion."Import this roster I'm pasting from the old system."
"Import this roster I'm pasting from the old system."
create_import_from_paste → map_import → preview_import (a dry run you inspect) → commit_import (gated), so you see exactly what will land before anything is written."Remind everyone booked on tonight's show about the 5pm load-in."
"Remind everyone booked on tonight's show about the 5pm load-in."
preview_event_recipients, then sends via broadcast_event_reminder or a custom send_message — both gated, so it shows you the message and the list and waits for your yes."Teach the assistant that we always hold two subs for tour dates."
"Teach the assistant that we always hold two subs for tour dates."
get_org_playbook and updates them with set_org_playbook (gated, owner/admin) so future runs of the assistant follow your organization’s conventions.Security model
- Each request carries your Soundcheck (Clerk) token. The server validates it on every call and forwards the validated token to the Soundcheck API.
- The server has no privileged credentials beyond your own account — it acts as you, never as an admin, and can’t reach data your login can’t.
- Mutations are flagged with MCP annotations (
readOnlyHint,destructiveHint,idempotentHint) so clients can prompt for confirmation. - Confirmation gate. Nine consequential tools —
send_message,broadcast_event_reminder,commit_import,commit_ingestion_file,commit_ingestion_batch,complete_event,settle_event,reopen_event, andset_org_playbook— go further: when the gate is enabled they perform nothing on first call and return a short-lived, args-bound confirmation token. The action runs only when the same call is repeated with that token, so a single stray tool call can never message your crew, commit a write, or settle a show. For ingestion commits the token also binds the exact proposals you reviewed, so a re-merge automatically re-gates the commit. Soundcheck’s own assistant turns this into a plain “reply YES to send” step, and only the original requester can approve. - TLS is required (HTTPS only); the hosted server enforces HSTS and HTTPS-only redirects.
Troubleshooting
My client says the server is 'disconnected'
My client says the server is 'disconnected'
/mcp and re-authenticate.A tool returned a JSON error from the API
A tool returned a JSON error from the API
A write tool keeps returning 'confirmation required'
A write tool keeps returning 'confirmation required'
confirmation_token it returned. Tokens are single-use and expire after a few minutes.