
Price any live event: parties, weddings, conferences, concerts. Instant estimates, no login.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Check a Soundcheck import file (a UEF 2.0 document, as an object or JSON string) before importing it: the published schema (schema_version 2.x, known keys, types, required fields, phases), at least one record, every ref resolving to a record and never blank, no repeated ref, external_id or string-list entry, act names unique ignoring case, pack items carrying a non-blank name or external_id, the option vocabularies import applies (statuses, fee types — letter case and padding are forgiven), the field rules import applies (email shape, unpadded civil dates, ISO 4217 currency codes on events and ledger lines, positive ledger amounts and non-negative fees with at most two decimals, latitude and longitude ranges, plain IANA timezone names without offsets or padding), and the gig rules import applies (a ref or an inline venue/client, end_date not before event_date, multi-day gigs carry dates only, days inside the gig, HH:MM cue times). Returns valid, errors with paths such as events[0].days[1].date, missing_required paths, and schema_version. Deterministic and local — no AI, no org write, no invented fixes. Input is capped at 256 KiB.
UEF document as object or JSON string
Check a Soundcheck import file (a UEF 2.0 document, as an object or JSON string) before importing it: the published schema (schema_version 2.x, known keys, types, required fields, phases), at least one record, every ref resolving to a record and never blank, no repeated ref, external_id or string-list entry, act names unique ignoring case, pack items carrying a non-blank name or external_id, the option vocabularies import applies (statuses, fee types — letter case and padding are forgiven), the field rules import applies (email shape, unpadded civil dates, ISO 4217 currency codes on events and ledger lines, positive ledger amounts and non-negative fees with at most two decimals, latitude and longitude ranges, plain IANA timezone names without offsets or padding), and the gig rules import applies (a ref or an inline venue/client, end_date not before event_date, multi-day gigs carry dates only, days inside the gig, HH:MM cue times). Returns valid, errors with paths such as events[0].days[1].date, missing_required paths, and schema_version. Deterministic and local — no AI, no org write, no invented fixes. Input is capped at 256 KiB.
| Argument | Type | Description |
|---|---|---|
| uef* | any | UEF document as object or JSON string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"uef"
],
"properties": {
"uef": {
"anyOf": [
{
"type": "object",
"additionalProperties": {}
},
{
"type": "string"
}
],
"description": "UEF document as object or JSON string"
}
},
"additionalProperties": false
}Return the format of a Soundcheck import file: the Universal Event Format (UEF) 2.0 JSON Schema — one document with clients, venues, acts, projects and gigs (with their days, run of show, shifts and crew) linked by ref — plus minimal and festival examples and a docs URL. A reference for drafting or editing UEF — no login, no AI, nothing is saved. check_import_file checks a draft locally.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Look up one entry from the seeded public industry places catalog by stable id (e.g. venue_red-rocks-amphitheatre). Not org-private CRM data; returns not found when the id is absent from the seed.
| Argument | Type | Description |
|---|---|---|
| id* | string | stable catalog id, e.g. venue_red-rocks-amphitheatre |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "stable catalog id, e.g. venue_red-rocks-amphitheatre"
}
},
"additionalProperties": false
}Look up a Soundcheck organization's public profile by its slug or id (name, description, genre, website, public contact + social links). Returns not-found for an unknown slug or id.
| Argument | Type | Description |
|---|---|---|
| identifier* | string | the organization's public slug or id |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"identifier"
],
"properties": {
"identifier": {
"type": "string",
"description": "the organization's public slug or id"
}
},
"additionalProperties": false
}List the standard crew positions/roles used to staff a live event (e.g. audio engineer, lighting, stagehand, performer), grouped by section.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Returns the pricing catalog behind quote_event: event profiles, production tiers with their tech-hour and per-day gear rates, add-on packages, metro market indexes, and the rules (overtime, logistics, attendance scale, deposit steps, estimate band). SYNTHETIC and illustrative — published so a quote can be checked line by line, not a price list any organization charges.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Returns evidence-backed market price ranges for live-event services (DJ, live band, audio, lighting, video, stage crew, photography, production packages, performance fees) for a city, state, or country, with citations. Numbers come only from recorded evidence: published vendor rates and industry rate cards with source URLs, plus booking aggregates released only when backed by at least 3 distinct organizations — never a single org or named customer. Prices are not model-invented: if evidence is missing, coverage is "none" with a null range. Lookup walks market to region to country for available evidence. Each category includes low/typical/high, min/max, a basis block, up to 10 citable evidence rows, and a short explanation. event_type, guest_count, and duration_hours are accepted and echoed but do not narrow evidence yet. Distinct from quote_event, which uses a SYNTHETIC illustrative catalog.
| Argument | Type | Description |
|---|---|---|
| market | string | city market to price, e.g. "Chicago, IL"; falls back to region then country |
| region | string | US state name or two-letter code, e.g. "IL"; used when the market has no evidence |
| country | string | ISO-3166 alpha-2 country code; defaults to US |
| event_date | string | event civil day as YYYY-MM-DD |
| event_type | string | event type such as wedding or festival; echoed back, does not filter yet |
| guest_count |
Map free-text gear lines onto the public Soundcheck inventory catalog. Returns mapped[] (input, inventory_id, name, category, confidence) and unmapped[] (input + suggestions). Deterministic alias matching (e.g. SM58 → mic_shure_sm58). Does not read or write organization inventory stock. search_inventory browses the taxonomy.
| Argument | Type | Description |
|---|---|---|
| lines | array | gear lines to normalize (e.g. ["SM58", "2x passive DI", "moving head"]). Empty/whitespace lines are skipped. Max 64 lines, 200 chars each. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"lines": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 64,
"description": "gear lines to normalize (e.g. [\"SM58\", \"2x passive DI\", \"moving head\"]). Empty/whitespace lines are skipped. Max 64 lines, 200 chars each."
}
},
"additionalProperties": false
}Map free-text crew role strings (slang, abbreviations, informal titles) to the Soundcheck global position catalog — the same roles returned by list_positions. Handles labels like FOH, A2, sound guy, LD, or stagehand and returns catalog position ids with canonical names/sections; list_positions returns the full catalog. Does not create or write positions; unknown roles are returned as unmapped with fuzzy suggestions.
| Argument | Type | Description |
|---|---|---|
| hint | string | optional event type hint e.g. wedding, festival (max 128 chars) |
| roles* | array | crew role strings to normalize against the catalog (max 64 entries, 128 chars each) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"roles"
],
"properties": {
"hint": {
"type": "string",
"maxLength": 128,
"description": "optional event type hint e.g. wedding, festival (max 128 chars)"
},
"roles": {
"type": "array",
"items": {
"type": "string",
"maxLength": 128
},
"maxItems": 64,
"minItems": 1,
"description": "crew role strings to normalize against the catalog (max 64 entries, 128 chars each)"
}
},
"additionalProperties": false
}Returns a ballpark cost, budget range, or line-item needs estimate for a live event (party, birthday, wedding, corporate offsite, conference, concert, festival, gala, fundraiser, and similar). No login. Takes a plain-language description (for example "rooftop birthday in Austin Friday night for 50 people with a DJ and tacos") and returns an illustrative low/mid/high estimate, line-item breakdown (labor, production, add-ons, logistics), suggested deposit, assumptions, confidence, missing information, and evidence pointers. Numbers come from the versioned SYNTHETIC pricing catalog and a deterministic engine — not model-invented prices. The catalog is illustrative: not real cost of goods and not a binding vendor quote (request_booking contacts an organization for a binding price). A returned quote_id plus overridden requirements refines an estimate. Optional use_ai_grounding (default off) may fill only event type, location, and date; it never supplies a number; the pasted text is sent to a third-party AI provider, Anthropic (Claude), through the Vercel AI Gateway with zero-data-retention routing requested; Soundcheck does not save it to any event or account (https://soundchecklive.io/privacy).
| Argument | Type | Description |
|---|---|---|
| date | string | event day (YYYY-MM-DD) |
| location | string | city, metro, or venue name used to resolve the market index |
| quote_id | string | a quote_id from an earlier quote_event call, to refine instead of starting over |
| date_range | object | multi-day run as civil days (YYYY-MM-DD) |
| description |
Read messy live-event material (pasted festival pack, email, rundown, or notes) into a draft Soundcheck import file (Universal Event Format, UEF) plus missing_fields, open_questions, and confidence. Analyze only: no login, no organization, nothing is saved or committed, and dates/venues are never invented (absent facts stay null and appear in missing_fields). AI processing: the pasted text is sent to a third-party AI provider, Anthropic (Claude), through the Vercel AI Gateway with zero-data-retention routing requested; Soundcheck does not save it to any event or account (https://soundchecklive.io/privacy). When the AI provider is not configured the tool returns a clear error. Optional hint: event type, locale, or format (text|csv|unknown). File upload (content_base64) is a follow-up — paste text for now.
| Argument | Type | Description |
|---|---|---|
| hint | string | optional event type, locale, or format hint (text|csv|unknown); freeform hints are prepended to the source text |
| text | string | messy pasted event pack / email / rundown / notes to analyze into UEF |
| raw_input | string | legacy alias for text (normalize_event_data compatibility) |
| format_hint | string | legacy alias for hint when the value is text|csv|unknown |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hint": {
"type": "string",
"description": "optional event type, locale, or format hint (text|csv|unknown); freeform hints are prepended to the source text"
},
"text": {
"type": "string",
"description": "messy pasted event pack / email / rundown / notes to analyze into UEF"
},
"raw_input": {
"type": "string",
"description": "legacy alias for text (normalize_event_data compatibility)"
},
"format_hint": {
"enum": [
"text",
"csv",
"unknown"
],
"type": "string",
"description": "legacy alias for hint when the value is text|csv|unknown"
}
},
"additionalProperties": false
}Send a booking / staffing request, including the requester's name, email, and optional phone, to a Soundcheck organization, which creates a lead its team follows up on. Requires organization_id, name, email, event_date, event_type, and location. User confirmation: nothing is sent until the person confirms by email: the call only emails a confirmation link to the address given, and the request reaches the organization after that person opens the email and clicks Confirm.
| Argument | Type | Description |
|---|---|---|
| name* | string | the requester's name |
| email* | string | the requester's email |
| phone | string | the requester's phone |
| budget | string | approximate budget, free-form |
| message | string | what the requester needs (roles, headcount, details) |
| location* | string | where the event is (city / venue / address) |
| event_date* | string | the event date (e.g. 2026-07-04) |
| event_type* | string | the kind of event (e.g. wedding, festival, corporate, concert) |
Send a sponsorship inquiry, including the sponsor's name, email, and optional phone and website, to a Soundcheck organization, which creates an inbound sponsor lead it follows up on. Requires organization_id, name, and email. User confirmation: nothing is sent until the person confirms by email: the call only emails a confirmation link to the address given, and the request reaches the organization after that person opens the email and clicks Confirm.
| Argument | Type | Description |
|---|---|---|
| name* | string | the prospective sponsor's name |
| email* | string | the sponsor contact email |
| phone | string | the prospective sponsor's phone |
| message | string | additional sponsorship details or context |
| website | string | the sponsor's website or company URL |
| organization_id* | string | the Soundcheck organization to approach (slug or id) |
| estimated_budget | string | approximate sponsorship budget, free-form |
| sponsorship_interest | string | what they want to sponsor / their interest |
Search the public Soundcheck live-event gear taxonomy (microphones, DI boxes, consoles, lighting, video, rigging, movers, cables, stands, backline, wireless, etc.). Optional query filters by name, alias, id, or category. Returns catalog version + types with stable inventory ids — not org stock levels, serials, quantities, or pricing. normalize_inventory maps free-text gear lists onto these ids.
| Argument | Type | Description |
|---|---|---|
| query | string | optional search string (e.g. SM58, DI, mover, XLR). Absent or empty lists the full public catalog. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"type": "string",
"maxLength": 200,
"description": "optional search string (e.g. SM58, DI, mover, XLR). Absent or empty lists the full public catalog."
}
},
"additionalProperties": false
}Search a seeded public industry catalog of well-known venues and hotels (not a complete world database; not org-private Soundcheck venues). Returns matching places from the seed by name, alias, or id. Unknown names return empty results with optional catalog name suggestions — never invented addresses or geo.
| Argument | Type | Description |
|---|---|---|
| city | string | optional city filter (case-insensitive substring) |
| type | string | optional place type filter |
| query* | string | name, alias, or id to search for (max 200 characters) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"city": {
"type": "string",
"description": "optional city filter (case-insensitive substring)"
},
"type": {
"enum": [
"venue",
"hotel"
],
"type": "string",
"description": "optional place type filter"
},
"query": {
"type": "string",
"maxLength": 200,
"description": "name, alias, or id to search for (max 200 characters)"
}
},
"additionalProperties": false
}Send feedback to the people who build this product (not the user's organization, crew, or clients). It carries bug reports, feature suggestions, support questions, and praise, plus problems with these tools that the user agreed to report, and contains only what the user asked or agreed to send. It creates a Linear issue for the product team (email fallback if Linear is unavailable); it does not message anyone in the user's organization (the messaging tools do that). No sign-in needed. Add the user's email only if they want a reply.
| Argument | Type | Description |
|---|---|---|
| name | string | who is sending the feedback, if they say |
| string | where the team can reply; present only when the user agreed to share it and wants a reply | |
| message* | string | the feedback in the user's own words, with enough detail to act on: what they tried, what happened, and what they expected |
| category* | string | IDEA = feature request or suggestion, PROBLEM = bug or something confusing, QUESTION = ask Soundcheck support, PRAISE = something that works well |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"category",
"message"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"description": "who is sending the feedback, if they say"
},
"email": {
"type": "string",
"maxLength": 254,
"description": "where the team can reply; present only when the user agreed to share it and wants a reply"
},
"message": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "the feedback in the user's own words, with enough detail to act on: what they tried, what happened, and what they expected"
},
"category": {
"enum": [
"IDEA",
"PROBLEM",
"QUESTION",
"PRAISE"
],
"type": "string",
"description": "IDEA = feature request or suggestion, PROBLEM = bug or something confusing, QUESTION = ask Soundcheck support, PRAISE = something that works well"
}
},
"additionalProperties": false
}| number |
| expected guest count; echoed back, does not filter yet |
| pricing_unit | string | restrict evidence to one pricing unit; otherwise the dominant unit is reported |
| duration_hours | number | expected service duration in hours; echoed back, does not filter yet |
| service_categories* | array | what to price, 1-6 entries from: DJ, LIVE_BAND, AUDIO_PRODUCTION, LIGHTING, VIDEO, STAGE_CREW, PHOTOGRAPHY, PRODUCTION_PACKAGE, PERFORMANCE_FEE |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"service_categories"
],
"properties": {
"market": {
"type": "string",
"description": "city market to price, e.g. \"Chicago, IL\"; falls back to region then country"
},
"region": {
"type": "string",
"description": "US state name or two-letter code, e.g. \"IL\"; used when the market has no evidence"
},
"country": {
"type": "string",
"description": "ISO-3166 alpha-2 country code; defaults to US"
},
"event_date": {
"type": "string",
"description": "event civil day as YYYY-MM-DD"
},
"event_type": {
"type": "string",
"description": "event type such as wedding or festival; echoed back, does not filter yet"
},
"guest_count": {
"type": "number",
"description": "expected guest count; echoed back, does not filter yet"
},
"pricing_unit": {
"enum": [
"PER_EVENT",
"PER_HOUR",
"PER_DAY",
"PER_PERSON",
"PER_ITEM"
],
"type": "string",
"description": "restrict evidence to one pricing unit; otherwise the dominant unit is reported"
},
"duration_hours": {
"type": "number",
"description": "expected service duration in hours; echoed back, does not filter yet"
},
"service_categories": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 6,
"minItems": 1,
"description": "what to price, 1-6 entries from: DJ, LIVE_BAND, AUDIO_PRODUCTION, LIGHTING, VIDEO, STAGE_CREW, PHOTOGRAPHY, PRODUCTION_PACKAGE, PERFORMANCE_FEE"
}
},
"additionalProperties": false
}| string |
| free-text event description, e.g. "Two-day outdoor music festival in Austin, ~3,000 attendees, LED wall and livestream". Required unless quote_id is given. |
| requirements | object | structured overrides; they win over anything read from the description |
| use_ai_grounding | boolean | opt in to one AI normalization pass that may fill ONLY event type, location/venue, and date. Never supplies a number. Default false. When true, the pasted text is sent to a third-party AI provider, Anthropic (Claude), through the Vercel AI Gateway with zero-data-retention routing requested; Soundcheck does not save it to any event or account (https://soundchecklive.io/privacy). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "event day (YYYY-MM-DD)"
},
"location": {
"type": "string",
"maxLength": 200,
"description": "city, metro, or venue name used to resolve the market index"
},
"quote_id": {
"type": "string",
"maxLength": 4096,
"description": "a quote_id from an earlier quote_event call, to refine instead of starting over"
},
"date_range": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"$ref": "#/properties/date"
},
"start": {
"$ref": "#/properties/date"
}
},
"description": "multi-day run as civil days (YYYY-MM-DD)",
"additionalProperties": false
},
"description": {
"type": "string",
"maxLength": 8000,
"description": "free-text event description, e.g. \"Two-day outdoor music festival in Austin, ~3,000 attendees, LED wall and livestream\". Required unless quote_id is given."
},
"requirements": {
"type": "object",
"properties": {
"crew": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "technicians on site"
},
"days": {
"type": "integer",
"maximum": 30,
"minimum": 1,
"description": "event days on site"
},
"tier": {
"type": "string",
"maxLength": 40,
"description": "essential, standard, or premium"
},
"addons": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 12,
"description": "catalog add-on ids or labels, e.g. led_wall, livestream, rigging"
},
"venue_id": {
"type": "string",
"maxLength": 200,
"description": "seeded places-catalog venue id, e.g. venue_red-rocks-amphitheatre"
},
"attendance": {
"type": "integer",
"maximum": 500000,
"minimum": 1,
"description": "expected attendance"
},
"event_type": {
"type": "string",
"maxLength": 80,
"description": "catalog event profile id or label, e.g. festival, corporate, wedding"
},
"hours_per_day": {
"type": "integer",
"maximum": 24,
"minimum": 1,
"description": "crew call length per day"
}
},
"description": "structured overrides; they win over anything read from the description",
"additionalProperties": false
},
"use_ai_grounding": {
"type": "boolean",
"description": "opt in to one AI normalization pass that may fill ONLY event type, location/venue, and date. Never supplies a number. Default false. When true, the pasted text is sent to a third-party AI provider, Anthropic (Claude), through the Vercel AI Gateway with zero-data-retention routing requested; Soundcheck does not save it to any event or account (https://soundchecklive.io/privacy)."
}
},
"additionalProperties": false
}| organization_id* | string | the Soundcheck organization to send this booking/staffing request to (slug or id) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"organization_id",
"name",
"email",
"event_date",
"event_type",
"location"
],
"properties": {
"name": {
"type": "string",
"description": "the requester's name"
},
"email": {
"type": "string",
"description": "the requester's email"
},
"phone": {
"type": "string",
"description": "the requester's phone"
},
"budget": {
"type": "string",
"description": "approximate budget, free-form"
},
"message": {
"type": "string",
"description": "what the requester needs (roles, headcount, details)"
},
"location": {
"type": "string",
"description": "where the event is (city / venue / address)"
},
"event_date": {
"type": "string",
"description": "the event date (e.g. 2026-07-04)"
},
"event_type": {
"type": "string",
"description": "the kind of event (e.g. wedding, festival, corporate, concert)"
},
"organization_id": {
"type": "string",
"description": "the Soundcheck organization to send this booking/staffing request to (slug or id)"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"organization_id",
"name",
"email"
],
"properties": {
"name": {
"type": "string",
"description": "the prospective sponsor's name"
},
"email": {
"type": "string",
"description": "the sponsor contact email"
},
"phone": {
"type": "string",
"description": "the prospective sponsor's phone"
},
"message": {
"type": "string",
"description": "additional sponsorship details or context"
},
"website": {
"type": "string",
"description": "the sponsor's website or company URL"
},
"organization_id": {
"type": "string",
"description": "the Soundcheck organization to approach (slug or id)"
},
"estimated_budget": {
"type": "string",
"description": "approximate sponsorship budget, free-form"
},
"sponsorship_interest": {
"type": "string",
"description": "what they want to sponsor / their interest"
}
},
"additionalProperties": false
}