本项目是一个提供香港九龍巴士(KMB)及龍運巴士(LWB)实时路线信息及到站时间的模型上下文协议(MCP)伺服器。借助该伺服器,语言模型能够查询香港巴士服务信息,精准回答用户关于路线、站点和预计到站时间(estimated arrival times)的问题。
如果尚未安装 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 # 使用 uv.lock
编辑您的 MCP 客户端(例如 Claude 桌面版)的 Config:
{
"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()
# 获取 estimated arrival times
get_eta()
此专案使用官方 KMB/LWB 开放数据 API:
使用 pytest 运行测试套件:
pytest test/kmb-mcp-tests.py
httpx: 用于 async HTTP 请求fastmcp: 用于 MCP 伺服器实现pytest: 用于测试(开发环境)欢迎任何人的参与!请随意提交 Pull Request。
⚠️ 重要提示
本服务依赖于 KMB/LWB 开放数据 API。请注意 API 的速率限制,在生产环境中实施适当的错误处理。