Skip to main content
Glama
chrischall

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

gyg_get_tour_availability

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

gyg_get_tour_reviews

Customer reviews for a tour

gyg_list_categories

Activity categories (IDs feed gyg_search_tours / gyg_list_category_tours)

gyg_list_category_tours

Tours in one category; view

gyg_get_location

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

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

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 }. On gyg_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

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.

  • 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; search tools also accept extraParams to pass raw query params through verbatim. 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.

  • 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-only

Get details for a GetYourGuide location (city, POI, or region) by its numeric ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoContent language (e.g. en, de). Defaults to GYG_LANGUAGE when set.
locationIdYesNumeric location ID.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_tourA
Read-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.

ParametersJSON Schema
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.
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.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_availabilityA
Read-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".

ParametersJSON Schema
NameRequiredDescriptionDefault
tourIdYesNumeric GetYourGuide tour ID (e.g. 23776).
languageNoContent language (e.g. en, de). Defaults to GYG_LANGUAGE when set.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_optionsB
Read-only

List the bookable options of a tour (ticket types, times, languages offered), optionally within a date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return (1-500).
dateToNoLatest date, YYYY-MM-DD (or full YYYY-MM-DDThh:mm:ss).
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 verbatim (escape hatch for API drift).

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_reviewsA
Read-only

List customer reviews for a tour (rating outline plus individual review items).

ParametersJSON Schema
NameRequiredDescriptionDefault
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.

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 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'. Call this when a real tool fails and you want to know which hop broke. Read-only; never returns the credential itself.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_categoriesA
Read-only

List GetYourGuide activity categories (use the IDs to filter tour searches).

ParametersJSON Schema
NameRequiredDescriptionDefault
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.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_toursB
Read-only

List tours in one GetYourGuide category.

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

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_toursB
Read-only

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

ParametersJSON Schema
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.

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_toursA
Read-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.

ParametersJSON Schema
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).
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 verbatim (escape hatch for API drift).
sortDirectionNoSort direction (ignored for popularity).

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 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"
        +}
  2. 2 tool updatesv1.1.4
    • Addedgyg_get_location
    • Addedgyg_list_location_tours
  3. 2 tool updatesv1.1.3
    • Removedgyg_get_location
    • Removedgyg_list_location_tours
  4. 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

A4/5.0
Disambiguation5/5

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.

Naming Consistency5/5

All tools follow a consistent gyg_verb_noun pattern. Verbs are get, list, search, nouns are domain entities. No mixed conventions.

Tool Count5/5

9 tools is appropriate for a travel booking platform. Covers all essential read operations without being excessive or sparse.

Completeness4/5

Comprehensive coverage of browsing and availability checking. Only missing write operations (booking), but that may be intentionally out of scope.

Maintenance

ActivityActive
ResponsivenessResponsive

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

Related MCP Servers

Latest Blog Posts

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