Maproll

io.maproll由 maproll.io 發布v0.2.3更新於 Nov 8, 2026

Make production-ready static maps. Every map is a URL you can embed anywhere.

已驗證STDIO僅桌面位置與生活媒體與設計

概覽

AI 產生的概覽

Maproll 讓助理用資料製作靜態地圖,並以永久、可嵌入的 maproll URL 回傳。

可以做什麼
  • 用結構化資料建立地圖:數值產生分級統計圖,顏色填滿區域,文字值產生質性分組,highlight 用來標出指定區域。
  • 在既有地圖 URL 上追加圖層:標記、路線、比例圓、圖樣填色、註解與標籤,可分成多輪逐步建構。
  • 把地名解析成真實座標,以及國家、地區、城市與機場的 ISO 或 IATA 代碼。
  • 查詢渲染器實際支援的 scope、主題、標記圖示、投影與圖樣填色。
  • 讀取唯讀目錄資源,並使用內建提示詞產生風格化地圖、README 片段與自然語言修改。
適用情境
適合讓助理把資料或描述變成可分享的靜態地圖——分級統計圖、標示區域、海運航線或加上註解的標記——並回傳可嵌入文件、README 或儀表板的 URL。
執行需求
透過 npx 以 stdio 在本機執行 npm 套件 @maproll/mcp,需要 Node 20 或更新版本。不需帳號或 API 金鑰;選用的 MAPROLL_API_KEY 可移除浮水印。需連網存取 maproll 的公開渲染 API。
安裝前請注意
未使用金鑰製作的地圖角落會帶有 maproll 浮水印。選用的 MAPROLL_API_KEY 透過伺服器環境變數傳入;金鑰 90 天後過期,過期後已發布的嵌入會重新顯示浮水印,需重新產生地圖。地圖資料與地名查詢會傳送到 maproll 的託管服務。OpenStreetMap 署名一律保留。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Maproll,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

@maproll/mcp

Let an AI assistant make real maps. Every map comes back as a maproll URL — permanent, embeddable, and the handle for the next change.

[World choropleth of coffee consumption per capita, made through the maproll MCP server]

That image is not a file in this repository. It is a maproll URL rendering live, which is the whole idea: the URL is the map.

Install

bash
claude mcp add maproll -- npx -y @maproll/mcp

Any other client takes the same command as config — Claude Desktop, Cursor (.cursor/mcp.json), VS Code (.vscode/mcp.json under "servers"):

json
{  "mcpServers": {    "maproll": {      "command": "npx",      "args": ["-y", "@maproll/mcp"]    }  }}

Needs Node 20 or newer. No API key, no signup, no account — the server runs from npm on demand and talks to the public render API.

Try it

Ask your assistant, in these words or your own:

Map coffee consumption per capita for the ten biggest drinkers.

Highlight the EU member states on a light map.

Draw the sea route from Shanghai to Rotterdam, with the ports marked.

Compare NATO and BRICS members on a dark map, and give me a URL I can embed.

The third one is the one to try if you only try one. Sea routes thread Suez, Panama and Malacca instead of drawing a straight line across Asia:

[Sea route from Shanghai to Rotterdam through the Suez canal, with both ports marked]

Tools

create_map

A map from your data. Numeric values give a choropleth, colours paint regions flat, text values give qualitative buckets, and highlight covers the case where the point is which regions rather than how much.

Region ids are ISO 3166-1 alpha-2 at the world scope (US, DE, BR) and ISO 3166-2 inside a country scope (RO-B, RO-CJ). Data arrives structured — the server owns the URL grammar, so the model never hand-assembles US:200:#ff0000.

add_layers

Markers, routes, proportional circles, pattern fills, annotations and labels, added to a map you already made. It takes that map's URL and appends — so it is also how a map gets built up over several turns instead of rebuilt from scratch each time.

find_places

A place name resolved to real coordinates and the id maproll uses. Countries, regions, cities and airports, each with its ISO 3166-1 / 3166-2 / IATA code.

Worth using before every marker. Coordinates recalled from memory are routinely wrong by degrees, and a map draws a wrong marker exactly as confidently as a right one.

describe_options

The scopes, themes, marker icons, projections and pattern fills the renderer actually accepts. An invented theme or icon name renders nothing and reports no error, so checking beats guessing.

What comes back

Every tool that makes a map returns the rendered PNG to look at, plus:

FieldWhat it is
svg_urlThe map. Embeddable, permanent, and the handle the other tools take.
png_urlThe same map as PNG.
editor_urlOpens it in the maproll editor, loaded and editable.
embedA ready <img> tag.
warningsNon-fatal problems — region ids the renderer did not recognise, for instance.

Why the URL is the map

An agent usually hands back an artifact: a file, a blob, something that exists in the conversation and nowhere else. maproll hands back an address.

prompt → assistant → maproll MCP → https://api.maproll.io/map.svg?…                                        ↓              README · docs · dashboard · newsletter · the next tool call

There is no session and no state to keep, because svg_url is the state. Pass it to add_layers and a new URL comes back with the addition applied. Every URL from every step still renders, forever, in an <img> tag with no JavaScript.

Branding and keys

Maps work with no account. What anonymous costs is the wordmark: every map this server makes carries the small maproll mark in the corner.

A key removes it. Mint one in the editor at app.maproll.io → API keys, and pass it in the server's environment:

json
{  "mcpServers": {    "maproll": {      "command": "npx",      "args": ["-y", "@maproll/mcp"],      "env": { "MAPROLL_API_KEY": "mr_live_…" }    }  }}

With a key, returned URLs carry a signature bound to that one map, so an embedded map renders clean wherever it is published — without the key itself ever appearing in a link someone can copy. Two things worth knowing: keys expire after 90 days, and when one expires, embeds published under it start carrying the wordmark again. Regenerate the maps if that matters.

OpenStreetMap attribution stays on either way. That is a licence obligation, not branding.

VariableDefaultPurpose
MAPROLL_API_KEY—Entitles renders, and removes the wordmark.
MAPROLL_PLACES_URLhttps://mcp.maproll.io/placesWhere find_places resolves names. Override only for local development.

Resources and prompts

Seven read-only resources publish the catalogs a model otherwise guesses at — maproll://grammar most of all, plus the scope, theme, icon, projection and pattern lists and a set of worked examples.

Three prompts ship with the server: mapped_episode (a dataset in the house style of Mapped), readme_map (a map plus a paste-ready snippet with real alt text), and refine_map (change an existing map in plain English).

Documentation

Development

See DEVELOPMENT.md for the layout, the local loop, and the end-to-end smoke test. Publishing notes are in PUBLISHING.md.

MIT licensed.

來源:README.md,提交 523dee1

工具

4

create_map

Create a map

Make a production-ready static map and return its URL plus a rendered preview. The map is a URL: the returned svg_url renders the same image forever, embeds in an <img> tag with no JavaScript, and is the handle the other maproll tools accept. Use it for choropleths (numeric values per region), flat colour paints, qualitative category maps, and plain highlight maps. Region ids are ISO 3166-1 alpha-2 at the "world" scope ("US", "DE", "BR") and ISO 3166-2 inside a country scope ("RO-B", "RO-CJ"). Numeric values and text categories cannot appear in the same map — pick one. Do not use it for interactive or zoomable maps, driving directions, or street-level detail; maproll renders static statistical maps, not a slippy map.

輸入參數bboxextrascope必填themetitlewidthbreaksheightlabelslegendvaluesscaleBar另有 12 個

add_layers

Add layers to a map

Add markers, routes, proportional circles, pattern fills, annotations or labels to an existing map, and return the new URL. Takes the svg_url of a map you already made. Everything on it is kept — this appends rather than replaces, so it is also how you build a map up over several turns. Resolve coordinates with find_places before adding a marker. Guessed lat/lon lands in the wrong country and the render will not complain. Use sea routes for shipping: they follow the lanes through Suez, Panama and Malacca instead of drawing a straight line over land.

輸入參數map必填labelsroutesmarkerspatternsannotationsproportional

find_places

Find a place

Resolve a place name to real coordinates and the region id maproll uses. Searches countries, regions, cities and airports, and returns each hit's ISO 3166-1 / 3166-2 / IATA code alongside its latitude and longitude. Use it before placing any marker or lat,lon route endpoint. Coordinates recalled from memory are frequently wrong by degrees, and a map renders a wrong marker exactly as confidently as a right one.

輸入參數kindlimitquery必填

describe_options

List what the renderer accepts

Return the exact accepted values for scopes, themes, marker icons, projections, pattern fills, or the URL grammar. The same content is published as the maproll:// resources; this tool is for hosts that do not read resources. Check it rather than guessing a name — an icon or theme that does not exist renders nothing and reports no error.

輸入參數kind必填

版本歷史

2
  1. v0.2.2Oct 4, 2026
  2. v0.2.0Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分