io.github.chrischall/getyourguide-mcp

Official registry Search and web

GetYourGuide tours & activities for Claude — search, details, options, and reviews

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).

NPM package getyourguide-mcp
Claude Code
claude mcp add getyourguide-mcp -e 'GYG_API_KEY=<your gyg_api_key>' -e 'GYG_CURRENCY=<GYG_CURRENCY>' -e 'GYG_LANGUAGE=<GYG_LANGUAGE>' -e 'GYG_BASE_URL=<GYG_BASE_URL>' -e 'GYG_REQUEST_TIMEOUT_MS=<GYG_REQUEST_TIMEOUT_MS>' -- npx -y getyourguide-mcp@2.1.8
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "getyourguide-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "getyourguide-mcp@2.1.8"
            ],
            "env": {
                "GYG_API_KEY": "<your gyg_api_key>",
                "GYG_CURRENCY": "<GYG_CURRENCY>",
                "GYG_LANGUAGE": "<GYG_LANGUAGE>",
                "GYG_BASE_URL": "<GYG_BASE_URL>",
                "GYG_REQUEST_TIMEOUT_MS": "<GYG_REQUEST_TIMEOUT_MS>"
            }
        }
    }
}

Environment variables

  • GYG_API_KEY required secret Your GetYourGuide Partner API key (X-ACCESS-TOKEN). Get one by joining the GetYourGuide partner program at partner.getyourguide.com.
  • GYG_CURRENCY Default currency for prices (ISO 4217, e.g. USD or EUR). Optional — individual tool calls can override it.
  • GYG_LANGUAGE Default content language (e.g. en, de). Optional — individual tool calls can override it.
  • GYG_BASE_URL API base URL (default `https://api.getyourguide.com/1`)
  • GYG_REQUEST_TIMEOUT_MS Per-request timeout (default 30000)

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. getyourguide-mcp
  2. Tools
  3. Setup
  4. Behavior notes
  5. Development
  6. License

getyourguide-mcp

MCP server for GetYourGuide — search tours and activities, read tour details, bookable options, and reviews via the GetYourGuide Partner API.

🤖 This project was developed and is maintained by AI (Claude Code). Use at your own discretion.

Tools

All tools are read-only — this server registers no write tools.

ToolWhat it does
gyg_search_toursSearch tours/activities by free text, location, category, or date range; sortable; view
gyg_get_tourFull record for one tour by numeric ID; view
gyg_get_tour_optionsBookable options of a tour (ticket types, times), optionally within a date range; view
gyg_get_tour_availabilityBooking availability of a tour: participant categories, addons, available dates; view
gyg_get_tour_reviewsCustomer reviews for a tour; view
gyg_list_categoriesActivity categories (IDs feed gyg_search_tours / gyg_list_category_tours); view
gyg_list_category_toursTours in one category; view
gyg_get_locationDetails for a location (city, POI, region) by ID; view
gyg_list_location_toursTours available at one location; view
gyg_healthcheckVerify credentials and upstream reachability; reports failures as data, not exceptions
view — response shape

Every data tool takes view: "compact" | "full", and compact is the default. An efficiency that has to be asked for is one that usually is not, so it is not opt-in — the old compact: true flag on gyg_search_tours is gone.

  • compact — on the three tour LISTINGS it returns the documented slim projection (tour_id, title, abstract, url, price, overall_rating, number_of_ratings, durations, categories, locations), flattened to { _metadata, tours }. On gyg_get_tour — one record, no listing envelope to project — and on every other tool (options, availability, reviews, categories, location) — it instead strips image URLs and keeps everything else.
  • full — GetYourGuide's whole validated record, untouched.

Reach for full when you need a field the projection does not carry (picture variants, coordinates, marketing copy). Every response is minified JSON either way: formatting whitespace is dropped, whitespace inside a value is not.

Setup

You need a GetYourGuide Partner API key — join the (free) partner program at partner.getyourguide.com and copy the API key from your dashboard. The key is sent as the X-ACCESS-TOKEN header on every request.

Claude Code / any MCP host
{
  "mcpServers": {
    "getyourguide": {
      "command": "npx",
      "args": ["-y", "getyourguide-mcp"],
      "env": {
        "GYG_API_KEY": "your-partner-api-key"
      }
    }
  }
}

The server also boots with no key set (so hosts can probe tools/list at install time); the first tool call then returns an actionable error telling you which env var to set.

Environment variables
VariableRequiredMeaning
GYG_API_KEYyes (for tool calls)Partner API key, sent as X-ACCESS-TOKEN
GYG_CURRENCYnoDefault currency for prices (ISO 4217; falls back to USD — the API requires one); per-call currency args override
GYG_LANGUAGEnoDefault content language (falls back to en — the API requires one); per-call language args override
GYG_BASE_URLnoAPI base URL (default https://api.getyourguide.com/1)
GYG_REQUEST_TIMEOUT_MSnoPer-request timeout (default 30000)

For local development, put them in a .env next to the server (gitignored; see .env.example).

Behavior notes

  • Rate limits: one automatic retry on 429/503 honoring Retry-After (capped at 10s). If it still fails, the error tells you to back off.
  • Timeouts & network failures: a request that exceeds GYG_REQUEST_TIMEOUT_MS, or never reaches the API (DNS, refused, reset), comes back as a tool error naming the request path, with a hint to raise the timeout or check GYG_BASE_URL and your network. Cancelling a call is not wrapped — it stays a cancellation.
  • Empty arguments: an empty-string query param (e.g. currency: "" or language: "") is dropped rather than sent, so the env default / USD / en fallback applies instead of the API rejecting a blank value.
  • Auth errors: a 401/403 names both possible causes — a wrong key, or a key whose partner tier doesn't cover that endpoint.
  • API drift: responses are validated leniently. On an unexpected shape the server logs a precise warning to stderr and returns the raw response rather than breaking. See docs/GETYOURGUIDE-API.md — routes and request shapes are live-verified against the API and its official OpenAPI spec; real 200 bodies still need pinning from a keyed capture.
  • extraParams: gyg_search_tours and gyg_get_tour_options accept extraParams to pass raw query params the schema doesn't model. A key that collides with one of the tool's own arguments (limit, offset, currency, cnt_language, q, …) is ignored — the typed argument, or its default, always wins. (Before 2.1.6 extraParams overrode them.)
  • Secrets: upstream error bodies are redacted then truncated before they reach a tool result; the API key is never echoed.

Development

npm install
npm run build          # tsc + esbuild bundle → dist/
npm test               # tsc typecheck + vitest (no network — everything mocked)
npm run test:coverage  # tsc typecheck + the CI gate: 100% lines/branches/functions/statements

Releases are automated with release-please; don't hand-bump versions. PR titles must be conventional commits (feat:, fix:, …) because the repo squash-merges.

License

MIT

Frequently asked questions

What is io.github.chrischall/getyourguide-mcp?

GetYourGuide tours & activities for Claude — search, details, options, and reviews

How do I install io.github.chrischall/getyourguide-mcp?

It runs on your machine. In Claude Code: claude mcp add getyourguide-mcp -e 'GYG_API_KEY=<your gyg_api_key>' -e 'GYG_CURRENCY=<GYG_CURRENCY>' -e 'GYG_LANGUAGE=<GYG_LANGUAGE>' -e 'GYG_BASE_URL=<GYG_BASE_URL>' -e 'GYG_REQUEST_TIMEOUT_MS=<GYG_REQUEST_TIMEOUT_MS>' -- npx -y getyourguide-mcp@2.1.8. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.chrischall/getyourguide-mcp need an API key?

Yes. It expects GYG_API_KEY, which you set in its configuration.

Is io.github.chrischall/getyourguide-mcp open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.chrischall/getyourguide-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.