Skip to main content
Glama

osm-mcp

CI npm version npm downloads node Container license Docs

Un servidor MCP para OpenStreetMap: geocodificación, distancias y duraciones a pie/en coche/en bicicleta, optimización de rutas con múltiples paradas, isócronas y búsqueda de POI — diseñado para la planificación de viajes con asistentes de IA.

11 herramientas, todas de solo lectura. Todos los backends son servicios públicos gratuitos de OpenStreetMap; no se requiere clave API. Opcionalmente, se puede proporcionar una clave de OpenRouteService para cambiar el motor de enrutamiento.

📖 Documentación completa: https://osm-mcp.ni-c.de

¿Por qué otro servidor MCP para OSM?

  • Rutas correctas a pie/en bicicleta. Los servidores de demostración públicos de OSRM ignoran el segmento de perfil dentro de la ruta URL de OSRM y siempre devuelven rutas en coche a menos que se utilicen los prefijos de ruta routed-foot / routed-bike / routed-car de FOSSGIS. La mayoría de los servidores MCP de OSM existentes se equivocan en esto y devuelven silenciosamente tiempos de conducción para consultas a pie. Este servidor utiliza los prefijos y su prueba de humo en vivo afirma que las rutas a pie son mucho más lentas que las rutas en coche.

  • Cumplimiento normativo por construcción. Limitación de velocidad por servicio (Nominatim y OSRM: 1 solicitud/segundo), un User-Agent identificativo en cada solicitud (requerido por la política de uso de Nominatim), almacenamiento en caché de respuestas, concurrencia limitada de Overpass (2 ranuras) y conmutación por error automática a un espejo de Overpass en caso de 429/5xx.

  • Soporte de Photon. Geocodificación opcional tolerante a errores tipográficos mediante Photon de komoot, diseñado para uso interactivo — una mejor opción para búsquedas impulsadas por LLM que golpear a Nominatim repetidamente.

Related MCP server: Geo MCP Worker

Requisitos

  • Node.js ≥ 22

  • Acceso a Internet a los servicios públicos de OpenStreetMap (ver tabla a continuación)

Configuración

Todas las variables son opcionales: el servidor funciona sin configuración adicional.

Variable

Valor por defecto

Descripción

OSM_USER_AGENT

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

User-Agent enviado a cada servicio. Nominatim requiere uno real e identificativo.

NOMINATIM_BASE_URL

https://nominatim.openstreetmap.org

Geocodificación / geocodificación inversa

PHOTON_BASE_URL

https://photon.komoot.io

Geocodificación tolerante a errores tipográficos

OSRM_BASE_URL

https://routing.openstreetmap.de

Enrutamiento, matrices, optimización de viajes. Debe servir los prefijos de ruta routed-{car,bike,foot} (el diseño de FOSSGIS).

OVERPASS_BASE_URL

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

Puntos finales de Overpass separados por comas, probados en orden en caso de 429/5xx

VALHALLA_BASE_URL

https://valhalla1.openstreetmap.de

Isócronas

ORS_API_KEY

Clave OpenRouteService opcional (secreto). Cuando se establece, las rutas, matrices e isócronas usan ORS en lugar de OSRM/Valhalla. Nivel gratuito: 2000 direcciones/día, 40/minuto.

ORS_BASE_URL

https://api.openrouteservice.org

Punto final de OpenRouteService

OSM_CACHE_TTL

3600

Segundos durante los cuales las respuestas idénticas de upstream se sirven desde la caché en memoria (0 desactiva el almacenamiento en caché)

Instalar

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"]

Contenedor (multi-arquitectura, con SBOM y procedencia de compilación):

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

-i es obligatorio: el protocolo se ejecuta a través de stdin y stdout. No hay ningún puerto que publicar. Hay más recetas para clientes en la guía de clientes.

Herramientas

Herramienta

Descripción

geocode

Nombre de lugar/dirección → coordenadas (Nominatim o Photon)

reverse_geocode

Coordenadas → dirección más cercana

route

Distancia y duración entre 2+ puntos de paso, foot/car/bike; resumen giro a giro opcional

route_matrix

Tiempo/distancia de viaje desde cada origen hasta cada destino en una sola llamada

optimize_route

Mejor orden de visita para un conjunto de paradas (viajante de comercio, viaje OSRM)

isochrone

Área alcanzable dentro de un presupuesto de tiempo o distancia (Valhalla, u ORS con clave)

find_nearby_pois

POI alrededor de una ubicación por categoría o etiqueta OSM sin procesar, ordenados por distancia (Overpass)

poi_details

Registro OSM completo de un elemento: horario de apertura, sitio web, teléfono, …

suggest_meeting_point

Lugar de encuentro justo para 2–8 personas (tiempos de viaje equilibrados)

straight_line_distance

Distancia de círculo máximo, calculada sin conexión

map_link

Enlaces de marcador / direcciones de openstreetmap.org, calculados sin conexión

Cada entrada de lugar acepta un nombre/dirección (geocodificado automáticamente) o coordenadas literales como "lat,lon".

Políticas de uso y atribución

Este servidor se comunica con la infraestructura comunitaria compartida. Aplica los límites publicados del lado del cliente, pero el operador solicita a los usuarios que mantengan el uso general ligero y no comercial:

  • Datos: © colaboradores de OpenStreetMap, bajo licencia ODbL 1.0.

  • Nominatim: máximo 1 solicitud/segundo, User-Agent identificativo obligatorio, resultados en caché (política).

  • OSRM / Valhalla (FOSSGIS): uso razonable y no comercial; máximo 1 solicitud/segundo (acerca de).

  • Overpass: ~2 ranuras concurrentes por IP, <10 000 consultas/día (wiki).

  • Photon: uso justo (photon.komoot.io).

Para uso intensivo o comercial, aloje usted mismo los servicios y apunte las variables *_BASE_URL a sus propias instancias.

Seguridad

  • Todas las herramientas son de solo lectura; el servidor nunca escribe en OpenStreetMap.

  • No se requieren credenciales; la ORS_API_KEY opcional se elimina del entorno del proceso después de cargarla y se redacta de los mensajes de error.

  • El contenido proveniente de OSM (nombres, direcciones, etiquetas) se marca como datos no confiables en los resultados de las herramientas para que el modelo lo trate como datos, no como instrucciones.

  • Los cuerpos de error de upstream se truncan y las páginas de error HTML se eliminan antes de que lleguen al contexto del modelo.

  • Las redirecciones nunca se siguen; todas las solicitudes tienen tiempo de espera.

Desarrollo

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

Publicación de versiones

Impulsado por etiquetas, sin paso de publicación manual:

  1. Mueva las entradas [Unreleased] a una nueva sección ## [x.y.z] - YYYY-MM-DD en CHANGELOG.md y actualice package.json.

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

  3. Confirme, luego una etiqueta anotada y firmada: git tag -s vx.y.z -m "vx.y.z".

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

release.yml ejecuta entonces las pruebas, publica en npm con procedencia a través de Trusted Publishing (sin token secreto involucrado), crea el lanzamiento de GitHub a partir de la sección CHANGELOG y publica en el registro MCP como io.github.ni-c/osm-mcp. ci.yml envía la imagen multi-arquitectura a GHCR con la misma etiqueta.

Si el paso del registro falla, arréglelo en main y ejecute el flujo de trabajo Publish to MCP Registryno vuelva a ejecutar el trabajo de etiqueta, ya que verificaría el árbol antiguo.

Licencia

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