MapTiler MCP server providing geocoding, reverse geocoding, elevation, static maps, and coordinate conversion tools via MapTiler API
MapTiler MCP has well-structured tool definitions with complete input schemas and descriptions. All 8 tools have non-empty descriptions (avg ~180 chars, within baseline 194 chars). All parameters have type definitions. However, parameter descriptions are minimal or missing entirely, most params lack actionable guidance on format, range, or constraints. Output schemas are not documented. Error handling is basic (API key validation, HTTP status checks) but lacks recovery guidance. Tool names follow verb_noun convention (geocode, elevation, coordinates_convert) which is good, but some are domain-specific (geocode_by_id, tiles_json) and could be clearer for LLM selection. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all being read-only operations.
"Convert WGS84 lat/lng to [other CRS]" / "reproject coordinates" / "EPSG:4326 → EPSG:[X]" / "Web Mercator coordinates" — Coordinate Reference System (CRS) reprojection. Use to convert standard lat/lng (EPSG:4326) into projected systems like Web Mercator (3857), UTM zones, state plane, etc.
"Elevation at [coords]" / "altitude at [point]" / "how high is [location]" / "height above sea level" — elevation in meters above sea level at a single point via MapTiler's SRTM/Maxar dataset.
"Elevation profile along [route]" / "topographic profile of [path]" / "how hilly is this trail" — elevation samples along a polyline (sequence of lat/lng). Use for hiking elevation gain, cycling grade, trail planning.
"Geocode [address]" / "find coordinates of [place]" / "lat lng for [city]" / "search OpenStreetMap-backed places" — forward geocoding via MapTiler (OpenStreetMap-curated). Returns ranked candidates with lat/lng, address components, and feature IDs for re-lookup via geocode_by_id. Alternative to Mapbox/Google geocoders when you want OSM data.
Re-fetch a MapTiler geocoding feature by its stable ID (returned in geocode / geocode_reverse results). Use to refresh or re-localize a previously discovered place.
Parameter descriptions are minimal or absent. Most params (e.g., 'language', 'limit', 'bbox', 'proximity', 'types') have 1-2 word descriptions lacking format guidance, constraints, or examples. LLMs cannot infer valid ranges or formats from bare names.
Output schemas are not documented. Tools return raw API responses (JSON objects with nested fields, metadata, feature arrays) but the LLM has no schema to understand structure, required fields, or how to chain results to downstream tools.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All 8 tools are read-only and idempotent, but this is not declared in the tool definition. LLMs cannot infer safety properties and may incorrectly treat them as stateful.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
"What address is at [lat,lng]" / "reverse geocode [coords]" / "what place is at this point" — reverse geocoding (coordinates → address / locality / region) via MapTiler.
"Static map image of [location]" / "embed a map of [coords]" / "map thumbnail PNG" / "screenshot of map" — returns a MapTiler static-tile image URL for embedding in slack, docs, emails, dashboards. Pass style + coords + zoom + width/height; returns a fetchable PNG URL. No interactive JS required.
TileJSON spec metadata for a MapTiler tileset (zoom range, bounds, layer schema). Specialist tool for GIS integrators — most users want geocode / static_map_url instead.
Error handling lacks recovery guidance. callTool() throws generic errors ('MapTiler: invalid API key', 'MapTiler: 401') without suggesting next steps. No categorization of retryable vs. fatal errors.
Parameter constraints not formalized. 'limit' has no min/max; 'zoom' has no range; 'width'/'height' have no pixel bounds. Numeric parameters are unbounded, inviting LLM-generated absurd values (zoom=999, width=1000000).