M

MCP香港公交

@kennyckk/mcp_hkbus
0 Stars 384 次浏览 kennyckk 更新于 2026-08-23

一个模型上下文协议服务器,提供香港九巴和龙运巴士路线信息和实时到站时间的访问,使语言模型能够回答用户关于巴士路线、站点和预计到达时间的问题。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "bus_service": {
      "args": [
        "--directory",
        "path/to/kmb_bus",
        "run",
        "kmb_mcp.py"
      ],
      "background": true,
      "command": "path/to/uv.exe"
    }
  }
}

服务介绍

KMB 巴士 MCP 服务器

一个提供实时访问香港九龍巴士 (KMB) 和龍運巴士 (Long Win Bus) 路线信息和到站时间的模型上下文协议 (MCP) 服务器。该服务器使语言模型能够查询香港巴士服务信息,以回答用户关于巴士路线、站点和预计到站时间的问题。

功能

  • 实时巴士到站信息(ETA)
  • 全面的巴士路线查询
  • 巴士站点信息和搜索
  • 路线-站点映射
  • 优化 API 调用的缓存系统
  • 双语支持(英语和繁体中文)

数据源

本项目使用官方的 KMB/LWB 开放数据 API:

前提条件

  • Python 3.10 或更高版本
  • uv 包管理器

安装

  1. 首先,如果尚未安装,请安装 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 克隆仓库:
git clone git@github.com:kennyckk/mcp_hkbus.git
cd mcp_hkbus
  1. 使用 uv 处理 python 包:
uv sync #using uv.lock

使用方法

  1. 在您的 MCP 客户端(例如 Claude Desktop)中编辑配置:
{
  "mcpServers": {
    "bus_service": {
      "command": "path/to/uv.exe",
      "args": ["--directory", "path/to/kmb_bus", "run", "kmb_mcp.py"],
      "background": true
    }
  }
}
  1. 服务器提供了几个工具,可供语言模型用来查询巴士信息:
  • get_route_list(): 获取所有巴士路线列表
  • get_stop_list(): 获取所有巴士站点列表
  • get_route_stops(): 获取特定路线的站点
  • find_stops_by_name(): 按名称搜索巴士站点
  • get_all_routes_at_stop(): 获取特定站点的所有路线
  • get_eta(): 获取预计到站时间

测试

使用 pytest 运行测试套件:

pytest test/kmb-mcp-tests.py

依赖项

  • httpx: 用于异步 HTTP 请求
  • fastmcp: 用于实现 MCP 服务器
  • pytest: 用于测试(仅开发环境)

贡献

欢迎贡献!请随时提交 Pull Request。

致谢

  • KMB/LWB 提供开放数据 API
  • MCP 协议开发者

注意事项

此服务依赖于 KMB/LWB 开放数据 API。请注意 API 的速率限制,并在生产环境中实现适当的错误处理。

相关 MCP 服务