Faceabot Places nearby
Server Details
Places near any address: restaurants, pharmacies, hotels and more (OpenStreetMap). Free, no key.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
places_near and places_search both find places of a given kind, which creates some overlap. However, the descriptions clearly distinguish them by search mode: radius-based nearest-first around coordinates/address versus city/area-wide search from OpenStreetMap.
All names use snake_case, but the conventions are mixed: geocode_address and reverse_geocode are action-first, while places_near and places_search are domain-first. The names are still readable and predictable enough, but not consistently verb_noun.
Four tools are well-scoped for a focused places/geocoding server: forward geocode, reverse geocode, nearby search, and area search. Each tool has a clear role and no filler.
The surface covers the core geocoding and place-discovery workflows in both directions. Minor gaps exist, such as explicit place-detail lookup by ID, but agents can work around them using search results.
Available Tools
4 toolsgeocode_addressAddress or place name to coordinatesARead-onlyIdempotentInspect
Turns an address, a place name or a city into coordinates (latitude, longitude) with its full address, type and country. Worldwide, any language. Use when: you need coordinates for a map, a distance, weather or places_near. Example: {"query":"Grand-Place, Brussels"}
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | en | |
| limit | No | ||
| query | Yes | Address, landmark or place name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context beyond that: worldwide coverage, any-language input, and the shape of the result set. It omits ambiguity handling, which matters for a geocoder that can return multiple candidates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short lines, front-loaded with the transformation, then the decision cue, then a copy-pasteable example. No sentence is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields, and the annotations carry the risk profile, so an agent has what it needs to call the tool. The remaining gap is the undocumented `lang` and `limit` parameters, which leaves callers guessing on result count and language handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the schema documents `query` alone and leaves `lang` and `limit` bare. The description reinforces `query` semantics ('any language', the Grand-Place example) but says nothing about what `lang` controls or that `limit` caps candidate results, leaving two of three parameters unexplained in both schema and prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a precise verb+resource pairing ('Turns an address, a place name or a city into coordinates') and enumerates the returned fields (latitude, longitude, full address, type, country). The forward geocoding direction makes it plainly distinct from reverse_geocode, so an agent can choose 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'Use when' clause lists concrete downstream needs (map, distance, weather, places_near) and a worked example anchors the input format. It stops short of naming reverse_geocode as the when-not alternative, so the exclusion criterion is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
places_nearFind places near a pointARead-onlyIdempotentInspect
Finds places of one kind around a latitude/longitude or an address (up to 5 km), nearest first, with distance in meters. Use when: you need the closest pharmacy, ATM, restaurant, charging station… to the user's location or to an address. Example: {"what":"pharmacy","lat":50.8467,"lon":4.3525,"radius_m":1000} or {"what":"pharmacy","where":"Grand-Place, Brussels"}
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| lang | No | en | |
| what | Yes | Kind of place (any language) | |
| limit | No | ||
| where | No | Instead of lat/lon: an address or place name (any language), converted to coordinates | |
| radius_m | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description still adds real behavioral value: results are ordered nearest-first, distances are returned in meters, and the 5 km cap is stated up front.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded lines: what it does, when to use it, then a runnable example. No filler, and the example shows both the coordinate and the address form side by side.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully discloses the return shape (distances in meters, nearest first). For a 7-parameter tool, the remaining gap is the undocumented limit and lang behavior, and the absence of any hint on how this differs from places_search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 29%, so the description has to compensate. It does explain the lat/lon vs. address ('where') alternative and shows radius_m in use, but says nothing about limit (default 10, max 40) or lang, leaving two parameters essentially undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('finds places of one kind') plus the scoping constraint (around a point or address, up to 5 km, nearest first). It clearly conveys what the tool returns, but it never contrasts itself with the sibling places_search, which is the most likely confusion point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The explicit 'Use when:' clause with concrete examples (closest pharmacy, ATM, charging station) gives a clear situational trigger. It stops short of naming when NOT to use it or pointing to places_search/geocode_address as alternatives when this tool is the wrong fit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
places_searchFind places in a cityARead-onlyIdempotentInspect
Finds places of one kind in a city or area from OpenStreetMap: restaurants, cafes, bars, hotels, hostels, museums, attractions, pharmacies, hospitals, supermarkets, ATMs, parking, EV charging, parks… with address, coordinates, opening hours, website and phone when known. Use when: someone asks for "restaurants in Rome", "museums in Amsterdam", "a pharmacy in Brussels". Example: {"what":"restaurant","where":"Rome","limit":10}
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language for names and addresses. Default: en | en |
| what | Yes | Kind of place, in English or another language (restaurant, hotel, musée, apotheek…) | |
| limit | No | ||
| where | Yes | City, district or area (any language), e.g. "Rome", "Ixelles, Brussels" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety bar is low; the description adds real value by naming the data source (OpenStreetMap) and the fields returned (address, coordinates, opening hours, website, phone). The 'when known' qualifier usefully signals that fields are sparse/optional, though coverage limits and the 40-result ceiling are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded lines: what it does, when to use it, and a literal example. The category enumeration is long but earns its place by settling the ambiguity of 'one kind', and nothing is repeated from the schema verbatim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by listing returned fields, and the annotations cover the safety profile. For a 4-parameter read-only lookup, the only residual gap — explicit routing away from places_near — is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% and the schema itself documents what/where/lang well; the description's example payload {"what":"restaurant","where":"Rome","limit":10} makes the expected input shape immediately usable and reinforces that 'what' is a single category rather than a list. The 'in English or another language' hint also echoes flexibility the schema only partly conveys for lang.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb plus resource: finds places of one category in a city/area, sourced from OpenStreetMap, with a concrete enumeration of supported categories. It is clear what it does, but it never distinguishes itself from the sibling places_near (coordinate-based lookup) or geocode_address, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'Use when' line with three natural-language triggers ("restaurants in Rome", "museums in Amsterdam", "a pharmacy in Brussels") gives strong positive guidance. There are no exclusions or named alternatives, so the when-not case versus places_near is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse_geocodeCoordinates to addressARead-onlyIdempotentInspect
Turns a latitude/longitude into the nearest address (street, postcode, city, country). Use when: you have GPS coordinates and need a readable address. Example: {"lat":48.8584,"lon":2.2945}
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | ||
| lon | Yes | ||
| lang | No | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds that it returns the nearest address components, but does not cover accuracy, failure behavior, rate limits, or language handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with purpose, then usage guidance, then a concrete example. There is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only geocoding tool, the description is nearly complete: it explains the transformation and names the returned address fields. The main gap is the unmentioned lang parameter, and there is no output schema to rely on for exact return-value detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It identifies lat/lon through the latitude/longitude wording and example, but omits the optional lang parameter entirely and adds little semantic detail beyond the schema's own types and examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: turning latitude/longitude into the nearest address, with the output fields listed. It clearly implies the opposite direction from the sibling geocode_address, though it does not name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use condition: when you have GPS coordinates and need a readable address. It does not state when not to use it or explicitly point to geocode_address for the reverse operation.
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.
1 tool update
- Changed
places_near2 fields changed- added
Input schema / properties / whereAdded value: +{ + "description": "Instead of lat/lon: an address or place name (any language), converted to coordinates", + "examples": [ + "Grand-Place, Brussels" + ], + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "what", - "lat", - "lon" -]New value: +[ + "what" +]
4 tool updates
- First observed
geocode_address - First observed
places_near - First observed
places_search - First observed
reverse_geocode
Related MCP Connectors
Address to coordinates and back, postal codes, worldwide (OpenStreetMap). Free, no key.
Geocode addresses, autocomplete searches and reverse geocode coordinates on open data. Free tier.
Overture Maps places — business and point-of-interest locations (name,
Geocode, reverse-geocode, autocomplete, route and search places.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to find nearby public places such as pharmacies, supermarkets, gas stations, EV chargers, libraries, and post offices, with attributed opening-hours data from OpenStreetMap.1MIT
- AlicenseAqualityDmaintenanceProvides forward/reverse geocoding, bounding box extraction, nearby places discovery, batch geocoding, route waypoints, and administrative boundary lookup using OpenStreetMap data.10Apache 2.0
- AlicenseAqualityBmaintenanceProvides location-based services and geospatial data from OpenStreetMap, enabling geocoding, route directions, nearby place search, and neighborhood analysis through natural language.12MIT
- AlicenseAqualityDmaintenanceTurn GPS coordinates into place name, category, and live opening hours via OpenStreetMap. Works in Claude, Hermes Agent, OpenClaw, and any MCP client.11MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.