使用说明

项目简介

本项目 'mcp_hkbus' 是一个实现了 Model Context Protocol (MCP) 的服务器,旨在为大型语言模型 (LLM) 提供访问香港九龙巴士 (KMB) 和龙运巴士 (LWB) 实时数据的能力。通过此服务器,LLM 可以查询巴士路线、站点信息以及预估到达时间 (ETA),从而更好地服务于用户关于香港巴士出行的各种问题。

主要功能点

  • 实时巴士到站信息 (ETA) 查询:获取指定站点或线路的巴士预计到达时间。
  • 全面的巴士线路查询:查询巴士线路的详细信息,包括起点站、终点站等。
  • 巴士站点信息查询:查询巴士站点的详细信息,包括站点名称、经纬度等。
  • 线路-站点映射:查询指定线路的所有站点,或指定站点所有经过的线路。
  • 关键词搜索:支持按名称搜索巴士站点和目的地。
  • 双语支持:提供英文和繁体中文两种语言的数据支持。
  • 数据缓存:通过缓存机制减少对 KMB/LWB 官方 API 的重复调用,提高响应速度。

安装步骤

  1. 安装 uv 包管理器

    如果您的系统中尚未安装 'uv',请先安装 'uv' 包管理器。'uv' 可以帮助您更高效地管理 Python 项目依赖。

    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. 克隆仓库

    使用 Git 克隆 'mcp_hkbus' 仓库到您的本地计算机。

    git clone https://github.com/kennyckk/mcp_hkbus.git
    cd mcp_hkbus
  3. 安装 Python 依赖

    使用 'uv' 安装项目所需的 Python 依赖包。项目使用 'uv.lock' 文件来管理依赖版本,确保环境一致性。

    uv sync

服务器配置

为了让 MCP 客户端(例如 Claude Desktop)连接到 'mcp_hkbus' 服务器,您需要在客户端的配置文件中添加服务器配置信息。以下是一个配置示例,您需要根据实际情况修改路径。

{
  "mcpServers": {
    "bus_service": {
      "command": "path/to/uv.exe",  // uv.exe 的路径,通常 uv 安装目录下的 uv.exe
      "args": [
        "--directory", "path/to/mcp_hkbus", // mcp_hkbus 仓库的根目录
        "run", "kmb_mcp.py" // 运行服务器的命令
      ],
      "background": true // 设置为后台运行
    }
  }
}

配置参数说明:

  • '"bus_service"': 服务器名称,您可以自定义,用于在 MCP 客户端中标识此服务器。
  • '"command"': 'uv.exe' 的完整路径。请替换为 'uv.exe' 在您系统中的实际路径。
  • '"args"': 启动服务器的参数列表。
    • '"--directory", "path/to/mcp_hkbus"': 指定 'mcp_hkbus' 仓库的根目录。请替换为仓库在您本地的实际路径。
    • '"run", "kmb_mcp.py"': 使用 'uv run' 命令执行 'kmb_mcp.py' 文件,启动 MCP 服务器。
  • '"background": true': 建议设置为 'true',使服务器在后台运行。

请将上述 JSON 配置添加到您的 MCP 客户端配置文件中,并根据您的实际路径进行调整。

基本使用方法

'mcp_hkbus' 服务器提供了一系列工具 (Tools),LLM 可以调用这些工具来查询巴士信息。以下是一些主要工具及其功能描述:

  • 'get_next_bus(route, stop_name)': 查询指定巴士线路在特定站点的下一班车预计到达时间。

    • 'route': 巴士线路号码,例如 "1A", "960"。
    • 'stop_name': 巴士站点名称,例如 "佐敦站", "中环站"。
  • 'find_buses_to_destination(destination)': 查找前往特定目的地的巴士线路。

    • 'destination': 目的地名称,例如 "中环", "机场"。
  • 'get_route_stops_info(route)': 获取指定巴士线路的所有站点信息。

    • 'route': 巴士线路号码。
  • 'find_stop_by_name(stop_name)': 根据站点名称查找巴士站点信息。

    • 'stop_name': 巴士站点名称或部分名称。
  • 'get_all_routes_at_stop(stop_name)': 获取所有经过指定巴士站点的线路。

    • 'stop_name': 巴士站点名称。

LLM 可以根据用户的问题,选择合适的工具并提供必要的参数进行调用,从而获取巴士信息并生成用户需要的答案。例如,用户询问“从佐敦站到中环站有什么巴士?下一班车几点到?”,LLM 可以先调用 'find_buses_to_destination("中环站")' 或 'get_all_routes_at_stop("佐敦站")' 获取相关线路,再调用 'get_next_bus(route, "佐敦站")' 查询下一班车的到站时间。

通过这些工具,LLM 可以有效地与 'mcp_hkbus' 服务器交互,为用户提供实时的香港巴士出行信息服务。

信息

分类

网页与API