Skip to main content
Glama

find_nearby

Read-onlyIdempotent

Get what is around a place or coordinate: fuel, EV charging, parking, nearest railway station and motorway junction, with distances; add named everyday places.

Instructions

Overview of what is around a place or coordinate: fuel, EV charging, parking, nearest railway station and motorway junction, with distances; everyday places (shop, pharmacy, cash, food, hotel, workshop, police) only when named in categories. Use when asked "what is around me". Do NOT use for a fuel grade's price (find_cheapest_fuel), charger status (find_charging_station), parking occupancy (find_parking), a NAME lookup (find_place/find_poi/find_address), or a coordinate's address (describe_location). Radius ≤ 15 km, up to 3 per category (5 per need). Shows each source's attribution.

Input Schema

NameRequiredDescriptionDefault
latNoLatitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place.
lonNoLongitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place.
placeNoWhere to look, as free text: a city ("München", "Munich"), a district or Kreis ("Kreis Fulda"), a Bundesland, a station or stop ("Hamburg Hbf"), a motorway junction ("AK Neufahrn"), or a street address with a house number ("Bahnhofstraße 12, 36037 Fulda"). A motorway number alone ("A7") resolves to the road, which has no single point — name a town or junction on it instead. Use this instead of coordinates whenever the person named a place. An address needs its town or postcode — a street and a number alone exist in many towns. A place or lat+lon is required (unless the tool names another way in, such as a road): when the person named neither, ask them for a town, a postcode or their position before calling. Given both, the answer is about lat+lon with the place as its label, and is refused only when the two lie further apart than the search reaches.
languageNoSet this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback when the language is genuinely unclear, so an English question sent without it is answered in German — a wrong answer. Place names, station names and road numbers are never translated in either language; in English the German term is kept in parentheses so the person recognises it on signs and in local apps.de
radius_kmNoSearch radius around place or lat+lon in kilometres (1–15, default 5). This tool answers "what is around me", not "search a wide area" — for that, use the specific tool with its own wider radius.
categoriesNoWhich categories to include: "fuel", "charging", "parking", "station" (railway station), "junction" (motorway junction) — omit for these five. Everyday places from OpenStreetMap only when named: "groceries", "health" (pharmacy, doctor, hospital), "money" (cash machine, bank, post office), "food", "lodging", "garage" (car repair, tyres, car wash), "police" (police stations), "toilets" (public toilets) ("safety", the former name for both, still answers as both); each uses its own radius (1–2 km, widened up to 5 km where fewer than three are near), not radius_km.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv2.5.3
    • changedInput schema / properties / categories / description
      Previous value: -"Which categories to include: \"fuel\", \"charging\", \"parking\", \"station\" (railway station), \"junction\" (motorway junction). Omit for all five. Pass a subset only when the person named one — otherwise the full picture is the point of this tool."New value: +"Which categories to include: \"fuel\", \"charging\", \"parking\", \"station\" (railway station), \"junction\" (motorway junction) — omit for these five. Everyday places from OpenStreetMap only when named: \"groceries\", \"health\" (pharmacy, doctor, hospital), \"money\" (cash machine, bank, post office), \"food\", \"lodging\", \"garage\" (car repair, tyres, car wash), \"police\" (police stations), \"toilets\" (public toilets) (\"safety\", the former name for both, still answers as both); each uses its own radius (1–2 km, widened up to 5 km where fewer than three are near), not radius_km."
    • changedInput schema / properties / categories / items / enum
      Previous value: -[
      -  "fuel",
      -  "charging",
      -  "parking",
      -  "station",
      -  "junction"
      -]New value: +[
      +  "fuel",
      +  "charging",
      +  "parking",
      +  "station",
      +  "junction",
      +  "groceries",
      +  "health",
      +  "money",
      +  "food",
      +  "lodging",
      +  "garage",
      +  "police",
      +  "toilets",
      +  "safety"
      +]
    • changedInput schema / properties / place / description
      Previous value: -"Where to look, as free text: a city (\"München\", \"Munich\"), a district or Kreis (\"Kreis Fulda\"), a Bundesland, a station or stop (\"Hamburg Hbf\"), a motorway junction (\"AK Neufahrn\"), or a street address with a house number (\"Bahnhofstraße 12, 36037 Fulda\"). A motorway number alone (\"A7\") resolves to the road, which has no single point — name a town or junction on it instead. Use this instead of coordinates whenever the person named a place. An address needs its town or postcode — a street and a number alone exist in many towns. Give either place OR lat+lon, never both."New value: +"Where to look, as free text: a city (\"München\", \"Munich\"), a district or Kreis (\"Kreis Fulda\"), a Bundesland, a station or stop (\"Hamburg Hbf\"), a motorway junction (\"AK Neufahrn\"), or a street address with a house number (\"Bahnhofstraße 12, 36037 Fulda\"). A motorway number alone (\"A7\") resolves to the road, which has no single point — name a town or junction on it instead. Use this instead of coordinates whenever the person named a place. An address needs its town or postcode — a street and a number alone exist in many towns. A place or lat+lon is required (unless the tool names another way in, such as a road): when the person named neither, ask them for a town, a postcode or their position before calling. Given both, the answer is about lat+lon with the place as its label, and is refused only when the two lie further apart than the search reaches."
  2. Changed1 schema field changedv2.1.18
    • changedInput schema / properties / language / description
      Previous value: -"Set this on every call to the language the person is writing in: \"en\" if they wrote English, \"de\" if they wrote German. Do not leave it out because it has a default — the default is only the fallback when the language is genuinely unclear, and an English question answered in German is a wrong answer. Place names, station names and road numbers are never translated in either language; in English the German term is kept in parentheses so the person recognises it on signs and in local apps."New value: +"Set this on every call to the language the person is writing in: \"en\" if they wrote English, \"de\" if they wrote German. Do not leave it out: it defaults to German (\"de\"), which is only the fallback when the language is genuinely unclear, so an English question sent without it is answered in German — a wrong answer. Place names, station names and road numbers are never translated in either language; in English the German term is kept in parentheses so the person recognises it on signs and in local apps."
  3. Changed1 schema field changedv1.8.29
    • changedInput schema / properties / place / description
      Previous value: -"Where to look, as free text: a city (\"München\", \"Munich\"), a district or Kreis (\"Kreis Fulda\"), a Bundesland, a station or stop (\"Hamburg Hbf\"), a motorway (\"A7\"), or a street address with a house number (\"Hauptstraße 12, 36037 Fulda\"). Use this instead of coordinates whenever the person named a place. An address needs its town or postcode — a street and a number alone exist in many towns. Give either place OR lat+lon, never both."New value: +"Where to look, as free text: a city (\"München\", \"Munich\"), a district or Kreis (\"Kreis Fulda\"), a Bundesland, a station or stop (\"Hamburg Hbf\"), a motorway junction (\"AK Neufahrn\"), or a street address with a house number (\"Bahnhofstraße 12, 36037 Fulda\"). A motorway number alone (\"A7\") resolves to the road, which has no single point — name a town or junction on it instead. Use this instead of coordinates whenever the person named a place. An address needs its town or postcode — a street and a number alone exist in many towns. Give either place OR lat+lon, never both."
  4. Changed1 schema field changedv1.7.3
    • addedInput schema / properties / place / maxLength
      Added value: +120
  5. Addedv1.4.8

TDQS

A4.5/5.0
Behavior4/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 safety is covered; the description adds non-annotation behavior instead: the 15 km radius ceiling, result caps of 3 per category (5 per need), per-category radii for everyday places, and that source attribution is emitted. It stops short of describing result ordering or what fields each entry carries, which keeps it at 4 rather than 5. Nothing contradicts 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded: capability first, exclusions second, in the order an agent needs them. The exclusion sentence is a dense comma-list but each item is a distinct routing decision, so little is wasted; slightly heavy punctuation costs it a point.

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 6 parameters, no required fields, no output schema and annotations present, the description covers capability, trigger, exclusions, radius limits and result volume — enough to call it correctly. It leaves the shape of individual results (fields per entry, ordering) unstated, which is a minor gap given the absence of an output schema.

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?

Schema description coverage is 100%, so the baseline is 3; the description still contributes beyond it by stating the radius bound and the category-cap semantics ("up to 3 per category (5 per need)") and the rule that daily-life categories ignore radius_km in favour of their own 1–2 km radius. It does not restate lat/lon vs place trade-offs, which the schema already handles well.

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 names a specific retrieval task ("overview of what is around a place or coordinate") and enumerates the returned content: fuel, EV charging, parking, nearest railway station and motorway junction with distances, plus opt-in everyday categories. It also states the scope limit that everyday places appear "only when named in categories", which is a real behavioral distinction, not a restatement of the name.

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 gives an explicit trigger ("Use when asked 'what is around me'") and an explicit seven-way exclusion list routing to find_cheapest_fuel, find_charging_station, find_parking, find_place/find_poi/find_address and describe_location. This is the strongest form of sibling differentiation: the agent can pick the correct tool on the first try without opening any schema.

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