Public leaderboard

Public assessment

tickadoo/tickadoo-mcp (@tickadoo/mcp-server)

tickadoo-mcp-server · v1.4.2 · scanned

What changed in the harness

Selection accuracy 88→91, token cost up 3%, unconfirmed writes 100%→100%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

30.0 / 30

30.0 out of 30
02Legibility

23.4 / 30

23.4 out of 30
03Economics

16.5 / 20

16.5 out of 20
04Discoverability

16.0 / 20

16.0 out of 20

Highest-impact fix

Estimated gain +1 point

Rewrite 8 underspecified tool descriptions

State each tool's behavior, explain every parameter, and declare return semantics, prioritizing tools exercised by failed selection tasks.

Description evidence

Defects and rewrites.

8 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
search_experiences
no_return_description
Search for shows, theatre, events, tours and experiences in a specific city on tickadoo. Supports optional free-text query matching against titles and descriptions, optional category filtering (theatre, musicals, tours, food, family, nightlife, sightseeing, concerts, comedy, shows, outdoor, workshops, cruises, sports), optional min/max price filtering in the local currency, optional date filtering with dateFrom/dateTo, and optional sorting (relevance, popular, price_low, price_high, rating, best_value). Returns the matching experiences with their titles, descriptions, prices, and localised booking URLs, honouring the applied filters, pagination (max_results, offset), and sort order. Supports 40+ languages — pass a language code (e.g. 'de', 'fr', 'es', 'ja') to get localised booking URLs. Use when a user asks what to do in a city, wants event/show recommendations, or is looking for tickets.
search_by_mood
no_return_description
Search tickadoo experiences by emotional intent instead of category. Maps moods (adventurous, romantic, relaxing, family_fun, cultural, thrill_seeking, foodie, budget_friendly, luxury, rainy_day) to the most relevant audience, tag, setting, rating, and price filters, then runs a city search. Returns a curated list of experiences that fit the chosen mood, with titles, descriptions, prices, and localised booking URLs. Supports 40+ languages — pass a language code (e.g. 'de', 'fr', 'es', 'ja') to get localised booking URLs. Use when a user says things like "something romantic", "we need to relax", "kids are bored", or "luxury options in Paris".
get_last_minute
no_return_description
Find tickadoo experiences starting within the next few hours in a city. Returns a list of imminent experiences sorted by soonest start time, each with countdown text like "starts in 47 minutes", and flags high urgency when a start is imminent or inventory is low. Supports 40+ languages — pass a language code (e.g. 'de', 'fr', 'es', 'ja') to get localised booking URLs.
whats_on_tonight
no_return_description
Find bookable experiences happening later today in a city. Automatically filters to today, removes already-started events, and returns a list of tonight's options sorted by soonest start time with evening/show/nightlife boosts, each with "starts in" countdowns and urgency signals from inventory data. Supports 40+ languages — pass a language code (e.g. 'de', 'fr', 'es', 'ja') to get localised booking URLs. Use for concierge-style requests like "what's on tonight in London?" or "any shows tonight in Paris?".
find_nearby_experiences
params_unexplained no_return_description
Find shows, events and experiences near a geographic location on tickadoo. The latitude and longitude parameters define the reference point (typically the user's location) around which to search, with radius_km controlling how far out to look. Returns a list of matching experiences with titles, descriptions, prices, and localised booking URLs. Supports optional date filtering with dateFrom/dateTo. Supports 40+ languages — pass a language code (e.g. 'de', 'fr', 'es', 'ja') to get localised booking URLs. Use when a user shares their location or asks for things to do near them.
list_cities
name_restates_behavior no_return_description
Return the cities where tickadoo has bookable experiences, useful for destination discovery and for confirming which cities a later search supports. Returns a list of city names and slugs, optionally filtered by a name or slug substring via the query parameter, capped by the limit parameter, and localised for booking URLs via the language parameter. Use to help users discover available destinations or validate a city before searching.
get_experience_details
no_return_description
Get details for a specific tickadoo experience, returning its availability calendar for the requested number of days (default 30, max 180), venue details, and images. Prefer passing the tickadoo slug or booking URL path; provider and provider_id are legacy fallback inputs. Supports 40+ languages — pass a language code (e.g. 'de', 'fr', 'es', 'ja') to get localised booking URLs.
get_family_day
no_return_description
Build a full family day in one city. Returns a chronologically ordered day itinerary with a morning activity, lunch tip, afternoon attraction, and optional evening stop, including timings and booking details. Uses kids_ages for age-aware filtering, prefers wheelchair-friendly options when toddlers make stroller access likely, and clusters the day geographically to reduce travel. Supports 40+ languages — pass a language code (e.g. 'de', 'fr', 'es', 'ja') to get localised booking URLs.

Selection evidence

Confusable tool pairs.

8 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
search_experiences search_by_mood medium A request like 'something romantic in Paris' or 'relaxing things to do in Tokyo' can be handled either by passing 'romantic'/'relaxing' as a free-text query to search_experiences or by using the mood parameter of search_by_mood; both are city-based search tools returning the same kind of results, so a mood-word query is genuinely ambiguous.
get_whats_on_this_week whats_on_tonight high 'What's happening in London today?', 'any shows on this evening?', or 'events this week' sit on the boundary between the two: get_whats_on_this_week returns a day-by-day 7-day breakdown (including today/tonight slots) while whats_on_tonight is dedicated to later today, and their descriptions overlap heavily on time-window phrasing.
get_city_guide get_travel_tips medium A user asking 'what should I know before visiting Tokyo' or 'give me tips for Paris' maps to get_travel_tips (its own example trigger), but get_city_guide also advertises a 'pre-arrival city briefing' with 'insider tips', so the intended tool is unclear from surface phrasing.
search_experiences compare_experiences medium A task like 'compare the top theatre experiences in London' or 'which of these shows is best value' can be read as discover-then-compare; 'compare' points to compare_experiences while search_experiences (with sorting) could also be invoked to get a comparison-like ranking, and neither alone fully satisfies without the other.
search_experiences find_nearby_experiences medium Requests that mix area and city, e.g. 'shows near the Eiffel Tower' or 'experiences near my hotel in Paris', are ambiguous: search_experiences takes a city and free-text query while find_nearby_experiences takes coordinates, and the agent may pick either to satisfy a location-flavoured 'things to do around here' request.
get_travel_tips get_transfer_info medium 'How do I get around Paris' or 'what's the best way from the airport to the hotel' overlaps: get_transfer_info gives specific hub-to-hotel routes while get_travel_tips covers a transport topic, so a generic transport/airport question may route to the wrong tool.
get_experience_details compare_experiences low A task like 'show me details for these two London shows side by side' could be met by fetching details for each experience or by calling compare_experiences; both operate on specific experiences, though compare's explicit slugs array somewhat disambiguates.
search_experiences get_experience_details low When a user names a specific experience ('details on the London Dungeon', 'the ghost tour available dates') without giving a slug, the agent may call search_experiences to locate it instead of get_experience_details, since the descriptions distinguish discovery from details but the natural phrasing doesn't.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard