OpenRoute MCP

Servidor MCP para ayudar a planificar rutas usando OpenRouteService.org, para actividades como senderismo o ciclismo de montaña.

Documentación

🗺️ OpenRoute MCP

PyPI - Version PyPI - Python Version Tests MCP registry

Servidor de Model Context Protocol (MCP) para planificar rutas utilizando la API de OpenRouteService, para actividades como senderismo o ciclismo de montaña.

[!CAUTION]

AVISO LEGAL: Las rutas generadas por este servicio se proporcionan únicamente con fines informativos y no se garantiza que sean seguras, legales o adecuadas para el uso previsto. Verifique siempre las rutas de forma independiente utilizando mapas oficiales, autoridades locales y condiciones actuales antes de intentar cualquier viaje. Los usuarios asumen todos los riesgos y responsabilidades por su seguridad y el cumplimiento de las leyes y regulaciones locales.

[!TIP]

Copie el archivo GPX completo devuelto como parte de los resultados de la llamada a la herramienta y utilice un servicio como gpx.studio para cargar el archivo GPX generado en un mapa.

🛠️ Herramientas disponibles

  • 📍 Encontrar coordenadas posibles para una ubicación
    • Argumentos:
      • location (string): ubicación para la que se desean obtener coordenadas
    • Devuelve: lista de 10 coordenadas con descripción disponible para que el agente pueda determinar la correcta
  • 🏠 Encontrar ubicaciones posibles (direcciones) para coordenadas dadas.
    • Argumentos:
      • lon (float): Longitud de la ubicación
      • lat (float): Latitud de la ubicación
    • Devuelve: lista de objetos cercanos a las coordenadas dadas
  • 🗺️ Crear una ruta desde una ubicación de inicio hasta un destino, opcionalmente con puntos de paso
    • Argumentos:
      • route_type (string): Tipo de ruta, p. ej. "cycling-mountain", "cycling-regular", "foot-hiking", "driving-car"
      • from_coordinates (list[float]): Ubicación de inicio como [longitud, latitud]
      • from_coordinates (list[float]): Ubicación de destino como [longitud, latitud]
      • waypoints (list[list[float]]): lista opcional de coordenadas de puntos de paso como [[lon, lat], ...]
    • Devuelve:
      • un archivo de recurso que contiene el GPX de la ruta (p. ej. route://foot-hiking-98.gpx)
      • un archivo de recurso que contiene una imagen PNG de visualización de la ruta (p. ej. route://foot-hiking-98.png)
      • un archivo de recurso que contiene una visualización interactiva HTML de la ruta (p. ej. ui://foot-hiking-98.html) que se puede abrir directamente con su navegador
  • 📌 Buscar puntos de interés (POIs) en un área
    • Argumentos:
      • bounding_box_coordinates (list[list[float]]): coordenadas que definen un cuadro delimitador como [[min_lon, min_lat], [max_lon, max_lat]]
      • filters_name (list[string]): lista opcional de nombres para filtrar POIs, p. ej. ["Gas station", "Restaurant"]
    • Devuelve: información de los POIs encontrados
  • 🔎 Buscar rutas conocidas cercanas a unas coordenadas de inicio y fin dadas, esto permite sugerir puntos de paso para atravesar senderos conocidos al crear una ruta. Por ahora solo funciona en Suiza gracias a la Confederación Suiza api3.geo.admin.ch 🇨🇭
    • Argumentos:
      • route_type (string): Tipo de ruta, p. ej. "cycling-mountain", "cycling-regular", "foot-hiking", "driving-car"
      • from_coordinates (list[float]): Ubicación de inicio como [longitud, latitud]
      • from_coordinates (list[float]): Ubicación de destino como [longitud, latitud]
    • Devuelve: trazado de senderos conocidos y descripción cuando esté disponible para ayudar al agente a construir una buena ruta
  • ⏱️ Calcula el área que se puede alcanzar en un tiempo determinado o distancia desde uno o más puntos de partida.
    • Argumentos:

      • coordinates_list: 1 o más coordenadas desde las que calcular el área alcanzable como [[lon, lat], ...]
      • route_type: Tipo de ruta, p. ej. "cycling-mountain", "cycling-regular", "foot-hiking", "driving-car"
      • range_type: Tipo de rango, ya sea time (en segundos) o distance (en metros)
      • area_range: valor máximo de rango del análisis en segundos para tiempo y metros para distancia. O una lista separada por comas de valores de rango específicos
    • Devuelve: información del área alcanzable en formato GeoJSON

🗃️ Recursos disponibles

  • 🚏 Archivos de ruta
    • Patrón de URL: route://{filename}
    • Tipo: GPX (.gpx), HTML (.html) o PNG (.png)
    • Descripción: Devuelve un archivo de ruta generado previamente por nombre de archivo.
    • Producido por: herramienta create_route_from_to

🔌 Conectar el cliente al servidor MCP

Siga las instrucciones de su cliente y utilice la URL /mcp de su servidor desplegado (p. ej. http://localhost:8888/mcp)

Por ejemplo, para GitHub Copilot en VSCode, para añadir un nuevo servidor MCP a través de la interfaz de VSCode:

  • Abra el chat del panel lateral (ctrl+shift+i o cmd+shift+i) y asegúrese de que el modo esté configurado en Agent en la parte inferior derecha
  • Abra la paleta de comandos (ctrl+shift+p o cmd+shift+p) y busque MCP: Open User Configuration, esto abrirá un archivo mcp.json

⌨️ Usar transporte stdio

[!IMPORTANT]

Inicie sesión con GitHub en openrouteservice.org y obtenga una clave de API que puede proporcionar a través de la variable de entorno OPENROUTESERVICE_API_KEY.

OPENROUTESERVICE_API_KEY=YYY uvx openroute-mcp

En el archivo mcp.json de VSCode debería tener:

{
  "servers": {
    "openroute-mcp": {
      "command": "uvx",
      "args": [
        "openroute-mcp"
      ],
      "env": {
        "OPENROUTESERVICE_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

[!IMPORTANT]

Haga clic en Start justo encima de "openroute-mcp" para iniciar la conexión al servidor MCP.

Puede hacer clic en el botón de llave y destornillador 🛠️ (Configure Tools...) para habilitar/deshabilitar herramientas específicas

Detalles completos de las opciones de CLI:

usage: openroute-mcp [-h] [--http] [--port PORT] [--openroute-api OPENROUTE_API] [--openroute-api-key OPENROUTE_API_KEY]
                     [--data-folder DATA_FOLDER] [--no-save] [--no-img] [--no-html]

A Model Context Protocol (MCP) server for building routes using OpenRouteService.

options:
  -h, --help            show this help message and exit
  --http                Use Streamable HTTP transport
  --port PORT           Port to run the server on
  --openroute-api OPENROUTE_API
                        OpenRouteService API URL (default: https://api.openrouteservice.org)
  --openroute-api-key OPENROUTE_API_KEY
                        OpenRouteService API key (default: taken from env var OPENROUTESERVICE_API_KEY)
  --data-folder DATA_FOLDER
                        Folder to save generated routes
  --no-save             Don't save generated routes to disk (also disable image and HTML generation)
  --no-img              Do not add PNG image visualization of the routes to the response (image not supported by all LLMs)
  --no-html            Do not add HTML interactive map for routes to the response

🧑‍💻 Desarrollo

Consulte la página CONTRIBUTING.md para obtener más detalles sobre cómo ejecutar en desarrollo y contribuir.