返回 MCP 目录
public公开dns本地运行

openroute-mcp

一个基于OpenRouteService API的MCP服务器,用于规划徒步、山地自行车等活动的路线,提供坐标查找、路线生成、兴趣点搜索等功能。

article

README

🚀 🗺️ OpenRoute MCP

OpenRoute MCP 是一个基于 Model Context Protocol (MCP) 的服务器,借助 OpenRouteService API 来规划路线,适用于徒步、山地骑行等活动。

⚠️ 重要提示

免责声明:本服务生成的路线仅用于信息参考,不保证安全、合法或适合您的预期使用。在进行任何行程之前,请始终使用官方地图、当地管理部门信息和当前实际情况独立核实路线。用户需自行承担所有安全风险以及遵守当地法律法规的责任。

💡 使用建议

复制工具调用结果中返回的整个 GPX 文件,然后使用 gpx.studio 等服务将生成的 GPX 文件加载到地图上。

🚀 快速开始

连接客户端到 MCP 服务器

按照您的客户端说明,使用已部署服务器的 /mcp URL(例如 http://localhost:8888/mcp)。

GitHub Copilot in VSCode 为例,通过 VSCode 界面添加新的 MCP 服务器:

  • [x] 打开侧边面板聊天窗口(ctrl + shift + icmd + shift + i),并确保右下角模式设置为 Agent
  • [x] 打开命令面板(ctrl + shift + pcmd + shift + p),搜索 MCP: Open User Configuration,这将打开一个 mcp.json 文件。

⌨️ 使用标准输入输出传输

⚠️ 重要提示

使用 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] [--add-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)
  --add-html            Add HTML interactive map for routes to the response (larger context used)

📡 使用可流式传输的 HTTP 服务器

连接到正在运行的可流式传输 HTTP MCP 服务器,例如 openroute-mcp.onrender.com/mcp

在 VSCode 的 mcp.json 文件中应包含以下内容:

{
  "servers": {
    "openroute-mcp-http": {
      "url": "https://openroute-mcp.onrender.com/mcp",
      "type": "http"
    }
  }
}

⚠️ 重要提示

在公共 MCP 服务器上创建的路线将对任何人公开可用。

更多详细信息请参考 VSCode MCP 官方文档

✨ 主要特性

🛠️ 可用工具

  • 📍 查找地点的可能坐标
    • 参数:
      • location(字符串):要获取坐标的地点
    • 返回值:包含 10 个坐标及可用描述的列表,方便智能体确定正确的坐标
  • 🏠 查找给定坐标的可能地点(地址)
    • 参数:
      • lon(浮点数):地点的经度
      • lat(浮点数):地点的纬度
    • 返回值:靠近给定坐标的对象列表
  • 🗺️ 从起点到终点创建路线,可选择设置途经点
    • 参数:
      • route_type(字符串):路线类型,例如 "cycling-mountain"、"cycling-regular"、"foot-hiking"、"driving-car"
      • from_coordinates(浮点数列表):起点坐标,格式为 [经度, 纬度]
      • to_coordinates(浮点数列表):终点坐标,格式为 [经度, 纬度]
      • waypoints(浮点数列表的列表):可选的途经点坐标列表,格式为 [[经度, 纬度], ...]
    • 返回值:
      • 包含 路线 GPX 文件 的资源文件(例如 route://foot-hiking-98.gpx
      • 包含路线 PNG 图像可视化 的资源文件(例如 route://foot-hiking-98.png
      • 包含路线 HTML 交互式可视化 的资源文件(例如 route://foot-hiking-98.html),可直接在浏览器中打开
  • 📌 在某个区域搜索兴趣点(POIs)
    • 参数:
      • bounding_box_coordinates(浮点数列表的列表):定义边界框的坐标,格式为 [[最小经度, 最小纬度], [最大经度, 最大纬度]]
      • filters_name(字符串列表):可选的兴趣点名称过滤列表,例如 ["加油站", "餐厅"]
    • 返回值:找到的兴趣点信息
  • 🔎 搜索靠近给定起点和终点坐标的已知路线 此功能可在创建路线时建议途经已知路线,目前仅在瑞士可用,借助了瑞士联邦的 api3.geo.admin.ch 🇨🇭
    • 参数:
      • route_type(字符串):路线类型,例如 "cycling-mountain"、"cycling-regular"、"foot-hiking"、"driving-car"
      • from_coordinates(浮点数列表):起点坐标,格式为 [经度, 纬度]
      • to_coordinates(浮点数列表):终点坐标,格式为 [经度, 纬度]
    • 返回值:已知路线的轨迹和描述(如果可用),帮助智能体构建合适的路线
  • ⏱️ 计算从一个或多个起点在给定时间或距离内可到达的区域
    • 参数:
      • coordinates_list:用于计算可到达区域的一个或多个坐标,格式为 [[经度, 纬度], ...]
      • 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 工具

🧑‍💻 开发

有关开发运行和贡献的更多详细信息,请查看 CONTRIBUTING.md 页面。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端