SuperAPI AI 工具集

maplibre-mcp

maplibre-mcp 是一个面向 MapLibre 的 MCP 服务器,让 AI 智能体能够渲染、检查和展示它正在编辑的地图样式。它能解决编码智能体写得出生 MapLibre 样式却看不见地图的问题:智能体可渲染样式、查看图像并据此修正,用户还能获得一个随文件修改而实时重绘的地图链接。它在本机运行,无需 API 密钥。主要工具包括校验样式规范、查询 MapLibre GL JS API、读取矢量瓦片与数据源、调试图层为何不绘制、将样式渲染为 PNG、生成实时预览链接、对比样式版本与渲染器、列出 Martin 服务与生态资源等。适用于通过对话编辑地图样式、排查图层不显示的原因,以及在没有 shell 的沙箱或聊天应用中让智能体获得地图能力。需要 Node.js 22 或更新版本。

访问官网

工具介绍

maplibre-mcp 是一个为 MapLibre 提供支持的 MCP 服务器(Model Context Protocol),其目标是在 AI 智能体编辑地图样式时,让它能够真正“看见”并检查所操作的地图,并把结果展示给用户。

用途

编码智能体可以写出 MapLibre 样式,但无法看到地图,因此往往只能交付未经测试的成果,或先花时间自建渲染器,并倾向于凭记忆使用较旧的 MapLibre GL JS 或 Mapbox 写法。使用 maplibre-mcp 后,智能体可以渲染样式、查看图像并修正看到的问题,用户则获得一个实时地图链接,地图会随样式文件的编辑而重绘。该服务器在用户本机运行,无需 API 密钥。

它尤其适合两类场景:

  1. 通过对话编辑样式,同时观察地图变化,例如“把水调深一些”“把村里的步道变细”。智能体编辑文件并检查渲染结果,已打开的地图随之更新。
  2. 查明某个图层为何不绘制。智能体读取真实瓦片,查看某地点哪些图层会绘制、其他图层为何不会,并修复过滤器。

在没有 shell 可自行构建工具的环境中(如沙箱或聊天应用),智能体从中获益最大。

运行要求与安装

需要 Node.js 22 或更新版本。Claude Desktop、Cursor、Windsurf 及大多数其他客户端读取同一段 JSON 配置,具体位置见其“Getting started”文档。使用 MapLibre GL JS 渲染依赖已安装的 Google Chrome;若无 Chrome,首次渲染会失败并给出安装可用 Chromium 的命令。在无法安装浏览器的沙箱或 CI 中,可使用容器镜像 ghcr.io/birkskyum/maplibre-mcp,其中包含服务器及其 Chromium。有 shell 的智能体和用户也可以直接以命令行方式运行渲染、数据和 GL JS API 查询工具,无需配置 MCP;样式可以是文件或 URL。

主要能力

工具按所属 MapLibre 项目分组。默认开启 style、gl-js 和 ecosystem,可用 --toolsets 或 MAPLIBRE_MCP_TOOLSETS 环境变量选择其他组合,all 表示全部开启。

  • validate_style:按 MapLibre 样式规范校验样式,列出每个问题及其属性路径。
  • describe_style_spec:查询图层类型、属性、源类型或表达式,附文档及支持的 GL JS 与 Native 版本;对拼错的名字会给出最接近的真实名称建议。
  • describe_gl_js_api:查询 MapLibre GL JS 的类、方法、选项或事件,给出签名、文档、默认值和示例,基于服务器渲染所用版本的类型定义或其他版本;当某方法不属于 MapLibre(例如来自 Mapbox GL JS)时也会指出。
  • describe_sources:读取样式中各源的 TileJSON、PMTiles 头或 GeoJSON,列出源图层和字段,并找出使用了不存在的源图层或字段的图层。
  • inspect_tile:读取某位置的矢量瓦片,列出每个源图层及其几何类型、字段取值和出现频率、若干示例要素,以及源的缩放范围和瓦片中缺失的源图层。源可以是样式中的源、TileJSON URL(如 Martin 源)、PMTiles 归档或瓦片 URL,支持 MVT 或 MLT 瓦片。
  • debug_layers:判断样式各图层在某位置和缩放级别是否绘制,若不绘制则说明原因,例如源图层缺失、过滤器无法匹配(并对照数据实际取值)、填充图层没有多边形、绘制结果为 0 或透明、精灵图中缺少图标;还会提示文字回退到本地字体,因为 glyph 服务器缺少其字体栈。
  • render_style:将样式渲染为 PNG,并报告地图错误、缺失字体和缺失图标。可指定中心点、缩放、方位角与俯仰角,或按边界适配,或在 3D 地形上指定相机位置和注视点。
  • preview_style:给用户一个实时交互式地图链接。地图随样式文件变化而更新;没有文件可写的智能体可将改动后的样式发送到同一链接。
  • render_page:渲染包含地图的网页,适用于样式无法承载的内容,如插件、控件和页面代码。它会报告页面错误和失败请求,并可先在页面中运行脚本。
  • compare_styles:以同一相机渲染样式的两个版本,返回一张图像,包含修改前、修改后以及用红色标出的差异。
  • compare_renderers:对同一网站在两个渲染器中的表现做同样对比,例如检查样式在网页和移动端是否看起来一致。
  • show_map:在支持 MCP Apps 的客户端中,向用户展示带 GeoJSON 图层和标记的交互式地图,底图为 OpenFreeMap。
  • martin_list_sources:列出 Martin 服务器提供的瓦片、精灵图、字体和样式,以及样式中应使用的 URL。
  • search_ecosystem:在 Make with MapLibre 中搜索 SDK、插件、路径规划、地理编码、样式和瓦片库、托管 API、产品和咨询服务,可按类型和平台筛选,并附链接和在线演示。
  • find_basemaps:列出 Make with MapLibre 中的底图及其样式 URL 或瓦片源、是否需要 API 密钥,以及提供商要求的归属或徽标。

Make with MapLibre 的数据版权归 © Birk Skyum 所有,采用 CC BY 4.0 许可,两个工具结尾都会给出该署名。

使用方式

接受样式的工具支持以对象(style)、URL(url)或文件(path,相对于服务器运行位置)传入。若启用了任意渲染器,则有 render_style 和 compare_styles;启用两个或更多渲染器时还有 compare_renderers。使用 MapLibre Native 渲染需要额外一个包,使用 Martin 渲染需要带渲染能力的 Martin 构建。

命令行方式下,图像输出到 map.png、compare.png 和 renderers.png,或通过 --out 指定。npx -y maplibre-mcp --help 会列出选项。要校验、格式化或迁移样式,可使用 @maplibre/maplibre-gl-style-spec 中的 gl-style-validate、gl-style-format 和 gl-style-migrate。

--http 会以 http://127.0.0.1:3100/mcp 提供 Streamable HTTP,而非 stdio,--host 和 --port 可改变地址。在回环地址上,它只应答来自 localhost 的请求;在其他地址上,它不读写文件,仍会从其所在网络获取所给 URL,且没有身份验证,因此应置于带认证的代理之后。

适用场景与限制

适合在聊天中编辑地图样式并实时观察、排查图层不绘制问题,以及让无 shell 的沙箱或聊天应用中的智能体获得地图操作能力。需要 Node.js 22 或更新版本;GL JS 渲染依赖 Chrome 或 Chromium,无法安装浏览器的环境需使用容器镜像;Native 和 Martin 渲染需要额外依赖;HTTP 模式在非回环地址下无认证,需自行加代理保护。

许可

MIT © 2026 Birk Skyum。