# viator-mcp [Health: Active]

**Category:** 🚆 Travel & Transportation  
**Repository:** https://github.com/chrischall/viator-mcp  
**GitHub Stars:** 1  
**npm Downloads (last month):** 2294  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/viator-mcp

## Description
Search Viator tours and activities — products, availability, attractions, destinations.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "viator-mcp": {
    "command": "npx",
    "args": ["-y","@chrischall/viator-mcp"],
    "env": {
      "VIATOR_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `VIATOR_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What the viator-mcp MCP server does

The viator-mcp MCP server exposes the Viator Partner API v2 through MCP tools. It is designed for read-only discovery and content retrieval rather than transaction processing. Agents can search tours, activities, and experiences using structured filters or free text, then inspect individual products and their availability schedules.

The server also covers Viator reference data and attractions. It can find attractions, retrieve attraction details, list destinations, retrieve locations, list product tags, and obtain exchange rates. Product search results can include a Viator booking URL carrying the affiliate identifier, but the server does not provide booking endpoints.

## How it works

The server communicates over stdio. An MCP client starts the package with `npx`, and the process uses the `VIATOR_API_KEY` environment variable to authenticate requests to Viator. The key is sent as the `exp-api-key` header expected by the Partner API.

Search tools support a `compact` option. When enabled for product or free-text searches, responses are reduced to fields such as the product code, title, price, rating, and booking URL instead of returning full records.

The viator-mcp MCP server caches identical read requests for a configurable period. Reference responses, including destinations, tags, locations, and exchange rates, have a separate cache duration. When Viator returns rate-limit or temporary-service responses with `Retry-After`, the client observes that value and performs one retry.

## Setup and configuration

Add the server to an MCP client using the `npx -y @chrischall/viator-mcp` command and provide a Viator Partner API key in the environment. The Basic Access tier is identified as sufficient for the server’s read-only search, content, and availability operations.

Supported configuration variables are:

- `VIATOR_API_KEY`: required Partner API key.
- `VIATOR_API_BASE_URL`: optional API host; the default is production, while the documented sandbox value is `https://api.sandbox.viator.com/partner`.
- `VIATOR_LANGUAGE`: optional response language, defaulting to `en-US`.
- `VIATOR_CACHE_TTL`: optional cache duration in seconds for identical reads; the default is `60`, and `0` disables it.
- `VIATOR_STATIC_CACHE_TTL`: optional cache duration for reference data; the default is `3600` seconds.

## Tools and capabilities

The available tools are grouped as follows:

- Products: `vt_search_products`, `vt_get_product`, and `vt_list_product_tags`.
- Search: `vt_search_freetext`.
- Attractions: `vt_search_attractions` and `vt_get_attraction`.
- Availability: `vt_get_availability_schedule`.
- Reference: `vt_list_destinations`, `vt_get_locations`, and `vt_get_exchange_rates`.
- Health: `vt_healthcheck`.

The health check reports whether the API key was found, whether Viator accepted it, and what correction may be needed. It can help distinguish an empty search result from an authentication problem.

## Limitations and notes

All tools are read-only. The server does not create bookings; agents must use the returned `productUrl` to continue booking on viator.com. Viator applies endpoint rate limits over rolling 10-second windows, so callers should account for throttling even though the client handles one retry and caches repeated requests. The API surface is pinned to the version documented by the project, and local development uses tests without real network calls.

_Full upstream README: https://allmcps.com/mcp/viator-mcp/readme_

