MCP server to help plan routes using https://openrouteservice.org, for activities such as hiking or mountain biking.
Project description
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
- Arguments:
- 🗺️ 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
- Arguments:
- 📌 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
- Arguments:
- 🔎 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
- Arguments:
🗃️ 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_totool
- URL pattern:
🔌 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+iorcmd+shift+i), and make sure the mode is set toAgentin the bottom right - Open command palette (
ctrl+shift+porcmd+shift+p), and search forMCP: Open User Configuration, this will open amcp.jsonfile
⌨️ Use stdio transport
[!IMPORTANT]
Login with GitHub to openrouteservice.org and get an API key that you can provide through the
OPENROUTESERVICE_API_KEYenvironment 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
Startjust 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
666c281b28ff5aed06768c19f618833eda10442e0084949bf6117a053418c26a
|
|
| MD5 |
4a7a104d37ebed41419e6b92a37ba6d3
|
|
| BLAKE2b-256 |
f765b24cc4dfc36133b69154215f3f09268e592558b2d08662dbf6acec570489
|
File details
Details for the file openroute_mcp-0.0.1-py3-none-any.whl.
File metadata
- Download URL: openroute_mcp-0.0.1-py3-none-any.whl
- Upload date:
- Size: 15.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f382379421260906e39ee7a284f0a3f4394972b94c4cfd3ef1d38503930f797
|
|
| MD5 |
d4f7413baef58e9ce14715f346e01a43
|
|
| BLAKE2b-256 |
0466d76e60435e862cf147bc31ae3757f1284f3545280c475908f5aeacb81577
|