OpenStreetMap logo

OpenStreetMap

Read-only MCP tools for OSM geocoding, routing, POI search, isochrones, and travel planning.

Install OpenStreetMap

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "openstreetmap": {
      "command": "npx",
      "args": [
        "-y",
        "osm-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

OpenStreetMap MCP server exposes read-only travel and location tools through MCP, using public OpenStreetMap services over HTTPS. It supports geocoding, reverse geocoding, walking, driving and cycling routes, route matrices, stop-order optimization, isochrones, POI lookup, meeting-point suggestions, distance calculations, and map links. Use it when an agent needs location-aware answers without modifying map data or managing an API key. An optional OpenRouteService key can switch routing, matrix, and isochrone requests to ORS.

Use cases

  • Geocode addresses and place names
  • Calculate walking, driving, or cycling routes
  • Find nearby points of interest and inspect OSM details
  • Optimize the order of multi-stop trips
  • Estimate reachable areas or balanced meeting locations

Key features

  • Read-only MCP tools for OpenStreetMap data
  • Geocoding and reverse geocoding with Nominatim or Photon
  • Foot, car, and bicycle routing with matrices and optimization
  • Isochrones and nearby POI search
  • Configurable caching, rate limiting, and Overpass failover
  • Optional OpenRouteService backend

Tools11

What OpenStreetMap lets your agent do. Expand a tool for its parameters.

Self-reported~209 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

6/6 checks healthy over the last 39d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 12d ago via OSV.dev · osm-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars4Stargazers on the source repository.
npm downloads1kPackage downloads in the last 30 days.
Last commit2d agoMost recent push to the default branch.
Tools exposed11Callable tools this server registers over MCP.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

How OpenStreetMap works

What OpenStreetMap MCP server does

OpenStreetMap MCP server gives MCP clients access to read-only travel-planning operations based on OpenStreetMap data. It exposes 11 tools for converting place names and addresses into coordinates, finding nearby points of interest, calculating travel distances and durations, and creating links to OpenStreetMap maps or directions.

The routing tools cover foot, car, and bicycle travel. An agent can calculate a route between multiple waypoints, request a matrix covering every origin and destination pair, or optimize the order of several stops. Isochrones describe the area reachable within a time or distance limit. A meeting-point tool can select a venue for two to eight people by balancing travel times.

POI searches can use categories or raw OSM tags and sort results by distance. After finding an element, poi_details can return fields such as opening hours, website, and phone number. Straight-line distance and map-link generation are calculated offline.

How it works

The server communicates with MCP clients over stdio and calls external services over HTTPS. Nominatim or Photon handles geocoding, while OSRM handles routing, matrices, and trip optimization by default. Valhalla supplies isochrones, and Overpass supplies nearby-POI searches and OSM element details. OpenRouteService can replace the default routing, matrix, and isochrone backends when an API key is configured.

Requests to public services are rate-limited per service, responses are cached in memory, and Overpass requests are limited to two concurrent slots. The server can try another configured Overpass endpoint after a 429 or 5xx response. Its User-Agent is configurable and is sent to each service. These behaviors matter when deploying the OpenStreetMap MCP server against public endpoints or when using repeated agent lookups.

All exposed operations are read-only. The server does not provide tools for editing or uploading OpenStreetMap data.

Setup and configuration

Running the OpenStreetMap MCP server requires Node.js 22 or newer and internet access to the configured public services. The configuration variables are optional, so the default endpoints can be used without an API key. Set OSM_USER_AGENT to provide an identifying User-Agent, especially when using Nominatim.

Useful endpoint variables include NOMINATIM_BASE_URL, PHOTON_BASE_URL, OSRM_BASE_URL, OVERPASS_BASE_URL, and VALHALLA_BASE_URL. ORS_BASE_URL selects the OpenRouteService endpoint, while ORS_API_KEY enables ORS for routes, matrices, and isochrones. The documented free ORS tier allows 2,000 directions per day and 40 requests per minute.

OSM_CACHE_TTL controls how long identical upstream responses remain in the in-memory cache; setting it to 0 disables caching. Tool registration can be reduced with OSM_ALLOW_TOOLS, including the essential preset or comma-separated names. OSM_DENY_TOOLS removes matching tools afterward, and wildcard entries can select tool families. Unknown filter entries stop startup rather than silently hiding a tool.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about OpenStreetMap

OpenStreetMap is an MCP server that connects AI clients to public OpenStreetMap services for geocoding, routing, isochrones, and POI data. Its main tools include geocode, reverse_geocode, route, route_matrix, optimize_route, find_nearby_pois, poi_details, and map_link, with all operations read-only.

Install and run it with Node.js 22 or newer, then configure it as an MCP server using stdio.

No, an API key is not required with the default public OpenStreetMap services. Set ORS_API_KEY only if you want routes, matrices, and isochrones to use OpenRouteService instead of the default OSRM and Valhalla backends.

Set OSM_ALLOW_TOOLS to specific names, wildcard families, or the essential preset, and use OSM_DENY_TOOLS to remove tools afterward. Filtered tools are not registered or listed, and an unmatched entry causes startup to abort.

Yes, the README names Claude Desktop and Claude Code as MCP clients for this server. It also names Codex, and the server communicates with clients over stdio.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewOpenStreetMap AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/openstreetmap?style=directory)](https://allmcps.com/mcp/openstreetmap)
HTML Embed
<a href="https://allmcps.com/mcp/openstreetmap"><img src="https://allmcps.com/api/badge/openstreetmap?style=directory" alt="OpenStreetMap on AllMCPs" /></a>