Changelog
The release notes of each version, also on GitHub, which has a feed for following new releases.
2026-09-26 · On GitHub
martin_list_sourcestreats an emptyMARTIN_URLas unset and readshttp://localhost:3000, instead of failing. Settings forms like Docker's pass an empty value for a setting left blank.
Smaller changes
Section titled “Smaller changes”- The repository has a Dockerfile, which runs maplibre-mcp with the headless Chromium it renders with.
- Security issues can be reported privately through GitHub's vulnerability reporting.
2026-09-26 · On GitHub
See what a source has beyond one tile
Section titled “See what a source has beyond one tile”inspect_tile now also reads the metadata of a source, like the TileJSON of a Martin source, and says which zoom levels it has tiles for, and which of its source layers the tile at the place lacks. In the middle of the Atlantic, the tile holds 4 of the 16 source layers of OpenFreeMap's planet, and the report names the others:
Tile 6/26/32 of https://tiles.openfreemap.org/planet, at [-30, 0], MVT, 19.1 kB.The source has tiles from zoom 0 to 14....The source also has 12 source layers with no features in this tile: aerodrome_label, aeroway, building, housenumber, landcover, landuse, mountain_peak, poi, transportation, transportation_name, water_name, waterway.Asked for a source layer the tile lacks, it says whether the source has that layer elsewhere.
- Commands take negative coordinates, like
--center -74,40.7. Node's argument parser took them for options, so places west of Greenwich or south of the equator failed.
Smaller changes
Section titled “Smaller changes”- maplibre-mcp is in the MCP Registry as
io.github.birkskyum/maplibre-mcp, and each release updates it.
2026-09-26 · On GitHub
Look up the GL JS API
Section titled “Look up the GL JS API”A new tool, describe_gl_js_api, looks up a class, method, option or event of MapLibre GL JS in the type definitions GL JS ships, and returns its signature, documentation, default and examples, with a link to the docs page. Agents can check a method before they use it, instead of writing it from memory, where Mapbox GL JS methods and older versions mix in.
Map has no member "setFog" in MapLibre GL JS 6.11.2.MapOptions.maxPitch (property of MapOptions, MapLibre GL JS 6.11.2)maxPitch?: number | nullThe maximum pitch of the map (0-180).Default: 60Docs: https://maplibre.org/maplibre-gl-js/docs/API/type-aliases/MapOptions/#maxpitchIt answers for the GL JS version the server renders with, and version looks a name up in another one instead, like the "5" a project uses, from jsDelivr. It's in the gl-js toolset, so it's on by default, and npx -y maplibre-mcp describe-gl-js-api Map#flyTo runs it from a shell.
2026-09-26 · On GitHub
Check the fonts of label layers
Section titled “Check the fonts of label layers”debug_layers now asks the glyph server for the fonts each label layer uses. GL JS draws text in a font the server doesn't have with local fonts instead, and MapLibre Native leaves it out, so the layer says so:
places (symbol): draws 16 of the 16 features in source layer "place". Its text is drawn with local fonts, since the glyph server lacks the font stack "Open Sans Bold".A layer without text-font is checked against the default, "Open Sans Regular,Arial Unicode MS Regular", which many glyph servers don't have, OpenFreeMap's among them.
debug_layersno longer says that the text layers of a style without a glyphs URL draw nothing. GL JS has drawn such text with local fonts since 5.11.0, anddebug_layersnow notes that instead.
Smaller changes
Section titled “Smaller changes”- The troubleshooting page says how to install Chromium for rendering in a Docker container.
2026-09-26 · On GitHub
Find out why a layer draws nothing
Section titled “Find out why a layer draws nothing”A new tool, debug_layers, reads the tiles at a place and says for each layer of a style whether it draws, and if it draws nothing, why. It catches layers that are hidden or outside their zoom range, a source layer the tiles don't have, a filter that matches no feature, a fill layer without polygons, paint that comes out as 0 or transparent at the zoom, text without a glyphs URL, and icons the sprite lacks. For a filter that matches nothing, it lists the values the data really has.
buildings (fill): draws nothing, since the tile has no source layer "buildings". It has: boundary, building, housenumber, ...motorways (line): draws nothing, since its filter matches none of the 568 features in source layer "transportation". No feature has the field "kind".It's in the style toolset, so it's on by default, and npx -y maplibre-mcp debug-layers style.json --center 12.57,55.68 --zoom 14 runs it from a shell.
- maplibre-mcp now starts when its repository is built with pnpm. 0.2.0 imported
@mapbox/point-geometrywithout declaring it, which installs from npm covered but a pnpm checkout doesn't.
2026-09-25 · On GitHub
Inspect the data behind a style
Section titled “Inspect the data behind a style”A new tool, inspect_tile, reads the vector tile at a place and lists each source layer with its geometry types, the values of every field and how often they occur, and a few example features. An agent can now see that roads are "motorway", "primary" or "path" before it writes a filter, instead of guessing.
transportation: 67 features (67 LineString) brunnel (in 8 of 67): "tunnel" (6), "bridge" (2) class: "primary" (28), "secondary" (19), "motorway" (10), "rail" (5), "trunk_construction" (2), "trunk" (2), "ferry" (1)It reads a source of a style, a TileJSON URL like a Martin source, a PMTiles archive on the web or on disk, or a tile URL, with MVT or MLT tiles. It's in the style toolset, so it's on by default.
Run the tools from a shell
Section titled “Run the tools from a shell”Agents that work in a shell, and people, can now run the rendering and data tools as commands, without setting up MCP first. Each command runs one tool and exits.
npx -y maplibre-mcp render style.json --center 12.57,55.68 --zoom 12npx -y maplibre-mcp compare before.json after.json --zoom 10npx -y maplibre-mcp compare-renderers style.json --renderers gl-js,nativenpx -y maplibre-mcp describe-sources style.jsonnpx -y maplibre-mcp inspect-tile https://tiles.openfreemap.org/planet --center 12.57,55.68 --zoom 14npx -y maplibre-mcp --help lists the options, and the command line docs have the details.
Smaller changes
Section titled “Smaller changes”describe_sourcesandmartin_list_sourcespoint agents toinspect_tilewhen they need the values of a field.- The tool reference and the examples cover the new tool.
2026-09-25 · On GitHub
Full Changelog: https://github.com/birkskyum/maplibre-mcp/commits/v0.1.1