MCP Server

agentorist

com.agentorist/agentorist

What this MCP does

Discovers bookable events, movies, venues, and hotels, provides concrete ticket or showtime options, and can complete or hand off bookings.

book
Book an option (showtime, ticket class, etc.). If a partner API is connected, completes the booking inline with a confirmation code. Otherwise returns an affiliate deep link the agent should hand to the user.
Destructive
Input schema
{'type': 'object', 'required': ['vertical', 'option_id'], 'properties': {'location': {'type': 'string', 'default': '', 'description': 'For affiliate fallback.'}, 'vertical': {'type': 'string', 'description': 'The vertical (e.g. "movies", "events").'}, 'option_id': {'type': 'string', 'description': 'showtime_id or ticket_id from find_options.'}, 'item_title': {'type': 'string', 'default': '', 'description': 'For affiliate fallback / logging.'}, 'party_size': {'type': 'integer', 'default': 2, 'description': 'Number of tickets/seats. Default 2.'}, 'venue_name': {'type': 'string', 'default': '', 'description': 'For logging.'}, 'agent_client': {'type': 'string', 'default': '', 'description': 'Optional â\x80\x94 name of the calling agent (Claude, ChatGPT, etc.).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
find_options
Find concrete bookable options for an item. For movies: showtimes for the given film. For events: ticket classes.
Read only
Input schema
{'type': 'object', 'required': ['vertical', 'item_id'], 'properties': {'when': {'type': 'string', 'default': 'today', 'description': 'ISO date (YYYY-MM-DD) or "today"/"tomorrow". Default "today".'}, 'item_id': {'type': 'string', 'description': 'ID returned by `search` (film_id, event_id), or a title for fuzzy lookup.'}, 'location': {'type': 'string', 'default': '', 'description': 'City, postcode, or "lat,lng" â\x80\x94 required for movies.'}, 'vertical': {'type': 'string', 'description': 'The vertical (e.g. "movies", "events").'}, 'agent_client': {'type': 'string', 'default': '', 'description': 'Optional â\x80\x94 name of the calling agent (Claude, ChatGPT,\netc.). Pass the SAME value across search â\x86\x92 find_options â\x86\x92 book so\nthe trust stack can link the booking to its prior discovery.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
list_venues
List venues near a location, marked as bookable or not.
Read only
Input schema
{'type': 'object', 'required': ['vertical', 'location'], 'properties': {'location': {'type': 'string', 'description': 'City, postcode, or "lat,lng".'}, 'vertical': {'type': 'string', 'description': 'The vertical (e.g. "movies", "events").'}, 'radius_km': {'type': 'number', 'default': 15.0, 'description': 'Search radius. Default 15 km.'}, 'agent_client': {'type': 'string', 'default': '', 'description': 'Optional â\x80\x94 name of the calling agent (Claude, ChatGPT, etc.).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
list_verticals
List all booking verticals Agentorist currently supports. Returns a dict with each vertical's name and description. Call this first to discover what's bookable before constructing other tool calls.
Read only
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
request_unsupported_booking
Log a booking request Agentorist can't yet fulfil. This is the demand-intelligence engine. Every call here becomes a data point sold to the venue as monthly missed-revenue insight. Optionally captures email so the user is notified when the venue joins.
Destructive
Input schema
{'type': 'object', 'required': ['vertical', 'venue_name', 'item_title'], 'properties': {'location': {'type': 'string', 'default': '', 'description': 'City or area.'}, 'vertical': {'type': 'string', 'description': 'Which vertical the request belongs to.'}, 'when_iso': {'type': 'string', 'default': '', 'description': 'Requested time in ISO 8601 (optional).'}, 'item_title': {'type': 'string', 'description': 'The film, event, or experience.'}, 'party_size': {'type': 'integer', 'default': 2, 'description': 'Number of tickets.'}, 'user_email': {'type': 'string', 'default': '', 'description': 'Optional, for join-notification.'}, 'venue_name': {'type': 'string', 'description': 'Name of the venue the user wanted.'}, 'venue_chain': {'type': 'string', 'default': '', 'description': 'e.g. Vue, Odeon, Cineworld.'}, 'agent_client': {'type': 'string', 'default': '', 'description': 'Calling agent (Claude, ChatGPT, etc.).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
search
Search for bookable items within a vertical.
Read only
Input schema
{'type': 'object', 'required': ['vertical', 'query', 'location'], 'properties': {'when': {'type': 'string', 'default': '', 'description': 'Optional ISO date filter (YYYY-MM-DD) for events.'}, 'query': {'type': 'string', 'description': 'Natural-language query â\x80\x94 movie title, event keyword, tour name,\ntheme like "beach getaway", etc.'}, 'rooms': {'type': 'integer', 'default': 1}, 'adults': {'type': 'integer', 'default': 0}, 'locale': {'type': 'string', 'default': '', 'description': "Optional BCP-47 locale ('en-US', 'fr-FR', 'de-DE', 'ja-JP', etc.).\nCurrently consumed by the 'experiences' vertical to localise the\nViator response and hand-off URL. Auto-detected from the query\nwhen the language is unambiguous."}, 'check_in': {'type': 'string', 'default': ''}, 'children': {'type': 'integer', 'default': 0}, 'location': {'type': 'string', 'description': 'City, postcode, or "lat,lng".'}, 'vertical': {'type': 'string', 'description': 'One of the names returned by list_verticals (e.g. "movies",\n"events", "experiences", "hotels", "cars").'}, 'check_out': {'type': 'string', 'default': ''}, 'territory': {'type': 'string', 'default': 'US', 'description': 'ISO country code (US, GB, etc.). Default US.'}, 'driver_age': {'type': 'integer', 'default': 0}, 'hotel_name': {'type': 'string', 'default': ''}, 'hotel_class': {'type': 'string', 'default': ''}, 'pickup_date': {'type': 'string', 'default': ''}, 'agent_client': {'type': 'string', 'default': '', 'description': 'Optional â\x80\x94 name of the calling agent (Claude, ChatGPT, etc.).'}, 'budget_range': {'type': 'string', 'default': ''}, 'dropoff_date': {'type': 'string', 'default': ''}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
search_all
Search every Agentorist vertical at once — the answer to "what's on?". Use this when the user's request spans verticals or doesn't clearly name one ("what's on tonight", "anything to do in Boston?", "Friday night plans"). For specific single-vertical queries ("movies tonight", "Italian restaurants"), `search_all` auto-narrows to the hinted vertical so you don't waste calls. Returns `results_by_vertical` keyed by movies/events/local, plus `total_count` and `bookable_total` for quick summaries.
Read only
Input schema
{'type': 'object', 'required': ['query', 'location'], 'properties': {'when': {'type': 'string', 'default': '', 'description': 'Optional time hint ("tonight", "weekend", or ISO date).'}, 'query': {'type': 'string', 'description': 'Natural-language query. Empty string is fine (= browse).'}, 'locale': {'type': 'string', 'default': '', 'description': "Optional BCP-47 locale ('en-US', 'fr-FR', 'de-DE', etc.).\nForwarded to verticals that localise their response (experiences)."}, 'location': {'type': 'string', 'description': 'City, postcode, or "lat,lng".'}, 'territory': {'type': 'string', 'default': 'US', 'description': 'ISO country code (US, GB, etc.). Default US.'}, 'agent_client': {'type': 'string', 'default': '', 'description': 'Optional â\x80\x94 name of the calling agent.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
Added
request_unsupported_booking
Sept. 17, 2026, 12:33 p.m.
Added
list_venues
Sept. 17, 2026, 12:33 p.m.
Added
book
Sept. 17, 2026, 12:33 p.m.
Added
find_options
Sept. 17, 2026, 12:33 p.m.
Added
search_all
Sept. 17, 2026, 12:33 p.m.
Added
search
Sept. 17, 2026, 12:33 p.m.
Added
list_verticals
Sept. 17, 2026, 12:33 p.m.