io.github.chrischall/viator-mcp
Search Viator tours and activities — products, availability, attractions, destinations.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
@chrischall/viator-mcpclaude mcp add viator-mcp -e 'VIATOR_API_KEY=<your viator_api_key>' -e 'VIATOR_API_BASE_URL=<VIATOR_API_BASE_URL>' -e 'VIATOR_LANGUAGE=<VIATOR_LANGUAGE>' -e 'VIATOR_CACHE_TTL=<VIATOR_CACHE_TTL>' -e 'VIATOR_STATIC_CACHE_TTL=<VIATOR_STATIC_CACHE_TTL>' -- npx -y @chrischall/viator-mcp@2.1.10
{
"mcpServers": {
"viator-mcp": {
"command": "npx",
"args": [
"-y",
"@chrischall/viator-mcp@2.1.10"
],
"env": {
"VIATOR_API_KEY": "<your viator_api_key>",
"VIATOR_API_BASE_URL": "<VIATOR_API_BASE_URL>",
"VIATOR_LANGUAGE": "<VIATOR_LANGUAGE>",
"VIATOR_CACHE_TTL": "<VIATOR_CACHE_TTL>",
"VIATOR_STATIC_CACHE_TTL": "<VIATOR_STATIC_CACHE_TTL>"
}
}
}
}
Environment variables
VIATOR_API_KEYrequired secret Viator Partner API key (exp-api-key) — free Basic Access affiliate signup at partnerresources.viator.comVIATOR_API_BASE_URLAPI host (default production; set https://api.sandbox.viator.com/partner for a sandbox key)VIATOR_LANGUAGEAccept-Language for response text, e.g. en-US, es, fr, de, ja (default en-US)VIATOR_CACHE_TTLSeconds to cache identical read responses (default 60; 0 disables)VIATOR_STATIC_CACHE_TTLSeconds to cache reference data — destinations, tags, locations, rates (default 3600; 0 disables)
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
viator-mcp
MCP server for the Viator Partner API (v2) — search tours, activities and experiences for Claude. Search the catalog with structured filters or free text, get product details and availability schedules, browse attractions and destinations, all over stdio.
Developed and maintained by AI (Claude Code). Use at your own discretion.
Quick start
{
"mcpServers": {
"viator": {
"command": "npx",
"args": ["-y", "@chrischall/viator-mcp"],
"env": { "VIATOR_API_KEY": "your-viator-partner-api-key" }
}
}
}
Get a key by signing up as a Viator affiliate at partnerresources.viator.com — the Basic Access tier is free. This server targets that tier: read-only search/content/availability; no booking endpoints (product results carry a productUrl for booking on viator.com, tagged with your affiliate id).
Tools
| Area | Tools |
|---|---|
| Products | vt_search_products, vt_get_product, vt_list_product_tags |
| Search | vt_search_freetext |
| Attractions | vt_search_attractions, vt_get_attraction |
| Availability | vt_get_availability_schedule |
| Reference | vt_list_destinations, vt_get_locations, vt_get_exchange_rates |
| Health | vt_healthcheck — is this connector working? Reports whether VIATOR_API_KEY resolved, whether Viator accepted it, and what to fix. Start here when another tool fails: an empty result can mean "no products" or "never authenticated". |
All tools are read-only. vt_search_products and vt_search_freetext accept compact: true for slim summaries (code, title, price, rating, booking URL) instead of full records.
Environment
| Variable | Required | Description |
|---|---|---|
VIATOR_API_KEY | yes | Viator Partner API key (sent as exp-api-key) |
VIATOR_API_BASE_URL | no | API host (default production; set https://api.sandbox.viator.com/partner for a sandbox key) |
VIATOR_LANGUAGE | no | Accept-Language for response text (default en-US) |
VIATOR_CACHE_TTL | no | Seconds to cache identical reads (default 60; 0 disables) |
VIATOR_STATIC_CACHE_TTL | no | Seconds to cache reference data — destinations, tags, locations, exchange rates (default 3600) |
Viator rate-limits per endpoint on a rolling 10-second window and answers 429/503 with Retry-After; the client honors it (one retry) and the response cache absorbs repeated identical calls.
Development
npm install
npm test # vitest; no real network calls
npm run build # tsc + esbuild bundle
The API surface this server is coded against is pinned in docs/VIATOR-API.md.
License
MIT
Frequently asked questions
What is io.github.chrischall/viator-mcp?
Search Viator tours and activities — products, availability, attractions, destinations.
How do I install io.github.chrischall/viator-mcp?
It runs on your machine. In Claude Code: claude mcp add viator-mcp -e 'VIATOR_API_KEY=<your viator_api_key>' -e 'VIATOR_API_BASE_URL=<VIATOR_API_BASE_URL>' -e 'VIATOR_LANGUAGE=<VIATOR_LANGUAGE>' -e 'VIATOR_CACHE_TTL=<VIATOR_CACHE_TTL>' -e 'VIATOR_STATIC_CACHE_TTL=<VIATOR_STATIC_CACHE_TTL>' -- npx -y @chrischall/viator-mcp@2.1.10. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.chrischall/viator-mcp need an API key?
Yes. It expects VIATOR_API_KEY, which you set in its configuration.
Is io.github.chrischall/viator-mcp open source?
Its code is public on GitHub, but the repository does not declare a standard license.
Who maintains io.github.chrischall/viator-mcp?
It is published by chrischall. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.