一个模型上下文协议服务器,提供香港九巴和龙运巴士路线信息和实时到站时间的访问,使语言模型能够回答用户关于巴士路线、站点和预计到达时间的问题。
travel-and-transportation
376 查看 · 2026-07-07 更新
简介
一个模型上下文协议服务器,提供香港九巴和龙运巴士路线信息和实时到站时间的访问,使语言模型能够回答用户关于巴士路线、站点和预计到达时间的问题。
简介
一个模型上下文协议服务器,提供香港九巴和龙运巴士路线信息和实时到站时间的访问,使语言模型能够回答用户关于巴士路线、站点和预计到达时间的问题。
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 的速率限制,并在生产环境中实现适当的错误处理。
服务配置
[{'mcpServers': {'bus_service': {'args': ['--directory', 'path/to/kmb_bus', 'run', 'kmb_mcp.py'], 'background': True, 'command': 'path/to/uv.exe'}}}]
来源
- 来源:github
- 链接:https://github.com/kennyckk/mcp_hkbus