Skip to main content
Glama

osm-mcp

CI npm version npm downloads node Container license Docs

Ein MCP-Server für OpenStreetMap: Geokodierung, Geh-/Fahr-/Radfahrstrecken und -dauern, Optimierung von Routen mit mehreren Zwischenstopps, Isochronen und POI-Suche – entwickelt für die Reiseplanung mit KI-Assistenten.

11 Werkzeuge, alle schreibgeschützt. Alle Backends sind kostenlose öffentliche OpenStreetMap-Dienste; es ist kein API-Schlüssel erforderlich. Ein OpenRouteService-Schlüssel kann optional angegeben werden, um die Routing-Engine zu wechseln.

📖 Vollständige Dokumentation: https://osm-mcp.ni-c.de

Warum ein weiterer OSM-MCP-Server?

  • Korrekte Geh- und Radfahrrouten. Die öffentlichen OSRM-Demo-Server ignorieren das Profilsegment im OSRM-URL-Pfad und geben immer Auto-Routen zurück, es sei denn, die FOSSGIS-Pfadpräfixe routed-foot / routed-bike / routed-car werden verwendet. Die meisten vorhandenen OSM-MCP-Server machen das falsch und geben stillschweigend Fahrzeiten für Fußwege-Anfragen zurück. Dieser Server verwendet die Präfixe und sein Live-Smoke-Test stellt sicher, dass Fußwege viel langsamer sind als Autostrecken.

  • Richtlinienkonform von Grund auf. Dienstspezifische Ratenbegrenzung (Nominatim und OSRM: 1 Anfrage/Sekunde), ein identifizierender User-Agent bei jeder Anfrage (erforderlich durch die Nominatim-Nutzungsrichtlinie), Antwort-Caching, begrenzte Overpass-Gleichzeitigkeit (2 Slots) und automatisches Failover auf einen Overpass-Spiegel bei 429/5xx.

  • Photon-Unterstützung. Optionale tippfehlertolerante Geokodierung über komoots Photon, das für die interaktive Nutzung konzipiert ist – eine bessere Wahl für LLM-gesteuerte Abfragen als Nominatim zu überlasten.

Related MCP server: Geo MCP Worker

Voraussetzungen

  • Node.js ≥ 22

  • Internetzugang zu den öffentlichen OpenStreetMap-Diensten (siehe Tabelle unten)

Konfiguration

Jede Variable ist optional – der Server funktioniert sofort einsatzbereit.

Variable

Standard

Beschreibung

OSM_USER_AGENT

osm-mcp/<version> (+https://github.com/ni-c/osm-mcp)

User-Agent, der an jeden Dienst gesendet wird. Nominatim erfordert einen echten, identifizierenden.

NOMINATIM_BASE_URL

https://nominatim.openstreetmap.org

Geokodierung / Reverse-Geokodierung

PHOTON_BASE_URL

https://photon.komoot.io

Tippfehlertolerante Geokodierung

OSRM_BASE_URL

https://routing.openstreetmap.de

Routing, Matrizen, Tourenoptimierung. Muss die Pfadpräfixe routed-{car,bike,foot} bereitstellen (das FOSSGIS-Layout).

OVERPASS_BASE_URL

https://overpass-api.de/api/interpreter,https://overpass.private.coffee/api/interpreter

Kommagetrennte Overpass-Endpunkte, die bei 429/5xx der Reihe nach probiert werden

VALHALLA_BASE_URL

https://valhalla1.openstreetmap.de

Isochronen

ORS_API_KEY

Optionaler OpenRouteService-Schlüssel (geheim). Wenn gesetzt, verwenden Routen, Matrizen und Isochronen ORS anstelle von OSRM/Valhalla. Kostenloses Kontingent: 2000 Richtungen/Tag, 40/Minute.

ORS_BASE_URL

https://api.openrouteservice.org

OpenRouteService-Endpunkt

OSM_CACHE_TTL

3600

Sekunden, die identische Upstream-Antworten aus dem Arbeitsspeicher-Cache ausgeliefert werden (0 deaktiviert Caching)

Installieren

claude mcp add osm -- npx -y osm-mcp

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "osm": {
      "command": "npx",
      "args": ["-y", "osm-mcp"]
    }
  }
}

Codex (~/.codex/config.toml):

[mcp_servers.osm]
command = "npx"
args = ["-y", "osm-mcp"]

Container (Multi-Arch, mit SBOM und Build-Provenienz):

docker run -i --rm ghcr.io/ni-c/osm-mcp

-i ist erforderlich – das Protokoll läuft über stdin und stdout. Es gibt keinen Port zum Veröffentlichen. Weitere Client-Rezepte finden Sie im Client-Leitfaden.

Werkzeuge

Werkzeug

Beschreibung

geocode

Ortsname/Adresse → Koordinaten (Nominatim oder Photon)

reverse_geocode

Koordinaten → nächste Adresse

route

Entfernung und Dauer zwischen 2+ Wegpunkten, foot/car/bike; optionale Abbiege-Zusammenfassung

route_matrix

Reisezeit/Entfernung von jedem Start zu jedem Ziel in einem Aufruf

optimize_route

Beste Besuchsreihenfolge für eine Reihe von Stopps (Traveling-Salesman, OSRM-Trip)

isochrone

Erreichbares Gebiet innerhalb eines Zeit- oder Entfernungsbudgets (Valhalla oder ORS mit Schlüssel)

find_nearby_pois

POIs in der Umgebung eines Ortes nach Kategorie oder rohem OSM-Tag, sortiert nach Entfernung (Overpass)

poi_details

Vollständiger OSM-Datensatz eines Elements: Öffnungszeiten, Website, Telefon, …

suggest_meeting_point

Geeigneter Treffpunkt für 2–8 Personen (ausgeglichene Reisezeiten)

straight_line_distance

Großkreisentfernung, offline berechnet

map_link

openstreetmap.org-Markierungs-/Richtungslinks, offline berechnet

Jede Ortsangabe akzeptiert entweder einen Namen/eine Adresse (automatisch geokodiert) oder buchstäbliche Koordinaten als "lat,lon".

Nutzungsrichtlinien & Quellenangabe

Dieser Server kommuniziert mit gemeinsamer Community-Infrastruktur. Er erzwingt die veröffentlichten Limits clientseitig, aber der Betreiber bittet die Nutzer, die Gesamtnutzung gering und nicht kommerziell zu halten:

  • Daten: © OpenStreetMap Mitwirkende, lizenziert unter ODbL 1.0.

  • Nominatim: max. 1 Anfrage/Sekunde, identifizierender User-Agent obligatorisch, Ergebnisse gecached (Richtlinie).

  • OSRM / Valhalla (FOSSGIS): angemessene, nicht kommerzielle Nutzung; max. 1 Anfrage/Sekunde (Info).

  • Overpass: ~2 gleichzeitige Slots pro IP, <10.000 Abfragen/Tag (Wiki).

  • Photon: faire Nutzung (photon.komoot.io).

Für intensive oder kommerzielle Nutzung hosten Sie die Dienste selbst und richten Sie die *_BASE_URL-Variablen auf Ihre Instanzen.

Sicherheit

  • Alle Werkzeuge sind schreibgeschützt; der Server schreibt nie in OpenStreetMap.

  • Es sind keine Anmeldeinformationen erforderlich; der optionale ORS_API_KEY wird nach dem Laden aus der Prozessumgebung entfernt und in Fehlermeldungen geschwärzt.

  • OSM-basierte Inhalte (Namen, Adressen, Tags) werden in den Werkzeugergebnissen als nicht vertrauenswürdige Daten markiert, sodass das Modell sie als Daten und nicht als Anweisungen behandelt.

  • Upstream-Fehlermeldungen werden gekürzt und HTML-Fehlerseiten verworfen, bevor sie den Modellkontext erreichen.

  • Weiterleitungen werden nie verfolgt; alle Anfragen haben ein Timeout.

Entwicklung

npm install
npm run lint          # eslint + prettier
npm test              # unit tests (all upstream APIs mocked)
npm run test:coverage
npm run build
npm run smoke         # opt-in LIVE test against the real public services

Veröffentlichung

Tag-gesteuert, kein manueller Veröffentlichungsschritt:

  1. Verschieben Sie die Einträge aus [Unreleased] in einen neuen Abschnitt ## [x.y.z] - YYYY-MM-DD in CHANGELOG.md und erhöhen Sie die Version in package.json.

  2. npm run lint && npm run build && npm run test:coverage.

  3. Committen, dann einen signierten annotierten Tag: git tag -s vx.y.z -m "vx.y.z".

  4. git push origin main vx.y.z.

release.yml führt dann die Tests aus, veröffentlicht auf npm mit Provenienz über Trusted Publishing (kein Token-Geheimnis beteiligt), erstellt das GitHub-Release aus dem CHANGELOG-Abschnitt und veröffentlicht im MCP-Registry als io.github.ni-c/osm-mcp. ci.yml pusht das Multi-Arch-Image auf GHCR beim gleichen Tag.

Wenn der Registry-Schritt fehlschlägt, beheben Sie ihn auf main und lösen Sie den Workflow Publish to MCP Registry aus – führen Sie den Tag-Job nicht erneut aus, da dieser den alten Baum auschecken würde.

Lizenz

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A comprehensive MCP server providing 30 tools for geocoding, routing, and OpenStreetMap data analysis. It enables AI assistants to search for locations, calculate travel routes, and perform quality assurance checks on map data.
    30
    3
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    Free geospatial MCP server for AI agents, providing geocoding, reverse geocoding, POI search, and route planning using OpenStreetMap data via Nominatim, Overpass, and OSRM.
    1
    GPL 3.0
  • A
    license
    -
    quality
    A
    maintenance
    MCP server for geocoding, reverse geocoding, place/POI search, and distance calculation using OpenStreetMap Nominatim, with no API key required.
    183
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for Japan geodata: cadastral lot numbers (chiban) and reverse geocoding, for AI agents.

  • Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.

  • AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ni-c/osm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server