io.github.cyanheads/openstreetmap-mcp-server

io.github.cyanheads/openstreetmap-mcp-server

Geocode, reverse geocode, and run Overpass spatial queries on OpenStreetMap data.

Connect this server

Add this to your MCP client config — claude_desktop_config.json (Claude Desktop) or .cursor/mcp.json (Cursor).Suits: Claude Desktop · Cursor.

{
  "mcpServers": {
    "openstreetmap-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/openstreetmap-mcp-server@0.7.1"
      ],
      "env": {
        "OSM_NOMINATIM_BASE_URL": "https://nominatim.openstreetmap.org",
        "OSM_USER_AGENT": "openstreetmap-mcp-server/0.7.1",
        "OSM_OVERPASS_ENDPOINTS": "https://overpass-api.de/api/interpreter",
        "OSM_OVERPASS_MAX_CONCURRENCY": "1",
        "MCP_LOG_LEVEL": "info"
      }
    }
  }
}
Environment variables
  • OSM_NOMINATIM_BASE_URLNominatim API base URL. Override to use a private or mirror instance.
  • OSM_USER_AGENTUser-Agent sent to Nominatim and Overpass. Required by usage policy.
  • OSM_OVERPASS_ENDPOINTSComma-separated ordered list of Overpass endpoints. A failure advances to the next entry within the same tool call; a single entry means no failover. An entry written url|N gets N slots of its own and adds capacity, for an instance whose operator allows parallel queries, never a public instance such as the FOSSGIS servers, maps.mail.ru, or overpass.private.coffee; an unsuffixed later entry is failover only. Write a | inside a URL as %7C. Verify a mirror's usage policy, data coverage, and freshness before adding it. Ignored when OSM_OVERPASS_BASE_URL is set.
  • OSM_OVERPASS_MAX_CONCURRENCYConcurrent Overpass queries per endpoint: OSM_OVERPASS_BASE_URL, and every OSM_OVERPASS_ENDPOINTS entry not sized with |N. With no |N entry it is also the most queries in flight across all endpoints. A query waits at most 30 seconds in total for a slot, then fails with pacer_shed and a retryAfter. The default of 1 follows the public FOSSGIS instances, which allow one query in flight per user; raise it only for an instance whose operator allows parallel queries, such as a private or paid one.
  • MCP_LOG_LEVELSets the minimum log level for output (e.g., 'debug', 'info', 'warn').

A starting point — check the repository for exact arguments and setup. Restart your client after editing the config.

Category
Developer Tools
Version
0.7.1
Registry
active
Published
11/5/2026

Remotes

  • streamable-httphttps://openstreetmap.caseyjhand.com/mcp
Browse all Developer Tools →

Add the badge to your site

Show visitors that io.github.cyanheads/openstreetmap-mcp-server is listed here — it’s also the link we check for a free listing.

io.github.cyanheads/openstreetmap-mcp-server — listed on Serverdex

HTML — for your website

<a href="https://serverdex.io/server/io-github-cyanheads-openstreetmap-mcp-server?utm_source=badge"><img src="https://serverdex.io/brand/badge.svg" alt="io.github.cyanheads/openstreetmap-mcp-server — listed on Serverdex" width="123" height="40" loading="lazy"></a>

Recommended. A dofollow link from your own domain is the one that counts for search engines, and it's the link we check for a free listing.

Markdown — for your README

[![io.github.cyanheads/openstreetmap-mcp-server — listed on Serverdex](https://serverdex.io/brand/badge.svg)](https://serverdex.io/server/io-github-cyanheads-openstreetmap-mcp-server?utm_source=badge)

Nice for visibility, but GitHub marks README links nofollow, so it doesn't pass authority. Use the HTML badge on your site as well.