glassmap.clyeh.xyz
An agent-native web map: WebMCP turns the map canvas into a semantic surface.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 7 · Act 8 · Transact 0 · Score: Not yet scored
Tool inspector
compare_areas
Compare two places in one call: how many features of each category are within radius_m of a, how many are within radius_m of b, and the nearest one of each category on each side. Both places are given the same way as anywhere else - a feature id, a place name such as "Zhongshan Station", or a coordinate - and both are counted with exactly the filter find_features uses, so the numbers match what a per-category search would return. Read "summary" out; use by_category to reason and its feature ids to act (select_features, set_map_view). A point of interest tagged as two categories - a bakery that also serves fast food - is counted under each of them, exactly as both of their find_features queries return it, so by_category can add up to slightly more than total, which counts places. This replaces one find_features call per category per place.
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
a |
— | yes | The first place: a feature id from an earlier call, a place name such as "Daan Park Station", or an explicit coordinate. If a name matches several places nothing is counted and the answer lists the candidates. |
b |
— | yes | The second place, in any of the same three forms as a. |
radius_m |
number | no | How far around each place to count, in metres (default 800, a comfortable walk; at most 10000). The same radius is used on both sides - that is what makes the two counts comparable. A larger radius is refused rather than quietly narrowed. |
categories |
array | no | Which categories to count. Always in memory: mrt_station, park, school, supermarket, listing, district. Points of interest, fetched for the whole city the first time you name one and kept for the rest of the session: restaurant, cafe, fast_food, bakery, bar, convenience, pharmacy, clinic, hospital, place_of_worship, bank, hotel, parking, bicycle_rental, library, museum, post_office, police. Naming a category is how you search it - there is no way to search all of them at once. Omit this and the answer counts mrt_station, park, school, supermarket, listing plus the points of interest fetched earlier in this session, and lists what it did not count under unsearched_categories with how many exist city-wide; district is never counted, because it is a property of a place rather than something near it. |
Raw JSON schema
{
"type": "object",
"properties": {
"a": {
"description": "The first place: a feature id from an earlier call, a place name such as \"Daan Park Station\", or an explicit coordinate. If a name matches several places nothing is counted and the answer lists the candidates.",
"anyOf": [
{
"type": "string",
"description": "A feature id, or the name of a station, park or district. A name needs the base data the page loads on open; before that it answers \"map data not ready\" rather than guessing, and asking again works."
},
{
"type": "object",
"properties": {
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in degrees."
},
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in degrees."
}
},
"required": [
"lng",
"lat"
],
"additionalProperties": false,
"description": "Explicit coordinate."
}
]
},
"b": {
"description": "The second place, in any of the same three forms as a.",
"anyOf": [
{
"type": "string",
"description": "A feature id, or the name of a station, park or district. A name needs the base data the page loads on open; before that it answers \"map data not ready\" rather than guessing, and asking again works."
},
{
"type": "object",
"properties": {
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in degrees."
},
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in degrees."
}
},
"required": [
"lng",
"lat"
],
"additionalProperties": false,
"description": "Explicit coordinate."
}
]
},
"radius_m": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10000,
"description": "How far around each place to count, in metres (default 800, a comfortable walk; at most 10000). The same radius is used on both sides - that is what makes the two counts comparable. A larger radius is refused rather than quietly narrowed."
},
"categories": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"enum": [
"mrt_station",
"park",
"school",
"supermarket",
"listing",
"district",
"restaurant",
"cafe",
"fast_food",
"bakery",
"bar",
"convenience",
"pharmacy",
"clinic",
"hospital",
"place_of_worship",
"bank",
"hotel",
"parking",
"bicycle_rental",
"library",
"museum",
"post_office",
"police"
]
},
"description": "Which categories to count. Always in memory: mrt_station, park, school, supermarket, listing, district. Points of interest, fetched for the whole city the first time you name one and kept for the rest of the session: restaurant, cafe, fast_food, bakery, bar, convenience, pharmacy, clinic, hospital, place_of_worship, bank, hotel, parking, bicycle_rental, library, museum, post_office, police. Naming a category is how you search it - there is no way to search all of them at once. Omit this and the answer counts mrt_station, park, school, supermarket, listing plus the points of interest fetched earlier in this session, and lists what it did not count under unsearched_categories with how many exist city-wide; district is never counted, because it is a property of a place rather than something near it."
}
},
"required": [
"a",
"b"
],
"additionalProperties": false
}
Similar websites
gabrielcatdeveloper.github.io
portami
carregados.com.br
Brazilian EV charging station map and trip planner for finding charging points and planning routes with charging stops across Latin America.
trip-world-taupe.vercel.app
TripBuilder is a shared itinerary workspace for humans and AI agents.
freemap.sk
Freemap Slovakia, a detailed digital map of Central Europe for hiking, cycling, cross-country skiing and horse riding, with marked trails and place search.