OurFamilyWizard MCP
Provides read-only access to GetYourGuide tours/activities via an MCP server: search, inspect, check availability, reviews, categories, and locations.
Search tours/activities by free text, location, category, or date range, with sorting and compact summaries.
Fetch full details for a specific tour by ID.
List bookable tour options (ticket types, times, languages), optionally within a date range.
Get booking availability: participant categories, addons, and available dates.
Read customer reviews for a tour, sortable by rating or date.
List activity categories and tours within a category.
Get location details and tours available at a location.
Override currency and language per call, paginate results, and pass extra API params if needed.
All tools are read-only; requires a GetYourGuide Partner API key via GYG_API_KEY.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OurFamilyWizard MCPWhat's on the kids' calendar this week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Search tours/activities by free text, location, category, or date range; sortable; |
| Full record for one tour by numeric ID; |
| Bookable options of a tour (ticket types, times), optionally within a date range; |
| Booking availability of a tour: participant categories, addons, available dates; |
| Customer reviews for a tour; |
| Activity categories (IDs feed |
| Tours in one category; |
| Details for a location (city, POI, region) by ID; |
| Tours available at one location; |
| 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 }. Ongyg_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 |
| yes (for tool calls) | Partner API key, sent as |
| no | Default currency for prices (ISO 4217; falls back to |
| no | Default content language (falls back to |
| no | API base URL (default |
| 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/503honoringRetry-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 checkGYG_BASE_URLand your network. Cancelling a call is not wrapped — it stays a cancellation.Empty arguments: an empty-string query param (e.g.
currency: ""orlanguage: "") is dropped rather than sent, so the env default /USD/enfallback applies instead of the API rejecting a blank value.Auth errors: a
401/403names 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_toursandgyg_get_tour_optionsacceptextraParamsto 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.6extraParamsoverrode 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/statementsReleases 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 toolsgyg_get_locationARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | 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. | |
| language | No | Content language (e.g. en, de). Defaults to GYG_LANGUAGE when set. | |
| locationId | Yes | Numeric location ID. |
gyg_get_tourARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | 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. | |
| tourId | Yes | Numeric GetYourGuide tour ID (e.g. 23776). | |
| currency | No | Currency for prices, ISO 4217 (e.g. USD, EUR). Defaults to GYG_CURRENCY when set. | |
| language | No | Content language (e.g. en, de). Defaults to GYG_LANGUAGE when set. |
gyg_get_tour_availabilityARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | 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. | |
| tourId | Yes | Numeric GetYourGuide tour ID (e.g. 23776). | |
| language | No | Content language (e.g. en, de). Defaults to GYG_LANGUAGE when set. |
gyg_get_tour_optionsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | 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. | |
| limit | No | Maximum number of items to return (1-500). | |
| dateTo | No | Latest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss). Must not be before dateFrom. | |
| tourId | Yes | Numeric GetYourGuide tour ID (e.g. 23776). | |
| currency | No | Currency for prices, ISO 4217 (e.g. USD, EUR). Defaults to GYG_CURRENCY when set. | |
| dateFrom | No | Earliest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss). Required when dateTo is set. | |
| language | No | Content language (e.g. en, de). Defaults to GYG_LANGUAGE when set. | |
| extraParams | No | Extra 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_reviewsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | 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. | |
| limit | No | Maximum number of items to return (1-500). | |
| offset | No | Number of reviews to skip (0-based; the API caps review offsets at 300). | |
| tourId | Yes | Numeric GetYourGuide tour ID (e.g. 23776). | |
| currency | No | Currency for prices, ISO 4217 (e.g. USD, EUR). Defaults to GYG_CURRENCY when set. | |
| language | No | Content language (e.g. en, de). Defaults to GYG_LANGUAGE when set. | |
| sortField | No | Sort field for reviews. | |
| sortDirection | No | Sort direction. |
gyg_healthcheckVerify credentials and upstream reachabilityARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
gyg_list_categoriesARead-onlyIdempotent
List GetYourGuide activity categories (use the IDs to filter tour searches). Image URLs are stripped by default; pass view:"full" to keep them.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | 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. | |
| limit | No | Maximum number of items to return (1-500). | |
| offset | No | Number of items to skip (0-based). | |
| language | No | Content language (e.g. en, de). Defaults to GYG_LANGUAGE when set. |
gyg_list_category_toursCRead-onlyIdempotent
List tours in one GetYourGuide category.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | 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. | |
| limit | No | Maximum number of items to return (1-500). | |
| offset | No | Number of items to skip (0-based). | |
| currency | No | Currency for prices, ISO 4217 (e.g. USD, EUR). Defaults to GYG_CURRENCY when set. | |
| language | No | Content language (e.g. en, de). Defaults to GYG_LANGUAGE when set. | |
| categoryId | Yes | Numeric category ID (from gyg_list_categories). |
gyg_list_location_toursBRead-onlyIdempotent
List tours available at one GetYourGuide location (city, POI, or region).
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | 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. | |
| limit | No | Maximum number of items to return (1-500). | |
| offset | No | Number of items to skip (0-based). | |
| currency | No | Currency for prices, ISO 4217 (e.g. USD, EUR). Defaults to GYG_CURRENCY when set. | |
| language | No | Content language (e.g. en, de). Defaults to GYG_LANGUAGE when set. | |
| locationId | Yes | Numeric location ID. |
gyg_search_toursARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search, e.g. "louvre skip the line" or "iata:jfk". | |
| view | No | 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. | |
| limit | No | Maximum number of items to return (1-500). | |
| dateTo | No | Latest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss). Must not be before dateFrom. | |
| offset | No | Number of items to skip (0-based). | |
| currency | No | Currency for prices, ISO 4217 (e.g. USD, EUR). Defaults to GYG_CURRENCY when set. | |
| dateFrom | No | Earliest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss). Required when dateTo is set. | |
| language | No | Content language (e.g. en, de). Defaults to GYG_LANGUAGE when set. | |
| sortField | No | Sort field (API default: popularity). | |
| categoryId | No | Restrict to a category ID. | |
| locationId | No | Restrict to a location ID (city/POI/region). | |
| extraParams | No | Extra raw query params to merge into the request (escape hatch for API drift). Keys that duplicate this tool's own arguments are ignored. | |
| sortDirection | No | Sort direction (ignored for popularity). |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v2.1.7- Changed
gyg_get_location1 field changed- added
Input schema / properties / viewAdded 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" +}
- Changed
gyg_get_tour1 field changed- changed
Input schema / properties / view / descriptionPrevious 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."
- Changed
gyg_get_tour_availability1 field changed- added
Input schema / properties / viewAdded 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" +}
- Changed
gyg_get_tour_options7 fields changed- added
Input schema / properties / dateFrom / anyOfAdded 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" + } +] - removed
Input schema / properties / dateFrom / typeRemoved value: -"string" - added
Input schema / properties / dateTo / anyOfAdded 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" + } +] - changed
Input schema / properties / dateTo / descriptionPrevious 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." - removed
Input schema / properties / dateTo / typeRemoved value: -"string" - changed
Input schema / properties / extraParams / descriptionPrevious 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." - added
Input schema / properties / viewAdded 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" +}
- Changed
gyg_get_tour_reviews1 field changed- added
Input schema / properties / viewAdded 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" +}
- Changed
gyg_list_categories1 field changed- added
Input schema / properties / viewAdded 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" +}
- Changed
gyg_search_tours6 fields changed- added
Input schema / properties / dateFrom / anyOfAdded 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" + } +] - removed
Input schema / properties / dateFrom / typeRemoved value: -"string" - added
Input schema / properties / dateTo / anyOfAdded 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" + } +] - changed
Input schema / properties / dateTo / descriptionPrevious 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." - removed
Input schema / properties / dateTo / typeRemoved value: -"string" - changed
Input schema / properties / extraParams / descriptionPrevious 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."
10 tool updates
v2.0.0- Changed
gyg_get_location1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gyg_get_tour1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gyg_get_tour_availability1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gyg_get_tour_options1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gyg_get_tour_reviews1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gyg_healthcheck1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gyg_list_categories1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gyg_list_category_tours1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gyg_list_location_tours1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
gyg_search_tours1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
5 tool updates
v1.3.1- Changed
gyg_get_tour1 field changed- added
Input schema / properties / viewAdded 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" +}
- Added
gyg_healthcheck - Changed
gyg_list_category_tours2 fields changed- removed
Input schema / properties / compactRemoved value: -{ - "default": false, - "description": "Return slim tour summaries instead of full records (recommended for browsing).", - "type": "boolean" -} - added
Input schema / properties / viewAdded 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" +}
- Changed
gyg_list_location_tours2 fields changed- removed
Input schema / properties / compactRemoved value: -{ - "default": false, - "description": "Return slim tour summaries instead of full records (recommended for browsing).", - "type": "boolean" -} - added
Input schema / properties / viewAdded 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" +}
- Changed
gyg_search_tours2 fields changed- removed
Input schema / properties / compactRemoved value: -{ - "default": false, - "description": "Return slim tour summaries instead of full records (recommended for browsing).", - "type": "boolean" -} - added
Input schema / properties / viewAdded 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" +}
2 tool updates
v1.1.4- Added
gyg_get_location - Added
gyg_list_location_tours
2 tool updates
v1.1.3- Removed
gyg_get_location - Removed
gyg_list_location_tours
9 tool updates
v1.1.2- First observed
gyg_get_location - First observed
gyg_get_tour - First observed
gyg_get_tour_availability - First observed
gyg_get_tour_options - First observed
gyg_get_tour_reviews - First observed
gyg_list_categories - First observed
gyg_list_category_tours - First observed
gyg_list_location_tours - First observed
gyg_search_tours
TDQS
Scored across 10 tools
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.
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.
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.
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
Related MCP Connectors
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
Give Claude only the Google Drive files you choose. Every action logged.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables natural-language access to OurFamilyWizard for co-parenting messages, calendar, expenses, and journal.13621 npmMIT
- AlicenseAqualityAmaintenanceA Model Context Protocol server that connects Claude to OurFamilyWizard, giving you natural-language access to your co-parenting messages, calendar, expenses, and journal.11725 npm1MIT
- AlicenseAqualityAmaintenanceA Model Context Protocol server that connects Claude to OurFamilyWizard, giving you natural-language access to your co-parenting messages, calendar, expenses, and journal.301,974 npm14MIT
- AlicenseAqualityAmaintenanceConnects Claude to Splitwise for natural-language access to expenses, groups, friends, and balances.311,378 npm1MIT