mcp.soundchecklive.io: anonymous public discovery at /public/mcp, and member tools at /mcp with OAuth via Clerk Protected Resource Metadata. The member tier authenticates with your own Clerk account. The assistant uses the signed-in account’s permissions. It can perform admin operations only when that account is authorized for them.
What you can do with it
Get briefed
Run the engagement loop
Build & manage gigs
Close out & settle
Migrate & ingest data
Reach your crew
Connect from your assistant
Choose your client below. Hosted MCP is live onmcp.soundchecklive.io. Claude’s Connectors Directory and the ChatGPT plugin are submitted for review, not listed yet; use the custom URL recipes on those pages today. There is no Cursor Marketplace plugin yet.
Claude
ChatGPT
Cursor
Claude Code
claude mcp add --transport http ….Public discovery
Anonymous Streamable HTTP public tier athttps://mcp.soundchecklive.io/public/mcp (soundcheck-public 0.1.0-ts). The primary public capability is instant event quoting: give quote_event a loose event description and get back a structured estimate range with a category breakdown, assumptions, confidence, missing information, pricing evidence, and a quote_id for refinement. Numbers come from Soundcheck’s versioned public pricing catalog and a deterministic engine, never from a model. Public quotes are synthetic / illustrative (labeled synthetic: true on every payload), not real costs and not a binding offer. Public capability highlights (see the generated catalog for exact source counts):
quote_event: event description (plus optional date, location, structured requirements) → grounded synthetic estimate range, breakdown, assumptions, confidence,missing_information, evidence, and a statelessquote_id; passquote_idplus overrides to refine. Optionaluse_ai_groundinguses the same analysis service asanalyze_event_to_uefto fill gaps in the extracted event facts only (prices are never model-generated).list_quote_packages: browse the pricing catalog behindquote_event(event profiles, package tiers, add-ons, market indexes, rules, catalog version) — the evidence a quote citesget_public_org: org lookup on the public storefrontlist_positions: global default position catalog (not the looked-up org’s roles; no org id)normalize_positions: map free-text crew role strings onto the global position catalog (deterministic; not AI-gated)analyze_event_to_uef: turn pasted event text into a UEF draft plus missing fields (analyze only; always listed; AI call fails clearly when gateway is unavailable)get_uef_schema: versioned UEF JSON Schema textbook (schema_version 1.0, minimal + festival examples, docs URL; no AI)validate_uef: validate a UEF draft locally (valid / errors / missing_required; no AI, no invented fixes; 256 KiB string cap)search_places/get_place: seeded public industry venue + hotel catalog (not a complete world database; unknown names return empty/suggestions, never invented addresses)search_inventory/normalize_inventory: public live-event gear taxonomy (stable ids + aliases; not org stock)lookup_market_pricing: market price ranges per service category with the evidence behind them (published rates plus Soundcheck actuals released only as ≥3-organization aggregates; returnscoverage: "none"and no numbers when evidence is missing — no price is ever invented)request_booking: booking intake (creates a lead)request_sponsorship: sponsorship intake (creates a lead)
quote_an_event, how_to_staff_a_live_event, plan_event_crew.
There is no public gig search yet (blocked on a public-safe storefront projection). Intake tools are consequential: they create real leads. Do not spam request_booking or request_sponsorship.
Hosting status
mcp.soundchecklive.io over api.soundchecklive.io for customer connect recipes. Spec-compliant clients use OAuth 2.0 Protected Resource Metadata (RFC 9728) against Clerk at https://clerk.soundchecklive.io. You will not paste API keys. Do not invent alternate hosts. There is no Cursor Marketplace plugin yet.
Connect your client
Paste the realmcp.soundchecklive.io URLs below. Public needs no sign-in. Member needs OAuth (expect 401 until your client completes the browser sign-in).
Public (anonymous)
- Claude Code
- Claude Desktop
- Cursor
- Any MCP client
~/.claude.json (or a per-project .mcp.json):/mcp: sc-public should show as connected. No sign-in step. Member (signed-in, OAuth)
401 without auth. Spec-compliant clients follow RFC 9728 Protected Resource Metadata:
- OAuth via RFC 9728 Protected Resource Metadata
- Clerk authorization server:
https://clerk.soundchecklive.io - Authorization code + PKCE
- No pasted session JWT for first-run connect
- Do not invent a static
client_id. Clerk may advertise Dynamic Client Registration metadata; do not assume naive clients can complete DCR for member connect today.
https://mcp.soundchecklive.io/mcp over any api.soundchecklive.io MCP path as the customer recipe.
- Claude Code
- Claude Desktop
- Cursor
- Any MCP client
401 + PRM challenge and open a browser sign-in. Verify with /mcp: sc should show as connected. How sign-in works
Public tier: no sign-in. Connect and call tools athttps://mcp.soundchecklive.io/public/mcp.
Member tier: the first time your client calls a member tool it will:
- Hit
https://mcp.soundchecklive.io/mcpand receive a401with aWWW-Authenticatechallenge that includesresource_metadata(RFC 9728) and Clerk’sas_uri. - Fetch
/.well-known/oauth-protected-resourceand readauthorization_servers(listshttps://clerk.soundchecklive.io). - Complete the OAuth browser sign-in your client supports. Do not paste a static
client_id. Do not assume Dynamic Client Registration works for every naive client. - Cache the access token for later calls.
Bearer … from the browser console) as the
documented first-run path. Spec-compliant clients should follow OAuth via PRM.What the assistant can do
The generated MCP capability catalog lists the registered tools, resource URIs, prompts, and read/write counts for the source release. A connected deployment or cached connector can differ: list capabilities after connecting and check the build revision returned byinitialize. Read tools are annotated read-only; consequential writes require explicit approval when the confirmation gate is enabled.
Member prompts
These are MCP prompts on the signed-in server (separate from the public three:quote_an_event, how_to_staff_a_live_event, plan_event_crew). Clients that support prompts can list them after connecting to https://mcp.soundchecklive.io/mcp.
text_my_crew, import/ingest commits, invites) still hit the confirmation gate on the underlying tools.
Available tools
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 (the crew working the show), list_event_assignees (the org members
assigned to manage it).Event chats
Event chats
list_event_chats (membership-scoped; SMS phone numbers are redacted for non-managers),
list_event_chat_messages, get_event_chat_message (stored citation records with immutable
created_provider_timestamp; members and gig managers only).Setlists & call lists
Setlists & call lists
list_setlists, list_songs (org song library; use after delete_song to verify removal),
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), list_ledger_accounts (income/expense accounts a ledger line posts
to).Availability & engagements
Availability & engagements
get_user_availability, get_availability_request, list_availability_requests,
list_crew_offers (offers sent to you), list_org_crew_offers (every shift on the org’s
Staffing boards, DRAFT included; filter by status, type, event_id, from/to),
get_crew_offer (one shift with its days and per-recipient status), review_staffing_draft
(one gig’s shifts grouped by position, with names, call times, fees, seat counts, and which
shifts still have people nobody has been sent anything).People & orgs
People & orgs
get_me, list_users, list_org_members (roles and positions), list_organizations
(membership-scoped: only orgs you belong to, not tenant-wide), get_organization,
list_org_positions (defaults to active roles; each row includes is_active),
list_default_positions (Soundcheck’s built-in role catalog, to enable with
create_org_position).CRM
CRM
list_venues (defaults to org-saved venues only after delete_venue unlink; pass
saved_only=false for the shared global directory; search matches name; limit/offset
page), get_venue, list_customers (same search + pagination), get_customer,
list_sponsors, list_leads (filter by status, stage, owner_org_member_id, or search
on name/email/company/location), get_lead (pass organization_id for a lead in a non-active
org), get_lead_activity, list_inventory (search matches name/category/location),
get_inventory.Agent playbook
Agent playbook
get_org_playbook: read the free-text rules and preferences that steer the assistant for your
organization.Organization knowledge base
Organization knowledge base
get_org_agent_profile: load the curated knowledge base for your organization — how the business
works, organized into sections (overview, services, service area, clients, venues, staffing,
operations, money rules, incidents, voice, playbook, glossary), plus the saved playbook. Call it
once at the start of a session. search_org_knowledge: ask a plain-language question (“load-in
problems at The Fillmore”) and get learnings and incidents, each citing the record it came from.
get_org_knowledge_page: read the written knowledge-base pages your team sees under Settings →
Knowledge base, including sections your team edited.
Both are read-only and limited to managers and admins. The knowledge base is guidance — dates,
crew, and money always come from the event, staffing, and ledger tools. Organizations opt in; until
then both tools report not_enabled.Mailbox
Mailbox
list_mailbox (invitation / crew-offer / availability threads), get_mailbox_check (new-thread
count), list_event_invitations (invitation row ids for a mailbox invitation thread),
get_invitation.Messaging & imports (read)
Messaging & imports (read)
preview_event_recipients, list_notifications, list_imports, get_import,
get_import_field_catalog, export_workspace.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.Staff as an operator: create_event_invitations (gated; invite org members by user_id or outsiders by email/phone to one gig, with org_position_id, call_order, and performance_fee; send_invitation: false stores drafts), send_event_invitations (gated; sends the drafts), create_crew_offer (a DRAFT shift on the Staffing board — nobody is notified), update_crew_offer (edit a shift; per-day day_fees / day_seats / day_times), send_crew_offer (gated; opens the shift and notifies its recipients).Availability
Availability
set_availability (date args use YYYY-MM-DD; type is AVAILABLE or UNAVAILABLE,
case-insensitive), create_availability_request, send_availability_request,
respond_to_availability_request.Event lifecycle
Event lifecycle
create_event (adds the authenticated user as a member by default; pass member_ids to override; name is stored and returned as both name and title; start_time/end_time/event_date accept RFC3339 or unix epoch seconds as number or numeric string; omit timezone and the IANA zone is inferred from an RFC3339 start_time UTC offset such as -05:00 — unix seconds carry no offset, so pass timezone with them), update_event (partial merge), duplicate_event (copies venue_id and adds you as a member), archive_event (gated), unarchive_event (gated), add_event_member (gated; pass org_position_id from list_org_positions to staff a named role — each person joins the roster as INVITED and is added to the gig’s calendar invite), remove_event_member (gated; clears their pending invitations and calendar seat — payables and accepted offers are left for you to reconcile), link_venue_to_event, update_checklist_task (requires checklist_version from get_event_checklist), set_event_assignee (scoped manage rights on one gig; replaces the whole role set), remove_event_assignee.Closeout & settlement
Closeout & settlement
complete_event (mark a show complete, gated), settle_event (close the books, gated),
reopen_event (undo a premature closeout, gated).Finances (write)
Finances (write)
create_ledger_item (ledger_type INCOME, RECEIVABLE, EXPENSE, or PAYABLE; the account is resolved from list_ledger_accounts when the org has one of the matching type; no money moves), update_ledger_item (UNPAID lines only), void_ledger_item (gated; the line stops counting toward totals and settlement), record_ledger_payment (gated; records a cash, check, Zelle, Venmo, PayPal, wire, or other payment made outside Soundcheck, in full or in part, with an optional paid_on day; no money moves), reverse_ledger_payment (gated; undoes the latest manual payment on a line).Setlists & call lists
Setlists & call lists
create_setlist, create_song, update_setlist, delete_setlist (gated), delete_song
(gated), create_calllist, update_calllist, apply_calllist_to_event (gated; all members: primaries
insert INVITED, backups with is_backup or call_order !== 0 insert STANDBY; re-apply adds
0 new rows).CRM
CRM
create_venue, update_venue (shared record fields; "" clears text, null clears capacity/dressing_rooms/green_room; coordinates are set-only), update_venue_org_details (your org’s private org_notes / org_status / org_metadata / access_code), create_customer, update_customer, create_sponsor, update_sponsor, create_lead (source is required — WEBSITE, REFERRAL, INBOUND_EMAIL, PARTNER, REPEAT_CLIENT, or OTHER), update_lead (event_id / customer_id accept null to unlink), claim_lead, mark_lead_lost, reopen_lead, convert_lead (gated; marks Won and creates a customer on an event), delete_lead (gated), create_inventory, update_inventory, assign_inventory, return_inventory, delete_inventory (gated), delete_venue (gated; unlinks the org overlay — default list_venues no longer returns it), delete_customer (gated).Data import
Data import
create_import_from_paste (targets: EVENT, LEAD, INVENTORY, MEMBER), map_import,
preview_import (dry run), commit_import (gated), preview_uef_import (dry run),
import_uef (gated workspace clone).File ingestion
File ingestion
create_ingestion_batch, add_ingestion_text, upload_ingestion_file (binary base64 for
third-party MCP agents; batch/text paths also accept files), trigger_ingestion_merge,
dismiss_ingestion_merge, retry_ingestion_file, dismiss_ingestion_file,
commit_ingestion_file (gated), commit_ingestion_batch (gated). Analysis may not produce
proposals; files can land attached-only when analysis never runs. Review what you have with the
read tools, then commit what you choose.Org settings & playbook
Org settings & playbook
set_org_timezone (gated; owner/admin): set the org IANA timezone so new events are not stuck
on UTC. set_org_playbook (gated; owner/admin): rewrite the rules that steer the assistant for
your organization.Mailbox (write)
Mailbox (write)
mark_mailbox_checked (clears the new-thread badge), remind_invitation, remind_crew_offer, remind_availability_request (gated; they message pending people), reply_to_mailbox_thread (gated; write your own SMS or email to the pending, responded, or all people on an INVITATION, CREW_OFFER, or AVAILABILITY_REQUEST thread).Teams (write)
Teams (write)
invite_org_member (gated; Clerk emails the invitee). Default role is member; inviting an admin is owner-only. create_org_position (enable a catalog role by default_position_id or add a custom_name role) and update_org_position (rename, reorder, re-rate, or is_active: false to deactivate) keep the roster staffable.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):
What MCP cannot do yet
- Paying a ledger line or funding a payout:
create_ledger_item/update_ledger_item/void_ledger_itemkeep the books andrecord_ledger_payment/reverse_ledger_paymentrecord payments made outside Soundcheck, but paying an individual line through Soundcheck (Cleo / card) stays in the GUI;settle_event(gated) closes the show. - Seat and billing changes: MCP cannot change subscriptions or billing. Member-management actions remain subject to the signed-in account’s role; check the connected server’s tools before using them.
- Public MCP workspace clone: no
export_workspaceorimport_uefon the public endpoint. Member MCP can clone; full rosters stay off public MCP. See Export a workspace.
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 when analysis produced them, 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."Who inquired about an October wedding? Claim it and convert once we book the gig."
"Who inquired about an October wedding? Claim it and convert once we book the gig."
list_leads (filter stage / status), reads one with get_lead,
claims it with claim_lead, then converts with convert_lead (gated) onto the booked event.
That creates the customer and marks the lead Won."Check out two SM58s onto Friday's gig."
"Check out two SM58s onto Friday's gig."
list_inventory (search), then assign_inventory with event_id and
quantity. return_inventory checks them back in after the show."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 are 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."Clone this sandbox org into the throwaway dest org."
"Clone this sandbox org into the throwaway dest org."
export_workspace, dry-runs the UEF bundle on the destination
org you manage with preview_uef_import, then commits with import_uef (gated). Money, files,
branding, and integration tokens stay out. See Export a
workspace."Staff Saturday's show: FOH and two stagehands, then send the offers."
"Staff Saturday's show: FOH and two stagehands, then send the offers."
list_org_positions (creating a missing role with
create_org_position), lays down DRAFT shifts with apply_calllist_to_event or
create_crew_offer, shows you the roster with review_staffing_draft / get_crew_offer, then
send_crew_offer (gated) opens each shift and notifies the crew only after you approve. A
0-shift apply comes back with a hint naming the cause instead of a silent no-op."Add the $1,200 backline invoice and void the duplicate expense."
"Add the $1,200 backline invoice and void the duplicate expense."
create_ledger_item (RECEIVABLE; the income account resolves from list_ledger_accounts), then
void_ledger_item (gated) on the duplicate. Both show on get_event_ledger; nothing is paid
until you settle."Invite Alex as a gig coordinator."
"Invite Alex as a gig coordinator."
list_org_members, confirms the email and role, then sends
invite_org_member (gated) so Clerk emails them. Inviting an admin stays owner-only.Security model
- Each member 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. Consequential tools (
send_message,broadcast_event_reminder,remind_invitation,remind_crew_offer,remind_availability_request,invite_org_member,commit_import,import_uef,commit_ingestion_file,commit_ingestion_batch,complete_event,settle_event,reopen_event,archive_event,unarchive_event,set_org_playbook,set_org_timezone,delete_venue,delete_customer,delete_song,delete_setlist,delete_lead,delete_inventory,convert_lead,create_event_invitations,send_event_invitations,send_crew_offer,remove_event_member,void_ledger_item,record_ledger_payment,reverse_ledger_payment, andreply_to_mailbox_thread) go further: when the gate is enabled they perform nothing on first call and return{status:"confirmation_required", confirmation_token, summary, expires_in_seconds}. 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, archive a gig, 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). Production ingress redirects HTTP to HTTPS. There is no HSTS claim in this surface.
Troubleshooting
My client says the server is 'disconnected'
My client says the server is 'disconnected'
/mcp and
re-authenticate. Confirm the URL is https://mcp.soundchecklive.io/mcp (member) or
https://mcp.soundchecklive.io/public/mcp (public). 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.For agents
Canonical links for agent indexes (llms.txt and similar):
- Product: https://soundchecklive.io
- Public docs (this page): https://docs.soundchecklive.io/integrations/mcp-server
- Agent discoverability playbook: https://docs.soundchecklive.io/integrations/mcp-discovery
- Official AI-info: https://docs.soundchecklive.io/ai-info
- Privacy policy: https://soundchecklive.io/privacy
- Public MCP:
https://mcp.soundchecklive.io/public/mcp - Member MCP:
https://mcp.soundchecklive.io/mcp(OAuth via Clerk) - Registry:
io.soundchecklive/live-event-quotes0.1.0 (public) andio.soundchecklive/soundcheck0.1.1-ts (member)
/docs/mcp. The in-app Help widget does not surface an MCP connect URL. There is no Cursor Marketplace plugin yet.