Server definition
- Hash
- sha256:96f7177f908e66132601a443d8f07c3e563c945e3bd501a0cd28754e220bdf50
- What it is
- What a remote MCP server returned when asked what it offers: 16 tools
The blob, as servednamed by its sha256
{
"instructions": "Anonymous, public Soundcheck tools for live-event pricing estimates, planning helpers, and inbound requests — no login required. quote_event returns an ILLUSTRATIVE low/mid/high cost estimate from a versioned SYNTHETIC pricing catalog (not a binding quote and not real vendor prices): line items, assumptions, confidence, and missing information from a deterministic engine; a returned quote_id refines it, and list_quote_packages shows the synthetic rate cards. lookup_market_pricing returns evidence-backed market price ranges with citations when coverage exists. get_public_org looks up a Soundcheck organization by slug or id. list_positions / normalize_positions cover the crew-role catalog. search_places / get_place resolve well-known venues and hotels from a seeded public catalog (not a complete world database; unknown names return empty/suggestions, never invented addresses). search_inventory / normalize_inventory cover the public gear taxonomy (not org stock). get_uef_schema / validate_uef / analyze_event_to_uef support Universal Event Format (UEF) drafts (schema textbook, local validation, analyze-only paste to draft). analyze_event_to_uef turns pasted festival packs / emails / rundowns into a UEF draft plus missing fields; 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). request_booking and request_sponsorship create inbound leads for a chosen organization; 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. send_feedback creates a Linear issue for the product team (email fallback if Linear is unavailable). For a member's own gigs, schedule, or crew workflows, the authenticated Soundcheck MCP (sign-in required) is the separate member server.",
"tools": [
{
"description": "Turn messy live-event material (pasted festival pack, email, rundown, or notes) into a Universal Event Format (UEF) draft 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"format_hint": {
"description": "legacy alias for hint when the value is text|csv|unknown",
"enum": [
"text",
"csv",
"unknown"
],
"type": "string"
},
"hint": {
"description": "optional event type, locale, or format hint (text|csv|unknown); freeform hints are prepended to the source text",
"type": "string"
},
"raw_input": {
"description": "legacy alias for text (normalize_event_data compatibility)",
"type": "string"
},
"text": {
"description": "messy pasted event pack / email / rundown / notes to analyze into UEF",
"type": "string"
}
},
"type": "object"
},
"name": "analyze_event_to_uef",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"id": {
"description": "stable catalog id, e.g. venue_red-rocks-amphitheatre",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "get_place",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"identifier": {
"description": "the organization's public slug or id",
"type": "string"
}
},
"required": [
"identifier"
],
"type": "object"
},
"name": "get_public_org",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "Return the Universal Event Format (UEF) JSON Schema for EVENT imports (schema_version 1.0), plus minimal and festival-style examples and a docs URL. A reference for drafting or editing UEF — no login, no AI, nothing is saved. validate_uef checks a draft locally.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_uef_schema",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "List the standard crew positions/roles used to staff a live event (e.g. audio engineer, lighting, stagehand, performer), grouped by section.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_positions",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_quote_packages",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country": {
"description": "ISO-3166 alpha-2 country code; defaults to US",
"type": "string"
},
"duration_hours": {
"description": "expected service duration in hours; echoed back, does not filter yet",
"type": "number"
},
"event_date": {
"description": "event civil day as YYYY-MM-DD",
"type": "string"
},
"event_type": {
"description": "event type such as wedding or festival; echoed back, does not filter yet",
"type": "string"
},
"guest_count": {
"description": "expected guest count; echoed back, does not filter yet",
"type": "number"
},
"market": {
"description": "city market to price, e.g. \"Chicago, IL\"; falls back to region then country",
"type": "string"
},
"pricing_unit": {
"description": "restrict evidence to one pricing unit; otherwise the dominant unit is reported",
"enum": [
"PER_EVENT",
"PER_HOUR",
"PER_DAY",
"PER_PERSON",
"PER_ITEM"
],
"type": "string"
},
"region": {
"description": "US state name or two-letter code, e.g. \"IL\"; used when the market has no evidence",
"type": "string"
},
"service_categories": {
"description": "what to price, 1-6 entries from: DJ, LIVE_BAND, AUDIO_PRODUCTION, LIGHTING, VIDEO, STAGE_CREW, PHOTOGRAPHY, PRODUCTION_PACKAGE, PERFORMANCE_FEE",
"items": {
"type": "string"
},
"maxItems": 6,
"minItems": 1,
"type": "array"
}
},
"required": [
"service_categories"
],
"type": "object"
},
"name": "lookup_market_pricing",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"lines": {
"description": "gear lines to normalize (e.g. [\"SM58\", \"2x passive DI\", \"moving head\"]). Empty/whitespace lines are skipped. Max 64 lines, 200 chars each.",
"items": {
"maxLength": 200,
"type": "string"
},
"maxItems": 64,
"type": "array"
}
},
"type": "object"
},
"name": "normalize_inventory",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"hint": {
"description": "optional event type hint e.g. wedding, festival (max 128 chars)",
"maxLength": 128,
"type": "string"
},
"roles": {
"description": "crew role strings to normalize against the catalog (max 64 entries, 128 chars each)",
"items": {
"maxLength": 128,
"type": "string"
},
"maxItems": 64,
"minItems": 1,
"type": "array"
}
},
"required": [
"roles"
],
"type": "object"
},
"name": "normalize_positions",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "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).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"date": {
"description": "event day (YYYY-MM-DD)",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"date_range": {
"additionalProperties": false,
"description": "multi-day run as civil days (YYYY-MM-DD)",
"properties": {
"end": {
"$ref": "#/properties/date"
},
"start": {
"$ref": "#/properties/date"
}
},
"required": [
"start",
"end"
],
"type": "object"
},
"description": {
"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.",
"maxLength": 8000,
"type": "string"
},
"location": {
"description": "city, metro, or venue name used to resolve the market index",
"maxLength": 200,
"type": "string"
},
"quote_id": {
"description": "a quote_id from an earlier quote_event call, to refine instead of starting over",
"maxLength": 4096,
"type": "string"
},
"requirements": {
"additionalProperties": false,
"description": "structured overrides; they win over anything read from the description",
"properties": {
"addons": {
"description": "catalog add-on ids or labels, e.g. led_wall, livestream, rigging",
"items": {
"maxLength": 60,
"type": "string"
},
"maxItems": 12,
"type": "array"
},
"attendance": {
"description": "expected attendance",
"maximum": 500000,
"minimum": 1,
"type": "integer"
},
"crew": {
"description": "technicians on site",
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"days": {
"description": "event days on site",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"event_type": {
"description": "catalog event profile id or label, e.g. festival, corporate, wedding",
"maxLength": 80,
"type": "string"
},
"hours_per_day": {
"description": "crew call length per day",
"maximum": 24,
"minimum": 1,
"type": "integer"
},
"tier": {
"description": "essential, standard, or premium",
"maxLength": 40,
"type": "string"
},
"venue_id": {
"description": "seeded places-catalog venue id, e.g. venue_red-rocks-amphitheatre",
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"use_ai_grounding": {
"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).",
"type": "boolean"
}
},
"type": "object"
},
"name": "quote_event",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"budget": {
"description": "approximate budget, free-form",
"type": "string"
},
"email": {
"description": "the requester's email",
"type": "string"
},
"event_date": {
"description": "the event date (e.g. 2026-07-04)",
"type": "string"
},
"event_type": {
"description": "the kind of event (e.g. wedding, festival, corporate, concert)",
"type": "string"
},
"location": {
"description": "where the event is (city / venue / address)",
"type": "string"
},
"message": {
"description": "what the requester needs (roles, headcount, details)",
"type": "string"
},
"name": {
"description": "the requester's name",
"type": "string"
},
"organization_id": {
"description": "the Soundcheck organization to send this booking/staffing request to (slug or id)",
"type": "string"
},
"phone": {
"description": "the requester's phone",
"type": "string"
}
},
"required": [
"organization_id",
"name",
"email",
"event_date",
"event_type",
"location"
],
"type": "object"
},
"name": "request_booking",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"email": {
"description": "the sponsor contact email",
"type": "string"
},
"estimated_budget": {
"description": "approximate sponsorship budget, free-form",
"type": "string"
},
"message": {
"description": "additional sponsorship details or context",
"type": "string"
},
"name": {
"description": "the prospective sponsor's name",
"type": "string"
},
"organization_id": {
"description": "the Soundcheck organization to approach (slug or id)",
"type": "string"
},
"phone": {
"description": "the prospective sponsor's phone",
"type": "string"
},
"sponsorship_interest": {
"description": "what they want to sponsor / their interest",
"type": "string"
},
"website": {
"description": "the sponsor's website or company URL",
"type": "string"
}
},
"required": [
"organization_id",
"name",
"email"
],
"type": "object"
},
"name": "request_sponsorship",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "Search the public Soundcheck live-event gear taxonomy (microphones, DI boxes, consoles, 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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"query": {
"description": "optional search string (e.g. SM58, DI, mover, XLR). Absent or empty lists the full public catalog.",
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"name": "search_inventory",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"city": {
"description": "optional city filter (case-insensitive substring)",
"type": "string"
},
"query": {
"description": "name, alias, or id to search for (max 200 characters)",
"maxLength": 200,
"type": "string"
},
"type": {
"description": "optional place type filter",
"enum": [
"venue",
"hotel"
],
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_places",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"category": {
"description": "IDEA = feature request or suggestion, PROBLEM = bug or something confusing, QUESTION = ask Soundcheck support, PRAISE = something that works well",
"enum": [
"IDEA",
"PROBLEM",
"QUESTION",
"PRAISE"
],
"type": "string"
},
"email": {
"description": "where the team can reply; present only when the user agreed to share it and wants a reply",
"maxLength": 254,
"type": "string"
},
"message": {
"description": "the feedback in the user's own words, with enough detail to act on: what they tried, what happened, and what they expected",
"maxLength": 5000,
"minLength": 1,
"type": "string"
},
"name": {
"description": "who is sending the feedback, if they say",
"maxLength": 120,
"type": "string"
}
},
"required": [
"category",
"message"
],
"type": "object"
},
"name": "send_feedback",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "Validate a UEF document (object or JSON string) against the public EVENT-focused rules: required target_type and events[].title / events[].event_date (YYYY-MM-DD), structural checks for source/venue/customer/members, and schema_version 1.0 alignment. Returns valid, errors (error|warning), missing_required catalog paths, and schema_version. Deterministic local workbook — no AI, no org write, no invented fixes. Input is capped at 256 KiB for both object and string forms.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"uef": {
"anyOf": [
{
"additionalProperties": {},
"type": "object"
},
{
"type": "string"
}
],
"description": "UEF document as object or JSON string"
}
},
"required": [
"uef"
],
"type": "object"
},
"name": "validate_uef",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data": {
"description": "tool payload (API/composite/confirmation object); object, array, or primitive JSON"
},
"error": {
"description": "when ok is false",
"type": "string"
},
"ok": {
"description": "true on success (including confirmation_required prompts)",
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:96f7177f908e66132601a443d8f07c3e563c945e3bd501a0cd28754e220bdf50 | sha256sum