M

MCP香港公交

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

travel-and-transportation

376 查看 · 2026-07-07 更新

简介

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

简介

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

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 的速率限制,并在生产环境中实现适当的错误处理。

服务配置

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

来源