accueil / serveurs / Géo & Temps / io.github.tickadoo/tickadoo-mcp
io.github.tickadoo/tickadoo-mcp
serveur MCP (Model Context Protocol) · com.tickadoo/mcp 1.6.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.tickadoo/tickadoo-mcp est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.tickadoo/tickadoo-mcp » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 27 outils
- ask_theatre_concierge≈ 441 tokens
Use this when the user asks a free-text theatre question (best musical for kids, romantic show tonight, cheap comedy). Returns a concise grounded answer plus cited theatre products with booking URLs. Intent-aware (budget, audience, timeframe) via the concierge seam.
Paramètres, retour & exemple (6)
Paramètrescity· string · optionnel
City name, resolved to a slug.limit· integer · optionnel
Max cited products. Defaults to 5.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.question· string · optionnel
Free-text theatre question, max 500 chars.city_slug· string · optionnel
City slug, e.g. london.
Exemple d'appel{"name": "ask_theatre_concierge", "arguments": {"city": "texte", "limit": 1, "format": "json", "language": "texte", "question": "texte", "city_slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"answer": "texte", "detail": {}, "message": "texte", "question": "texte", "city_slug": "texte", "error_type": "texte", "cited_products": [], "schema_version": "texte", "detected_intents": {}}} - check_availability≈ 492 tokens
Use this when the user has picked a specific experience and asks about exactly one date: whether it is available that day, what it costs for a party, or a booking link for that date. For browsing a date range or listing upcoming times and live slot prices, use get_availability.
Paramètres, retour & exemple (5)
Paramètresdate· string · requis
Date to check as YYYY-MM-DD, or a natural-language phrase the server resolves: today, tomorrow, this Saturday, next Friday, this weekend, next weekend.slug· string · requis
Product slug or legacy booking path, e.g. "london-dungeon-tickets" or "/london/london-dungeon-tickets".format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.party_size· integer · optionnel
Number of guests or tickets to price. Default 2.
Exemple d'appel{"name": "check_availability", "arguments": {"date": "texte", "slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"date": "texte", "slug": "texte", "slots": [], "title": "texte", "detail": {}, "message": "texte", "available": true, "error_type": "texte", "schema_version": "texte", "total_for_party": {}}} - compare_experiences≈ 375 tokens
Use this when the user wants a side-by-side comparison of 2-5 specific products. Pass the slug for each. Returns a comparison table plus per-axis winners (value, rating, popularity, family-fit).
Paramètres, retour & exemple (3)
Paramètresslugs· array · requis
Product slugs from earlier search or recommend results.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.
Exemple d'appel{"name": "compare_experiences", "arguments": {"slugs": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"text": "texte", "detail": {}, "winner": {}, "message": "texte", "comparison": [], "error_type": "texte", "differences": [], "schema_version": "texte"}} - find_nearby_experiences≈ 934 tokens
Use this when the client already holds exact latitude and longitude coordinates and wants experiences near that point. When only a place name, landmark, or neighbourhood is known, use search_local_experiences, which accepts coarse place hints and needs no coordinates.
Paramètres, retour & exemple (7)
Paramètreslimit· integer · optionnel
Number of results to return (1-50). Default 10.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.category· string · optionnel
Optional category slug.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.latitude· number · requis
Latitude coordinate.longitude· number · requis
Longitude coordinate.radius_km· number · optionnel
Search radius in kilometres.
Exemple d'appel{"name": "find_nearby_experiences", "arguments": {"latitude": 1, "longitude": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}} - find_theatre_for_occasion≈ 522 tokens
Use this when the user has an occasion: family outing, date night, group celebration, solo culture trip, business entertainment. Returns ranked theatre shows with fit scores and reasons, honouring party ages and an optional date.
Paramètres, retour & exemple (8)
Paramètrescity· string · optionnel
City name, resolved to a slug.date· string · optionnel
ISO date or natural language like this Saturday.limit· integer · optionnel
Max shows. Defaults to 10.party· object · optionnelformat· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.occasion· string · optionnel · family_outing | date_night | group_celebration | solo_culture | business_entertainmentcity_slug· string · optionnel
City slug, e.g. london.
Exemple d'appel{"name": "find_theatre_for_occasion", "arguments": {"city": "texte", "date": "texte", "limit": 1, "party": {}, "format": "json", "language": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"date": "texte", "party": {}, "shows": [], "detail": {}, "message": "texte", "occasion": "texte", "city_slug": "texte", "error_type": "texte", "total_matches": 1, "schema_version": "texte"}} - get_availability≈ 720 tokens
Use this when the user is ready to check live bookable dates, times, prices, or remaining spaces for one selected product. This is the live supplier-check tool; pass product_id from search or slug plus city_slug. Slot price.amount is in MINOR currency units (pence/cents): amount 13125 with currency_code GBP means GBP 131.25. Slot time is venue-local; when the venue timezone is known, timezone carries its IANA name and datetime/next_available carry the real UTC offset (e.g. 2026-07-18T19:30:00+02:00), so they are safe for time math.
Paramètres, retour & exemple (10)
Paramètresslug· string · optionnel
Product slug. Use with city_slug when product_id is unavailable.as_of· string · optionnel
Previous ISO timestamp from stale card data; returns delta only when data changed.fresh· boolean · optionnel
When true, bypasses the 60-second cache and performs a live supplier check, subject to rate limits.date_to· string · optionnel
End date as YYYY-MM-DD or a natural-language phrase (same as date_from). Defaults to 14 days after date_from and is capped to a 365-day window.city_slug· string · optionnel
City slug required when slug is used.date_from· string · optionnel
Start date as YYYY-MM-DD, or a natural-language phrase the server resolves: today, tomorrow, this Saturday, next Friday, this weekend, next weekend. Defaults to today.party_size· integer · optionnel
Number of guests. Default 2.product_id· string · optionnel
Stable product_id from a search or details response. Preferred when available.preferred_time· string · optionnel
Optional broad time preference such as morning, afternoon, or evening.idempotency_key· string · optionnel
Optional UUID. Reuse for identical responses within five minutes.
Exemple d'appel{"name": "get_availability", "arguments": {"slug": "texte", "as_of": "texte", "fresh": true, "date_to": "texte", "city_slug": "texte", "date_from": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"slug": "texte", "slots": [], "detail": {}, "message": "texte", "timezone": "texte", "error_type": "texte", "product_id": "texte", "total_slots": 1, "inventoryLevel": {}, "next_available": "texte", "schema_version": "texte", "provenance_level": "texte"}} - get_city_highlights≈ 823 tokens
Use this when the user wants an orientation overview of a city for trip planning. Returns a ranked list of the city's most popular bookable experiences (search rows); derive the dominant categories and price levels from those rows rather than expecting a structured guide payload.
Paramètres, retour & exemple (3)
Paramètrescity· string · requis
City slug.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.
Exemple d'appel{"name": "get_city_highlights", "arguments": {"city": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}} - get_date_night≈ 937 tokens
Use this when the user wants an evening for two. Returns a flat ranked list of experiences (search rows) with romantic-tagged rows promoted and out-of-season products dropped, not a structured pre-dinner/dinner/show arc. Promotion is a re-rank, not a filter, so rows are not guaranteed couples-only. `date` selects which season counts as current; `budget` is accepted but NOT yet applied. Compose the evening yourself (search_by_mood with mood 'romantic' can bias the pool further).
Paramètres, retour & exemple (5)
Paramètrescity· string · requis
City slug.date· string · optionnel
Optional ISO date (YYYY-MM-DD).budget· string · optionnel · low | medium | high
Budget band. 'low' = under 100 per person, 'medium' = 100-200, 'high' = 200+. In the listed currency.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.
Exemple d'appel{"name": "get_date_night", "arguments": {"city": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}} - get_experience_details≈ 750 tokens
Use this when the user selects a specific experience from search results and needs richer product, location, supplier, and booking fields. Accepts either product_id or slug.
Paramètres, retour & exemple (4)
Paramètresslug· string · optionnel
Product slug from a previous search result.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.product_id· string · optionnel
Stable product_id from a previous search result.
Exemple d'appel{"name": "get_experience_details", "arguments": {"slug": "texte", "format": "json", "language": "texte", "product_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "product": {}, "products": [], "error_type": "texte", "schema_version": "texte"}} - get_family_day≈ 953 tokens
Use this when the user wants family-suitable options for a day in one city. Returns a flat ranked list of experiences (search rows) with family-tagged rows promoted and out-of-season products dropped, not a structured morning/lunch/afternoon/evening plan. `date` selects which season counts as current; `kids_ages` and `budget` are accepted but NOT yet applied, so compose the day yourself and verify age suitability per pick via get_experience_details.
Paramètres, retour & exemple (6)
Paramètrescity· string · requis
City slug.date· string · optionnel
Optional ISO date (YYYY-MM-DD).budget· number · optionnel
Optional max budget in the listed currency.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.kids_ages· array · optionnel
Children's ages. Drives age-suitability filtering on each slot.
Exemple d'appel{"name": "get_family_day", "arguments": {"city": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}} - get_hidden_gems≈ 862 tokens
Use this when the user wants lower-profile options rather than headline bestsellers. Excludes Bestseller, hop-on-hop-off, and CityPass tagged products and prefers highly rated rows with fewer reviews; falls back to the standard ranked list when a city has too few qualifying rows (results may then overlap with headline search).
Paramètres, retour & exemple (4)
Paramètrescity· string · requis
City slug.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.max_results· integer · optionnel
Default 5, max 20.
Exemple d'appel{"name": "get_hidden_gems", "arguments": {"city": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}} - get_itinerary_candidates≈ 1044 tokens
Use this when the user wants a multi-day plan for a single city. Returns a flat ranked candidate list of experiences (search rows), not structured day slots or a running cost. Arrange the candidates into days yourself and compute totals only from returned price fields.
Paramètres, retour & exemple (8)
Paramètrescity· string · requis
City slug.days· integer · requis
Number of days to plan (1-7).pace· string · optionnel · relaxed | moderate | packed
Itinerary density. relaxed = 1-2 stops per day, packed = 4-5.budget· string · optionnel · low | medium | high
Budget band per day per person.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.audience· string · optionnel · family | couple | solo | group | business
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· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.interests· string · optionnel
Free-text interest seed, e.g., "history, food, river".
Exemple d'appel{"name": "get_itinerary_candidates", "arguments": {"city": "texte", "days": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}} - get_last_minute≈ 931 tokens
Use this when the user wants something to do within the next few hours. Returns currently-on-sale experiences with seasonal products filtered out, ranked by popularity. Rows may include start_time, countdown_text, and seats_remaining hints when known, but none are guaranteed: confirm the selected experience with get_availability before stating it starts soon or is available today.
Paramètres, retour & exemple (6)
Paramètrescity· string · requis
City slug.hours· integer · optionnel
How many hours ahead to look (1-12). Default 3.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.latitude· number · optionnel
Optional latitude to bias toward nearby venues.longitude· number · optionnel
Optional longitude to bias toward nearby venues.
Exemple d'appel{"name": "get_last_minute", "arguments": {"city": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}} - get_related_experiences≈ 509 tokens
Use this when a widget or client holds a selected product_id and needs related products to pair with it, do after it, find nearby, or find similar alternatives. Returns cached graph and semantic related products for trio-style widgets.
Paramètres, retour & exemple (5)
Paramètresformat· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.context· string · optionnel · pair | after | nearby | similar
Relationship type: pair, after, nearby, or similar.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.product_id· string · requis
Stable product_id or slug for the source experience.max_results· integer · optionnel
Number of related products to return. Default 6, max 10.
Exemple d'appel{"name": "get_related_experiences", "arguments": {"product_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"total": 1, "detail": {}, "context": "texte", "message": "texte", "related": [], "source_id": "texte", "error_type": "texte", "schema_version": "texte"}} - get_show_guide≈ 461 tokens
Use this when the user asks about a specific show: how long it is, age guidance, venue and address, typical curtain times and dark days, who it is good for, and this week's performances. One rich guide record fusing live catalogue data with theatre expertise. Accepts slug or product_id.
Paramètres, retour & exemple (3)
Paramètresslug· string · optionnel
Product slug from a previous search result. Requires city_slug.city_slug· string · optionnel
City slug, required when slug is used (slugs are only unique per city).product_id· string · optionnel
Stable product_id from a previous search result.
Exemple d'appel{"name": "get_show_guide", "arguments": {"slug": "texte", "city_slug": "texte", "product_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"name": "texte", "slug": "texte", "venue": {}, "detail": {}, "rating": 1, "message": "texte", "runtime": "texte", "audience": [], "currency": "texte", "good_for": [], "city_slug": "texte", "error_type": "texte"}} - get_theatre_weekend≈ 450 tokens
Use this when the user asks what theatre is on this weekend or next. Server-side date math resolves the Friday/Saturday/Sunday dates; returns theatre shows in the city with scheduled performances on those days, grouped by day. Schedule data, not live seat inventory.
Paramètres, retour & exemple (6)
Paramètrescity· string · optionnel
City name, resolved to a slug.limit· integer · optionnel
Max shows to return. Defaults to 20.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.weekend· string · optionnel · this | next
Which weekend. Defaults to this.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.city_slug· string · optionnel
City slug, e.g. london.
Exemple d'appel{"name": "get_theatre_weekend", "arguments": {"city": "texte", "limit": 1, "format": "json", "weekend": "this", "language": "texte", "city_slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "dates": {}, "shows": [], "detail": {}, "message": "texte", "weekend": "texte", "city_slug": "texte", "error_type": "texte", "total_shows": 1, "schema_version": "texte"}} - get_transfer_info≈ 491 tokens
Use this when the user is arriving in a supported city and needs transfer guidance from an airport, station, or port to a hotel coordinate. Returns taxi, metro, bus, and train estimates with durations, costs, and directions.
Paramètres, retour & exemple (6)
Paramètrescity· string · requis
Supported city: London, Paris, New York, Amsterdam, Barcelona, Rome, or Tokyo.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.from_type· string · requis · airport | station | port
Arrival hub type.to_latitude· number · requis
Hotel latitude.to_longitude· number · requis
Hotel longitude.
Exemple d'appel{"name": "get_transfer_info", "arguments": {"city": "texte", "from_type": "airport", "to_latitude": 1, "to_longitude": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"city": "texte", "detail": {}, "message": "texte", "options": [], "from_type": "texte", "error_type": "texte", "distance_km": 1, "origin_name": "texte", "schema_version": "texte", "hotel_coordinates": {}, "origin_coordinates": {}}} - get_whats_on_this_week≈ 824 tokens
Use this when the user wants ideas for the coming week in a city. Returns a ranked list of currently on-sale experiences (search rows) with out-of-season products dropped, not a day-by-day calendar. Assemble any weekly structure yourself and verify specific dates with get_availability.
Paramètres, retour & exemple (3)
Paramètrescity· string · requis
City slug.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.
Exemple d'appel{"name": "get_whats_on_this_week", "arguments": {"city": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}} - list_cities≈ 377 tokens
Use this when the user wants to browse supported cities before searching. Returns city names, slugs, country codes, and product counts.
Paramètres, retour & exemple (4)
Paramètreslimit· integer · optionnel
Maximum number of cities to return (1-50). Defaults to 50 when omitted.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.country· string · optionnel
Optional country code or country name filter.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.
Exemple d'appel{"name": "list_cities", "arguments": {"limit": 1, "format": "json", "country": "texte", "language": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cities": [], "detail": {}, "message": "texte", "error_type": "texte", "schema_version": "texte"}} - recommend_experiences≈ 970 tokens
Use this when the user describes what they want in natural language rather than naming a category. Parses the query for audience, mood, constraints, occasion, and time of day, then returns scored recommendations with a reason field explaining the match.
Paramètres, retour & exemple (7)
Paramètrespax· integer · optionnel
Number of people. Default 2.city· string · optionnel
Optional city slug. If omitted, the city is parsed from the query.date· string · optionnel
Optional ISO date (YYYY-MM-DD) for availability-aware ranking.limit· integer · optionnel
Number of recommendations to return (1-20). Default 5.query· string · requis
Natural-language preference, e.g., "romantic evening in Paris under 100 euros" or "rainy day in Edinburgh with kids 8 and 12".format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.
Exemple d'appel{"name": "recommend_experiences", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}} - render_experience_cards≈ 752 tokens
Use when visual cards would help present a discovery result from a supported search tool. Pass the product_id values from that result as experience_ids, never full product rows, and choose a render_type. Optionally pass render_context.intent_summary (a short phrase describing what the user asked for, such as city, date, or audience) to set the heading. Keep each result set to one card view to avoid duplicate cards; concise text context may accompany it.
Paramètres, retour & exemple (4)
Paramètresrender_type· string · requis · carousel | grid | comparison | single
Visual layout requested for the widget.experience_ids· array · requis
The stable product_id values from search_experiences results (the product_id field of each returned row). Pass IDs only, never full product rows.render_context· object · optionnel
Optional rendering hints that shape the card heading and sort explanation: intent_summary, date_hint, audience_hint, sort_basis.idempotency_key· string · optionnel
Optional UUID. Reuse for identical card render responses within five minutes.
Exemple d'appel{"name": "render_experience_cards", "arguments": {"render_type": "carousel", "experience_ids": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - report_quality_signal≈ 461 tokens
Use this to push a quality signal back to tickadoo about an experience or recommendation you previously surfaced. Examples: stale availability, a failed click-through, a supplier outage, or misleading content. Requires a real forward-event request_id returned within the last 30 days. Repeating the same signal for the same request is idempotent per caller.
Paramètres, retour & exemple (3)
Paramètresnotes· string · optionnel
Optional free-text context. Required when signal_type is "other". Do not include PII.request_id· string · requis
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· string · requis · stale_availability | post_click_failure | supplier_outage | content_quality_issue | duplicate_listing | price_mismatch | unexpected_low_quality | other
The kind of issue you are reporting. Use "other" only when none of the specific types fit, and always include notes.
Exemple d'appel{"name": "report_quality_signal", "arguments": {"request_id": "texte", "signal_type": "stale_availability"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "recorded": true, "signal_id": "texte", "error_type": "texte", "recorded_at": "texte", "signal_type": "texte", "schema_version": "texte", "referenced_request_id": "texte"}} - search_by_mood≈ 702 tokens
Use this when the user describes the feeling or vibe they want rather than a category, such as romantic, relaxing, adventurous, family fun, foodie, luxury, or rainy day. Maps the mood to preset search filters and returns matching experiences.
Paramètres, retour & exemple (5)
Paramètrescity· string · requis
City name or slug, e.g. "london", "new-york", or "paris".mood· string · requis · adventurous | romantic | relaxing | family_fun | cultural | thrill_seeking | foodie | budget_friendly
Mood preset. Valid values: adventurous, romantic, relaxing, family_fun, cultural, thrill_seeking, foodie, budget_friendly, luxury, rainy_day.limit· integer · optionnel
Maximum number of experiences to return (1-50). Defaults to the mood preset size when omitted.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.
Exemple d'appel{"name": "search_by_mood", "arguments": {"city": "texte", "mood": "adventurous"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"mood": "texte", "detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "mapped_filters": {}, "schema_version": "texte"}} - search_experiences≈ 1733 tokens
Use this when the user names a city plus a category, query, or filter set and wants a ranked list of bookable experiences. `query` matches on experience NAME (and venue), so it suits a title or keyword ("Lion King", "river cruise"); for mood or theme use search_by_mood, and for a free-text "what should I do" ask use recommend_experiences. When a query matches no name, results are the city top-picks flagged match_type "fallback_city_ranked" (reason_codes include "fallback_no_text_match") rather than a genuine match, so treat those as suggestions, not the thing asked for. Returns products each with a stable product_id, plus name, slug, city, category, price, rating, review count, and tags. To show the results as visual cards, pass the product_id values from these results into render_experience_cards (experience_ids). Pair with get_experience_details for richer fields.
Paramètres, retour & exemple (13)
Paramètrescity· string · optionnel
City slug, e.g., "london", "new-york", "paris".tags· array · optionnel
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· integer · optionnel
Number of results to return (1-50). Default 10.query· string · optionnel
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· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.category· string · optionnel
Category slug, e.g., "theatre", "tours", "museums", "attractions".language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.max_price· number · optionnel
Maximum price per person in the listed currency. A positive value applies a cap; 0 (or unset) means no price cap (unbounded).min_rating· number · optionnel
Minimum aggregate rating on a 0-5 scale.popular_only· boolean · optionnel
DEPRECATED: use restrict_to_top_rated. Alias for the hard top-rated result 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· string · optionnel · indoor | outdoor | either
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· integer · optionnel
Minimum number of customer reviews. Use to filter out new or sparsely-reviewed products.restrict_to_top_rated· boolean · optionnel
HARD RESULT FILTER. When true, 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.
Exemple d'appel{"name": "search_experiences", "arguments": {"city": "texte", "tags": [], "limit": 1, "query": "texte", "format": "json", "category": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}} - search_experiences_by_topic≈ 890 tokens
Use this when the user asks for bookable experiences by keyword or topic in a city. Returns a ranked search of bookable experience rows. The topic argument is accepted but does no filtering, so every topic returns the same city ranking. The payload contains no tips text or logistics guidance.
Paramètres, retour & exemple (4)
Paramètrescity· string · requis
City slug.topic· string · optionnel · transport | money | safety | culture | food | weather | language | connectivity
Optional topic keyword. Accepted but not applied: the search is not filtered by this value.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.
Exemple d'appel{"name": "search_experiences_by_topic", "arguments": {"city": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}} - search_local_experiences≈ 1402 tokens
Use this when the user mentions a place, neighbourhood, landmark, or area but does not give exact coordinates. Examples: 'near the Louvre', 'in Trastevere', 'around Times Square', "walking distance from St Paul's Cathedral". Returns experiences matched first by exact venue/neighbourhood, then by city centre fallback. Do not use for general city-wide search; use search_experiences for that.
Paramètres, retour & exemple (10)
Paramètrescity· string · optionnel
City slug or name to disambiguate. Recommended for any place_hint that could exist in multiple cities.tags· array · optionnel
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· integer · optionnel
Number of results to return (1-50). Default 10.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.date_to· string · optionnel
Optional YYYY-MM-DD accepted for compatibility. This search does not apply a date window; use get_availability to check live dates for a selected product.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.date_from· string · optionnel
Optional YYYY-MM-DD accepted for compatibility. This search does not apply a date window; use get_availability to check live dates for a selected product.place_hint· string · requis
Free-text place reference: a landmark, neighbourhood, monument, station, or street name. E.g. 'Louvre Museum', 'Trastevere', 'Soho', 'Times Square'. Required.radius_hint· string · optionnel · walking | short_drive | city_wide
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· string · optionnel
Optional: a known neighbourhood within the city to narrow results.
Exemple d'appel{"name": "search_local_experiences", "arguments": {"place_hint": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}} - whats_on_tonight≈ 968 tokens
Use this when the user asks what is on in a city tonight. Returns evening-appropriate experiences currently on sale, with out-of-season products filtered out, evening-led options ranked first, and multi-day passes, travel cards and transport products ranked last. Top results carry start_time (venue-local) when the live supplier calendar confirms a performance in the evening window (late afternoon onward); a confirmed slot lifts a row, and timed rows sort soonest-first within one relevance band. Rows without start_time have no confirmed evening time. Confirm the selected experience with get_availability before stating it is bookable tonight.
Paramètres, retour & exemple (5)
Paramètrescity· string · requis
City slug.format· string · optionnel · json | text
Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.category· string · optionnel
Optional category slug to narrow results.language· string · optionnel
BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.max_results· integer · optionnel
Default 10, max 30.
Exemple d'appel{"name": "whats_on_tonight", "arguments": {"city": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"detail": {}, "message": "texte", "results": [], "error_type": "texte", "pagination": {}, "request_id": "texte", "experiences": [], "_normalization": {}, "schema_version": "texte"}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».