tickadoo Experiences and Events
REMOTE · MCP.TICKADOO.COM
Discover and book theatre, tours, attractions, and live experiences worldwide. No API key required.
Available components
Last scanned (21 hours ago)
Scores higher than 92% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Entertainment and Games
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security83
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability77
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 6614 tokens (~213/item across 31 items; 27 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management86
- Stability check failed: schema churn in the 30 days we've observed: 3 tool removals, 0 breaking changes, 0 auth/transport breaks, 7 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 99% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "get_transfer_info" implies "transfer" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
- An AI judge read all 29 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
- Supports UI / widget rendering.Pass
Checks we ran (14)
- TLS certificate
- Authorization
- HTTPS
- HSTS header
- DNSSEC
- Transport
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
- Capabilities
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 1 Nov 26 0
- “get_availability” reworded the description of “as_of” cosmetic
- “get_availability” reworded the description of “fresh” cosmetic
- “get_availability” reworded the description of “idempotency_key” cosmetic
3 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.
- 22 Oct 26 +3
- HSTS header: fail → pass ▲ security
- 14 Oct 26 0
- Schema quality: 5885 → 6566 ▼ functional
- New tool “ask_theatre_concierge” functional
- New tool “find_theatre_for_occasion” functional
- New tool “get_theatre_weekend” functional
- “find_nearby_experiences” reworded the description of “limit” cosmetic
- “render_experience_cards” reworded the description of “render_context” cosmetic
- “search_local_experiences” reworded the description of “date_from” cosmetic
- “search_local_experiences” reworded the description of “date_to” cosmetic
- “search_local_experiences” reworded the description of “limit” cosmetic
- 13 Oct 26 0
- New tool “get_show_guide” functional
- 12 Oct 26 −2
- Stability: pass → fail ▼ security
- A breaking change shipped without a version bump: still 1.6.0 ▼ security
- Tool “get_city_guide” was removed ▼ security
- Tool “get_travel_tips” was removed ▼ security
- Tool “plan_itinerary” was removed ▼ security
- New tool “get_city_highlights” functional
- New tool “get_itinerary_candidates” functional
- New tool “search_experiences_by_topic” functional
- “check_availability” reworded the description of “date” cosmetic
- “get_availability” reworded the description of “date_from” cosmetic
- “get_availability” reworded the description of “date_to” cosmetic
- 2 Oct 26 0
- “search_experiences” reworded the description of “popular_only” cosmetic
- “search_experiences” reworded the description of “restrict_to_top_rated” cosmetic
2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.
- 1 Oct 26 85
- Tool “render_experience_cards” rewrote its description, which is the text the model reads security
- 30 Sept 26 0
- Resource “Availability date picker” now points somewhere else: ui://widget/availability/v1 → ui://widget/availability/v2 security
- Resource “Availability date picker (empty)” now points somewhere else: ui://widget/availability/v1/empty → ui://widget/availability/v2/empty security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp.tickadoo.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=tickadoo.com | CN=WE1,O=Google Trust Services,C=US | 25 Sept 2026 | 24 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | cb6918fcc47f8db513218958cb5c9ff8 |
| SANs: tickadoo.com, mcp.tickadoo.com, *.mcp.tickadoo.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of mcp.tickadoo.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| com. | DS published | 19718 | 13 | Verified |
| tickadoo.com. | DS published | 2371 | 13 | Verified |
| mcp.tickadoo.com. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=2592000 |
| content-security-policy | default-src 'self'; frame-src 'self' https://widgets.tickadoo.com; img-src 'self' data: https:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com; connect-src 'self'; font-src 'self' data: |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.tickadoo.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.tickadoo.com/mcp | HTTPS enforced | 301 | https://mcp.tickadoo.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
ask_theatre_concierge ~190
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | City name, resolved to a slug. |
| city_slug | string | – | City slug, e.g. london. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| limit | integer | – | Max cited products. Defaults to 5. |
| question | string | – | Free-text theatre question, max 500 chars. |
| Name | Type | Req | Description |
|---|---|---|---|
| answer | string | – | – |
| cited_products | array | – | – |
| city_slug | string | – | – |
| detail | object | – | – |
| detected_intents | object | – | – |
| error_type | string | – | – |
| message | string | – | – |
| question | string | – | – |
| schema_version | string | – | – |
No examples provided.
check_availability ~227
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.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | yes | 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. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| party_size | integer | – | Number of guests or tickets to price. Default 2. |
| slug | string | yes | Product slug or legacy booking path, e.g. "london-dungeon-tickets" or "/london/london-dungeon-tickets". |
| Name | Type | Req | Description |
|---|---|---|---|
| available | boolean | – | – |
| date | string | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| message | string | – | – |
| schema_version | string | – | – |
| slots | array | – | – |
| slug | string | – | – |
| title | string|null | – | – |
| total_for_party | object | – | – |
No examples provided.
compare_experiences ~137
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).
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| slugs | array | yes | Product slugs from earlier search or recommend results. |
| Name | Type | Req | Description |
|---|---|---|---|
| comparison | array | – | – |
| detail | object | – | – |
| differences | array | – | – |
| error_type | string | – | – |
| message | string | – | – |
| schema_version | string | – | – |
| text | string | – | – |
| winner | object | – | – |
No examples provided.
find_nearby_experiences ~190
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Optional category slug. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| latitude | number | yes | Latitude coordinate. |
| limit | integer | – | Number of results to return (1-50). Default 10. |
| longitude | number | yes | Longitude coordinate. |
| radius_km | number | – | Search radius in kilometres. |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
find_theatre_for_occasion ~195
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | City name, resolved to a slug. |
| city_slug | string | – | City slug, e.g. london. |
| date | string | – | ISO date or natural language like this Saturday. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| limit | integer | – | Max shows. Defaults to 10. |
| occasion | string | – | – |
| party | object | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| city_slug | string | – | – |
| date | string|null | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| message | string | – | – |
| occasion | string | – | – |
| party | object | – | – |
| schema_version | string | – | – |
| shows | array | – | – |
| total_matches | integer | – | – |
No examples provided.
get_availability ~437
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.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | – | Previous ISO timestamp from stale card data; returns a delta when a retained cacheable snapshot changed. Live-only inventory does not retain snapshots and omits this delta. |
| city_slug | string | – | City slug required when slug is used. |
| date_from | string | – | 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. |
| date_to | string | – | 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. |
| fresh | boolean | – | When true, bypasses the 60-second cache and performs a live supplier check, subject to rate limits. Live-only inventory is always checked live regardless of this flag. |
| idempotency_key | string | – | Optional UUID. Cacheable inventory may reuse an identical response for up to five minutes; live-only inventory always rechecks and never replays a resolved response. |
| party_size | integer | – | Number of guests. Default 2. |
| preferred_time | string | – | Optional broad time preference such as morning, afternoon, or evening. |
| product_id | string | – | Stable product_id from a search or details response. Preferred when available. |
| slug | string | – | Product slug. Use with city_slug when product_id is unavailable. |
| Name | Type | Req | Description |
|---|---|---|---|
| book_now_confidence | integer | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| inventoryLevel | object | – | – |
| message | string | – | – |
| next_available | string|null | – | – |
| product_id | string | – | – |
| provenance_level | string | – | – |
| schema_version | string | – | – |
| slots | array | – | – |
| slug | string | – | – |
| timezone | string | – | – |
| total_slots | integer | – | – |
No examples provided.
get_city_highlights ~136
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | City slug. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
get_date_night ~246
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).
| Name | Type | Req | Description |
|---|---|---|---|
| budget | string | – | Budget band. 'low' = under 100 per person, 'medium' = 100-200, 'high' = 200+. In the listed currency. |
| city | string | yes | City slug. |
| date | string | – | Optional ISO date (YYYY-MM-DD). |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
get_experience_details ~140
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.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| product_id | string | – | Stable product_id from a previous search result. |
| slug | string | – | Product slug from a previous search result. |
| Name | Type | Req | Description |
|---|---|---|---|
| detail | object | – | – |
| error_type | string | – | – |
| message | string | – | – |
| product | object | – | – |
| products | array | – | – |
| schema_version | string | – | – |
No examples provided.
get_family_day ~232
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.
| Name | Type | Req | Description |
|---|---|---|---|
| budget | number | – | Optional max budget in the listed currency. |
| city | string | yes | City slug. |
| date | string | – | Optional ISO date (YYYY-MM-DD). |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| kids_ages | array | – | Children's ages. Drives age-suitability filtering on each slot. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
get_hidden_gems ~164
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).
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | City slug. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| max_results | integer | – | Default 5, max 20. |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
get_itinerary_candidates ~283
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.
| Name | Type | Req | Description |
|---|---|---|---|
| audience | string | – | 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 guarante… |
| budget | string | – | Budget band per day per person. |
| city | string | yes | City slug. |
| days | integer | yes | Number of days to plan (1-7). |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| interests | string | – | Free-text interest seed, e.g., "history, food, river". |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| pace | string | – | Itinerary density. relaxed = 1-2 stops per day, packed = 4-5. |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
get_last_minute ~204
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | City slug. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| hours | integer | – | How many hours ahead to look (1-12). Default 3. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| latitude | number | – | Optional latitude to bias toward nearby venues. |
| longitude | number | – | Optional longitude to bias toward nearby venues. |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
get_related_experiences ~180
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.
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | – | Relationship type: pair, after, nearby, or similar. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| max_results | integer | – | Number of related products to return. Default 6, max 10. |
| product_id | string | yes | Stable product_id or slug for the source experience. |
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| message | string | – | – |
| related | array | – | – |
| schema_version | string | – | – |
| source_id | string | – | – |
| total | integer | – | – |
No examples provided.
get_show_guide ~129
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city_slug | string | – | City slug, required when slug is used (slugs are only unique per city). |
| product_id | string | – | Stable product_id from a previous search result. |
| slug | string | – | Product slug from a previous search result. Requires city_slug. |
| Name | Type | Req | Description |
|---|---|---|---|
| age_guidance | string|null | – | – |
| audience | array | – | – |
| booking_url | string | – | – |
| city_slug | string | – | – |
| currency | string|null | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| good_for | array | – | – |
| house_patterns | object|null | – | – |
| message | string | – | – |
| name | string | – | – |
| performances_this_week | array | – | – |
| price_from | number|null | – | – |
| rating | number|null | – | – |
| review_count | integer|null | – | – |
| runtime | string|null | – | – |
| schema_version | string | – | – |
| slug | string | – | – |
| venue | object | – | – |
No examples provided.
get_theatre_weekend ~189
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | City name, resolved to a slug. |
| city_slug | string | – | City slug, e.g. london. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| limit | integer | – | Max shows to return. Defaults to 20. |
| weekend | string | – | Which weekend. Defaults to this. |
| Name | Type | Req | Description |
|---|---|---|---|
| city_slug | string | – | – |
| dates | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| message | string | – | – |
| note | string|null | – | – |
| schema_version | string | – | – |
| shows | array | – | – |
| total_shows | integer | – | – |
| weekend | string | – | – |
No examples provided.
get_transfer_info ~180
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | Supported city: London, Paris, New York, Amsterdam, Barcelona, Rome, or Tokyo. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| from_type | string | yes | Arrival hub type. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| to_latitude | number | yes | Hotel latitude. |
| to_longitude | number | yes | Hotel longitude. |
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | – |
| detail | object | – | – |
| distance_km | number | – | – |
| error_type | string | – | – |
| from_type | string | – | – |
| hotel_coordinates | object | – | – |
| message | string | – | – |
| options | array | – | – |
| origin_coordinates | object | – | – |
| origin_name | string | – | – |
| schema_version | string | – | – |
No examples provided.
get_whats_on_this_week ~144
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | City slug. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
list_cities ~141
Use this when the user wants to browse supported cities before searching. Returns city names, slugs, country codes, and product counts.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Optional country code or country name filter. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| limit | integer | – | Maximum number of cities to return (1-50). Defaults to 50 when omitted. |
| Name | Type | Req | Description |
|---|---|---|---|
| cities | array | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| message | string | – | – |
| schema_version | string | – | – |
No examples provided.
recommend_experiences ~237
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | Optional city slug. If omitted, the city is parsed from the query. |
| date | string | – | Optional ISO date (YYYY-MM-DD) for availability-aware ranking. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| limit | integer | – | Number of recommendations to return (1-20). Default 5. |
| pax | integer | – | Number of people. Default 2. |
| query | string | yes | Natural-language preference, e.g., "romantic evening in Paris under 100 euros" or "rainy day in Edinburgh with kids 8 and 12". |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
render_experience_cards ~206
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.
| Name | Type | Req | Description |
|---|---|---|---|
| experience_ids | array | yes | The stable product_id values from search_experiences results (the product_id field of each returned row). Pass IDs only, never full product rows. |
| idempotency_key | string | – | Optional UUID. Reuse for identical card render responses within five minutes. |
| render_context | object | – | Optional rendering hints that shape the card heading and sort explanation: intent_summary, date_hint, audience_hint, sort_basis. |
| render_type | string | yes | Visual layout requested for the widget. |
Structured output declared, but exposes no named fields.
No examples provided.
report_quality_signal ~185
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.
| Name | Type | Req | Description |
|---|---|---|---|
| notes | string | – | Optional free-text context. Required when signal_type is "other". Do not include PII. |
| request_id | string | yes | 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 | yes | The kind of issue you are reporting. Use "other" only when none of the specific types fit, and always include notes. |
| Name | Type | Req | Description |
|---|---|---|---|
| detail | object | – | – |
| error_type | string | – | – |
| message | string | – | – |
| recorded | boolean | – | – |
| recorded_at | string | – | – |
| referenced_request_id | string | – | – |
| schema_version | string | – | – |
| signal_id | string | – | – |
| signal_type | string | – | – |
No examples provided.
search_by_mood ~217
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | City name or slug, e.g. "london", "new-york", or "paris". |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| limit | integer | – | Maximum number of experiences to return (1-50). Defaults to the mood preset size when omitted. |
| mood | string | yes | Mood preset. Valid values: adventurous, romantic, relaxing, family_fun, cultural, thrill_seeking, foodie, budget_friendly, luxury, rainy_day. |
| Name | Type | Req | Description |
|---|---|---|---|
| detail | object | – | – |
| error_type | string | – | – |
| mapped_filters | object | – | – |
| message | string | – | – |
| mood | string | – | – |
| pagination | object | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
search_experiences ~910
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Category slug, e.g., "theatre", "tours", "museums", "attractions". |
| city | string | – | City slug, e.g., "london", "new-york", "paris". |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| indoor_outdoor | string | – | 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. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| limit | integer | – | Number of results to return (1-50). Default 10. |
| max_price | number | – | 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 | – | Minimum aggregate rating on a 0-5 scale. |
| min_review_count | integer | – | Minimum number of customer reviews. Use to filter out new or sparsely-reviewed products. |
| popular_only | boolean | – | 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… |
| query | string | – | 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… |
| restrict_to_top_rated | boolean | – | 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… |
| tags | array | – | 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… |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
search_experiences_by_topic ~169
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | City slug. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| topic | string | – | Optional topic keyword. Accepted but not applied: the search is not filtered by this value. |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
search_local_experiences ~617
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | City slug or name to disambiguate. Recommended for any place_hint that could exist in multiple cities. |
| date_from | string | – | 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. |
| date_to | string | – | 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. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| limit | integer | – | Number of results to return (1-50). Default 10. |
| neighbourhood | string | – | Optional: a known neighbourhood within the city to narrow results. |
| place_hint | string | yes | Free-text place reference: a landmark, neighbourhood, monument, station, or street name. E.g. 'Louvre Museum', 'Trastevere', 'Soho', 'Times Square'. Required. |
| radius_hint | string | – | 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'. |
| tags | array | – | 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… |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
whats_on_tonight ~236
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Optional category slug to narrow results. |
| city | string | yes | City slug. |
| format | string | – | Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces. |
| language | string | – | BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted. |
| max_results | integer | – | Default 10, max 30. |
| Name | Type | Req | Description |
|---|---|---|---|
| _normalization | object | – | – |
| detail | object | – | – |
| error_type | string | – | – |
| experiences | array | – | – |
| message | string | – | – |
| pagination | object | – | – |
| request_id | string | – | – |
| results | array | – | – |
| schema_version | string | – | – |
No examples provided.
How do I install the tickadoo Experiences and Events MCP server?
tickadoo Experiences and Events is a hosted endpoint at https://mcp.tickadoo.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.tickadoo.com
claude mcp add --transport http tickadoo-tickadoo-mcp 'https://mcp.tickadoo.com/mcp'
What is the tickadoo Experiences and Events MCP server?
tickadoo Experiences and Events is an MCP server listed in the public MCP registry as io.github.tickadoo/tickadoo-mcp. Discover and book theatre, tours, attractions, and live experiences worldwide. No API key required. This page covers its hosted endpoint (https://mcp.tickadoo.com/mcp).
Is the tickadoo Experiences and Events MCP server safe to use?
tickadoo Experiences and Events scores 86 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the tickadoo Experiences and Events MCP server expose?
tickadoo Experiences and Events exposes 27 tools: search_experiences, search_local_experiences, find_nearby_experiences, whats_on_tonight, get_last_minute, and 22 more. Their descriptions and schemas cost roughly 6,521 tokens of context every time the server is loaded.
Does the tickadoo Experiences and Events MCP server require authentication?
No. We connected to tickadoo Experiences and Events without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the tickadoo Experiences and Events MCP server still maintained?
tickadoo Experiences and Events is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the tickadoo Experiences and Events MCP server?
VerifyMCP ran 14 checks on tickadoo Experiences and Events, covering TLS certificate, Authorization, HTTPS, HSTS header and 10 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.