Back to Browse

Viator MCP Server

Developer ToolsModerate7.0Local
Free

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

About

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

Security Report

7.0
Moderate7.0Moderate Risk

This MCP server for the Viator Partner API is well-engineered with strong authentication practices, proper input validation, and appropriate permission scoping. The code demonstrates good security hygiene including deferred credential error handling, rate-limit compliance, and careful URL path validation. Minor code quality observations exist but do not constitute security concerns. Supply chain analysis found 2 known vulnerabilities in dependencies (0 critical, 1 high severity). Package verification found 1 issue.

7 files analyzed · 6 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Viator Partner API key (exp-api-key) — free Basic Access affiliate signup at partnerresources.viator.comRequired

Environment variable: VIATOR_API_KEY

Accept-Language for response text, e.g. en-US, es, fr, de, ja (default en-US)Optional

Environment variable: VIATOR_LANGUAGE

Seconds to cache identical read responses (default 60; 0 disables)Optional

Environment variable: VIATOR_CACHE_TTL

Seconds to cache reference data — destinations, tags, locations, rates (default 3600; 0 disables)Optional

Environment variable: VIATOR_STATIC_CACHE_TTL

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-chrischall-viator-mcp": {
      "env": {
        "VIATOR_API_KEY": "your-viator-api-key-here",
        "VIATOR_LANGUAGE": "your-viator-language-here",
        "VIATOR_CACHE_TTL": "your-viator-cache-ttl-here",
        "VIATOR_STATIC_CACHE_TTL": "your-viator-static-cache-ttl-here"
      },
      "args": [
        "-y",
        "@chrischall/viator-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

viator-mcp

npm

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

AreaTools
Productsvt_search_products, vt_get_product, vt_list_product_tags
Searchvt_search_freetext
Attractionsvt_search_attractions, vt_get_attraction
Availabilityvt_get_availability_schedule
Referencevt_list_destinations, vt_get_locations, vt_get_exchange_rates

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

VariableRequiredDescription
VIATOR_API_KEYyesViator Partner API key (sent as exp-api-key)
VIATOR_API_BASE_URLnoAPI host (default production; set https://api.sandbox.viator.com/partner for a sandbox key)
VIATOR_LANGUAGEnoAccept-Language for response text (default en-US)
VIATOR_CACHE_TTLnoSeconds to cache identical reads (default 60; 0 disables)
VIATOR_STATIC_CACHE_TTLnoSeconds 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

Reviews

No reviews yet

Be the first to review this server!