{
  "markdown": "# 🗺️ OpenRoute MCP\n\n[![PyPI - Version](https://img.shields.io/pypi/v/openroute-mcp.svg?logo=pypi&label=PyPI&logoColor=silver)](https://pypi.org/project/openroute-mcp/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/openroute-mcp.svg?logo=python&label=Python&logoColor=silver)](https://pypi.org/project/openroute-mcp/)\n[![Tests](https://github.com/vemonet/openroute-mcp/actions/workflows/test.yml/badge.svg)](https://github.com/vemonet/openroute-mcp/actions/workflows/test.yml)\n[![MCP registry](https://img.shields.io/badge/MCP-Registry-green?logo=modelcontextprotocol)](https://vemonet.github.io/mcp-registry/?search=io.github.vemonet%2Fopenroute-mcp)\n\n</div>\n\n[Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server to plan routes using the **[OpenRouteService API](https://api.openrouteservice.org/)**, for activities such as hiking or mountain biking.\n\n> [!CAUTION]\n>\n> **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.\n\n> [!TIP]\n>\n> Copy the whole GPX file returned as part of the tool call results, and use a service such as [gpx.studio](https://gpx.studio) to load the generated GPX file on a map.\n\n## 🛠️ Available tools\n\n- **📍 Find possible coordinates** for a location\n  - Arguments:\n    - `location` (string): location to get coordinates for\n  - Returns: list of 10 coordinates with available description to enable the agent figure out the right one\n- **🏠 Find possible locations** (addresses) for given coordinates.\n  - Arguments:\n    - `lon` (float): Longitude of the location\n    - `lat` (float): Latitude of the location\n  - Returns: list of objects close to the given coordinates\n- **🗺️ Create a route** from a starting location to a destination, optionally with waypoints\n  - Arguments:\n    - `route_type` (string): Type of route, e.g. \"cycling-mountain\", \"cycling-regular\", \"foot-hiking\", \"driving-car\"\n    - `from_coordinates` (list[float]): Starting location as [longitude, latitude]\n    - `from_coordinates` (list[float]): Destination location as [longitude, latitude]\n    - `waypoints` (list[list[float]]): optional list of waypoints coordinates as [[lon, lat], ...]\n  - Returns:\n    - a resource file containing the **route GPX** (e.g. `route://foot-hiking-98.gpx`)\n    - a resource file containing a **PNG image** visualization of the route (e.g. `route://foot-hiking-98.png`)\n    - a resource file containing a **HTML** interactive visualization of the route (e.g. `ui://foot-hiking-98.html`) that can be directly opened with your browser\n- **📌 Search for Points of Interest** (POIs) in an area\n  - Arguments:\n    - `bounding_box_coordinates` (list[list[float]]): coordinates defining a bounding box as [[min_lon, min_lat], [max_lon, max_lat]]\n    - `filters_name` (list[string]): optional list of names to filter POIs, e.g. [\"Gas station\", \"Restaurant\"]\n  - Returns: found POIs information\n- **🔎 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 🇨🇭](https://api3.geo.admin.ch)**\n  - Arguments:\n    - `route_type` (string): Type of route, e.g. \"cycling-mountain\", \"cycling-regular\", \"foot-hiking\", \"driving-car\"\n    - `from_coordinates` (list[float]): Starting location as [longitude, latitude]\n    - `from_coordinates` (list[float]): Destination location as [longitude, latitude]\n  - Returns: known trails trace and description when available to help the agent build a nice route\n- **⏱️ Computes the area that can be reached within a given time** or distance from one or more starting points.\n  - Arguments:\n    - `coordinates_list`: 1 or more coordinates to compute reachable area from as [[lon, lat], ...]\n    - `route_type`: Type of route, e.g. \"cycling-mountain\", \"cycling-regular\", \"foot-hiking\", \"driving-car\"\n    - `range_type`: Type of range, either `time` (in seconds) or `distance` (in metres)\n    - `area_range`: maximum range value of the analysis in seconds for time and metres for distance. Or a comma separated list of specific range values\n\n  - Returns: Reachable area information in GeoJSON format\n\n## 🗃️ Available Resources\n\n- **🚏 Route files**\n  - URL pattern: `route://{filename}`\n  - Type: GPX (`.gpx`), HTML (`.html`), or PNG (`.png`)\n  - Description: Returns a previously generated route file by filename.\n  - Produced by: `create_route_from_to` tool\n\n## 🔌 Connect client to MCP server\n\nFollow the instructions of your client, and use the `/mcp` URL of your deployed server (e.g. http://localhost:8888/mcp)\n\nFor example, for [GitHub Copilot in VSCode](https://code.visualstudio.com/docs/copilot/overview), to add a new MCP server through the VSCode UI:\n\n- [x] Open side panel chat (`ctrl+shift+i` or `cmd+shift+i`), and make sure the mode is set to `Agent` in the bottom right\n- [x] Open command palette (`ctrl+shift+p` or `cmd+shift+p`), and search for `MCP: Open User Configuration`, this will open a `mcp.json` file\n\n### ⌨️ Use stdio transport\n\n> [!IMPORTANT]\n>\n> Login with GitHub to [openrouteservice.org](https://openrouteservice.org/) and get an API key that you can provide through the `OPENROUTESERVICE_API_KEY` environment variable.\n\n```sh\nOPENROUTESERVICE_API_KEY=YYY uvx openroute-mcp\n```\n\nIn VSCode `mcp.json` file you should have:\n\n```json\n{\n  \"servers\": {\n    \"openroute-mcp\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"openroute-mcp\"\n      ],\n      \"env\": {\n        \"OPENROUTESERVICE_API_KEY\": \"YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n> [!IMPORTANT]\n>\n> Click on `Start` just on top of `\"openroute-mcp\"` to start the connection to the MCP server.\n>\n> You can click the wrench and screwdriver button 🛠️ (`Configure Tools...`) to enable/disable specific tools\n\nFull details of the CLI options:\n\n```sh\nusage: openroute-mcp [-h] [--http] [--port PORT] [--openroute-api OPENROUTE_API] [--openroute-api-key OPENROUTE_API_KEY]\n                     [--data-folder DATA_FOLDER] [--no-save] [--no-img] [--no-html]\n\nA Model Context Protocol (MCP) server for building routes using OpenRouteService.\n\noptions:\n  -h, --help            show this help message and exit\n  --http                Use Streamable HTTP transport\n  --port PORT           Port to run the server on\n  --openroute-api OPENROUTE_API\n                        OpenRouteService API URL (default: https://api.openrouteservice.org)\n  --openroute-api-key OPENROUTE_API_KEY\n                        OpenRouteService API key (default: taken from env var OPENROUTESERVICE_API_KEY)\n  --data-folder DATA_FOLDER\n                        Folder to save generated routes\n  --no-save             Don't save generated routes to disk (also disable image and HTML generation)\n  --no-img              Do not add PNG image visualization of the routes to the response (image not supported by all LLMs)\n  --no-html            Do not add HTML interactive map for routes to the response\n```\n\n## 🧑‍💻 Development\n\nCheckout the [`CONTRIBUTING.md`](https://github.com/vemonet/openroute-mcp/blob/main/CONTRIBUTING.md) page for more details on running in development and contributing.\n\n<!-- mcp-name: io.github.vemonet/openroute-mcp -->\n",
  "bytes": 7551,
  "sha": "ebea39a6bf0709469ac1ff1c2dc16d8d52fbd1c5b86dbd4828bb77f882dddda9",
  "repo_slug": "vemonet/openroute-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_vemonet_openroute_mcp_7e0e0eb9/readme"
}