Skip to main content
Glama

find_nearby_experiences

Read-onlyIdempotent

Use this when the client already holds exact latitude and longitude coordinates and wants experiences near that point. When only a place name, landmark, or neighbourhood is known, use search_local_experiences, which accepts coarse place hints and needs no coordinates.

Input Schema

NameRequiredDescriptionDefault
limitNoNumber of results to return (1-50). Default 10.
formatNoResponse shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces.json
categoryNoOptional category slug.
languageNoBCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted.
latitudeYesLatitude coordinate.
longitudeYesLongitude coordinate.
radius_kmNoSearch radius in kilometres.

Output Schema

NameRequiredDescriptionDefault
detailNo
messageNo
resultsNo
error_typeNo
paginationNo
request_idNo
experiencesNo
_normalizationNo
schema_versionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / limit / description
      Added value: +"Number of results to return (1-50). Default 10."
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "_normalization": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "detail": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "error_type": {
      +      "type": "string"
      +    },
      +    "experiences": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "booking_url": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "category": {
      +            "type": "string"
      +          },
      +          "city": {
      +            "type": "string"
      +          },
      +          "description": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "image_url": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "price": {
      +            "additionalProperties": true,
      +            "properties": {
      +              "amount_minor": {
      +                "type": "integer"
      +              },
      +              "currency": {
      +                "type": "string"
      +              },
      +              "display": {
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "product_id": {
      +            "description": "Stable experience identifier for detail, availability, related-experience, and card-rendering calls.",
      +            "type": "string"
      +          },
      +          "rating": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "review_count": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "slug": {
      +            "type": "string"
      +          },
      +          "tags": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "venue": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "product_id",
      +          "name"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "pagination": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "limit": {
      +          "type": "integer"
      +        },
      +        "offset": {
      +          "type": "integer"
      +        },
      +        "total": {
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "request_id": {
      +      "type": "string"
      +    },
      +    "results": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "booking_url": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "category": {
      +            "type": "string"
      +          },
      +          "city": {
      +            "type": "string"
      +          },
      +          "description": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "image_url": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "price": {
      +            "additionalProperties": true,
      +            "properties": {
      +              "amount_minor": {
      +                "type": "integer"
      +              },
      +              "currency": {
      +                "type": "string"
      +              },
      +              "display": {
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "product_id": {
      +            "description": "Stable experience identifier for detail, availability, related-experience, and card-rendering calls.",
      +            "type": "string"
      +          },
      +          "rating": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "review_count": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "slug": {
      +            "type": "string"
      +          },
      +          "tags": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "venue": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "product_id",
      +          "name"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "schema_version": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed29 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / audience
      Removed value: -{
      -  "description": "Audience filter: Family, Couples, AdultsOnly, Kids, Seniors, Groups, Solo",
      -  "type": "string"
      -}
    • removedInput schema / properties / available_language
      Removed value: -{
      -  "description": "Language filter (ISO 639-1 code)",
      -  "type": "string"
      -}
    • addedInput schema / properties / category
      Added value: +{
      +  "description": "Optional category slug.",
      +  "type": "string"
      +}
    • removedInput schema / properties / dateFrom
      Removed value: -{
      -  "description": "Optional start date filter in ISO date format YYYY-MM-DD (e.g. '2026-03-27'). Must be used together with dateTo.",
      -  "type": "string"
      -}
    • removedInput schema / properties / dateTo
      Removed value: -{
      -  "description": "Optional end date filter in ISO date format YYYY-MM-DD (e.g. '2026-03-28'). Must be used together with dateFrom.",
      -  "type": "string"
      -}
    • changedInput schema / properties / format / default
      Previous value: -"text"New value: +"json"
    • changedInput schema / properties / format / description
      Previous value: -"Response format: text (default) or json"New value: +"Response shape. 'json' returns structured records; 'text' returns the same content rendered as a short narrative paragraph for chat surfaces."
    • changedInput schema / properties / format / enum
      Previous value: -[
      -  "text",
      -  "json"
      -]New value: +[
      +  "json",
      +  "text"
      +]
    • removedInput schema / properties / free_cancellation
      Removed value: -{
      -  "description": "Filter for free cancellation",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / language / default
      Removed value: -"en"
    • changedInput schema / properties / language / description
      Previous value: -"Supported language code for localised booking URLs (e.g. 'en', 'de', 'fr', 'es', 'ja', 'pt-br')"New value: +"BCP-47 language code for human-readable fields (e.g., 'en', 'fr-FR'). Defaults to English when omitted."
    • changedInput schema / properties / latitude / description
      Previous value: -"Latitude"New value: +"Latitude coordinate."
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 10,
      +  "maximum": 50,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / longitude / description
      Previous value: -"Longitude"New value: +"Longitude coordinate."
    • removedInput schema / properties / max_duration
      Removed value: -{
      -  "description": "Max duration in minutes",
      -  "type": "number"
      -}
    • removedInput schema / properties / max_results
      Removed value: -{
      -  "default": 10,
      -  "description": "Maximum number of experiences to return (default 10, max 50)",
      -  "type": "number"
      -}
    • removedInput schema / properties / min_duration
      Removed value: -{
      -  "description": "Min duration in minutes",
      -  "type": "number"
      -}
    • removedInput schema / properties / min_rating
      Removed value: -{
      -  "description": "Minimum rating (e.g. 4.5)",
      -  "type": "number"
      -}
    • removedInput schema / properties / physical_level
      Removed value: -{
      -  "description": "Physical difficulty filter",
      -  "enum": [
      -    "Easy",
      -    "Moderate",
      -    "Demanding"
      -  ],
      -  "type": "string"
      -}
    • changedInput schema / properties / radius_km / default
      Previous value: -25New value: +5
    • changedInput schema / properties / radius_km / description
      Previous value: -"Search radius in km (default 25)"New value: +"Search radius in kilometres."
    • addedInput schema / properties / radius_km / maximum
      Added value: +50
    • addedInput schema / properties / radius_km / minimum
      Added value: +0.1
    • removedInput schema / properties / setting
      Removed value: -{
      -  "description": "Indoor/outdoor filter",
      -  "enum": [
      -    "Indoor",
      -    "Outdoor",
      -    "Mixed"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / sort
      Removed value: -{
      -  "default": "relevance",
      -  "description": "Sort order",
      -  "enum": [
      -    "relevance",
      -    "popular",
      -    "price_low",
      -    "price_high",
      -    "rating",
      -    "best_value"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / tags
      Removed value: -{
      -  "description": "Optional comma-separated tag filter. Results must match at least one tag. Valid tags: Musical, WestEnd, WalkingTour, FoodTour, Museum, Outdoor, HiddenGem, MustSee, Bestseller, Cruise, DayTrip, SkipTheLine, HopOnHopOff, WaterSport, Spa, BikeTour, Adventure, GuidedTour, Attraction, Transfer, SelfGuided, KidsAttraction, Show, Concert, Helicopter, WhaleWatching, Dining, Workshop, NightLife, Safari, Evening, Morning, Seasonal",
      -  "type": "string"
      -}
    • removedInput schema / properties / wheelchair_accessible
      Removed value: -{
      -  "description": "Filter for wheelchair-accessible experiences",
      -  "type": "boolean"
      -}
  4. First observed

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds the useful input prerequisite (exact coordinates required) but says nothing about radius defaults, result ordering, or how the openWorldHint=false closed-world constraint plays out. Adequate, not rich.

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 sentences, zero waste, and the primary use condition is front-loaded before the fallback tool is introduced.

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?

With an output schema present, return values need no explanation, and the routing rule is complete. The only shortfall is silence on radius/limit defaults and result ordering, which the schema partially covers but which would help an agent choose sensible values.

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% and every parameter carries its own description, including limit bounds, format enum meanings, and radius defaults, so the schema does the heavy lifting. The description only reinforces that latitude/longitude must be exact rather than approximate, which is marginal added meaning. Baseline 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?

States a specific verb and resource (find experiences) plus the precise scope condition (near an exact lat/long point). It explicitly contrasts itself with search_local_experiences, so an agent can route between them without opening either schema.

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?

Gives both sides of the decision rule: use this when exact coordinates are held, use search_local_experiences when only a place name, landmark, or neighbourhood is known. The alternative is named and the selecting condition is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.