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

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
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

TableJSON 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
    • 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"
      +}
  2. 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"
      -}
  3. First observed

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds a useful precondition (exact coordinates are required) but does not disclose additional runtime behavior such as result ordering, pagination, or response shape beyond what the schema/output schema already imply.

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 with no filler. The primary use case is front-loaded, the alternative tool is named, and the differentiating condition is clear. Every sentence earns its place.

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 read-only geolocation search tool with a rich schema and output schema, the description gives the necessary invocation context and points to the right alternative. No additional context about return values is needed because the output schema exists.

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 86%, and most parameters already have descriptions for latitude, longitude, limit, format, category, language, and radius_km. The description only reinforces that 'exact latitude and longitude coordinates' are expected, but this is already visible in the schema. It does not meaningfully extend parameter understanding.

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 states a clear verb plus resource: find experiences near a point using exact latitude/longitude. It also distinguishes itself from the sibling search_local_experiences, making its purpose immediately identifiable.

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?

It explicitly states when to use this tool ('when the client already holds exact latitude and longitude coordinates') and when not to use it: when only a place name, landmark, or neighbourhood is known, use search_local_experiences. This is explicit routing guidance.

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.