MCP香港公交
一个模型上下文协议服务器,提供香港九巴和龙运巴士路线信息和实时到站时间的访问,使语言模型能够回答用户关于巴士路线、站点和预计到达时间的问题。
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 包管理器
安装
- 首先,如果尚未安装,请安装 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
- 克隆仓库:
git clone git@github.com:kennyckk/mcp_hkbus.git
cd mcp_hkbus
- 使用 uv 处理 python 包:
uv sync #using uv.lock
使用方法
- 在您的 MCP 客户端(例如 Claude Desktop)中编辑配置:
{
"mcpServers": {
"bus_service": {
"command": "path/to/uv.exe",
"args": ["--directory", "path/to/kmb_bus", "run", "kmb_mcp.py"],
"background": true
}
}
}
- 服务器提供了几个工具,可供语言模型用来查询巴士信息:
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 的速率限制,并在生产环境中实现适当的错误处理。