Skip to main content
Glama
chrischall
by chrischall

vt_search_freetext

Read-only

Search Viator tours, activities, and destinations by free text when you lack a destination ID. Filter results by price, rating, dates, and sort order to find matching experiences.

Instructions

Free-text search across Viator products, attractions, and destinations (e.g. "colosseum underground tour"). The fastest way to find things when you don't have a destination id yet.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNoProduct sort key
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact (default) projects the PRODUCT results down to their product code, title, from-price and currency, rating, review count, duration, confirmation type, flags, booking URL and cover image and strips image/avatar URLs from the attraction and destination results; "full" returns Viator's payload untouched.
countNoResults per page per type (max 50; default 10)
orderNoSort direction
startNo1-based index of the first result (per type)
currencyNoCurrency for request/response prices (default USD)USD
end_dateNoOnly products operating on/before this date (YYYY-MM-DD)
max_priceNoMaximum product from-price (in currency)
min_priceNoMinimum product from-price (in currency)
min_ratingNoMinimum average traveler rating (0-5)
start_dateNoOnly products operating on/after this date (YYYY-MM-DD)
destinationNoRestrict product results to a destination id
search_termYesFree-text search term
search_typesNoWhich result types to return (default: PRODUCTS only)
campaign_valueNoAffiliate campaign tracking id — appended to the productUrl/attractionUrl/destinationUrl Viator returns

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changedv1.2.1
    • removedInput schema / properties / compact
      Removed value: -{
      -  "default": false,
      -  "description": "Return slim product summaries instead of full records",
      -  "type": "boolean"
      -}
    • addedInput schema / properties / view
      Added value: +{
      +  "description": "Response shape: \"compact\" (default) drops fields the response already carries elsewhere; \"full\" returns every field this server understands. compact (default) projects the PRODUCT results down to their product code, title, from-price and currency, rating, review count, duration, confirmation type, flags, booking URL and cover image and strips image/avatar URLs from the attraction and destination results; \"full\" returns Viator's payload untouched.",
      +  "enum": [
      +    "compact",
      +    "full"
      +  ],
      +  "type": "string"
      +}
  2. First observedv1.0.5

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds little behavioral detail beyond confirming it searches multiple entity types and is fast, but it doesn't describe pagination defaults, result limits, or the fact that search semantics are free-text rather than exact-match. There is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. It front-loads the core purpose, includes a helpful example, and immediately adds the routing condition ('when you don't have a destination id yet'). Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity and the very rich input-schema descriptions that cover every parameter, the concise description is sufficient for an agent to select and invoke the tool. It does not describe return shape, but the schema's 'view' parameter already explains compact vs. full response behavior, so this is not a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline applies: all 15 parameters have descriptive text, enums, defaults, and constraints in the schema. The tool description itself adds no parameter-level meaning, but because the schema is thorough, the description does not need to compensate. This is a standard case where the structured schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('search'), a clear resource scope ('Viator products, attractions, and destinations'), and gives a concrete example query. It also distinguishes this tool from structured searches by emphasizing free-text and the 'don't have a destination id yet' use case, which separates it from sibling tools like vt_search_products and vt_search_attractions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear guidance: use this tool for free-text discovery when you lack a destination id. It implies that structured search tools are the alternative once an id is known, though it doesn't explicitly name those siblings or state when not to use this tool. The condition is clear enough for an agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrischall/viator-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server