关于 OpenRoute MCP
OpenRoute MCP 是基于 OpenRouteService 规划路线的 MCP 服务,适用于协助徒步、骑行等出行的 Agent。它还可查找附近兴趣点,并提供路线文件和可视化内容。
主要功能
- 01将地点名称解析为坐标
- 02根据坐标查找地点
- 03创建含可选途经点的路线
- 04搜索附近兴趣点
- 05查找瑞士已知步道
- 06按时间或距离计算可达区域
适用场景
- 01规划带途经点的徒步路线
- 02查找计划路线附近的餐馆
- 03导出 GPX 路线数据
- 04查看起点的可达范围
MCP 相关
它向 MCP 客户端提供路线规划、地点查询、兴趣点搜索、已知步道搜索和可达性分析工具。生成的路线可作为 GPX、PNG 和 HTML 资源获取。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🗺️ OpenRoute MCP
用于规划路线的模型上下文协议(MCP)服务,使用 OpenRouteService API 规划徒步或山地自行车等活动路线。
注意
免责声明:本服务生成的路线仅供参考,不保证安全、合法或适合您的预期用途。在尝试任何行程之前,请务必使用官方地图、咨询当地主管部门并根据当前情况独立核实路线。用户需自行承担所有风险,并对自身安全以及遵守当地法律法规负责。
提示
复制工具调用结果中返回的完整 GPX 文件,并使用 gpx.studio 等服务将生成的 GPX 文件加载到地图上。
🛠️ 可用工具
- 📍 查找某个地点可能的坐标
- 参数:
location(字符串):要获取坐标的地点
- 返回:包含 10 个坐标的列表,并附有可用描述,以便 Agent 找出正确的坐标
- 参数:
- 🏠 根据给定坐标查找可能的地点(地址)。
- 参数:
lon(浮点数):地点的经度lat(浮点数):地点的纬度
- 返回:给定坐标附近的对象列表
- 参数:
- 🗺️ 创建从起点到目的地的路线,可选添加途经点
- 参数:
route_type(字符串):路线类型,例如 "cycling-mountain"、"cycling-regular"、"foot-hiking"、"driving-car"from_coordinates(浮点数列表):起点位置,格式为 [longitude, latitude]from_coordinates(浮点数列表):目的地位置,格式为 [longitude, latitude]waypoints(浮点数列表的列表):可选的途经点坐标列表,格式为 [[lon, lat], ...]
- 返回:
- 包含 路线 GPX 的资源文件(例如
route://foot-hiking-98.gpx) - 包含路线 PNG 图像可视化内容的资源文件(例如
route://foot-hiking-98.png) - 包含路线交互式 HTML 可视化内容的资源文件(例如
ui://foot-hiking-98.html),可直接用浏览器打开
- 包含 路线 GPX 的资源文件(例如
- 参数:
- 📌 搜索某个区域内的兴趣点(POI)
- 参数:
bounding_box_coordinates(浮点数列表的列表):定义边界框的坐标,格式为 [[min_lon, min_lat], [max_lon, max_lat]]filters_name(字符串列表):可选的 POI 名称筛选列表,例如 ["Gas station", "Restaurant"]
- 返回:找到的 POI 信息
- 参数:
- 🔎 搜索靠近给定起点和终点坐标的已知路线,创建路线时可据此推荐途经点,引导用户经过已知步道。目前仅在瑞士可用,感谢瑞士联邦政府提供 api3.geo.admin.ch 🇨🇭
- 参数:
route_type(字符串):路线类型,例如 "cycling-mountain"、"cycling-regular"、"foot-hiking"、"driving-car"from_coordinates(浮点数列表):起点位置,格式为 [longitude, latitude]from_coordinates(浮点数列表):目的地位置,格式为 [longitude, latitude]
- 返回:可用时,提供已知步道的轨迹和描述,帮助 Agent 规划合适的路线
- 参数:
- ⏱️ 计算从一个或多个起点出发,在给定时间或距离内可到达的区域
-
参数:
coordinates_list:用于计算可达区域的一个或多个坐标,格式为 [[lon, lat], ...]route_type:路线类型,例如 "cycling-mountain"、"cycling-regular"、"foot-hiking"、"driving-car"range_type:范围类型,可以是time(秒)或distance(米)area_range:分析范围的最大值,时间范围以秒为单位,距离范围以米为单位;也可以是以逗号分隔的具体范围值列表
-
返回:GeoJSON 格式的可达区域信息
-
🗃️ 可用资源
- 🚏 路线文件
- URL 模式:
route://{filename} - 类型:GPX(
.gpx)、HTML(.html)或 PNG(.png) - 描述:根据文件名返回之前生成的路线文件。
- 由以下工具生成:
create_route_from_to
- URL 模式:
🔌 将客户端连接到 MCP 服务
请按照客户端的说明操作,并使用已部署服务的 /mcp URL(例如 http://localhost:8888/mcp)
例如,对于 GitHub Copilot in VSCode,若要通过 VSCode UI 添加新的 MCP 服务:
- 打开侧边栏聊天(
ctrl+shift+i或cmd+shift+i),并确保右下角的模式设为Agent - 打开命令面板(
ctrl+shift+p或cmd+shift+p),搜索MCP: Open User Configuration,这将打开一个mcp.json文件
⌨️ 使用 stdio 传输
重要
使用 GitHub 登录 openrouteservice.org,并获取 API 密钥,通过
OPENROUTESERVICE_API_KEY环境变量提供该密钥。
OPENROUTESERVICE_API_KEY=YYY uvx openroute-mcp
在 VSCode 的 mcp.json 文件中应包含:
{
"servers": {
"openroute-mcp": {
"command": "uvx",
"args": [
"openroute-mcp"
],
"env": {
"OPENROUTESERVICE_API_KEY": "YOUR_API_KEY"
}
}
}
}
重要
点击
"openroute-mcp"正上方的Start,即可启动与 MCP 服务的连接。点击扳手和螺丝刀按钮 🛠️(
Configure Tools...),即可启用或禁用特定工具
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
🧑💻 开发
查看 CONTRIBUTING.md,了解有关开发运行和参与贡献的更多详情。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。