mapnetwork-mcp
Server Details
Generate styled PNG/SVG map images of any location with 11 customizable color themes.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- toruproject/mapnetwork-mcp
- GitHub Stars
- 0
- Server Listing
- MapNetwork MCP Server
Available Tools
3 toolsgenerate_mapAInspect
Generate a styled map image centered on a single place. Returns a download+link as text, not image bytes. Example: place='Tokyo Station'.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional: display name for the map. If omitted, the server derives one automatically from place. | |
| place | Yes | Place name to center the map on (geocoded server-side). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It usefully reveals that output is a downloadable link as text rather than image bytes, and mentions server-side geocoding indirectly through the example, but it does not describe side effects, authentication, expiration, or failure behavior.
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?
The description is three short sentences, front-loaded with the core action and result. The example is useful and not redundant, and every sentence earns its place.
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 tool with two parameters and complete schema coverage, the description adequately explains the output format, which matters because there is no output schema. It does not cover sibling selection or error cases, but those are secondary for basic invocation.
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 100%, so the parameters are already documented. The description adds a concrete example for the required `place` parameter and reinforces that the map is centered on it, which helps the agent form a correct call.
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+resource: 'Generate a styled map image centered on a single place.' It also distinguishes itself from siblings by emphasizing a single place and by explicitly saying the result is a download link as text, not image bytes.
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 phrase 'centered on a single place' implies this tool is for one-place maps, but it does not explicitly say when to prefer it over generate_markers_map or generate_route_map. No alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_markers_mapBInspect
Generate a map with multiple pinned locations. Example: markers=[{"label": "Tokyo Tower", "link": "https://www.tokyotower.co.jp/"}, {"label": "Zojoji Temple"}].
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional: display name for the map. If omitted, the server derives one automatically from place/markers. | |
| place | No | Optional: place to center the map on. If omitted, the center is computed automatically from the markers. | |
| markers | Yes | Locations to pin on the map. At least one required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden of behavioral disclosure. It only states the generation action and gives an example; it does not mention output format, side effects, limitations, or any prerequisite conditions. The example illustrates input structure but adds little beyond the schema.
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?
The description is one sentence plus a compact example, front-loading the core purpose. The example is directly relevant and demonstrates the tricky nested array structure, so every part earns its place. No filler.
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?
The tool has a simple schema with full parameter descriptions, and the description covers the primary use case. However, it omits any mention of sibling alternatives or selection criteria, leaving an agent uncertain about when to pick this tool. The absence of an output schema is not an issue because the description states it generates a map.
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 descriptions cover 100% of parameters, so the baseline is 3. The description's example reinforces the markers array shape but adds no new meaning for the name or place parameters. It does not exceed the schema's explanatory value.
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 clear action: 'Generate a map with multiple pinned locations' with a specific resource (map with markers). It is a direct verb+resource statement, but it does not explicitly differentiate from sibling tools generate_map and generate_route_map. Despite that, the scope is clear enough to identify what the tool produces.
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?
There is no guidance on when to use this tool instead of generate_map or generate_route_map. The phrase 'multiple pinned locations' implies a use case, but no explicit conditions or alternatives are mentioned. An agent would have to infer selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_route_mapAInspect
Compute a walking/driving route between two places and generate a map with it overlaid. Both endpoints are pinned automatically — do not also call generate_markers_map for them. Example: from='Tokyo Station', to='Tokyo Tower', mode='walking'.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Route end. Place name to geocode. | |
| from | Yes | Route start. Place name to geocode. | |
| mode | No | 'walking' (default) or 'driving'. | |
| name | No | Optional: display name for the map. If omitted, the server derives one automatically from place/route. | |
| place | No | Optional: place to center the map on. If omitted, the center is computed automatically from the route. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and adds meaningful behavioral context: it computes and overlays a route, pins both endpoints automatically, and warns against redundant marker generation. It does not mention return format or side effects, but the core behavior is transparent.
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 sentences, each earning its place: the first states the purpose, the second gives a critical usage warning with behavior, and the third shows a concrete example. Information is front-loaded and there is no wasted wording.
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?
The description covers the primary function, automatic pinning, a sibling exclusion, and an example. Since there is no output schema, it could optionally clarify the exact return format, but for a map-generation tool the essentials are present and an agent can call it correctly.
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 100%, so the schema already documents all five parameters. The description adds a useful example with concrete values but does not deepen parameter semantics beyond what the schema provides, so the baseline of 3 is appropriate.
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: 'Compute a walking/driving route between two places and generate a map with it overlaid.' It also differentiates from the generate_markers_map sibling by explicitly noting that endpoints are pinned automatically, so an agent can tell this tool apart without examining the 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?
The description gives an explicit exclusion: 'do not also call generate_markers_map for them,' and provides a concrete example with from/to/mode. However, it does not directly mention the generate_map sibling or explain when to prefer this tool over it, so the guidance is clear but not fully exhaustive.
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. Dates show when Glama detected each change.
3 tool updates
- Changed
generate_map1 field changed- added
Input schema / properties / nameAdded value: +{ + "description": "Optional: display name for the map. If omitted, the server derives one automatically from place.", + "type": "string" +}
- Changed
generate_markers_map1 field changed- added
Input schema / properties / nameAdded value: +{ + "description": "Optional: display name for the map. If omitted, the server derives one automatically from place/markers.", + "type": "string" +}
- Changed
generate_route_map1 field changed- added
Input schema / properties / nameAdded value: +{ + "description": "Optional: display name for the map. If omitted, the server derives one automatically from place/route.", + "type": "string" +}
1 tool update
- Removed
generate_hyperlink_map
5 tool updates
- Removed
compute_route - Added
generate_hyperlink_map - Changed
generate_map12 fields changed- removed
Input schema / $defsRemoved value: -{ - "Location": { - "description": "Explicit coordinates.", - "properties": { - "lat": { - "description": "Latitude.", - "type": "number" - }, - "lng": { - "description": "Longitude.", - "type": "number" - } - }, - "type": "object" - }, - "RouteEndpoint": { - "description": "Provide 'location' for explicit coordinates (no geocoding), or only 'label' to geocode server-side. Both may be provided — 'location' takes precedence, 'label' is used for display.", - "properties": { - "label": { - "description": "Place name for geocoding and/or display.", - "type": "string" - }, - "location": { - "$ref": "#/$defs/Location" - } - }, - "type": "object" - } -} - added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / canvas_heightRemoved value: -{ - "description": "Canvas height in pixels (default 600).", - "type": "integer" -} - removed
Input schema / properties / canvas_widthRemoved value: -{ - "description": "Canvas width in pixels (default 1000).", - "type": "integer" -} - removed
Input schema / properties / color_setRemoved value: -{ - "description": "Background/line color theme (e.g. 'white', 'darkBlue', 'black') — see server instructions for the full list.", - "type": "string" -} - removed
Input schema / properties / formatRemoved value: -{ - "description": "'png' (default) or 'svg'.", - "enum": [ - "png", - "svg" - ], - "type": "string" -} - removed
Input schema / properties / locationRemoved value: -{ - "$ref": "#/$defs/Location", - "description": "Explicit coordinates for 'place'. If given, geocoding of 'place' is skipped. Not necessarily the map's final center — see server instructions." -} - removed
Input schema / properties / markersRemoved value: -{ - "description": "List of locations to pin on the map, e.g. [{\"label\": \"Tokyo Station\"}].", - "items": { - "properties": { - "label": { - "description": "Place name for geocoding and/or display.", - "type": "string" - }, - "location": { - "$ref": "#/$defs/Location", - "description": "Explicit coordinates. If provided, geocoding of 'label' is skipped." - } - }, - "type": "object" - }, - "type": "array" -} - removed
Input schema / properties / nameRemoved value: -{ - "description": "Map name stored in the data file.", - "type": "string" -} - changed
Input schema / properties / place / descriptionPrevious value: -"Place name to center the map on (geocoded server-side unless 'location' is also given)."New value: +"Place name to center the map on (geocoded server-side)." - removed
Input schema / properties / routeRemoved value: -{ - "description": "Route to overlay — pass compute_route()'s result through as-is.", - "properties": { - "coords": { - "description": "Ordered list of [lat, lng] pairs along the route.", - "items": { - "items": { - "type": "number" - }, - "maxItems": 2, - "minItems": 2, - "type": "array" - }, - "type": "array" - }, - "from": { - "$ref": "#/$defs/RouteEndpoint", - "description": "Route start point." - }, - "mode": { - "description": "'walking' (default) or 'driving'.", - "enum": [ - "walking", - "driving" - ], - "type": "string" - }, - "to": { - "$ref": "#/$defs/RouteEndpoint", - "description": "Route end point." - } - }, - "type": "object" -} - added
Input schema / requiredAdded value: +[ + "place" +]
- Added
generate_markers_map - Added
generate_route_map
1 tool update
- Changed
generate_map8 fields changed- removed
Input schema / properties / latRemoved value: -{ - "description": "Latitude of the map center. Must be combined with lng.", - "type": "number" -} - removed
Input schema / properties / layersRemoved value: -{ - "description": "Which map layers to draw (roads, railway, POI, etc.) — see server instructions for what each preset includes. Omit for 'default'.", - "enum": [ - "default", - "road_and_railway", - "only_driving_road", - "fully_detailed" - ], - "type": "string" -} - removed
Input schema / properties / lngRemoved value: -{ - "description": "Longitude of the map center. Must be combined with lat.", - "type": "number" -} - added
Input schema / properties / locationAdded value: +{ + "$ref": "#/$defs/Location", + "description": "Explicit coordinates for 'place'. If given, geocoding of 'place' is skipped. Not necessarily the map's final center — see server instructions." +} - changed
Input schema / properties / place / descriptionPrevious value: -"Place name to center the map on. Use this OR lat/lng, not both."New value: +"Place name to center the map on (geocoded server-side unless 'location' is also given)." - removed
Input schema / properties / radiusRemoved value: -{ - "description": "Circular radius in meters. Exclusive with size_ew/size_ns; omit for automatic default.", - "type": "number" -} - removed
Input schema / properties / size_ewRemoved value: -{ - "description": "Rectangular area width (east-west), meters. Pairs with size_ns; exclusive with radius.", - "type": "number" -} - removed
Input schema / properties / size_nsRemoved value: -{ - "description": "Rectangular area height (north-south), meters. Pairs with size_ew.", - "type": "number" -}
2 tool updates
- Changed
compute_route2 fields changed- changed
Input schema / properties / from_location / descriptionPrevious value: -"Route start point. Provide 'location' for explicit coordinates (no geocoding), or only 'label' to geocode server-side. Both may be provided — 'location' takes precedence, 'label' is used for display."New value: +"Route start point." - added
Output schema / properties / mode / descriptionAdded value: +"'walking' or 'driving'."
- Changed
generate_map2 fields changed- changed
Input schema / properties / color_set / descriptionPrevious value: -"Color theme — see server instructions for the list."New value: +"Background/line color theme (e.g. 'white', 'darkBlue', 'black') — see server instructions for the full list." - changed
Input schema / properties / layers / descriptionPrevious value: -"Layer preset — see server instructions for details. Omit for 'default'."New value: +"Which map layers to draw (roads, railway, POI, etc.) — see server instructions for what each preset includes. Omit for 'default'."
2 tool updates
- Changed
compute_route14 fields changed- added
Input schema / $defsAdded value: +{ + "Location": { + "description": "Explicit coordinates.", + "properties": { + "lat": { + "description": "Latitude.", + "type": "number" + }, + "lng": { + "description": "Longitude.", + "type": "number" + } + }, + "type": "object" + }, + "RouteEndpoint": { + "description": "Provide 'location' for explicit coordinates (no geocoding), or only 'label' to geocode server-side. Both may be provided — 'location' takes precedence, 'label' is used for display.", + "properties": { + "label": { + "description": "Place name for geocoding and/or display.", + "type": "string" + }, + "location": { + "$ref": "#/$defs/Location" + } + }, + "type": "object" + } +} - added
Input schema / properties / from_location / $refAdded value: +"#/$defs/RouteEndpoint" - removed
Input schema / properties / from_location / propertiesRemoved value: -{ - "label": { - "description": "Place name for geocoding and/or display.", - "type": "string" - }, - "location": { - "description": "Explicit coordinates.", - "properties": { - "lat": { - "description": "Latitude.", - "type": "number" - }, - "lng": { - "description": "Longitude.", - "type": "number" - } - }, - "type": "object" - } -} - removed
Input schema / properties / from_location / typeRemoved value: -"object" - added
Input schema / properties / to_location / $refAdded value: +"#/$defs/RouteEndpoint" - removed
Input schema / properties / to_location / propertiesRemoved value: -{ - "label": { - "description": "Place name for geocoding and/or display.", - "type": "string" - }, - "location": { - "description": "Explicit coordinates.", - "properties": { - "lat": { - "description": "Latitude.", - "type": "number" - }, - "lng": { - "description": "Longitude.", - "type": "number" - } - }, - "type": "object" - } -} - removed
Input schema / properties / to_location / typeRemoved value: -"object" - added
Output schema / $defsAdded value: +{ + "Location": { + "description": "Explicit coordinates.", + "properties": { + "lat": { + "description": "Latitude.", + "type": "number" + }, + "lng": { + "description": "Longitude.", + "type": "number" + } + }, + "type": "object" + }, + "RouteEndpoint": { + "description": "Provide 'location' for explicit coordinates (no geocoding), or only 'label' to geocode server-side. Both may be provided — 'location' takes precedence, 'label' is used for display.", + "properties": { + "label": { + "description": "Place name for geocoding and/or display.", + "type": "string" + }, + "location": { + "$ref": "#/$defs/Location" + } + }, + "type": "object" + } +} - added
Output schema / properties / from / $refAdded value: +"#/$defs/RouteEndpoint" - removed
Output schema / properties / from / propertiesRemoved value: -{ - "label": { - "description": "Place name for geocoding and/or display.", - "type": "string" - }, - "location": { - "description": "Explicit coordinates.", - "properties": { - "lat": { - "description": "Latitude.", - "type": "number" - }, - "lng": { - "description": "Longitude.", - "type": "number" - } - }, - "type": "object" - } -} - removed
Output schema / properties / from / typeRemoved value: -"object" - added
Output schema / properties / to / $refAdded value: +"#/$defs/RouteEndpoint" - removed
Output schema / properties / to / propertiesRemoved value: -{ - "label": { - "description": "Place name for geocoding and/or display.", - "type": "string" - }, - "location": { - "description": "Explicit coordinates.", - "properties": { - "lat": { - "description": "Latitude.", - "type": "number" - }, - "lng": { - "description": "Longitude.", - "type": "number" - } - }, - "type": "object" - } -} - removed
Output schema / properties / to / typeRemoved value: -"object"
- Changed
generate_map17 fields changed- added
Input schema / $defsAdded value: +{ + "Location": { + "description": "Explicit coordinates.", + "properties": { + "lat": { + "description": "Latitude.", + "type": "number" + }, + "lng": { + "description": "Longitude.", + "type": "number" + } + }, + "type": "object" + }, + "RouteEndpoint": { + "description": "Provide 'location' for explicit coordinates (no geocoding), or only 'label' to geocode server-side. Both may be provided — 'location' takes precedence, 'label' is used for display.", + "properties": { + "label": { + "description": "Place name for geocoding and/or display.", + "type": "string" + }, + "location": { + "$ref": "#/$defs/Location" + } + }, + "type": "object" + } +} - changed
Input schema / properties / color_set / descriptionPrevious value: -"Color theme. One of: darkBlue, darkGreen, popArt, lightBlue, lightGreen, beige, magenta, white, gray, black, brawn."New value: +"Color theme — see server instructions for the list." - removed
Input schema / properties / configRemoved value: -{ - "description": "Overrides for automatic layer-visibility defaults. Omit any field to keep the default.", - "properties": { - "patchworked": { - "description": "Auto-color closed areas and building shapes on the drawing. Default true.", - "type": "boolean" - }, - "withBuilding": { - "description": "Draw building shapes. Default true when building data is available.", - "type": "boolean" - }, - "withSeaRibbon": { - "description": "Draw a band representing the sea along the coastline. Default true when coastline data is available.", - "type": "boolean" - } - }, - "type": "object" -} - changed
Input schema / properties / layers / descriptionPrevious value: -"Preset combination of map layers. 'default': roads + POI icons. 'only_driving_road': car-accessible roads only, nothing else. 'road_and_railway': roads + railway lines, no POI. 'fully_detailed': roads + railway + waterline + greenarea + POI (waterline/greenarea only apply within Japan; ignored elsewhere)."New value: +"Layer preset — see server instructions for details. Omit for 'default'." - added
Input schema / properties / markers / items / properties / location / $refAdded value: +"#/$defs/Location" - removed
Input schema / properties / markers / items / properties / location / propertiesRemoved value: -{ - "lat": { - "description": "Latitude.", - "type": "number" - }, - "lng": { - "description": "Longitude.", - "type": "number" - } -} - removed
Input schema / properties / markers / items / properties / location / typeRemoved value: -"object" - changed
Input schema / properties / radius / descriptionPrevious value: -"Circular coverage radius in meters (max depends on layers). Mutually exclusive with size_ew/size_ns. Omit this if the user hasn't specified a size — a sensible default is applied automatically."New value: +"Circular radius in meters. Exclusive with size_ew/size_ns; omit for automatic default." - changed
Input schema / properties / route / descriptionPrevious value: -"Route to overlay, as returned by compute_route. Pass that object through as-is."New value: +"Route to overlay — pass compute_route()'s result through as-is." - added
Input schema / properties / route / properties / from / $refAdded value: +"#/$defs/RouteEndpoint" - removed
Input schema / properties / route / properties / from / propertiesRemoved value: -{ - "label": { - "description": "Place name for geocoding and/or display.", - "type": "string" - }, - "location": { - "description": "Explicit coordinates.", - "properties": { - "lat": { - "description": "Latitude.", - "type": "number" - }, - "lng": { - "description": "Longitude.", - "type": "number" - } - }, - "type": "object" - } -} - removed
Input schema / properties / route / properties / from / typeRemoved value: -"object" - added
Input schema / properties / route / properties / to / $refAdded value: +"#/$defs/RouteEndpoint" - removed
Input schema / properties / route / properties / to / propertiesRemoved value: -{ - "label": { - "description": "Place name for geocoding and/or display.", - "type": "string" - }, - "location": { - "description": "Explicit coordinates.", - "properties": { - "lat": { - "description": "Latitude.", - "type": "number" - }, - "lng": { - "description": "Longitude.", - "type": "number" - } - }, - "type": "object" - } -} - removed
Input schema / properties / route / properties / to / typeRemoved value: -"object" - changed
Input schema / properties / size_ew / descriptionPrevious value: -"East-west width of a rectangular coverage area in meters. Must be combined with size_ns."New value: +"Rectangular area width (east-west), meters. Pairs with size_ns; exclusive with radius." - changed
Input schema / properties / size_ns / descriptionPrevious value: -"North-south height of a rectangular coverage area in meters. Must be combined with size_ew."New value: +"Rectangular area height (north-south), meters. Pairs with size_ew."
2 tool updates
- Changed
compute_route5 fields changed- added
Input schema / properties / from_location / properties / location / properties / lat / descriptionAdded value: +"Latitude." - added
Input schema / properties / from_location / properties / location / properties / lng / descriptionAdded value: +"Longitude." - added
Input schema / properties / to_location / properties / location / properties / lat / descriptionAdded value: +"Latitude." - added
Input schema / properties / to_location / properties / location / properties / lng / descriptionAdded value: +"Longitude." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "coords": { + "description": "Ordered list of [lat, lng] pairs along the route.", + "items": { + "items": { + "type": "number" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + }, + "type": "array" + }, + "from": { + "description": "Route start point.", + "properties": { + "label": { + "description": "Place name for geocoding and/or display.", + "type": "string" + }, + "location": { + "description": "Explicit coordinates.", + "properties": { + "lat": { + "description": "Latitude.", + "type": "number" + }, + "lng": { + "description": "Longitude.", + "type": "number" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "mode": { + "enum": [ + "walking", + "driving" + ], + "type": "string" + }, + "to": { + "description": "Route end point.", + "properties": { + "label": { + "description": "Place name for geocoding and/or display.", + "type": "string" + }, + "location": { + "description": "Explicit coordinates.", + "properties": { + "lat": { + "description": "Latitude.", + "type": "number" + }, + "lng": { + "description": "Longitude.", + "type": "number" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "required": [ + "coords", + "mode" + ], + "type": "object" +}
- Changed
generate_map7 fields changed- added
Input schema / properties / markers / items / properties / location / properties / lat / descriptionAdded value: +"Latitude." - added
Input schema / properties / markers / items / properties / location / properties / lng / descriptionAdded value: +"Longitude." - added
Input schema / properties / route / properties / from / properties / location / properties / lat / descriptionAdded value: +"Latitude." - added
Input schema / properties / route / properties / from / properties / location / properties / lng / descriptionAdded value: +"Longitude." - added
Input schema / properties / route / properties / mode / descriptionAdded value: +"'walking' (default) or 'driving'." - added
Input schema / properties / route / properties / to / properties / location / properties / lat / descriptionAdded value: +"Latitude." - added
Input schema / properties / route / properties / to / properties / location / properties / lng / descriptionAdded value: +"Longitude."
2 tool updates
- Changed
compute_route4 fields changed- changed
Input schema / properties / from_location / descriptionPrevious value: -"{\"label\": \"place name\"} or {\"label\": ..., \"location\": {\"lat\":..., \"lng\":...}}."New value: +"Route start point. Provide 'location' for explicit coordinates (no geocoding), or only 'label' to geocode server-side. Both may be provided — 'location' takes precedence, 'label' is used for display." - added
Input schema / properties / from_location / propertiesAdded value: +{ + "label": { + "description": "Place name for geocoding and/or display.", + "type": "string" + }, + "location": { + "description": "Explicit coordinates.", + "properties": { + "lat": { + "type": "number" + }, + "lng": { + "type": "number" + } + }, + "type": "object" + } +} - changed
Input schema / properties / to_location / descriptionPrevious value: -"Same format as from_location."New value: +"Route end point. Same format as from_location." - added
Input schema / properties / to_location / propertiesAdded value: +{ + "label": { + "description": "Place name for geocoding and/or display.", + "type": "string" + }, + "location": { + "description": "Explicit coordinates.", + "properties": { + "lat": { + "type": "number" + }, + "lng": { + "type": "number" + } + }, + "type": "object" + } +}
- Changed
generate_map7 fields changed- changed
Input schema / properties / canvas_height / descriptionPrevious value: -"Canvas height in pixels (default 700)."New value: +"Canvas height in pixels (default 600)." - removed
Input schema / properties / edge_weightRemoved value: -{ - "description": "Road/line width adjustment. Positive thickens, negative thins.", - "type": "integer" -} - changed
Input schema / properties / layers / descriptionPrevious value: -"Preset combination of map layers. 'default': roads + POI icons. 'only_driving_road': car-accessible roads only, nothing else. 'road_and_railway': roads + railway lines, no POI. 'fully_detailed': roads + railway + waterline + greenarea + POI."New value: +"Preset combination of map layers. 'default': roads + POI icons. 'only_driving_road': car-accessible roads only, nothing else. 'road_and_railway': roads + railway lines, no POI. 'fully_detailed': roads + railway + waterline + greenarea + POI (waterline/greenarea only apply within Japan; ignored elsewhere)." - added
Input schema / properties / markers / items / propertiesAdded value: +{ + "label": { + "description": "Place name for geocoding and/or display.", + "type": "string" + }, + "location": { + "description": "Explicit coordinates. If provided, geocoding of 'label' is skipped.", + "properties": { + "lat": { + "type": "number" + }, + "lng": { + "type": "number" + } + }, + "type": "object" + } +} - removed
Input schema / properties / place_iconRemoved value: -{ - "description": "Custom icon override for the place/center pin.", - "type": "object" -} - changed
Input schema / properties / route / descriptionPrevious value: -"Route to overlay, as returned by compute_route."New value: +"Route to overlay, as returned by compute_route. Pass that object through as-is." - added
Input schema / properties / route / propertiesAdded value: +{ + "coords": { + "description": "Ordered list of [lat, lng] pairs along the route.", + "items": { + "items": { + "type": "number" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + }, + "type": "array" + }, + "from": { + "description": "Route start point.", + "properties": { + "label": { + "description": "Place name for geocoding and/or display.", + "type": "string" + }, + "location": { + "description": "Explicit coordinates.", + "properties": { + "lat": { + "type": "number" + }, + "lng": { + "type": "number" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "mode": { + "enum": [ + "walking", + "driving" + ], + "type": "string" + }, + "to": { + "description": "Route end point.", + "properties": { + "label": { + "description": "Place name for geocoding and/or display.", + "type": "string" + }, + "location": { + "description": "Explicit coordinates.", + "properties": { + "lat": { + "type": "number" + }, + "lng": { + "type": "number" + } + }, + "type": "object" + } + }, + "type": "object" + } +}
1 tool update
- Changed
generate_map1 field changed- changed
Input schema / properties / layers / enumPrevious value: -[ - "default", - "only_driving_road", - "road_and_railway", - "fully_detailed" -]New value: +[ + "default", + "road_and_railway", + "only_driving_road", + "fully_detailed" +]
1 tool update
- Changed
generate_map6 fields changed- changed
Input schema / properties / layers / descriptionPrevious value: -"Map layers to render. Default ['road', 'poi']. Valid: road, highway, driving, walking, railway, waterline, greenarea, poi."New value: +"Preset combination of map layers. 'default': roads + POI icons. 'only_driving_road': car-accessible roads only, nothing else. 'road_and_railway': roads + railway lines, no POI. 'fully_detailed': roads + railway + waterline + greenarea + POI." - added
Input schema / properties / layers / enumAdded value: +[ + "default", + "only_driving_road", + "road_and_railway", + "fully_detailed" +] - removed
Input schema / properties / layers / itemsRemoved value: -{ - "type": "string" -} - changed
Input schema / properties / layers / typePrevious value: -"array"New value: +"string" - removed
Input schema / properties / poi_typesRemoved value: -{ - "description": "Filter POI categories when 'poi' is in layers.", - "items": { - "type": "string" - }, - "type": "array" -} - changed
Input schema / properties / radius / descriptionPrevious value: -"Circular coverage radius in meters (max depends on layers). Mutually exclusive with size_ew/size_ns."New value: +"Circular coverage radius in meters (max depends on layers). Mutually exclusive with size_ew/size_ns. Omit this if the user hasn't specified a size — a sensible default is applied automatically."
1 tool update
- Removed
redownload_map
3 tool updates
- First observed
compute_route - First observed
generate_map - First observed
redownload_map
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Ask in plain English, get a rendered, shareable map from live public data. 24 geospatial tools.
- geoOAuthco.thinair
Geocoding, truck routing, traffic, weather, and place search via MCP — 11 hosted tools.
Google Maps MCP Pack — geocoding, places, directions, distance matrix, elevation.
Elevation, slope, terrain maps & 3-D surfaces for any site — near-global 30 m, US 10 m, AU/NZ 5 m.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables creating themed SVG maps, GeoJSON data, projections, React components, and embeddable map builders through natural language requests.40MIT

@maproll/mcpofficial
FlicenseNot gradedqualityBmaintenanceEnables agents to turn structured data into production-ready static maps, returning rendered PNG and SVG URLs along with an editable map link.-- AlicenseAqualityDmaintenanceGeospatial API tools for AI agents — geocoding, reverse geocoding, routing, isochrone, distance matrix, static maps, H3 hexagons, elevation, GPS map-matching, point-in-polygon, address normalisation, timezone lookup, and batch geocoding. Built on OpenStreetMap infrastructure. Cost-effective alternative to Google Maps API.1837MIT
- AlicenseNot gradedqualityCmaintenanceEnables geocoding, reverse geocoding, elevation profiles, static map PNGs, and coordinate reprojection using MapTiler's OpenStreetMap data.4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool has a clearly distinct purpose: single-place map, multi-marker map, and route map. The descriptions explicitly separate them, and the route tool even warns against double-pinning endpoints with the markers tool.
All tool names follow the same generate_X_map pattern, making the relationship between tools predictable. The naming clearly indicates the output type and the variation in each tool.
Three tools is a tight, well-scoped set for a map generation server. Each tool covers a distinct map use case without redundancy or unnecessary bloat.
The tool surface covers the core map-generation workflows: a single location, multiple markers, and a route between two points. Minor advanced options like custom styles or combined routes-plus-markers are not present, but the essential functionality is complete.