Skip to main content
The Soundcheck MCP server lets an AI assistant — Claude Desktop, Claude Code, Cursor, or any client that speaks the Model Context Protocol — read your events, crew, availability, setlists, finances, and CRM and run the everyday work of putting on live events in plain language: staffing the engagement loop, building and duplicating gigs, closing out and settling shows, managing venues and customers, migrating a company’s data into Soundcheck, ingesting gig files, and messaging your crew. It’s a hosted service. Each request is authenticated with your own Soundcheck account (via Clerk), and the assistant acts strictly as you — it sees only what your login can see, never as an admin, and never on behalf of anyone else. It’s the same server that powers CheckAI, Soundcheck’s own assistant.
The server exposes your reads plus a curated set of write actions. The most consequential ones — messaging real people, broadcasting reminders, committing an import or ingestion, settling a show — are gated: when the confirmation gate is enabled they do nothing on the first call and instead ask you to confirm. The server never deletes data, changes billing, or impersonates other users.

What you can do with it

Get briefed

“What needs my attention this week?” pulls your upcoming shows and everything waiting on you into one answer. Ask for a one-page pre-show brief — lineup, schedule, setlist, open checklist items.

Run the engagement loop

Ask the crew’s availability, then clear the offers and invitations sitting in your inbox — accept, decline, respond — without leaving chat.

Build & manage gigs

Create or duplicate an event, attach a venue, add members, draft and apply a call list, and build setlists — described in a sentence.

Close out & settle

Check whether a show is ready to settle, read its ledger, mark it complete, and settle the books — the same post-event flow you’d run on the web.

Migrate & ingest data

Point the assistant at a client’s existing roster, venues, or customers and walk a guided import, or drop gig files onto an event and review what CheckAI extracts before anything is written.

Reach your crew

Preview who a message will reach, then send a custom SMS or email — or the standard reminder to a whole roster — with an explicit confirm-before-send step.
Because it all runs through one MCP, the same capabilities work from Claude Desktop, Claude Code, Cursor, or Soundcheck’s own assistant on Slack, SMS, and in-app chat — wherever your team already works.

Server endpoints

Use the production URL unless you’ve been told otherwise. All endpoints implement OAuth 2.0 Protected Resource Metadata (RFC 9728), so spec-compliant clients discover the sign-in flow automatically — you don’t paste API keys. There’s a separate anonymous public discovery endpoint at /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.
Add the server from the CLI:
Or add it by hand to your global ~/.claude.json (or a per-project .mcp.json):
Restart Claude Code. The first time you use a Soundcheck tool it opens a browser tab to sign in, then caches the token. Verify with /mcpsoundcheck should show as connected.

How sign-in works

The first time your client calls a Soundcheck tool it will:
  1. Hit /mcp and receive a 401 with a WWW-Authenticate challenge pointing at our metadata document.
  2. Read the metadata and discover the Soundcheck (Clerk) sign-in server.
  3. Open a browser tab so you can sign in with your normal Soundcheck credentials.
  4. Cache the access token for later calls.
You act as whatever your account can see. If you belong to multiple organizations, the tools operate in your active organization — switch it in the Soundcheck web app if you need a different one.

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:
Session tokens expire after about an hour. When you start seeing 401 errors, refresh the token. OAuth clients refresh automatically — prefer them.

What the assistant can do

The member tier exposes 82 tools43 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

get_org_attention (upcoming shows + everything waiting on you), get_org_brief (a context primer on your organization), my_agenda, my_pending_actions.
list_events, get_event, get_event_audit_logs, get_event_schedule, get_event_checklist, list_event_members.
list_setlists, get_setlist, get_setlists_by_event, list_calllists, get_calllist.
get_event_ledger (payables, receivables, income, expenses), get_event_settlement_status (is a show ready to settle).
get_user_availability, get_availability_request, list_availability_requests, list_crew_offers.
get_me, list_users, list_organizations, get_organization, list_org_positions.
list_venues, get_venue, list_customers, get_customer, list_sponsors, list_inventory.
get_org_playbook — read the free-text rules and preferences that steer the assistant for your organization.
preview_event_recipients, list_notifications, list_imports, get_import, get_import_field_catalog.
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

accept_invitation, decline_invitation, accept_crew_offer, decline_crew_offer.
set_availability, create_availability_request, send_availability_request, respond_to_availability_request.
create_event, update_event (partial merge), duplicate_event, archive_event, unarchive_event, add_event_member, link_venue_to_event.
complete_event (mark a show complete), settle_event (close the books — gated), reopen_event (undo a premature closeout — gated).
create_setlist, create_calllist, apply_calllist_to_event.
create_venue, create_customer, create_sponsor.
create_import_from_paste, map_import, preview_import (dry run), commit_import (gated).
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.
set_org_playbook (gated; owner/admin) — rewrite the rules that steer the assistant for your organization.
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.
Runs 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.
Finds the event (list_eventsget_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.
Calls 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.
Drafts an availability request scoped to your drum positions (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.
Uses 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).
Reads 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.
Reviews the extracted proposals with 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.
Drives create_import_from_pastemap_importpreview_import (a dry run you inspect) → commit_import (gated), so you see exactly what will land before anything is written.
Previews recipients with 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.
Reads the current rules with 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, and set_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

Re-run the sign-in by removing and re-adding the server config, or in Claude Code run /mcp and re-authenticate.
Your token expired or was rejected. For OAuth clients, sign in again. For manual token mode, paste a fresh token.
Tool responses surface the underlying API status code and body. Common causes: you’re not a member of the organization that owns the resource, or the id is stale. Check that your active organization is the one you expect.
That’s the gate working. Re-issue the exact same call including the confirmation_token it returned. Tokens are single-use and expire after a few minutes.

CheckAI assistant

The same tools, in Slack, SMS, and in-app chat.

AI file ingestion

Drop gig files onto an event and review what’s extracted.

Agent discovery

How the server is published so agents can find it.

Integrations overview

Everything Soundcheck connects to.