An MCP server that provides tools to build interactive map scenes with markers, paths, polygons, and labels using geographic data from OpenStreetMap and routing services.
Server has 5 tools with basic schemas and descriptions, but significant gaps limit production readiness. Tool names follow verb_noun convention (createLabel, createMarker, createPath, createPolygon, renderScene), which is good. However, descriptions are minimal (10-50 chars), parameter descriptions lack detail about constraints and formats, and output schemas are not documented. No error handling guidance, no pagination support, and no tool annotations. The monorepo structure with shared services is well-organized, but tool definitions themselves lack the depth needed for reliable LLM invocation.
Create a text label on the map at a location.
Create a marker on the map.
Create a path or route between two locations on the map.
Create a polygon to highlight a region or boundary on the map.
Render the complete map scene with all created markers, paths, polygons, and labels.
Tool descriptions are too brief (10-50 chars). LLMs cannot determine when to select each tool or what distinguishes createLabel from createMarker. Descriptions should be 50-200 chars explaining WHAT, WHEN, and WHAT IT RETURNS.
Parameter descriptions lack constraint details. 'location' is described as 'geographic location' but does not specify format (lat/lon, address string, place name). 'style' object properties have minimal guidance on valid color formats or numeric ranges.
Output schemas are not documented. Tools return objects but LLMs cannot see what fields are in the response, what IDs are returned, or how to chain results to downstream tools. renderScene output is completely undocumented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No error handling guidance. Tools do not document what errors can occur (invalid location, unsupported color format) or how LLMs should recover. No actionable error messages defined.
Parameter 'location' is ambiguous. Does it accept 'New York', '40.7128,-74.0060', or 'place_id:123'? Undocumented format forces LLM to guess and causes failures. Should specify accepted formats explicitly.