原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Ultimaps

作者:ultimaps版本 0.2.0i★ –i电脑或云端
注册名称com.ultimaps/mcp

安装

概览

作者提供的说明(英文原文)

Create choropleth, category and pin maps of countries, states, counties and ZIP codes as images.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 电脑或云端
  • 传输方式: stdio, Streamable HTTP
  • 分类: 其他
  • 你需要填写:ULTIMAPS_API_KEY, Authorization

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在作者的服务器上运行:你向它提出的内容会经过他们的服务器。
  • 需要你自己填写: ULTIMAPS_API_KEY, Authorization

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • 在云端运行无需安装任何东西,通过互联网连接
  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。

或者在你的电脑上运行

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "ultimaps": {
      "command": "npx",
      "args": [
        "-y",
        "@ultimaps/mcp"
      ],
      "env": {
        "ULTIMAPS_API_KEY": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add --transport http ultimaps https://api.ultimaps.com/mcp --header 'Authorization: your-value'

或者在你的电脑上运行

claude mcp add ultimaps --env ULTIMAPS_API_KEY=your-value -- npx -y @ultimaps/mcp

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "ultimaps": {
      "url": "https://api.ultimaps.com/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

或者在你的电脑上运行

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "ultimaps": {
      "command": "npx",
      "args": [
        "-y",
        "@ultimaps/mcp"
      ],
      "env": {
        "ULTIMAPS_API_KEY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "ultimaps": {
      "type": "http",
      "url": "https://api.ultimaps.com/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

或者在你的电脑上运行

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "ultimaps": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@ultimaps/mcp"
      ],
      "env": {
        "ULTIMAPS_API_KEY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • ULTIMAPS_API_KEY 机密 env
    Optional API key. Without one you get 30 maps per hour with attribution. A key raises the limits, and a Pro key adds SVG, larger PNGs and no attribution.
  • Authorization 机密 HTTP header
    Optional. Bearer for plan quotas. Without a key you get 30 maps per hour per conversation, with attribution.

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过域名 ultimaps.com 验证(注册中心会核实域名所有权)

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    端点有响应

    尚未检查;我们会轮流检查各个端点

  • … 尚未检查

    使用 OAuth 登录

    尚未检查;我们会轮流检查各个端点

  • … 尚未检查

    工具描述中没有隐藏指令

    尚未检查;我们会在检查端点时读取工具列表

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 32602 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 32602 个服务器的 68% 更新
  • 基础检查结果等于或优于此分类中其他 32602 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Ultimaps 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:ULTIMAPS_API_KEY, Authorization

它在我的电脑上运行还是在云端?

两种方式都可以:安装在你的电脑上,或者连接云端版本。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.2.0)于17天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, Rystic

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

作者:formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

在你的电脑上运行★ 440MIT14个月前更新
安装

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

在云端运行★ 211前天更新
安装

Rystic

作者:Rystic-Inc

Start, seed, clock, inspect and diff Rystic API simulators from your agent.

在你的电脑上运行今天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

@ultimaps/mcp

An MCP server for Ultimaps. Ask Claude, Codex or any MCP client for a map and get the image back in the conversation. It covers choropleths from pasted numbers, category maps and pinned locations, for countries, states, provinces, counties, continents and the world.

"Map US states by population." · "Color the EU members by currency." · "Show France's regions with these unemployment rates: …" · "Pin our five offices on a map of Europe."

No account needed. Without an API key the server uses the keyless tier. Set ULTIMAPS_API_KEY for plan quotas and larger or unbranded output.

Can't run a local command? In ChatGPT (developer mode), claude.ai or any client that connects to remote MCP servers, add the hosted server instead: https://api.ultimaps.com/mcp. In ChatGPT, turn it on in each conversation where you want maps. It has the same three tools and nothing to install. See Hosted server. This package is the local version: requests come from your own IP address with your own key, and every image is saved to a file on your computer.

Tools

ToolWhat it does
render_mapRenders a map as an image (PNG, or SVG with a Pro key), shown inline when it is small enough. Choropleth (numbers), categories (labels) or explicit colors, plus pins, title, a legend with its own heading, theme, region labels (names, values or both) and extra layers. Region names are matched fuzzily, and every correction or miss is reported with suggestions. dryRun: true previews matching and the color plan without rendering.
list_mapsThe map catalog: {id, title, regionType, layers, regionCount, labels}, searchable with query.
get_map_regionsOne map's region keys and titles, 200 per page, searchable by key, title or alias.

All three are read-only. Agents rarely need the discovery tools: render_map accepts region names, codes and aliases directly.

Install

Requires Node.js 20 or newer.

Claude Code
claude mcp add ultimaps -- npx -y @ultimaps/mcp

with a key:

claude mcp add ultimaps --env ULTIMAPS_API_KEY=um_live_… -- npx -y @ultimaps/mcp

Codex
codex mcp add ultimaps -- npx -y @ultimaps/mcp

with a key:

codex mcp add ultimaps --env ULTIMAPS_API_KEY=um_live_… -- npx -y @ultimaps/mcp

Codex writes TOML, not the JSON below. The equivalent entry in ~/.codex/config.toml (or .codex/config.toml in a trusted project):

[mcp_servers.ultimaps]

command = "npx" args = ["-y", "@ultimaps/mcp"]

Claude Desktop

Download ultimaps- .mcpb from the latest release and open it: Claude Desktop installs it in one click and asks for the optional API key. Or add this to claude_desktop_config.json:

{

"mcpServers": { "ultimaps": { "command": "npx", "args": ["-y", "@ultimaps/mcp"], "env": { "ULTIMAPS_API_KEY": "" } } } }

Cursor

~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{

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

VS Code

.vscode/mcp.json:

{

"servers": { "ultimaps": { "type": "stdio", "command": "npx", "args": ["-y", "@ultimaps/mcp"] } } }

Hosted server

You don't need this package to use the hosted server. Add the URL to your client:

claude mcp add --transport http ultimaps https://api.ultimaps.com/mcp

with a key:

claude mcp add --transport http ultimaps https://api.ultimaps.com/mcp \ --header "Authorization: Bearer um_live_…"

Clients with a config file take the URL alone, for example ~/.cursor/mcp.json:

{

"mcpServers": { "ultimaps": { "url": "https://api.ultimaps.com/mcp" } } }

The hosted server sends a key as an Authorization header, not as ULTIMAPS_API_KEY. In ChatGPT and claude.ai you can't set headers, so renders there use the anonymous tier: PNG up to 1600 px with attribution, up to 30 per hour per conversation. Every render also comes back as an image link that expires after 30 days. Images too large for the conversation, and all SVGs, come back only as the link. ChatGPT doesn't show images returned by tools, so the link is how you see the map there.

Configuration

VariableDefaultPurpose
ULTIMAPS_API_KEYnone (keyless)API key from Studio → Workspace → API. An invalid key is an error and never falls back to keyless.
ULTIMAPS_API_URLhttps://api.ultimaps.comPoint at a local API during development (http://localhost:3001). Plain http is only accepted for localhost.

Limits

KeylessFree keyPro key
Renders30/hour, 5/minute500/month, 50/day, 10/minute5,000/month, 1,000/day, 30/minute
OutputPNG up to 1600 px, attributionPNG up to 1600 px at scale 2 (a 3200 px raster), attributionPNG up to 4000 px at scale 4, SVG, no attribution

All keys in a workspace share the monthly quota. The daily and per-minute caps are per key, so a free key stops at 50 renders a day long before the month runs out.

Dry runs skip the monthly quota but still count against rate limits. When five or fewer keyless renders remain in the hour, the result says so.

What a render returns

  • The image, inline, when it is small enough (781 KB for PNG, 98 KB for SVG). The default 1200 px width usually fits. Every render is also written to /ultimaps-mcp/ and the path is in the result, so in a terminal client the file is the thing you can actually open. Nothing is re-rendered or resampled on your behalf.
  • A text report: auto-corrected and unmatched region keys with suggestions, the resolved choropleth plan, warnings (such as layer_unavailable or labels_overlap), a link to open the map in Ultimaps Studio for editing, and the render id for support.
  • An embeddable image URL for keyless PNG renders whose whole spec fits a ~2,000-character URL, so small datasets only. The URL carries the spec, not the image, and renders keyless, so it is not offered when a key is set.
  • `structuredContent` with the same report as data, described by the tool's outputSchema.

Privacy Policy

This server runs on your machine, has no telemetry of its own and talks only to the Ultimaps API (https://api.ultimaps.com, or the ULTIMAPS_API_URL you set). The full Ultimaps privacy policy is at ultimaps.com/privacy-policy.

What is sent to Ultimaps. Tool calls are ordinary HTTPS requests to the Ultimaps API, so they arrive from your IP address with an ultimaps-mcp/ user agent. render_map sends the whole map request: region keys and values, pins, title and styling. If you set ULTIMAPS_API_KEY, it is sent with render requests only.

What Ultimaps keeps. Each render request is logged: the request content, the map and outcome, timing, your IP address and user agent, and for keyed requests which key and workspace made it. This lets support look up a render id, lets the "Open in Studio" link rebuild your map, and counts usage. The request content is kept for 30 days and the IP address and user agent for 90 days. What remains is a usage record, tied to your workspace when a key was used. Ultimaps uses a third-party error-monitoring service that may receive details of a failed request. Ultimaps does not sell this data or use it for advertising.

What stays on your machine. Every rendered image is written to /ultimaps-mcp/ and this server never deletes it. What your MCP client keeps, including tool results in your conversation, is governed by its own privacy policy.

Shareable links. The embeddable image URL offered for small keyless renders contains the full map request. Anyone with the link can read it.

The hosted server. The server at https://api.ultimaps.com/mcp runs on Ultimaps' servers, not yours, so the section above about your machine doesn't apply to it. The full privacy policy covers it.

Questions or deletion requests: support@ultimaps.com, quoting the render id.

Development

npm install

npm run typecheck npm test # unit + in-process protocol tests npm run build # → dist/

End-to-end over stdio against a real API (spends render units from your tier):

npm run build

node scripts/smoke.mjs

src/generated/render-request.schema.json is generated from the Ultimaps API contract; do not edit it by hand. Tool and property descriptions live in src/descriptions.ts. Arguments are never validated locally: the API is additive-only, and its 400 responses carry suggestions.

Issues and pull requests are welcome. Releases are cut by the Ultimaps team, and accepted changes ship with the next release.

The package publishes a bin and nothing else. import '@ultimaps/mcp' is not supported and fails by name, because dist/index.js starts a stdio server when it loads.

License

MIT © Ultimaps. See LICENSE.

问 PopNx