Viator
by Viator
Viator's experiences connector exposes 2 read-only tools with no sign-in — search tours and activities, then pull details on one. Its real surface is an MCP Apps widget the directory listing never shows. Verified live 2026-08-18.
Verified connector
Listed by Anthropic as a partner connector in its Connectors Directory.
Connection checked by Agentman on .
Anthropic states this reflects the level of review a connector received, not a security audit.
Connect Viator via MCP
https://exp-app-mcp.prod.ep.viator.com/mcpWorks in any MCP-compatible client. In Agentman Studio it is one click — no config file to edit.
Viator Tools & Capabilities (2)
Retrieves enriched information for a specific Viator experience, including detailed descriptions, highlights, imagery, pricing, duration, key features, and the click-out URL.The model should call this tool only when the user clearly refers to a specific experience—either by selecting it in the UI or by asking follow-up questions such as “Tell me more about…”;if multiple experiences were shown, the model must resolve ambiguity by asking which one the user means. This tool is intended for deepening experience understanding rather than search, and should only be invoked with a code previously returned by search_experiences.
Retrieves a curated list of Viator experiences based on a free-text search of what the user wants (destination, activity type, and preferences), plus trip dates and optional refiners (budget, duration, etc.). The model must supply a non-blank searchTerm as natural language describing where and what the user is looking for (e.g. "walking tours in Paris, France", "kid friendly food experiences in Rome"). Dates, prices, duration limits, and currency belong in their dedicated parameters—not inside searchTerm. The model must provide searchTerm and dates before calling this tool. The model may re-issue a refined searchExperiences call whenever the user adds, removes, or adjusts refinement criteria (e.g., kid-friendly, price range, shorter duration) to narrow or improve the results. If the tool returns zero results, the model must proactively guide the user toward a successful refinement. It should review the parameters used in the failed request and recommend the most appropriate based on the proposed logic:" If > 1 categories applied, suggest removing some categories. Eg: “It looks like those categories combined are too restrictive. Would you like to narrow it down?” If the query requests a specific feature (eg private tour), suggest removing this constraint. Eg: “Private tours may be limited in this area, would you like to consider group options too?” If duration (avg from/to) > XX, suggest trying a shorter duration. If duration (avg from/to) < XX, suggest trying a longer duration. If price constraint was applied, suggest widening (or removing) price limits. Else, suggest broaden location search. Eg: “Nothing matches in central Siena, should we try Tuscany or nearby towns?”
Read from the server on 2026-08-18, including each tool's own safety annotations.
Limits
- No booking, no payment, no availability hold. Both tools are read-only. Every result carries a click-out URL to viator.com, and that is where the journey continues.
- Two tools is the whole surface. There is no browse-by-destination tool, no category listing and no lookup by product name. The only way to a
codeis through a search. - The docs say
endDateis optional; the live schema requires it. Following the documentation literally produces a rejected call. Send both dates. - No prompts capability.
prompts/listreturns-32601, method not found. This is absence, not an empty list. resources/templates/listreturns an empty array. The oneresourcescapability the server declares is populated by a concrete resource only; there is no URI template to expand.- The MCP App is invisible in the directory listing. Anthropic's entry sets
has_mcp_app: trueand carries no resource field. Nothing in the listing tells you the widget exists atui://mcp/experiences, what MIME type it uses or what its CSP permits. - Widget rendering depends on your client. The resource uses the Claude MCP Apps profile
text/html;profile=mcp-app. A client that does not implement MCP Apps gets no widget, and the server's own instruction to keep replies to one sentence means you may see very little text either. - The CSP allowlist is a declaration, not an enforcement guarantee.
_meta.ui.cspstates which hosts the widget asks to reach. Enforcement is the host client's responsibility, and nothing in it constitutes a security audit of the bundled code. - The resource description instructs the model. It tells the model not to restate results, to ask only for refinements and to answer in a single sentence. Anyone evaluating this connector should read that as server-authored behaviour shaping, not as neutral metadata.
- Rate limits exist but are unpublished. Viator's docs describe limits as generous and give no figure, no window and no quota. The stated failure mode is an error asking you to retry after a number of seconds. We observed no
429and did not test the limit. - High-volume use requires contacting Viator. The documentation asks integrations with unusually high call volumes to reach out before going live. It names no threshold.
sessionIdis mandatory on both tools and is your client's responsibility. Nothing generates it for you at the protocol layer. A client that omits it, or that mints a new one per call, breaks the search-to-detail join.- Errors arrive inside HTTP 200. Viator's docs state that most errors come back as MCP errors with
isErrorset and a human-readable message. A client checking HTTP status alone will read failures as successes. languageonget_experience_detailsis deprecated. Its own schema says not to send it. Uselocale.- Detail pricing is conditional on
currency. Omit the currency and the pricing fields are not returned at all, per the schema. limitcaps at 10, defaults to 5. The schema also states it must not be used to interpret user intent.- Not listed for Claude Desktop or Claude Code. The directory's
works_withnamesclaudeandclaude-apionly, while publishing a Claude Code install command. - We called no tool. Our probe was
initialize,tools/list,prompts/list,resources/list,resources/templates/listand oneresources/read. Every behavioural claim above comes from the schemas, the resource, Viator's documentation or the directory.
Frequently asked questions
Does the Viator MCP server need an account or an API key?
No. We opened an anonymous handshake against the endpoint on 2026-08-18 and the server returned both tool definitions and its resource listing without a credential and without an authentication challenge. Anthropic's directory records the connector as no-auth. The docs live on Viator's partner-API host but describe no key, no header and no partner onboarding step for this server.
Can you book a tour through the Viator MCP server?
No. Both tools are annotated readOnlyHint true and destructiveHint false, and neither schema accepts a traveller name, a party size, a payment reference or a booking instruction. What you get instead is a click-out URL on every result. The connector shortlists experiences and hands you a link; the transaction happens on viator.com.
Why must every Viator tool call carry a sessionId?
Because Viator ties both tools together with conversation state your client has to keep. Each schema marks sessionId mandatory and describes it as a UUID for the current conversation, reused until the user opens a new chat. The search response echoes it back, and get_experience_details expects the same value so the detail lookup joins the search that produced it.
Why can't I ask Viator about a hotel, a flight or a refund?
Because Viator's own documentation rules those out. Its MCP tool contract lists four cases where the model should not invoke the tool: logistics questions such as visas, weather and transport; hotel, restaurant or flight recommendations; Viator booking support such as refunds and cancellations; and a query naming a landmark rather than a destination. The connector covers bookable experiences only.
What does the Viator MCP App widget actually do?
It renders the search results as an interactive list the user can click. The server publishes it as one resource at ui://mcp/experiences with the MIME type text/html;profile=mcp-app, and search_experiences points at it through _meta.ui.resourceUri. We read the resource on 2026-08-18 and it returned roughly 870 KB of self-contained HTML with no external script.
Which domains can the Viator widget talk to?
Only Viator's, plus two CDNs. The resource's own _meta declares a CSP allowlist: connectDomains is https://*.viator.com alone, and resourceDomains adds https://cache.vtrcdn.com and https://*.tripadvisor.com. So the widget can make network calls to Viator hosts only, and can load images and assets from Viator or Tripadvisor CDNs. Nothing else is permitted.
Does the Viator MCP server offer prompts?
No, and the distinction matters. The server does not declare a prompts capability in its initialize response, and prompts/list returns JSON-RPC error -32601, method not found. That is absence, not an empty list. Anthropic's directory also records zero prompt names, so listing and server agree. Resources are the only non-tool surface here.
What happens when a Viator search returns nothing?
The server tells the model how to recover rather than returning a bare empty list. Both the live tool description and Viator's documentation prescribe the same ladder: drop a restrictive feature such as private tours, widen or remove price limits, adjust the duration, and failing all that broaden the location. The stated aim is a refinement suggestion, never a dead end.
Is there a rate limit on the Viator MCP server?
Yes, but Viator publishes no number. Its documentation states that limits exist, calls them generous, and says most integrations will not notice them. On breach the server returns a message asking you to retry after a stated number of seconds, and Viator recommends exponential backoff. High-volume users are told to contact the team before going live.
Sources
- Live
initialize,tools/list,prompts/list,resources/list,resources/templates/listandresources/readrequests againsthttps://exp-app-mcp.prod.ep.viator.com/mcp(2026-08-18). All returned HTTP 200 anonymously;prompts/listreturned JSON-RPC-32601. Source for the tool count, every schema and annotation claim, the declared capabilities, the absent prompts capability, theexperiences-mcpserver name, the widget resource with its MIME type, CSP allowlist and description, and the auth posture. Schemas cached atdocs/marketing/data/tool-schemas/viator.tools.json. · retrieved 2026-08-18 - Viator, "MCP Tool Contract — Viator Experiences" (retrieved 2026-08-18; HTTP 200,
last-modified2026-07-14). ThedocumentationURL published in Anthropic's directory entry. Source for the published endpoint, the when-to-use and when-not-to-use rules, the request and response field tables, the empty-results ladder, the rate-limit statement, the high-volume contact request, the error-inside-HTTP-200 behaviour and the MCP App paragraph.https://docs.viator.com/robots.txt(retrieved 2026-08-18; HTTP 200) disallows four/partner-api/*/technical/paths and permits/partner-api/mcp/. Nollms.txtorsitemap.xmlis served on that host — both return HTTP 403. · retrieved 2026-08-18 - Anthropic Connectors Directory entry for Viator — , read from the committed snapshot
docs/marketing/data/anthropic-directory-2026-08-16.json. Source for the partner tier, the endpoint,streamable-http, the productivity category, the two listed tool names, the empty prompt-name list, theno_authposture,has_mcp_app: true, theworks_withlist, the Claude Code install string, the read-only permissions label and the connector description. · retrieved 2026-08-16 - Agentman connector page for Tripadvisor —
docs/marketing/mcp-pages/tripadvisor.mdx. Source for the comparison table's Tripadvisor column, itself built from a live handshake on 2026-08-18. · retrieved 2026-08-18 - Viator privacy policy — , and support — , the URLs published in Anthropic's directory entry. Listed for reference; not cited for any claim on this page. We fetched no page under
www.viator.com— itsrobots.txtis served behind a bot-management interstitial that returns HTTP 403 to a plain client, so we could not read its policy and did not fetch past it.
Use in Agentman
Connect once and your agents call these tools on their own — on a schedule, in a workflow, with nobody at the keyboard.
Open in Agentman StudioServer Info
- Category
- Productivity
- Developer
- Viator
- Tools
- 2
- Domain
- exp-app-mcp.prod.ep.viator.com
Using Claude Desktop or another MCP client? Setup docs — the connection URL above works anywhere.