mapnetwork-mcp
Server Details
Generate styled PNG/SVG map images of any location with 11 customizable color themes.
- Status
- Healthy
- Uptime
- 99.8% over 40 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- toruproject/mapnetwork-mcp
- GitHub Stars
- 0
- Server Listing
- MapNetwork MCP Server
TDQS
Scored across 3 tools
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.
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.
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
Related MCP Connectors
Create choropleth, category and pin maps of countries, states, counties and ZIP codes as images.
Ask in plain English, get a rendered, shareable map from live public data. 24 geospatial tools.
OpenStreetMap queries, maps/styles, search, routing, terrain, analysis, pipelines, and rendering.
Google Maps MCP Pack — geocoding, places, directions, distance matrix, elevation.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables creating themed SVG maps, GeoJSON data, projections, React components, and embeddable map builders through natural language requests.27 npmMIT

@maproll/mcpofficial
AlicenseAqualityBmaintenanceEnables agents to turn structured data into production-ready static maps, returning rendered PNG and SVG URLs along with an editable map link.4204 npmMIT- AlicenseAqualityBmaintenanceEnables turning data into map images of countries, states, provinces, counties, continents, and the world, including choropleths, category maps, and pinned locations.343 npm1MIT
- 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.1819 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.