tickadoo-mcp
Was dieses MCP kann
Searches, compares, and checks availability for bookable theatre shows, attractions, tours, and other experiences across supported cities.
Tools
Eingabeschema
{'type': 'object', 'required': ['slug', 'date'], 'properties': {'date': {'type': 'string', 'format': 'date', 'description': 'Date to check in YYYY-MM-DD format.'}, 'slug': {'type': 'string', 'description': 'Product slug or legacy booking path, e.g. "london-dungeon-tickets" or "/london/london-dungeon-tickets".'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}, 'party_size': {'type': 'integer', 'default': 2, 'maximum': 50, 'minimum': 1, 'description': 'Number of guests or tickets to price. Default 2.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'date': {'type': 'string'}, 'slug': {'type': 'string'}, 'slots': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'title': {'type': ['string', 'null']}, 'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'available': {'type': 'boolean'}, 'error_type': {'type': 'string'}, 'schema_version': {'type': 'string'}, 'total_for_party': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['slugs'], 'properties': {'slugs': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 5, 'minItems': 2, 'description': 'Product slugs from earlier search or recommend results.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}}}
Ausgabeschema
{'type': 'object', 'properties': {'text': {'type': 'string'}, 'detail': {'type': 'object', 'additionalProperties': True}, 'winner': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'comparison': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'differences': {'type': 'array', 'items': {'type': 'string'}}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'category': {'type': 'string', 'description': 'Optional category slug.'}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}, 'latitude': {'type': 'number', 'description': 'Latitude coordinate.'}, 'longitude': {'type': 'number', 'description': 'Longitude coordinate.'}, 'radius_km': {'type': 'number', 'default': 5, 'maximum': 50, 'minimum': 0.1, 'description': 'Search radius in kilometres.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'slug': {'type': 'string', 'description': 'Product slug. Use with city_slug when product_id is unavailable.'}, 'as_of': {'type': 'string', 'format': 'date-time', 'description': 'Previous ISO timestamp from stale card data; returns delta only when data changed.'}, 'fresh': {'type': 'boolean', 'default': False, 'description': 'When true, bypasses the 60-second cache and performs a live supplier check, subject to rate limits.'}, 'date_to': {'type': 'string', 'format': 'date', 'description': 'End date in YYYY-MM-DD. Defaults to 14 days after date_from and is capped to a 365-day window.'}, 'city_slug': {'type': 'string', 'description': 'City slug required when slug is used.'}, 'date_from': {'type': 'string', 'format': 'date', 'description': 'Start date in YYYY-MM-DD. Defaults to today.'}, 'party_size': {'type': 'integer', 'default': 2, 'minimum': 1, 'description': 'Number of guests. Default 2.'}, 'product_id': {'type': 'string', 'description': 'Stable product_id from a search or details response. Preferred when available.'}, 'preferred_time': {'type': 'string', 'description': 'Optional broad time preference such as morning, afternoon, or evening.'}, 'idempotency_key': {'type': 'string', 'format': 'uuid', 'description': 'Optional UUID. Reuse for identical responses within five minutes.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'slug': {'type': 'string'}, 'slots': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'timezone': {'type': 'string'}, 'error_type': {'type': 'string'}, 'product_id': {'type': 'string'}, 'total_slots': {'type': 'integer'}, 'inventoryLevel': {'type': 'object', 'additionalProperties': True}, 'next_available': {'type': ['string', 'null']}, 'schema_version': {'type': 'string'}, 'provenance_level': {'type': 'string'}, 'book_now_confidence': {'type': 'integer'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['city'], 'properties': {'city': {'type': 'string', 'description': 'City slug.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['city'], 'properties': {'city': {'type': 'string', 'description': 'City slug.'}, 'date': {'type': 'string', 'description': 'Optional ISO date (YYYY-MM-DD).'}, 'budget': {'enum': ['low', 'medium', 'high'], 'type': 'string', 'description': "Budget band. 'low' = under 100 per person, 'medium' = 100-200, 'high' = 200+. In the listed currency."}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'slug': {'type': 'string', 'description': 'Product slug from a previous search result.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}, 'product_id': {'type': 'string', 'description': 'Stable product_id from a previous search result.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'product': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['city'], 'properties': {'city': {'type': 'string', 'description': 'City slug.'}, 'date': {'type': 'string', 'description': 'Optional ISO date (YYYY-MM-DD).'}, 'budget': {'type': 'number', 'minimum': 0, 'description': 'Optional max budget in the listed currency.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}, 'kids_ages': {'type': 'array', 'items': {'type': 'integer', 'maximum': 17, 'minimum': 0}, 'description': "Children's ages. Drives age-suitability filtering on each slot."}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['city'], 'properties': {'city': {'type': 'string', 'description': 'City slug.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}, 'max_results': {'type': 'integer', 'default': 5, 'maximum': 20, 'minimum': 1, 'description': 'Default 5, max 20.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['city'], 'properties': {'city': {'type': 'string', 'description': 'City slug.'}, 'hours': {'type': 'integer', 'default': 3, 'maximum': 12, 'minimum': 1, 'description': 'How many hours ahead to look (1-12). Default 3.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}, 'latitude': {'type': 'number', 'description': 'Optional latitude to bias toward nearby venues.'}, 'longitude': {'type': 'number', 'description': 'Optional longitude to bias toward nearby venues.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['product_id'], 'properties': {'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'context': {'enum': ['pair', 'after', 'nearby', 'similar'], 'type': 'string', 'default': 'pair', 'description': 'Relationship type: pair, after, nearby, or similar.'}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}, 'product_id': {'type': 'string', 'description': 'Stable product_id or slug for the source experience.'}, 'max_results': {'type': 'integer', 'default': 6, 'maximum': 10, 'minimum': 1, 'description': 'Number of related products to return. Default 6, max 10.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'total': {'type': 'integer'}, 'detail': {'type': 'object', 'additionalProperties': True}, 'context': {'type': 'string'}, 'message': {'type': 'string'}, 'related': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'price': {'type': ['number', 'null']}, 'title': {'type': 'string'}, 'edge_type': {'type': 'string'}, 'product_id': {'type': 'string'}, 'booking_url': {'type': 'string'}, 'edge_strength': {'type': 'number'}}, 'additionalProperties': True}}, 'source_id': {'type': 'string'}, 'error_type': {'type': 'string'}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['city', 'from_type', 'to_latitude', 'to_longitude'], 'properties': {'city': {'type': 'string', 'description': 'Supported city: London, Paris, New York, Amsterdam, Barcelona, Rome, or Tokyo.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}, 'from_type': {'enum': ['airport', 'station', 'port'], 'type': 'string', 'description': 'Arrival hub type.'}, 'to_latitude': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Hotel latitude.'}, 'to_longitude': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Hotel longitude.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'city': {'type': 'string'}, 'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'from_type': {'type': 'string'}, 'error_type': {'type': 'string'}, 'distance_km': {'type': 'number'}, 'origin_name': {'type': 'string'}, 'schema_version': {'type': 'string'}, 'hotel_coordinates': {'type': 'object', 'additionalProperties': True}, 'origin_coordinates': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['city'], 'properties': {'city': {'type': 'string', 'description': 'City slug.'}, 'topic': {'enum': ['transport', 'money', 'safety', 'culture', 'food', 'weather', 'language', 'connectivity'], 'type': 'string', 'description': 'Optional topic filter. When omitted, returns a summary across all topics.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['city'], 'properties': {'city': {'type': 'string', 'description': 'City slug.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of cities to return (1-50). Defaults to 50 when omitted.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'country': {'type': 'string', 'description': 'Optional country code or country name filter.'}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}}}
Ausgabeschema
{'type': 'object', 'properties': {'cities': {'type': 'array', 'items': {'type': 'object', 'properties': {'city': {'type': 'string'}, 'slug': {'type': 'string'}, 'country': {'type': 'string'}, 'country_code': {'type': 'string'}, 'product_count': {'type': 'integer'}}, 'additionalProperties': True}}, 'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'error_type': {'type': 'string'}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['city', 'days'], 'properties': {'city': {'type': 'string', 'description': 'City slug.'}, 'days': {'type': 'integer', 'maximum': 7, 'minimum': 1, 'description': 'Number of days to plan (1-7).'}, 'pace': {'enum': ['relaxed', 'moderate', 'packed'], 'type': 'string', 'description': 'Itinerary density. relaxed = 1-2 stops per day, packed = 4-5.'}, 'budget': {'enum': ['low', 'medium', 'high'], 'type': 'string', 'description': 'Budget band per day per person.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'audience': {'enum': ['family', 'couple', 'solo', 'group', 'business'], 'type': 'string', 'description': "Target audience. Currently 'family' is the strongest signal in the catalogue (resolves via the 'family' tag, ~3,200 products). Other values are best-effort and may be sparsely populated; for guaranteed family-suitable results prefer tags=['family'] in addition to or instead of this filter."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}, 'interests': {'type': 'string', 'description': 'Free-text interest seed, e.g., "history, food, river".'}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'pax': {'type': 'integer', 'default': 2, 'maximum': 20, 'minimum': 1, 'description': 'Number of people. Default 2.'}, 'city': {'type': 'string', 'description': 'Optional city slug. If omitted, the city is parsed from the query.'}, 'date': {'type': 'string', 'description': 'Optional ISO date (YYYY-MM-DD) for availability-aware ranking.'}, 'limit': {'type': 'integer', 'default': 5, 'maximum': 20, 'minimum': 1, 'description': 'Number of recommendations to return (1-20). Default 5.'}, 'query': {'type': 'string', 'description': 'Natural-language preference, e.g., "romantic evening in Paris under 100 euros" or "rainy day in Edinburgh with kids 8 and 12".'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['experience_ids', 'render_type'], 'properties': {'render_type': {'enum': ['carousel', 'grid', 'comparison', 'single'], 'type': 'string', 'description': 'Visual layout requested for the widget.'}, 'experience_ids': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 12, 'minItems': 0, 'description': 'The stable product_id values from search_experiences results (the product_id field of each returned row). Pass IDs only, never full product rows.', 'uniqueItems': True}, 'render_context': {'type': 'object', 'required': ['intent_summary'], 'properties': {'date_hint': {'type': 'string', 'maxLength': 80, 'description': 'Optional human date hint, e.g. Saturday evening.'}, 'sort_basis': {'enum': ['popularity', 'price_asc', 'rating_desc'], 'type': 'string', 'description': 'Optional sort explanation.'}, 'audience_hint': {'type': 'string', 'maxLength': 80, 'description': 'Optional audience hint, e.g. family.'}, 'intent_summary': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': "Short human-readable summary of the user's request."}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'format': 'uuid', 'description': 'Optional UUID. Reuse for identical card render responses within five minutes.'}}}
Ausgabeschema
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['experience_ids'], 'properties': {'experience_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The stable product ids rendered as cards.'}}, 'additionalProperties': True}, {'type': 'object', 'required': ['schema_version', 'error_type', 'message', 'detail'], 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'error_type': {'enum': ['ambiguous_input', 'invalid_input', 'rate_limited', 'supplier_unavailable', 'circuit_breaker_open', 'partial_result', 'unauthorized', 'forbidden', 'internal_error', 'not_found'], 'type': 'string'}, 'retry_after': {'type': 'string'}, 'schema_version': {'const': 'https://mcp.tickadoo.com/schemas/tool_error/1.0'}, 'retry_after_seconds': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': True}]}
Eingabeschema
{'type': 'object', 'required': ['request_id', 'signal_type'], 'properties': {'notes': {'type': 'string', 'maxLength': 2000, 'description': 'Optional free-text context. Required when signal_type is "other". Do not include PII.'}, 'request_id': {'type': 'string', 'pattern': '^rq_\\d{4}_\\d{2}_\\d{2}_\\d{6}_(?:[0-9a-f]{6}|[0-9a-f]{12})$', 'description': 'The request_id from a forward tool result in the last 30 days. Current format: rq_YYYY_MM_DD_HHMMSS_<12-hex>; legacy 6-hex ids remain valid.'}, 'signal_type': {'enum': ['stale_availability', 'post_click_failure', 'supplier_outage', 'content_quality_issue', 'duplicate_listing', 'price_mismatch', 'unexpected_low_quality', 'other'], 'type': 'string', 'description': 'The kind of issue you are reporting. Use "other" only when none of the specific types fit, and always include notes.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'recorded': {'type': 'boolean'}, 'signal_id': {'type': 'string'}, 'error_type': {'type': 'string'}, 'recorded_at': {'type': 'string'}, 'signal_type': {'type': 'string'}, 'schema_version': {'type': 'string'}, 'referenced_request_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['city', 'mood'], 'properties': {'city': {'type': 'string', 'description': 'City name or slug, e.g. "london", "new-york", or "paris".'}, 'mood': {'enum': ['adventurous', 'romantic', 'relaxing', 'family_fun', 'cultural', 'thrill_seeking', 'foodie', 'budget_friendly', 'luxury', 'rainy_day'], 'type': 'string', 'description': 'Mood preset. Valid values: adventurous, romantic, relaxing, family_fun, cultural, thrill_seeking, foodie, budget_friendly, luxury, rainy_day.'}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of experiences to return (1-50). Defaults to the mood preset size when omitted.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}}}
Ausgabeschema
{'type': 'object', 'properties': {'mood': {'type': 'string'}, 'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'additionalProperties': True}, 'mapped_filters': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'City slug, e.g., "london", "new-york", "paris".'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': "Filter by experience tags. Multiple tags are AND-combined (every tag must match) so adding more tags narrows the result set. Use lowercase singular forms; matching is substring-based against the tag array. The canonical tag taxonomy in the catalogue, ordered by frequency, is: 'tour', 'attraction', 'historical', 'outdoor', 'museum', 'family', 'landmark', 'adventure', 'show', 'indoor', 'food & drink', 'transport', 'theatre', 'concert', 'theme park', 'cruise', 'nightlife', 'comedy', 'musical', 'city pass', 'sport', 'dance', 'aquarium', 'zoo', 'gallery', 'opera', 'wellness', 'water park', 'workshop', 'religious', 'festival'. Examples: ['museum'] for museums; ['family','indoor'] for indoor family attractions; ['outdoor','adventure'] for outdoor adventure activities. Other free-form values may match by substring but are not guaranteed."}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Number of results to return (1-50). Default 10.'}, 'query': {'type': 'string', 'description': 'Free-text query matched against experience name and venue (not description). Split into words that must all match, so it suits a title or keyword; a query that matches no name returns city top-picks flagged match_type "fallback_city_ranked".'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'category': {'type': 'string', 'description': 'Category slug, e.g., "theatre", "tours", "museums", "attractions".'}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}, 'max_price': {'type': 'number', 'minimum': 0, 'description': 'Maximum price per person in the listed currency. A positive value applies a cap; 0 (or unset) means no price cap (unbounded).'}, 'min_rating': {'type': 'number', 'maximum': 5, 'minimum': 0, 'description': 'Minimum aggregate rating on a 0-5 scale.'}, 'popular_only': {'type': 'boolean', 'deprecated': True, 'description': 'DEPRECATED: use restrict_to_top_rated. Alias for the destructive top-rated filter (rating >= 4.5 AND review_count >= 100). The name implies a sort hint but it is a hard WHERE clause. Existing callers continue to work unchanged.'}, 'indoor_outdoor': {'enum': ['indoor', 'outdoor', 'either'], 'type': 'string', 'description': "Setting filter. 'indoor' / 'outdoor' resolve via the products.tags column (~2,100 indoor and ~5,000 outdoor products are tagged in the catalogue). 'either' applies no filter."}, 'min_review_count': {'type': 'integer', 'minimum': 0, 'description': 'Minimum number of customer reviews. Use to filter out new or sparsely-reviewed products.'}, 'restrict_to_top_rated': {'type': 'boolean', 'description': 'DESTRUCTIVE FILTER. When true, hard-restricts results to products with rating >= 4.5 AND review_count >= 100. This is a WHERE clause, not a sort hint. Anything failing the floor is dropped from the result set entirely. Use only when the caller genuinely wants to exclude lower-rated or lesser-reviewed products. For ranking-by-popularity without exclusion, do not set this; results are already ordered by rating and review count.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['place_hint'], 'properties': {'city': {'type': 'string', 'description': 'City slug or name to disambiguate. Recommended for any place_hint that could exist in multiple cities.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': "Filter by experience tags. Multiple tags are AND-combined (every tag must match) so adding more tags narrows the result set. Use lowercase singular forms; matching is substring-based against the tag array. The canonical tag taxonomy in the catalogue, ordered by frequency, is: 'tour', 'attraction', 'historical', 'outdoor', 'museum', 'family', 'landmark', 'adventure', 'show', 'indoor', 'food & drink', 'transport', 'theatre', 'concert', 'theme park', 'cruise', 'nightlife', 'comedy', 'musical', 'city pass', 'sport', 'dance', 'aquarium', 'zoo', 'gallery', 'opera', 'wellness', 'water park', 'workshop', 'religious', 'festival'. Examples: ['museum'] for museums; ['family','indoor'] for indoor family attractions; ['outdoor','adventure'] for outdoor adventure activities. Other free-form values may match by substring but are not guaranteed."}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'date_to': {'type': 'string', 'format': 'date'}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}, 'date_from': {'type': 'string', 'format': 'date'}, 'place_hint': {'type': 'string', 'description': "Free-text place reference: a landmark, neighbourhood, monument, station, or street name. E.g. 'Louvre Museum', 'Trastevere', 'Soho', 'Times Square'. Required."}, 'radius_hint': {'enum': ['walking', 'short_drive', 'city_wide'], 'type': 'string', 'description': "Optional: how broadly to interpret the place_hint. 'walking' is ~1km, 'short_drive' is ~5km, 'city_wide' falls back to the whole city. Default 'walking'."}, 'neighbourhood': {'type': 'string', 'description': 'Optional: a known neighbourhood within the city to narrow results.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['city'], 'properties': {'city': {'type': 'string', 'description': 'City slug.'}, 'format': {'enum': ['json', 'text'], 'type': 'string', 'default': 'json', 'description': "Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."}, 'category': {'type': 'string', 'description': 'Optional category slug to narrow results.'}, 'language': {'type': 'string', 'description': "BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."}, 'max_results': {'type': 'integer', 'default': 10, 'maximum': 30, 'minimum': 1, 'description': 'Default 10, max 30.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'detail': {'type': 'object', 'additionalProperties': True}, 'message': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, 'error_type': {'type': 'string'}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer'}, 'total': {'type': 'integer'}, 'offset': {'type': 'integer'}}, 'additionalProperties': True}, 'request_id': {'type': 'string'}, 'experiences': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'name'], 'properties': {'city': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'price': {'type': 'object', 'properties': {'display': {'type': 'string'}, 'currency': {'type': 'string'}, 'amount_minor': {'type': 'integer'}}, 'additionalProperties': True}, 'venue': {'type': 'string'}, 'rating': {'type': ['number', 'null']}, 'category': {'type': 'string'}, 'image_url': {'type': ['string', 'null']}, 'product_id': {'type': 'string', 'description': 'Stable experience identifier for detail, availability, related-experience, and card-rendering calls.'}, 'booking_url': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'review_count': {'type': ['integer', 'null']}}, 'additionalProperties': True}}, '_normalization': {'type': 'object', 'additionalProperties': True}, 'schema_version': {'type': 'string'}}, 'additionalProperties': True}
Letzte Tool-Änderungen
Ähnliche MCP-Server
Itaim Bibi
Provides an Itaim Bibi neighborhood directory with local place search, menus, events, offers, services, bookings, reservations, t…
Tatuapé
Provides a Tatuapé neighborhood directory with local place search, menus, events, offers, services, bookings, reservations, ticke…
Agenda SP
Provides São Paulo cultural agenda and local directory features, including events, venues, restaurants, offers, bookings, reserva…
Vila Buarque
Provides a neighborhood directory for local places, restaurants, menus, events, offers, services, reservations, bookings, and pur…
Centro
Provides a Centro neighborhood directory with local place search, menus, events, offers, services, bookings, reservations, ticket…
Bela Vista
Provides a Bela Vista neighborhood directory with local place search, menus, events, offers, services, bookings, reservations, ti…
Jardins
Provides a Jardins neighborhood directory with local place search, menus, events, offers, services, bookings, reservations, ticke…
Aclimação
Provides a neighborhood directory for Aclimação with local places, restaurant menus, events, offers, services, bookings, reservat…