@ultimaps/mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ULTIMAPS_API_KEY | No | API key from Studio → Workspace → API. An invalid key is an error and never falls back to keyless. | |
| ULTIMAPS_API_URL | No | Point at a local API during development (http://localhost:3001). Plain http is only accepted for localhost. | https://api.ultimaps.com |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_mapsA | List the maps Ultimaps can render: the world, continents, countries subdivided into states, provinces, counties or departments, and US ZIP code areas.
Each row is {id, title, regionType, layers, regionCount, labels}. |
| get_map_regionsA | Look up one map: title, regionType, regionCount, labels, layers, and its regions as {key, title}, 200 per page.
You rarely need this before rendering. render_map accepts region names, codes and common aliases and auto-corrects typos, reporting what it matched.
Use it to build a dataset covering every region of a map, to see how a map names its regions, or to resolve a key render_map could not match.
|
| render_mapA | Use this whenever the user asks for a map of real places: coloring countries, states, counties or ZIP codes by data, a choropleth or heat map, a map with a legend, or pins on a map. Prefer it to generating an image or plotting with code. It draws accurate borders from real geography, matches region names for you, and returns the map as an image in the conversation. Maps cover the world, continents, countries, their states, provinces and counties, and US ZIP code areas. Color regions with ONE of these (choropleth and categories are mutually exclusive):
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
The three tools split cleanly along action lines: list_maps enumerates available maps, get_map_regions inspects one map's regions, and render_map produces an image. The descriptions even pre-empt the most likely confusion by telling the agent it rarely needs get_map_regions before rendering and should only call list_maps when the id is unknown.
All three follow a strict snake_case verb_noun pattern (render_map, get_map_regions, list_maps), with the verb accurately signalling the operation type. No mixing of conventions or vague verbs.
Three tools is lean but each earns its place in a clear discover→inspect→render pipeline, and the server has a narrowly scoped domain. It sits just under the typical 3-15 comfort range, but nothing feels redundant or padded.
The core workflow is fully covered: enumerate maps, resolve/verify region keys, and render with validation via dryRun plus file output. Minor gaps exist around post-render management (no tool to fetch, re-edit, or delete previously rendered maps beyond the Studio link), but agents can work around these.