Skip to main content

Resources and prompts

Resources

The server publishes seven read-only resources. A client that supports resources can read them without spending a tool call, and they are cacheable — each carries a long TTL, because they change when the renderer ships, not per request.

URIContents
maproll://grammarHow region data, markers and routes are encoded, and the rule that numeric values and text categories never mix.
maproll://catalog/scopesEvery geography: world, 17 groups, and the country scopes.
maproll://catalog/themesThe six themes and what each is for.
maproll://catalog/iconsThe 30 marker icons, grouped.
maproll://catalog/projectionsAvailable projections and when each is right.
maproll://catalog/patternsTexture fills for hatching a category onto a choropleth.
maproll://examplesReal requests paired with the arguments that answer them.

maproll://grammar is the one that matters most. Most bad maps come from a model guessing at the data encoding, and that resource removes the guessing.

Prompts

Three prompts, invoked from your client's prompt menu.

mapped_episode

Turns a dataset into a map in the house style of Mapped, the weekly maproll series: dark theme, the unit stated in the subtitle and the legend, and a short piece of prose that leads with the gap in the numbers rather than with the map.

Arguments: dataset, and optionally angle if you already know the finding.

readme_map

Makes a map and returns a paste-ready snippet — markdown or HTML — with alt text that says what the map shows rather than "map". Defaults to a light theme, since most READMEs render on a light ground.

Arguments: subject, and optionally format.

refine_map

Changes an existing map in plain English: "make Ukraine blue", "add the airports", "switch to a diverging scale".

Arguments: map (the URL) and change.

Why these are prompts, not tools

A natural-language refine_map tool would have to call a language model server-side — an extra round trip, a bill maproll pays, and a slower map.

As a prompt, the work happens in the model already running in your client, reading maproll://grammar and calling create_map or add_layers directly. Nothing is sent anywhere else, and the result is better, because the model doing the reasoning is the one you chose.