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 "Install 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
The tools marked view above take 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 — 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: Fathom AI MCP Server
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.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; search tools also accept
extraParamsto pass raw query params through verbatim. Seedocs/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.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-only
Get details for a GetYourGuide location (city, POI, or region) by its numeric ID.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Content language (e.g. en, de). Defaults to GYG_LANGUAGE when set. | |
| locationId | Yes | Numeric location ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers the safety profile, so the bar for behavioral disclosure is lower. The description adds the entity type scope but provides no extra behavioral context such as response contents, localization behavior, or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant wording. Every part adds useful information: the operation, resource type, and lookup criterion.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only get-by-ID tool with two well-documented parameters, the description and schema give an agent enough to select and invoke it correctly. The lack of an output schema is a minor gap, as 'details' does not enumerate returned fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters already documented, including the language default. The description only repeats that the ID is numeric and does not add meaning beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get details') with a clear resource ('GetYourGuide location') and further specifies the entity types covered (city, POI, or region). It clearly distinguishes this from the sibling tour-focused tools, so an agent can identify its scope without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when location details are needed by ID, but it does not explicitly contrast with alternatives such as gyg_list_location_tours or state when not to use this tool. Usage context is inferable but not directly articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gyg_get_tourARead-only
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 returns the slim tour projection (id, title, price, duration, rating, cancellation) and strips image URLs; "full" returns GetYourGuide's whole records. | |
| 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true, the safety profile is already covered; the description adds a useful default behavior not in the annotation: image URLs are stripped unless view:'full' is passed. This tells the agent what response transformation to expect and how to override it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense, front-loaded sentences: the operation and key input come first, followed by one important behavioral default. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-record read tool with readOnlyHint and a fully documented 4-parameter schema, the description covers correct invocation. There is no output schema and 'full... record' is somewhat generic, but the view parameter's schema description fills in the return-shape detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema carries the parameter meaning. The description restates the view/full behavior but adds no new semantics for tourId, currency, or language beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description combines a specific verb ('Get') with a specific resource ('full GetYourGuide record for one tour/activity') and a required key ('numeric ID'). This clearly distinguishes it from the search/listing/options/availability siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'By its numeric ID' makes the main selection condition explicit: use this when you already have a tour ID and need a single record. It doesn't explicitly name alternatives or list when-not-to-use cases, so it stops short of the strongest guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gyg_get_tour_availabilityARead-only
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".
| Name | Required | Description | Default |
|---|---|---|---|
| tourId | Yes | Numeric GetYourGuide tour ID (e.g. 23776). | |
| language | No | Content language (e.g. en, de). Defaults to GYG_LANGUAGE when set. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark readOnlyHint=true, and the description's 'Get booking availability' aligns. The description adds context on the kind of data returned (categories, addons, dates), which is consistent with a read operation and gives agents a better understanding of the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that immediately states the purpose and differentiates from a sibling. No redundancy or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a lightweight availability tool with only two parameters and no output schema, the description covers the key outputs and use case. It could mention pagination or data format, but the brevity is appropriate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters already described in the schema (tourId as numeric ID, language with default). The description does not add extra parameter information, so it meets the baseline without improvement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves booking availability, listing specific outputs (participant categories, addons, available dates). It distinguishes from the sibling gyg_get_tour_options by noting this tool is lighter and for when only 'when can I go' is needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool versus the alternative gyg_get_tour_options: 'Lighter than gyg_get_tour_options when you only need "when can I go".' This provides clear decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gyg_get_tour_optionsBRead-only
List the bookable options of a tour (ticket types, times, languages offered), optionally within a date range.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return (1-500). | |
| dateTo | No | Latest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss). | |
| 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 verbatim (escape hatch for API drift). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds that it lists options with optional date range filtering, but does not disclose other behavioral traits such as pagination, rate limits, or auth requirements. With annotations present, the description provides minimal additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that is concise (17 words) and front-loaded with the essential purpose. Every word serves a clear function with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the complexity of 7 parameters (1 required), the description is adequate but incomplete. It does not describe the output format or pagination behavior, which would help the agent understand what to expect. The description covers the core purpose but lacks detail on results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema; it only gives high-level context about the tool's output. For example, it mentions 'ticket types, times, languages' but these are not parameter-specific details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states that the tool lists bookable options of a tour, specifying the types of options (ticket types, times, languages) and optional date range. It does not explicitly differentiate from sibling tools like gyg_get_tour or gyg_get_tour_availability, but the name and description make its unique purpose evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides no guidance on when to use this tool versus alternatives, nor does it specify prerequisites or limitations. It simply states what the tool does without contextual advice for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gyg_get_tour_reviewsARead-only
List customer reviews for a tour (rating outline plus individual review items).
| Name | Required | Description | Default |
|---|---|---|---|
| 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the readOnlyHint annotation by describing a read-only listing operation. It adds context about the response structure (rating outline + individual reviews) but does not disclose other behaviors like pagination, sorting defaults, or potential rate limits. The annotation carries the safety disclosure, so the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded with the action and resource, making it quick to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters and no output schema, the description provides a high-level summary but omits details about pagination, sorting, and the exact format of the 'rating outline'. It is adequate for a basic understanding but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so each parameter is already documented. The description does not add any new meaning to the parameters; it only repeats that the tool lists reviews. Baseline of 3 is appropriate since the schema handles the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('customer reviews for a tour') and adds detail about output ('rating outline plus individual review items'). It is clearly distinct from sibling tools that deal with locations, availability, or tours.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives or provide any conditions. The usage is implied by the purpose (get reviews), but no guidance on when not to use it or which sibling to choose instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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'. Call this when a real tool fails and you want to know which hop broke. Read-only; never returns the credential itself.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and idempotentHint annotations, the description adds what a caller should expect: one authenticated request, the source of the credential, acceptance status, round-trip time, and a plain-English failure category. It also explicitly says the credential itself is never returned, which is important safety information not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: how the check works, what it reports, when to call it, and the read-only/no-credential warning. The description is compact, front-loads the mechanism, and avoids redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description still conveys the main reported outputs and the single side effect of one authenticated request. An agent can decide whether to call it and what to expect without needing additional structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema already documents an empty object, so there is nothing for the description to add about parameter meaning. The baseline for a parameterless tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it resolves the credential the way real tools do, makes one authenticated request to api.getyourguide.com, and reports whether the credential was accepted. This clearly distinguishes the diagnostic healthcheck from the data-retrieval siblings such as gyg_search_tours and gyg_get_tour.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger: 'Call this when a real tool fails and you want to know which hop broke.' It doesn't explicitly state when not to use it or name an alternative diagnostic tool, but the intended context is clear and well differentiated from normal tool operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gyg_list_categoriesARead-only
List GetYourGuide activity categories (use the IDs to filter tour searches).
| Name | Required | Description | Default |
|---|---|---|---|
| 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the readOnlyHint annotation, confirming this is a read-only operation. It adds the filtering context but does not elaborate on additional behaviors such as pagination or ordering. With annotations already declaring safety, the description provides adequate supplementary information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no extraneous information. It is front-loaded and efficient, which is optimal for fast agent comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has no output schema, the description hints at the purpose of the return values (IDs for filtering). Combined with well-documented parameters and safe annotations, it is fairly complete for a straightforward list operation. A brief mention of the expected output structure would make it a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; all three parameters (limit, offset, language) have descriptions in the schema itself. The tool description adds no further parameter-specific semantics, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('GetYourGuide activity categories'). It also explains the purpose: the IDs are used to filter tour searches, distinguishing it from siblings like 'gyg_list_category_tours' which lists tours for a given category.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by noting that category IDs are used to filter tour searches. It does not explicitly exclude any scenarios, but the clarity allows an agent to infer when to call this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gyg_list_category_toursBRead-only
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). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the category scoping constraint but no further behavioral details such as pagination behavior or response shape, which are left to the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant wording, making it efficient. However, it is very terse and does not include any structured guidance beyond the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema carries detailed parameter information, including categoryId sourcing from gyg_list_categories. Yet the description lacks contextual guidance about output characteristics and does not mention sibling listing tools, leaving some gaps for an agent deciding how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are documented in the input schema. The description itself adds no parameter-level semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List tours') with a clear scope ('in one GetYourGuide category'). It is unambiguous about what the tool does, though it does not explicitly contrast with sibling tools like gyg_list_location_tours or gyg_search_tours.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. An agent cannot tell from the description whether to choose this over gyg_list_location_tours or gyg_search_tours for a given query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gyg_list_location_toursBRead-only
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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the useful scoping detail that the tool targets a single city, POI, or region, but it does not disclose other behavioral traits such as pagination behavior, response shape, or default limits beyond what the schema already documents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately states the core action and scope. It contains no filler, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The rich schema covers all parameters, and the readOnlyHint annotation covers side-effect concerns. The description is sufficient for a simple list endpoint, though it could be slightly more complete by noting the return is a collection of tour summaries or by referencing sibling tools for alternative listing modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters. The description adds no extra meaning about parameters; it only restates the location-scoped nature of the call, which is already implied by the required locationId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'tours at one GetYourGuide location', with useful elaboration on location types (city, POI, or region). It is specific enough to distinguish the tool from search or category-based siblings, though it does not explicitly name or contrast any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a use case: list tours for a known GetYourGuide location. However, it gives no guidance about when to choose this tool over alternatives like gyg_search_tours or gyg_list_category_tours, and it does not mention any exclusions or when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gyg_search_toursARead-only
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). | |
| 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 verbatim (escape hatch for API drift). | |
| sortDirection | No | Sort direction (ignored for popularity). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation already covers the safety profile, and the description adds the default slim-summary behavior and the view:"full" escape for whole records. This is useful but largely mirrors the schema's detailed view parameter description; the description does not disclose pagination behavior, what happens on an empty query, or rate limits. Acceptable given the annotation covers safety, but not richly additive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with zero filler: purpose first, then filter/sort capabilities, then return-shape default with the override. Every sentence earns its place, and the most decision-relevant facts (search scope, iata syntax, compact-by-default) are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter read-only search tool with 100% schema coverage and no output schema, the description plus schema are largely sufficient: the description states the search scope and return-shape default, and the schema details every parameter including the compact vs full response fields. The only notable gap is the missing differentiation from overlapping list siblings, which is more of a usage-guidance concern than a completeness failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 13 parameters in detail — the baseline is 3. The description's mention of free text, iata: syntax, location/category filters, date range, and sort options only summarizes what the schema already states, adding no new semantic information. It even omits the 'duration' sort option present in the schema enum, though the schema compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Search GetYourGuide tours and activities" with clear scope (free text, iata codes, location/category/date filters, sort options). It is clearly a search tool distinct from the get/list siblings by name and by the described filter flexibility, but it never names the sibling it is not — notably gyg_list_location_tours and gyg_list_category_tours overlap with its locationId/categoryId filters, so the boundary is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied through the described filters and sort options — an agent can infer this tool is for broad, flexible search across tours. However, there is no explicit when-to-use versus alternatives guidance, no mention of the sibling get/list tools, and no exclusion criteria (e.g., "for a single tour by ID, use gyg_get_tour"). With nine siblings, explicit routing would substantially help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
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
Each tool has a clearly distinct purpose: get_location, get_tour, get_availability, get_options, get_reviews, list_categories, list_category_tours, list_location_tours, search_tours. No overlap in functionality.
All tools follow a consistent gyg_verb_noun pattern. Verbs are get, list, search, nouns are domain entities. No mixed conventions.
9 tools is appropriate for a travel booking platform. Covers all essential read operations without being excessive or sparse.
Comprehensive coverage of browsing and availability checking. Only missing write operations (booking), but that may be intentionally out of scope.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect Claude to Fathom meeting recordings, transcripts, and summaries
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. 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
- AlicenseNot gradedqualityCmaintenanceConnects Claude to Microsoft Outlook through the Microsoft Graph API, enabling email management (list, search, read, send) and calendar operations (list, create, accept, decline, delete events) via OAuth 2.0 authentication.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables Claude to access your Fathom meetings, transcripts, and AI summaries.2816MIT
- FlicenseAqualityCmaintenanceConnects Claude to your Amazon Seller Central account via the Selling Partner API, enabling queries for recent orders, sales summaries, FBA inventory, and financial events.4-
- AlicenseAqualityAmaintenanceEnables natural-language access to OurFamilyWizard for co-parenting messages, calendar, expenses, and journal.13556MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrischall/getyourguide-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server