Skip to main content

MCP server to help plan routes using https://openrouteservice.org, for activities such as hiking or mountain biking.

Project description

🗺️ OpenRoute MCP

PyPI - Version PyPI - Python Version Tests

Model Context Protocol (MCP) server to help plan routes using OpenRouteService.org, for activities such as hiking or mountain biking.

[!CAUTION]

DISCLAIMER: The routes generated by this service are provided for informational purposes only and are not guaranteed to be safe, legal, or suitable for your intended use. Generated routes may:

  • Cross private property or restricted areas
  • Include paths that are closed, dangerous, or poorly maintained
  • Not reflect current trail conditions, weather hazards, or seasonal closures
  • Contain errors in elevation, distance, or difficulty estimates

Always verify routes independently using official maps, local authorities, and current conditions before attempting any journey. Users assume all risks and responsibilities for their safety and compliance with local laws and regulations.

[!TIP]

Copy the whole GPX file returned as part of the tool call results, and use a service such as gpx.studio to load the generated GPX file on a map.

🛠️ Available tools

  • 📍 Find possible coordinates for a location
    • Arguments:
      • location (string): location to get coordinates for
    • Returns: list of 10 coordinates with available description to enable the agent figure out the right one
  • 🗺️ Create a route from a starting location to a destination, optionally with waypoints
    • Arguments:
      • route_type (string): Type of route, e.g. "driving-car", "cycling-mountain", "cycling-regular", "foot-hiking"
      • from_coordinates (list[float]): Starting location as [longitude, latitude]
      • from_coordinates (list[float]): Destination location as [longitude, latitude]
      • waypoints (list[list[float]]): optional list of waypoints coordinates as [[lon, lat], ...]
    • Returns:
      • the route as a GPX string
      • a resource file containing the route GPX (e.g. route://foot-hiking-98.gpx)
      • a resource file containing a PNG image visualization of the route (e.g. route://foot-hiking-98.png)
      • a resource file containing a HTML interactive visualization of the route (e.g. route://foot-hiking-98.html) that can be directly opened with your browser
  • 📌 Search for Points of Interest (POIs) in an area
    • Arguments:
      • bounding_box_coordinates (list[list[float]]): coordinates defining a bounding box as [[min_lon, min_lat], [max_lon, max_lat]]
      • filters_name (list[string]): optional list of names to filter POIs, e.g. ["Gas station", "Restaurant"]
    • Returns: found POIs information
  • 🔎 Search for known routes close to a given start and end coordinates, this enables to suggest waypoints to go through known trails when creating a route (only working in Switzerland for now).
    • Arguments:
      • route_type (string): Type of route, e.g. "driving-car", "cycling-mountain", "cycling-regular", "foot-hiking"
      • from_coordinates (list[float]): Starting location as [longitude, latitude]
      • from_coordinates (list[float]): Destination location as [longitude, latitude]
    • Returns: known trails trace and description when available to help the agent build a nice route

🗃️ Available Resources

  • 🚏 Route file
    • URL pattern: route://{filename}
    • Type: GPX file (.gpx)
    • Description: Returns a previously generated GPX route by filename.
    • Produced by: create_route_from_to tool

🔌 Connect client to MCP server

Follow the instructions of your client, and use the /mcp URL of your deployed server (e.g. http://localhost:8888/mcp)

For example, for GitHub Copilot in VSCode, to add a new MCP server through the VSCode UI:

  • Open side panel chat (ctrl+shift+i or cmd+shift+i), and make sure the mode is set to Agent in the bottom right
  • Open command palette (ctrl+shift+p or cmd+shift+p), and search for MCP: Open User Configuration, this will open a mcp.json file

⌨️ Use stdio transport

[!IMPORTANT]

Login with GitHub to openrouteservice.org and get an API key that you can provide through the OPENROUTESERVICE_API_KEY environment variable.

OPENROUTESERVICE_API_KEY=YYY uvx openroute-mcp --stdio

In VSCode mcp.json file you should have:

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

[!IMPORTANT]

Click on Start just on top of "openroute-mcp" to start the connection to the MCP server.

You can click the wrench and screwdriver button 🛠️ (Configure Tools...) to enable/disable specific tools

📡 Use streamable HTTP server

Connect to a running streamable HTTP MCP server.

In VSCode mcp.json you should have the following:

{
  "servers": {
    "openroute-mcp-http": {
      "url": "http://localhost:8888/mcp",
      "type": "http"
    }
  }
}

[!CAUTION]

The routes created on a public MCP server will be publicly available to anyone.

More details available in the VSCode MCP official docs.

🧑‍💻 Development

Checkout the CONTRIBUTING.md page for more details on running in development and contributing.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openroute_mcp-0.0.0.tar.gz (111.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openroute_mcp-0.0.0-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file openroute_mcp-0.0.0.tar.gz.

File metadata

  • Download URL: openroute_mcp-0.0.0.tar.gz
  • Upload date:
  • Size: 111.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.23

File hashes

Hashes for openroute_mcp-0.0.0.tar.gz
Algorithm Hash digest
SHA256 ac2f9bf249db790539953bb645afb0ef9f87ae673c72cfa15912fad545138f3f
MD5 31de62be442eb01820749e8a82f83711
BLAKE2b-256 60814d8be3a05f73a2d0fa1d68b2ac02a8be32716f489fca66f7c7187d0c5d3a

See more details on using hashes here.

File details

Details for the file openroute_mcp-0.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for openroute_mcp-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6bd620ffb68cae74dab52eb0f22fdc71f58f53d75fad4680bf5b8096933da854
MD5 bc2e3dc2bd01919b1658a234aa5af65b
BLAKE2b-256 e1e1e4d465e985684cc1495b1a779825ee35780bbb1997c59cf5c296b9cbe765

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page