Server definition
- Hash
- sha256:7966b22f62e6ce24670b107c885aeb5903eab675fe6f52154cc6b5a72bd819c2
- What it is
- What a remote MCP server returned when asked what it offers: 8 tools
The blob, as servednamed by its sha256
{
"instructions": "Event-driven travel bookings worldwide. Search F1, Premier League, NFL, NHL, MLB, NBA, MotoGP, tennis, rugby, cricket, golf, boxing, MMA, and music events via search_events. Or surface hand-curated trip packages (event + hotel + experiences with savings) via search_packages. Use get_event_details for full event info, search_hotels_near_event for accommodation, search_experiences for activities. Then use build_event_link (event detail page, with optional hotel pin) or build_package_link (curated package detail page) to send the user to a pre-filled booking page on eventescapes.com.",
"tools": [
{
"description": "Generate a deep link to the Event Escapes event detail page. The user lands on a page where they can review ticket categories, see hotels near the venue (auto-loaded), and complete booking themselves. Optionally pass hotel_id to pin a recommended hotel at the top of the hotels-near-venue list. This does not make a reservation; it is a navigation link only. Package pages are linked by build_package_link.",
"inputSchema": {
"additionalProperties": false,
"anyOf": [
{
"required": [
"event_id"
]
},
{
"required": [
"slug"
]
}
],
"properties": {
"check_in": {
"description": "Optional check-in date (YYYY-MM-DD) to pre-fill on the page.",
"format": "date",
"type": "string"
},
"check_out": {
"description": "Optional check-out date (YYYY-MM-DD) to pre-fill on the page.",
"format": "date",
"type": "string"
},
"event_id": {
"description": "Event UUID from search_events results.",
"format": "uuid",
"type": "string"
},
"guests": {
"description": "Number of travellers as stated by the user. Optional, with no default: omit it when the number of travellers is unknown.",
"maximum": 6,
"minimum": 1,
"type": "integer"
},
"hotel_id": {
"description": "Optional hotel ID from search_hotels_near_event. If provided, this hotel will be pinned to the top of the hotels-near-venue list on the event page.",
"maxLength": 100,
"type": "string"
},
"slug": {
"description": "Event slug from search_events results.",
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"name": "build_event_link",
"outputSchema": null
},
{
"description": "Generate a deep link to a curated Event Escapes PACKAGE detail page (/packages/{slug}). Packages are hand-curated bundles of event tickets + hotel + experiences with savings vs DIY booking. Takes a package_id or slug returned by search_packages. This does not make a reservation: the user reviews tier, duration and guest selectors and books on the package page.",
"inputSchema": {
"additionalProperties": false,
"anyOf": [
{
"required": [
"package_id"
]
},
{
"required": [
"slug"
]
}
],
"properties": {
"check_in": {
"description": "Optional check-in date (YYYY-MM-DD).",
"format": "date",
"type": "string"
},
"check_out": {
"description": "Optional check-out date (YYYY-MM-DD).",
"format": "date",
"type": "string"
},
"guests": {
"description": "Number of travellers as stated by the user. Optional, with no default.",
"maximum": 6,
"minimum": 1,
"type": "integer"
},
"package_id": {
"description": "Package UUID from search_packages results.",
"format": "uuid",
"type": "string"
},
"slug": {
"description": "Package slug from search_packages results.",
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"name": "build_package_link",
"outputSchema": null
},
{
"description": "Creates a booking cart and returns a secure payment URL the customer uses to pay. Locks live prices for up to 4 items (a hotel room from search_hotels_near_event, event tickets from search_events, or an experience from search_experiences, which comes back as a site link for the customer to complete) and returns an Event Escapes payment link for that exact total. Requires the customer's email, first and last name, and customer_consent: the customer's own words asking to book these items. This tool charges nothing: the customer pays on the payment page, and the card is only captured once every booking is confirmed. Returns status payment_link_ready with payment_url, or status action_required listing what is still needed (a ticket category, approval of a price change, or attendee details that some ticket suppliers require); calling again with the same items plus those fields continues the booking. Items stay in the customer's cart for 90 minutes across calls and one payment URL covers the whole cart. Each new payment URL expires the customer's previous unpaid one, and a payment URL expires after about 30 minutes. Event Escapes is the merchant of record. Requires agent_terms_accepted: true, the calling agent's acceptance of the Event Escapes AI Agent Terms (https://eventescapes.com/terms/ai-agents); every payment link is recorded with the agent, the customer's consent, the items and the total as booking evidence. Large orders also need total_confirmation.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"accept_new_price": {
"description": "true to accept a price change reported by a previous result, once the customer has agreed to the new total.",
"type": "boolean"
},
"agent_name": {
"description": "Name of the AI assistant making the booking, e.g. 'Meta Muse' or 'Claude'. Recorded with the booking.",
"maxLength": 80,
"type": "string"
},
"agent_terms_accepted": {
"description": "Required, must be true: the calling agent accepts the Event Escapes AI Agent Terms (https://eventescapes.com/terms/ai-agents) and confirms it acts on this customer's instruction.",
"type": "boolean"
},
"attendee_details": {
"description": "Attendee details, when a previous result asked for them: one entry per attendee separated by ';', e.g. 'name=John Smith, dob=1985-03-04, passport=N1234567, nationality=Australia', with only the fields that result named.",
"maxLength": 2000,
"type": "string"
},
"attendee_names": {
"description": "EVENT tickets for more than one attendee: comma-separated full names, when a previous result asked for them.",
"maxLength": 600,
"type": "string"
},
"customer_consent": {
"description": "Required. The customer's own words asking to book these items (e.g. 'yes book the Marriott and 2 tickets').",
"maxLength": 500,
"minLength": 2,
"type": "string"
},
"customer_email": {
"description": "Customer's email address, exactly as the customer confirmed it. The receipt and booking confirmations are sent here.",
"format": "email",
"maxLength": 254,
"type": "string"
},
"customer_first_name": {
"description": "Lead traveller's first name.",
"maxLength": 80,
"type": "string"
},
"customer_last_name": {
"description": "Lead traveller's last name.",
"maxLength": 80,
"type": "string"
},
"customer_phone": {
"description": "Customer's mobile in E.164 (+61..., +1...), if known.",
"maxLength": 20,
"type": "string"
},
"details_confirm_quote": {
"description": "Required when attendee_details includes a passport or date of birth: the customer's confirmation that the details are correct, given after being told they cannot be changed later.",
"maxLength": 500,
"type": "string"
},
"items": {
"description": "What to book, in order. Each item is one hotel room, one ticket line, or one experience.",
"items": {
"additionalProperties": true,
"properties": {
"activity_code": {
"description": "EXPERIENCE: activity code from search_experiences.",
"maxLength": 80,
"type": "string"
},
"activity_date": {
"description": "EXPERIENCE: the day, YYYY-MM-DD.",
"format": "date",
"type": "string"
},
"adults": {
"description": "HOTEL / EXPERIENCE: adults.",
"maximum": 6,
"minimum": 1,
"type": "integer"
},
"breakfast": {
"description": "HOTEL: true for a rate with breakfast included.",
"type": "boolean"
},
"check_in": {
"description": "HOTEL: check-in date, YYYY-MM-DD.",
"format": "date",
"type": "string"
},
"check_out": {
"description": "HOTEL: check-out date, YYYY-MM-DD.",
"format": "date",
"type": "string"
},
"child_ages": {
"description": "EXPERIENCE: age of each child, comma-separated.",
"maxLength": 60,
"type": "string"
},
"children": {
"description": "HOTEL / EXPERIENCE: children, 0 if none.",
"maximum": 6,
"minimum": 0,
"type": "integer"
},
"event_id": {
"description": "EVENT: event UUID from search_events.",
"format": "uuid",
"type": "string"
},
"event_slug": {
"description": "EVENT: event slug, alternative to event_id.",
"maxLength": 200,
"type": "string"
},
"free_cancellation": {
"description": "HOTEL: true if the customer wants a refundable rate.",
"type": "boolean"
},
"hotel_id": {
"description": "HOTEL: id from search_hotels_near_event.",
"maxLength": 100,
"type": "string"
},
"modality_code": {
"description": "EXPERIENCE: option code, when a previous result listed options.",
"maxLength": 80,
"type": "string"
},
"quantity": {
"description": "EVENT: number of tickets the customer wants.",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"session_code": {
"description": "EXPERIENCE: time slot code, when a previous result listed options.",
"maxLength": 80,
"type": "string"
},
"ticket_id": {
"description": "EVENT: ticket category id. When omitted, the result lists the available categories.",
"maxLength": 80,
"type": "string"
},
"type": {
"enum": [
"hotel",
"event",
"experience"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"maxItems": 4,
"minItems": 1,
"type": "array"
},
"promo_code": {
"description": "Promo code supplied by the customer, exactly as given.",
"maxLength": 40,
"type": "string"
},
"residency_country": {
"description": "Customer's country of residence, if stated (hotel prices vary by residency).",
"maxLength": 60,
"type": "string"
},
"total_confirmation": {
"description": "Only when a previous result asked for it (large orders): the customer's own words confirming the stated total.",
"maxLength": 300,
"type": "string"
}
},
"required": [
"customer_email",
"customer_first_name",
"customer_last_name",
"customer_consent",
"items",
"agent_terms_accepted"
],
"type": "object"
},
"name": "create_payment_link",
"outputSchema": null
},
{
"description": "Get full details for one event: title, venue, date and time, price range, description, and image gallery. Provide event_id (UUID) or slug from search_events results.",
"inputSchema": {
"additionalProperties": false,
"anyOf": [
{
"required": [
"event_id"
]
},
{
"required": [
"slug"
]
}
],
"properties": {
"currency": {
"enum": [
"AUD",
"USD",
"NZD",
"GBP",
"EUR",
"SGD",
"CAD",
"MYR"
],
"type": "string"
},
"event_id": {
"format": "uuid",
"type": "string"
},
"slug": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"name": "get_event_details",
"outputSchema": null
},
{
"description": "Search upcoming sporting and music events bookable on Event Escapes. Covers F1, MotoGP, all major soccer leagues, NFL, NHL, MLB, NBA, tennis Grand Slams, rugby, cricket, golf, volleyball, boxing, MMA, horse racing, athletics, and major concerts. Filter by sport, city, country, or date range. Returns event inventory (tickets only); curated trip packages bundling tickets, hotel and experiences are returned by search_packages. Prices are estimates; the final price is set at checkout.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"city": {
"maxLength": 100,
"type": "string"
},
"country": {
"pattern": "^[A-Z]{2}$",
"type": "string"
},
"currency": {
"enum": [
"AUD",
"USD",
"NZD",
"GBP",
"EUR",
"SGD",
"CAD",
"MYR"
],
"type": "string"
},
"date_from": {
"format": "date",
"type": "string"
},
"date_to": {
"format": "date",
"type": "string"
},
"limit": {
"default": 10,
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"sport": {
"enum": [
"f1",
"motogp",
"soccer",
"premier_league",
"la_liga",
"champions_league",
"nfl",
"nhl",
"mlb",
"nba",
"tennis",
"rugby",
"volleyball",
"golf",
"cricket",
"boxing",
"mma",
"horse_racing",
"athletics",
"music"
],
"type": "string"
}
},
"type": "object"
},
"name": "search_events",
"outputSchema": null
},
{
"description": "Find activities, tours, attractions, food experiences, and nightlife in a city (sourced from Hotelbeds). If no date range provided, defaults to next 7 days. Returns activity name, price, duration, image, and whether free cancellation is offered.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"enum": [
"tours",
"attractions",
"food",
"sports",
"transfers",
"nightlife"
],
"type": "string"
},
"city": {
"maxLength": 100,
"minLength": 2,
"type": "string"
},
"country": {
"pattern": "^[A-Z]{2}$",
"type": "string"
},
"currency": {
"enum": [
"AUD",
"USD",
"NZD",
"GBP",
"EUR",
"SGD",
"CAD",
"MYR"
],
"type": "string"
},
"date_from": {
"format": "date",
"type": "string"
},
"date_to": {
"format": "date",
"type": "string"
},
"limit": {
"default": 10,
"maximum": 15,
"minimum": 1,
"type": "integer"
}
},
"required": [
"city"
],
"type": "object"
},
"name": "search_experiences",
"outputSchema": null
},
{
"description": "Find hotels within walking or short-transit distance of an event venue. If no check_in/check_out provided, defaults to one night before through one night after the event (2-night stay). Returns nightly price, total cost, distance, transport mode (walk vs rideshare), and travel time to venue.",
"inputSchema": {
"additionalProperties": false,
"anyOf": [
{
"required": [
"event_id"
]
},
{
"required": [
"slug"
]
}
],
"properties": {
"check_in": {
"format": "date",
"type": "string"
},
"check_out": {
"format": "date",
"type": "string"
},
"currency": {
"enum": [
"AUD",
"USD",
"NZD",
"GBP",
"EUR",
"SGD",
"CAD",
"MYR"
],
"type": "string"
},
"event_id": {
"format": "uuid",
"type": "string"
},
"guests": {
"default": 2,
"maximum": 6,
"minimum": 1,
"type": "integer"
},
"limit": {
"default": 10,
"maximum": 15,
"minimum": 1,
"type": "integer"
},
"radius_km": {
"default": 3,
"maximum": 10,
"minimum": 0.5,
"type": "number"
},
"slug": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"name": "search_hotels_near_event",
"outputSchema": null
},
{
"description": "Search hand-curated trip packages bundling event tickets + hotel + experiences with savings vs DIY booking. Packages live on dedicated /packages/ pages and include preview hotel, ticket category, and (sometimes) experience list. Filter by category (concerts, f1, world_cup, tennis, nfl, etc.), city, country, date range, or package type (single_event for one-day events; multi_event_city for multi-day city trips with multiple events). Returns complete trip recommendations; ticket-only inventory is returned by search_events. Prices include all package components.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Package category. Common values: concerts (1000+ packages), f1 (Formula 1 race weekends), world_cup (FIFA World Cup 2026), tennis (Grand Slams), nfl, mlb, nba, nhl, epl/la_liga/serie_a/bundesliga (soccer leagues), city_multi (multi-event city trips), festivals.",
"enum": [
"concerts",
"f1",
"motogp",
"world_cup",
"tennis",
"nfl",
"mlb",
"nba",
"nhl",
"epl",
"la_liga",
"serie_a",
"bundesliga",
"ucl",
"mls",
"ligue_1",
"city_multi",
"festivals"
],
"type": "string"
},
"city": {
"description": "Filter by destination city (e.g. 'London', 'New York').",
"maxLength": 100,
"type": "string"
},
"country": {
"description": "Filter by destination country name (e.g. 'England', 'USA', 'Spain'). Note: packages use country name, not ISO code.",
"maxLength": 60,
"type": "string"
},
"currency": {
"enum": [
"AUD",
"USD",
"NZD",
"GBP",
"EUR",
"SGD",
"CAD",
"MYR"
],
"type": "string"
},
"date_from": {
"format": "date",
"type": "string"
},
"date_to": {
"format": "date",
"type": "string"
},
"limit": {
"default": 10,
"maximum": 15,
"minimum": 1,
"type": "integer"
},
"package_type": {
"description": "single_event (one event) or multi_event_city (multiple events in one city trip).",
"enum": [
"single_event",
"multi_event_city"
],
"type": "string"
}
},
"type": "object"
},
"name": "search_packages",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:7966b22f62e6ce24670b107c885aeb5903eab675fe6f52154cc6b5a72bd819c2 | sha256sum