Skip to main content
Glama
OurFamilyWizard MCP

OurFamilyWizard MCP

by chrischall

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.

Tool

What it does

gyg_search_tours

Search tours/activities by free text, location, category, or date range; sortable; view

gyg_get_tour

Full record for one tour by numeric ID; view

gyg_get_tour_options

Bookable options of a tour (ticket types, times), optionally within a date range; view

gyg_get_tour_availability

Booking availability of a tour: participant categories, addons, available dates; view

gyg_get_tour_reviews

Customer reviews for a tour; view

gyg_list_categories

Activity categories (IDs feed gyg_search_tours / gyg_list_category_tours); view

gyg_list_category_tours

Tours in one category; view

gyg_get_location

Details for a location (city, POI, region) by ID; view

gyg_list_location_tours

Tours available at one location; view

gyg_healthcheck

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

Related MCP server: OurFamilyWizard MCP

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

Variable

Required

Meaning

GYG_API_KEY

yes (for tool calls)

Partner API key, sent as X-ACCESS-TOKEN

GYG_CURRENCY

no

Default currency for prices (ISO 4217; falls back to USD — the API requires one); per-call currency args override

GYG_LANGUAGE

no

Default content language (falls back to en — the API requires one); per-call language args override

GYG_BASE_URL

no

API base URL (default https://api.getyourguide.com/1)

GYG_REQUEST_TIMEOUT_MS

no

Per-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

Available Tools

10 tools
gyg_get_locationA
Read-onlyIdempotent

Get details for a GetYourGuide location (city, POI, or region) by its numeric ID. Image URLs are stripped by default; pass view:"full" to keep them.

NameRequiredDescriptionDefault
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image URLs and keeps every other field; "full" returns GetYourGuide's whole record, image URLs included.
languageNoContent language (e.g. en, de). Defaults to GYG_LANGUAGE when set.
locationIdYesNumeric location ID.
gyg_get_tourA
Read-onlyIdempotent

Get the full GetYourGuide record for one tour/activity by its numeric ID. Image URLs are stripped by default; pass view:"full" to keep them.

NameRequiredDescriptionDefault
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image URLs and keeps every other field; "full" returns GetYourGuide's whole record, image URLs included.
tourIdYesNumeric GetYourGuide tour ID (e.g. 23776).
currencyNoCurrency for prices, ISO 4217 (e.g. USD, EUR). Defaults to GYG_CURRENCY when set.
languageNoContent language (e.g. en, de). Defaults to GYG_LANGUAGE when set.
gyg_get_tour_availabilityA
Read-onlyIdempotent

Get booking availability for a tour: bookable participant categories, addons, and the list of available dates (with participant ranges). Lighter than gyg_get_tour_options when you only need "when can I go". Image URLs are stripped by default; pass view:"full" to keep them.

NameRequiredDescriptionDefault
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image URLs and keeps every other field; "full" returns GetYourGuide's whole record, image URLs included.
tourIdYesNumeric GetYourGuide tour ID (e.g. 23776).
languageNoContent language (e.g. en, de). Defaults to GYG_LANGUAGE when set.
gyg_get_tour_optionsA
Read-onlyIdempotent

List the bookable options of a tour (ticket types, times, languages offered), optionally within a date range. Image URLs are stripped by default; pass view:"full" to keep them.

NameRequiredDescriptionDefault
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image URLs and keeps every other field; "full" returns GetYourGuide's whole record, image URLs included.
limitNoMaximum number of items to return (1-500).
dateToNoLatest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss). Must not be before dateFrom.
tourIdYesNumeric GetYourGuide tour ID (e.g. 23776).
currencyNoCurrency for prices, ISO 4217 (e.g. USD, EUR). Defaults to GYG_CURRENCY when set.
dateFromNoEarliest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss). Required when dateTo is set.
languageNoContent language (e.g. en, de). Defaults to GYG_LANGUAGE when set.
extraParamsNoExtra raw query params to merge into the request (escape hatch for API drift). Keys that duplicate this tool's own arguments are ignored.
gyg_get_tour_reviewsA
Read-onlyIdempotent

List customer reviews for a tour (rating outline plus individual review items). Image URLs are stripped by default; pass view:"full" to keep them.

NameRequiredDescriptionDefault
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image URLs and keeps every other field; "full" returns GetYourGuide's whole record, image URLs included.
limitNoMaximum number of items to return (1-500).
offsetNoNumber of reviews to skip (0-based; the API caps review offsets at 300).
tourIdYesNumeric GetYourGuide tour ID (e.g. 23776).
currencyNoCurrency for prices, ISO 4217 (e.g. USD, EUR). Defaults to GYG_CURRENCY when set.
languageNoContent language (e.g. en, de). Defaults to GYG_LANGUAGE when set.
sortFieldNoSort field for reviews.
sortDirectionNoSort direction.
gyg_healthcheckVerify credentials and upstream reachabilityA
Read-onlyIdempotent

Resolves the credential the way real tools do, then makes one authenticated request to api.getyourguide.com. Reports which source supplied the credential, whether api.getyourguide.com accepted it, the round-trip time, and a plain-English hint distinguishing 'no credential' from 'credential rejected' from 'a api.getyourguide.com-side problem'. Read-only; never returns the credential itself. Call this when a real tool fails and you want to know which hop broke.

NameRequiredDescriptionDefault

No parameters

gyg_list_categoriesA
Read-onlyIdempotent

List GetYourGuide activity categories (use the IDs to filter tour searches). Image URLs are stripped by default; pass view:"full" to keep them.

NameRequiredDescriptionDefault
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact strips image URLs and keeps every other field; "full" returns GetYourGuide's whole record, image URLs included.
limitNoMaximum number of items to return (1-500).
offsetNoNumber of items to skip (0-based).
languageNoContent language (e.g. en, de). Defaults to GYG_LANGUAGE when set.
gyg_list_category_toursC
Read-onlyIdempotent

List tours in one GetYourGuide category.

NameRequiredDescriptionDefault
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns the slim tour projection (id, title, price, duration, rating, cancellation) and strips image URLs; "full" returns GetYourGuide's whole records.
limitNoMaximum number of items to return (1-500).
offsetNoNumber of items to skip (0-based).
currencyNoCurrency for prices, ISO 4217 (e.g. USD, EUR). Defaults to GYG_CURRENCY when set.
languageNoContent language (e.g. en, de). Defaults to GYG_LANGUAGE when set.
categoryIdYesNumeric category ID (from gyg_list_categories).
gyg_list_location_toursB
Read-onlyIdempotent

List tours available at one GetYourGuide location (city, POI, or region).

NameRequiredDescriptionDefault
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns the slim tour projection (id, title, price, duration, rating, cancellation) and strips image URLs; "full" returns GetYourGuide's whole records.
limitNoMaximum number of items to return (1-500).
offsetNoNumber of items to skip (0-based).
currencyNoCurrency for prices, ISO 4217 (e.g. USD, EUR). Defaults to GYG_CURRENCY when set.
languageNoContent language (e.g. en, de). Defaults to GYG_LANGUAGE when set.
locationIdYesNumeric location ID.
gyg_search_toursA
Read-onlyIdempotent

Search GetYourGuide tours and activities. Filter by free text (or "iata:" for airports), location ID, category ID, and date range; sort by popularity, price, or rating. Returns slim summaries by default; pass view:"full" for the whole records.

NameRequiredDescriptionDefault
qNoFree-text search, e.g. "louvre skip the line" or "iata:jfk".
viewNoResponse shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns the slim tour projection (id, title, price, duration, rating, cancellation) and strips image URLs; "full" returns GetYourGuide's whole records.
limitNoMaximum number of items to return (1-500).
dateToNoLatest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss). Must not be before dateFrom.
offsetNoNumber of items to skip (0-based).
currencyNoCurrency for prices, ISO 4217 (e.g. USD, EUR). Defaults to GYG_CURRENCY when set.
dateFromNoEarliest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss). Required when dateTo is set.
languageNoContent language (e.g. en, de). Defaults to GYG_LANGUAGE when set.
sortFieldNoSort field (API default: popularity).
categoryIdNoRestrict to a category ID.
locationIdNoRestrict to a location ID (city/POI/region).
extraParamsNoExtra raw query params to merge into the request (escape hatch for API drift). Keys that duplicate this tool's own arguments are ignored.
sortDirectionNoSort direction (ignored for popularity).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv2.1.7
    • Changedgyg_get_location1 field changed
      • 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 strips image URLs and keeps every other field; \"full\" returns GetYourGuide's whole record, image URLs included.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedgyg_get_tour1 field changed
      • changedInput schema / properties / view / description
        Previous value: -"Response shape: \"compact\" (default) drops fields the response already carries elsewhere; \"full\" returns every field this server understands. compact returns the slim tour projection (id, title, price, duration, rating, cancellation) and strips image URLs; \"full\" returns GetYourGuide's whole records."New value: +"Response shape: \"compact\" (default) drops fields the response already carries elsewhere; \"full\" returns every field this server understands. compact strips image URLs and keeps every other field; \"full\" returns GetYourGuide's whole record, image URLs included."
    • Changedgyg_get_tour_availability1 field changed
      • 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 strips image URLs and keeps every other field; \"full\" returns GetYourGuide's whole record, image URLs included.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedgyg_get_tour_options7 fields changed
      • addedInput schema / properties / dateFrom / anyOf
        Added value: +[
        +  {
        +    "format": "date",
        +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
        +    "type": "string"
        +  },
        +  {
        +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z)|(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?)$",
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / dateFrom / type
        Removed value: -"string"
      • addedInput schema / properties / dateTo / anyOf
        Added value: +[
        +  {
        +    "format": "date",
        +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
        +    "type": "string"
        +  },
        +  {
        +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z)|(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?)$",
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / dateTo / description
        Previous value: -"Latest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss)."New value: +"Latest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss). Must not be before dateFrom."
      • removedInput schema / properties / dateTo / type
        Removed value: -"string"
      • changedInput schema / properties / extraParams / description
        Previous value: -"Extra raw query params to merge into the request verbatim (escape hatch for API drift)."New value: +"Extra raw query params to merge into the request (escape hatch for API drift). Keys that duplicate this tool's own arguments are ignored."
      • 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 strips image URLs and keeps every other field; \"full\" returns GetYourGuide's whole record, image URLs included.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedgyg_get_tour_reviews1 field changed
      • 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 strips image URLs and keeps every other field; \"full\" returns GetYourGuide's whole record, image URLs included.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedgyg_list_categories1 field changed
      • 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 strips image URLs and keeps every other field; \"full\" returns GetYourGuide's whole record, image URLs included.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedgyg_search_tours6 fields changed
      • addedInput schema / properties / dateFrom / anyOf
        Added value: +[
        +  {
        +    "format": "date",
        +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
        +    "type": "string"
        +  },
        +  {
        +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z)|(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?)$",
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / dateFrom / type
        Removed value: -"string"
      • addedInput schema / properties / dateTo / anyOf
        Added value: +[
        +  {
        +    "format": "date",
        +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
        +    "type": "string"
        +  },
        +  {
        +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z)|(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?)$",
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / dateTo / description
        Previous value: -"Latest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss)."New value: +"Latest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss). Must not be before dateFrom."
      • removedInput schema / properties / dateTo / type
        Removed value: -"string"
      • changedInput schema / properties / extraParams / description
        Previous value: -"Extra raw query params to merge into the request verbatim (escape hatch for API drift)."New value: +"Extra raw query params to merge into the request (escape hatch for API drift). Keys that duplicate this tool's own arguments are ignored."
  2. 10 tool updatesv2.0.0
    • Changedgyg_get_location1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgyg_get_tour1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgyg_get_tour_availability1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgyg_get_tour_options1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgyg_get_tour_reviews1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgyg_healthcheck1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgyg_list_categories1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgyg_list_category_tours1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgyg_list_location_tours1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedgyg_search_tours1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  3. 5 tool updatesv1.3.1
    • Changedgyg_get_tour1 field changed
      • 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 returns the slim tour projection (id, title, price, duration, rating, cancellation) and strips image URLs; \"full\" returns GetYourGuide's whole records.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Addedgyg_healthcheck
    • Changedgyg_list_category_tours2 fields changed
      • removedInput schema / properties / compact
        Removed value: -{
        -  "default": false,
        -  "description": "Return slim tour summaries instead of full records (recommended for browsing).",
        -  "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 returns the slim tour projection (id, title, price, duration, rating, cancellation) and strips image URLs; \"full\" returns GetYourGuide's whole records.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedgyg_list_location_tours2 fields changed
      • removedInput schema / properties / compact
        Removed value: -{
        -  "default": false,
        -  "description": "Return slim tour summaries instead of full records (recommended for browsing).",
        -  "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 returns the slim tour projection (id, title, price, duration, rating, cancellation) and strips image URLs; \"full\" returns GetYourGuide's whole records.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedgyg_search_tours2 fields changed
      • removedInput schema / properties / compact
        Removed value: -{
        -  "default": false,
        -  "description": "Return slim tour summaries instead of full records (recommended for browsing).",
        -  "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 returns the slim tour projection (id, title, price, duration, rating, cancellation) and strips image URLs; \"full\" returns GetYourGuide's whole records.",
        +  "enum": [
        +    "compact",
        +    "full"
        +  ],
        +  "type": "string"
        +}
  4. 2 tool updatesv1.1.4
    • Addedgyg_get_location
    • Addedgyg_list_location_tours
  5. 2 tool updatesv1.1.3
    • Removedgyg_get_location
    • Removedgyg_list_location_tours
  6. 9 tool updatesv1.1.2
    • First observedgyg_get_location
    • First observedgyg_get_tour
    • First observedgyg_get_tour_availability
    • First observedgyg_get_tour_options
    • First observedgyg_get_tour_reviews
    • First observedgyg_list_categories
    • First observedgyg_list_category_tours
    • First observedgyg_list_location_tours
    • First observedgyg_search_tours

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation4/5

Core resources (tour, tour options, availability, reviews, location, categories) are clearly distinct and well-described. However, gyg_search_tours, gyg_list_location_tours, and gyg_list_category_tours overlap significantly since search already supports location and category filters, creating some risk of misselection.

Naming Consistency4/5

The gyg_ prefix and verb_noun pattern (get_tour, search_tours, list_categories) is consistent across almost all tools. The lone outlier is gyg_healthcheck, which drops the verb and breaks the otherwise uniform convention.

Tool Count5/5

Ten tools is well-scoped for a GetYourGuide discovery API, with each tool covering a distinct resource or diagnostic need. No obvious padding or redundancy beyond the minor search/list overlap.

Completeness4/5

The read/search surface is solid: tours, locations, categories, options, availability, reviews, plus a diagnostic healthcheck. The main gap is any booking or write operation, though availability data suggests partial booking-read coverage; it remains a read-only surface.

Maintenance

ActivityActive
ResponsivenessUsually handled

Related MCP Connectors

Related MCP Servers