Skip to main content
Glama

nearby

Read-only

Findet Haltestellen, POIs und Adressen im Radius um eine KOORDINATE (Schwerpunkt Hannover/Niedersachsen) — „was ist in der Nähe von <lat,lon>", „welche Haltestellen liegen um diesen Punkt". Liegt nur ein Name vor, kommt erst eine Auflösung: search_place für eine Stadt oder Region, sonst die Ortsauflösung. Pflicht: latitude, longitude, radius_m. Optional: limit (Default 10); node_types — EIN String, mehrere Arten mit Komma: 'stop', 'address', 'poi', die Sharing-Angebote 'bike_rental', 'scooter_rental', 'car_sharing', 'taxi_stand', die Abstellanlagen 'park_and_ride', 'bike_and_ride', in Südtirol Ladesäulen 'charging_station' und fahrende Taxis 'taxi', oder 'any' ('stop,bike_rental'); include_mots (legt die bedienenden Linien über die Haltestellen-Treffer); only_available (nur Sharing-Treffer, Ladesäulen und Taxis, die gerade als frei gemeldet sind — UNBEKANNTE Verfügbarkeit gilt nicht als frei). Format: kompakter Einrück-Text (TOON), kein JSON. Anleitung: get_usage_guide mit tool='nearby' — die Werte im Einzelnen, was 'any' nicht abdeckt, und was ein Treffer trägt (category, modality, parking, charging, taxi, contactInfo). Anti-Fab: nur die zurückgegebenen Namen, Typen, Distanzen und Verfügbarkeiten nennen; fehlt ein Feld, war es in der Quelle nicht getaggt — Öffnungszeiten und Preise stehen hier NICHT.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of results, at least 1. Default 10.
formatNoAnswer serialisation: `"toon"` (default) or `"json"` — the detail is in `get_usage_guide`. **An agent leaves this out.**
latitudeYesLatitude in WGS-84 decimal degrees.
radius_mYesSearch radius in metres.
longitudeYesLongitude in WGS-84 decimal degrees.
node_typesNoWhich kinds of place to answer with: the places the graph holds — `"stop"`, `"address"`, `"poi"` — plus the shared-mobility offers `"bike_rental"`, `"scooter_rental"`, `"car_sharing"` and `"taxi_stand"`, plus the places to leave a vehicle of one's own, `"park_and_ride"` and `"bike_and_ride"`, plus — in South Tyrol — the charging stations `"charging_station"` and the taxis on the road `"taxi"`, or `"any"` for all of them. Several combine in ONE comma-separated string — `"stop,bike_rental"`; an array of the same tokens is read as that string. A kind outside the twelve is an argument error, not a dropped filter. `"poi"` alone also switches on the non-tourism filter; omit (or `"any"`) for the mixed default, in which each requested kind gets its share of `limit` and the shared-mobility offers share one between them. The two park-and-ride kinds, the charging stations and the taxis are the exceptions `"any"` does NOT cover — ask for them by name; for the parking sites with a `radius_m` of a few kilometres, because they are sparse.
include_motsNo`true` overlays the serving transit lines on stop results. Default `false`, which keeps the answer small.
only_availableNoSet to `true` for „wo kann ich JETZT eines nehmen": of the shared-mobility offers, only those whose live feed reports at least one vehicle ready to be taken are answered with — and of the charging stations those with a point reported free, of the taxis those reported free. A place whose availability is unknown is NOT returned then, and neither is a taxi rank, which has no feed to report one. Omit (or `false`) to list every place in range. The other kinds — `"stop"`, `"address"`, `"poi"`, `"park_and_ride"`, `"bike_and_ride"` — are unaffected either way.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / node_types / description
      Previous value: -"Which kinds of place to answer with: the places the graph holds —\n`\"stop\"`, `\"address\"`, `\"poi\"` — plus the shared-mobility offers\n`\"bike_rental\"`, `\"scooter_rental\"`, `\"car_sharing\"` and `\"taxi_stand\"`,\nplus the places to leave a vehicle of one's own, `\"park_and_ride\"` and\n`\"bike_and_ride\"`, or `\"any\"` for all of them. Several combine in ONE\ncomma-separated string — `\"stop,bike_rental\"`; an array of the same\ntokens is read as that string. A kind outside the ten is an argument\nerror, not a dropped filter. `\"poi\"` alone also switches on the\nnon-tourism filter; omit (or `\"any\"`) for the mixed default, in which each\nrequested kind gets its share of `limit` and the shared-mobility offers\nshare one between them. The two park-and-ride kinds are the exception\n`\"any\"` does NOT cover — ask for them by name, and with a `radius_m` of a\nfew kilometres, because such sites are sparse."New value: +"Which kinds of place to answer with: the places the graph holds —\n`\"stop\"`, `\"address\"`, `\"poi\"` — plus the shared-mobility offers\n`\"bike_rental\"`, `\"scooter_rental\"`, `\"car_sharing\"` and `\"taxi_stand\"`,\nplus the places to leave a vehicle of one's own, `\"park_and_ride\"` and\n`\"bike_and_ride\"`, plus — in South Tyrol — the charging stations\n`\"charging_station\"` and the taxis on the road `\"taxi\"`, or `\"any\"` for\nall of them. Several combine in ONE comma-separated string —\n`\"stop,bike_rental\"`; an array of the same tokens is read as that string.\nA kind outside the twelve is an argument error, not a dropped filter.\n`\"poi\"` alone also switches on the non-tourism filter; omit (or `\"any\"`)\nfor the mixed default, in which each requested kind gets its share of\n`limit` and the shared-mobility offers share one between them. The two\npark-and-ride kinds, the charging stations and the taxis are the\nexceptions `\"any\"` does NOT cover — ask for them by name; for the parking\nsites with a `radius_m` of a few kilometres, because they are sparse."
    • changedInput schema / properties / only_available / description
      Previous value: -"Set to `true` for „wo kann ich JETZT eines nehmen\": of the\nshared-mobility offers, only those whose live feed reports at least one\nvehicle ready to be taken are answered with. A station whose\navailability is unknown is NOT returned then, and neither is a taxi\nrank, which has no feed to report one. Omit (or `false`) to list every\nplace in range. The other kinds — `\"stop\"`, `\"address\"`, `\"poi\"`,\n`\"park_and_ride\"`, `\"bike_and_ride\"` — are unaffected either way."New value: +"Set to `true` for „wo kann ich JETZT eines nehmen\": of the\nshared-mobility offers, only those whose live feed reports at least one\nvehicle ready to be taken are answered with — and of the charging\nstations those with a point reported free, of the taxis those reported\nfree. A place whose availability is unknown is NOT returned then, and\nneither is a taxi rank, which has no feed to report one. Omit (or\n`false`) to list every place in range. The other kinds — `\"stop\"`,\n`\"address\"`, `\"poi\"`, `\"park_and_ride\"`, `\"bike_and_ride\"` — are\nunaffected either way."
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly/openWorld/destructive=false), but the description goes well beyond: it discloses the TOON text output format, the fact that opening hours and prices are absent, the fields a hit carries, and the special availability semantics (unknown availability is not treated as available). This is rich behavioral context an agent cannot get from the annotations alone.

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?

Front-loaded with purpose, then required/optional, then format, guide pointer and anti-fabrication rules, so the structure is easy to scan. It is long and partly duplicates the schema's own node_types enumeration, but nearly every sentence carries operational value.

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?

With no output schema and 8 parameters, the description covers what an agent needs: output format, what a result carries, availability caveats, and anti-fabrication rules, while delegating exhaustive detail to `get_usage_guide`. Nothing essential for a correct call is missing.

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 coverage is 100%, so the baseline is 3; the description nonetheless adds real meaning — required vs optional split, the comma-string form of `node_types`, the fact that `'any'` does NOT cover park_and_ride/charging_station/taxi, and the distinction between unknown and unavailable for `only_available`. It slightly repeats schema text, which keeps it from a 5.

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: finds stops, POIs and addresses within a radius of a coordinate, with two concrete example queries. It also distinguishes itself from siblings by routing name-only inputs to `search_place` (city/region) or the place resolution, so an agent can tell it apart without opening another 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?

Explicit when-to-use phrasing ("was ist in der Nähe von <lat,lon>") plus explicit alternatives (`search_place` for a city/region, otherwise the place resolution). It also directs the agent to `get_usage_guide` for the finer points and names the default serialisation, leaving little to inference.

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.

Resources