experiences-oracle
Server Details
Search & compare prices for tours, activities and tickets across multiple providers.
- Status
- Healthy
- Uptime
- 99.5% over 46 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
compare_experience is clearly distinct (price comparison across providers). search_experiences and get_destination_guide both surface experiences in a destination, but their descriptions differentiate use cases (specific search vs. trip planning/top picks), though some overlap remains for generic 'things to do in X' queries.
All tools use snake_case with a consistent verb_noun structure (compare_experience, get_destination_guide, search_experiences), making the pattern predictable and easy to parse.
Three tools is on the lean side for an experiences aggregator, but each tool has a clear, non-overlapping role covering search, discovery, and price comparison. Slightly under what might be expected (e.g., no details retrieval), yet well-scoped.
The core journey (discover experiences, compare prices, book via link) is covered. However, there is no tool to retrieve detailed information (itinerary, reviews, availability) for a specific experience, a minor gap that agents can partially work around via booking links.
Available Tools
3 toolscompare_experienceConfronta il prezzo tra i providerARead-onlyInspect
Confronta il prezzo della STESSA esperienza tra i provider (Viator, Tiqets, Headout) e indica dove costa meno, con un verdetto e il link di prenotazione. USA QUESTO TOOL quando l'utente vuole il MIGLIOR PREZZO per un tour/attività specifico (passa l'experience_id ottenuto da search_experiences).
Nel risultato (lo stesso testo delle azioni GPT, api/oracle_openapi):
min_people: Minimo di persone per prenotare, solo se il provider lo chiede ed è 2 o più: dillo accanto al
prezzo («minimo 2 persone»). null = nessuno o ignoto. price_from non è il totale: a persona se
price_basis=PER_PERSON, per unità se UNIT; con price_basis '' scrivi «minimo N persone» senza «a persona».
price_basis: PER_PERSON | UNIT (prezzo per veicolo/gruppo/barca) | '' = dato non fornito dal provider (oggi
disponibile sui prodotti Viator arricchiti; copertura in crescita).
price_unit: VEHICLE/GROUP/BOAT/... quando price_basis=UNIT; altrimenti ''.
Args:
experience_id: id dell'esperienza (es. "viator_12345").
query: (opzionale) la richiesta originale dell'utente — migliora
l'attribuzione del click; se assente si usa il titolo.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| experience_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true and openWorldHint=true already declared, the description adds useful behavioral context: it compares across specific providers, returns a verdict and booking link, and explains how to interpret min_people, price_basis, and price_unit. It does not contradict the annotations, though it does not cover rate limits or provider availability limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and usage guidance are front-loaded, but the description is long and spends substantial space explaining result fields despite the tool having an output schema. It also includes an internal reference ('lo stesso testo delle azioni GPT, api/oracle_openapi') that does not help an external agent select or invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only comparison tool with annotations covering safety and an existing output schema, the description supplies the missing pieces: exact purpose, when to use it, prerequisite data source, and parameter meanings. Nothing essential for correct invocation appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the parameter burden and does so well. It defines experience_id with an example format and explains that query is optional, improves click attribution, and defaults to the experience title if absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: compare the price of the SAME experience across providers and indicate the cheapest option. It also distinguishes the tool from siblings by making clear that search_experiences is the source of experience_id and that this tool specifically provides the best-price verdict.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: 'USA QUESTO TOOL quando l'utente vuole il MIGLIOR PREZZO per un tour/attività specifico'. It also states the prerequisite of passing an experience_id obtained from search_experiences. However, it does not state when not to use the tool or name an alternative comparison path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_destination_guideGuida: le migliori esperienze di una destinazioneARead-onlyInspect
Le migliori esperienze e cose da fare in una destinazione (città o paese), ordinate per qualità, con link di prenotazione. USA QUESTO TOOL quando l'utente pianifica un viaggio o chiede le TOP attività/esperienze di un posto.
Nel risultato (lo stesso testo delle azioni GPT, api/oracle_openapi):
min_people: Minimo di persone per prenotare, solo se il provider lo chiede ed è 2 o più: dillo accanto al
prezzo («minimo 2 persone»). null = nessuno o ignoto. price_from non è il totale: a persona se
price_basis=PER_PERSON, per unità se UNIT; con price_basis '' scrivi «minimo N persone» senza «a persona».
price_basis: PER_PERSON | UNIT (prezzo per veicolo/gruppo/barca) | '' = dato non fornito dal provider (oggi
disponibile sui prodotti Viator arricchiti; copertura in crescita).
price_unit: VEHICLE/GROUP/BOAT/... quando price_basis=UNIT; altrimenti ''.
Args:
place: città o paese (es. "Roma", "Giappone").
limit: numero risultati (max 30).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| place | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful interpretation rules for result fields (min_people, price_from vs price_basis/price_unit), but since an output schema exists much of this is redundant, and it never addresses auth, rate limits, or ordering guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and usage are front-loaded, but the middle block is a dense, deeply-nested set of output-formatting instructions that reads like prompt scaffolding rather than tool docs. The internal reference ('lo stesso testo delle azioni GPT, api/oracle_openapi') is noise to an MCP agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool with annotations and an output schema, the description covers purpose, trigger, arg semantics and result interpretation, which is more than sufficient. The main gap is the absence of any sibling differentiation, which matters given the near-duplicate 'search_experiences'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 0%, so the description must carry the load; it does so reasonably by defining 'place' with concrete examples ('Roma', 'Giappone') and bounding 'limit' ('max 30'). It still omits the default value and what happens with ambiguous or non-existent places, so it compensates well but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('Le migliori esperienze e cose da fare in una destinazione') and adds scope details (ordered by quality, booking links). It's clear what the tool returns, but it never distinguishes itself from the sibling 'search_experiences', which sounds strongly overlapping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit positive guidance ('USA QUESTO TOOL quando l'utente pianifica un viaggio o chiede le TOP attività/esperienze di un posto'), which directly maps a trigger scenario to this tool. However, it names no alternatives and gives no exclusions, so the agent must infer when to prefer search_experiences or compare_experience.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_experiencesCerca esperienze, tour e bigliettiARead-onlyInspect
Cerca tour, attività ed esperienze da prenotare in un luogo o per un intento
di viaggio (es. "cosa fare a Roma", "biglietti per il Colosseo", "tour in barca a
Capri"). Restituisce risultati reali con città, prezzo, rating e un link di
prenotazione (redirect PIQOD affiliato). USA QUESTO TOOL quando l'utente cerca
cose da fare, tour, attività, biglietti o esperienze in una destinazione.
IMPORTANTE per la coerenza: se l'utente nomina un'ATTRAZIONE/attività precisa
(es. "tour del Colosseo"), passa quel nome in keyword (es. "Colosseo") → i
risultati saranno SUL Colosseo, non genericamente vicini. Mappa anche gli INTENTI
sui filtri: "salta fila/skip the line" → skip_the_line=True; "più economico/cheapest"
→ sort="price"; "cancellazione gratuita" → free_cancellation=True; "con bambini/per
famiglie" → traveler_type="famiglie", "romantico/in coppia" → "coppie"; "la sera/di
notte/al tramonto" → day_part="sera", "la mattina/all'alba" → "mattina", "il
pomeriggio" → "pomeriggio".
Nel risultato (lo stesso testo delle azioni GPT, api/oracle_openapi):
min_people: Minimo di persone per prenotare, solo se il provider lo chiede ed è 2 o più: dillo accanto al
prezzo («minimo 2 persone»). null = nessuno o ignoto. price_from non è il totale: a persona se
price_basis=PER_PERSON, per unità se UNIT; con price_basis '' scrivi «minimo N persone» senza «a persona».
price_basis: PER_PERSON | UNIT (prezzo per veicolo/gruppo/barca) | '' = dato non fornito dal provider (oggi
disponibile sui prodotti Viator arricchiti; copertura in crescita).
price_unit: VEHICLE/GROUP/BOAT/... quando price_basis=UNIT; altrimenti ''.
Args:
query: intento o luogo dell'utente.
location: luogo esplicito (override di query), opzionale.
category: categoria/filtro tematico, opzionale.
budget_max: prezzo massimo, opzionale.
keyword: attrazione/attività specifica da matchare nei titoli (es. "Colosseo").
skip_the_line: True se l'utente vuole biglietti/tour "salta fila".
free_cancellation: True se vuole cancellazione gratuita.
sort: "price" per i più economici prima (default "rating").
limit: numero risultati (max 50).
traveler_type: "famiglie" | "coppie", opzionale.
day_part: "mattina" | "pomeriggio" | "sera" (quando inizia l'esperienza), opzionale.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | rating | |
| limit | No | ||
| query | Yes | ||
| keyword | No | ||
| category | No | ||
| day_part | No | ||
| location | No | ||
| budget_max | No | ||
| skip_the_line | No | ||
| traveler_type | No | ||
| free_cancellation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish readOnly, openWorld and non-destructive behavior. The description adds useful context beyond that: results are real, include city, price, rating and an affiliate booking redirect (PIQOD). It does not mention rate limits or pagination, but it goes meaningfully beyond the annotation profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and usage, but it contains a long block explaining output fields such as min_people, price_basis and price_unit. Since an output schema exists, much of that return-value detail is likely redundant and makes the definition longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter search tool, the definition is nearly complete: it covers purpose, usage triggers, parameter meanings and intent mapping. The main gap is sibling differentiation, and the return-value explanation is arguably unnecessary given the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining every one of the 11 arguments, including enum-like values for traveler_type, day_part and sort, the default and max for limit, and how keyword differs from query. The intent-to-filter mapping further clarifies how to populate filters from natural language.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: search for tours, activities and experiences to book by location or travel intent, with examples. However, it never distinguishes this tool from its siblings compare_experience or get_destination_guide, so an agent must infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use this tool when the user looks for things to do, tours, activities, tickets or experiences in a destination. It gives concrete intent-to-filter mapping, which is strong usage guidance, but it does not state when not to use it or name the alternative siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
search_experiences2 fields changed- added
Input schema / properties / day_partAdded value: +{ + "default": "", + "title": "Day Part", + "type": "string" +} - added
Input schema / properties / traveler_typeAdded value: +{ + "default": "", + "title": "Traveler Type", + "type": "string" +}
1 tool update
- Changed
compare_experience1 field changed- added
Input schema / properties / queryAdded value: +{ + "default": "", + "title": "Query", + "type": "string" +}
3 tool updates
- Changed
compare_experience1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "compare_experienceDictOutput", + "type": "object" +}
- Changed
get_destination_guide1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "get_destination_guideDictOutput", + "type": "object" +}
- Changed
search_experiences1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "title": "search_experiencesDictOutput", + "type": "object" +}
3 tool updates
- First observed
compare_experience - First observed
get_destination_guide - First observed
search_experiences
Related MCP Connectors
Find, price, and book tours, day trips, and activities worldwide, with live dates and prices.
Search and book theatre, attractions, tours across 681 cities. 13,090+ products.
Search tours, attraction tickets, and holiday packages across 24 countries.
Search and compare outdoor experiences. Public keyless API; booking and payment happen on Viator.
Related MCP Servers
- AlicenseAqualityFmaintenanceReal-time last-minute tour and activity booking across 18 suppliers in 15 countries via the OCTO open standard. Search available slots, create Stripe checkout sessions, and check booking status.41MIT
- AlicenseAqualityDmaintenanceDiscover and book theatre, shows, events, tours and experiences across 700+ cities worldwide on tickadoo® with real-time pricing and booking links.417 npm1MIT
- AlicenseBqualityAmaintenanceOfficial MCP server for MAQAMI, a hotel and flight booking platform with 3M+ hotels. Search live hotel rates and flights, look up places, airports and hotel details, then prebook and book. Remote Streamable HTTP endpoint, no API key required.12898 npm1MIT
- FlicenseNot gradedqualityDmaintenanceSearch flights, compare prices, check visas, look up airports, get travel advisories through a single endpoint.-
Glama MCP Gateway
Add one secure layer between your agents and this server.