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. 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. "cycling-mountain", "cycling-regular", "foot-hiking", "driving-car"
      • 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. It is only working in Switzerland for now thanks to the Swiss Confederation api3.geo.admin.ch 🇨🇭
    • Arguments:
      • route_type (string): Type of route, e.g. "cycling-mountain", "cycling-regular", "foot-hiking", "driving-car"
      • 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 files
    • URL pattern: route://{filename}
    • Type: GPX (.gpx), HTML (.html), or PNG (.png)
    • Description: Returns a previously generated route file 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.1.tar.gz (114.1 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.1-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for openroute_mcp-0.0.1.tar.gz
Algorithm Hash digest
SHA256 666c281b28ff5aed06768c19f618833eda10442e0084949bf6117a053418c26a
MD5 4a7a104d37ebed41419e6b92a37ba6d3
BLAKE2b-256 f765b24cc4dfc36133b69154215f3f09268e592558b2d08662dbf6acec570489

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openroute_mcp-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2f382379421260906e39ee7a284f0a3f4394972b94c4cfd3ef1d38503930f797
MD5 d4f7413baef58e9ce14715f346e01a43
BLAKE2b-256 0466d76e60435e862cf147bc31ae3757f1284f3545280c475908f5aeacb81577

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