KMB Bus MCP Server
A Model Context Protocol (MCP) server that provides real-time access to Hong Kong's KMB (九龍巴士) and Long Win Bus (龍運巴士) route information and arrival times. This server enables Language Models to query Hong Kong bus service information to answer user questions about bus routes, stops, and estimated arrival times.
Features
- Real-time bus arrival information (ETA)
- Comprehensive bus route queries
- Bus stop information and searches
- Route-stop mapping
- Caching system to optimize API calls
- Bilingual support (English and Traditional Chinese)
Data Source
This project utilizes the official KMB/LWB Open Data API:
- Base URL: https://data.etabus.gov.hk/v1/transport/kmb
- KMB Open Data API Documentation
Prerequisites
- Python 3.10 or higher
- uv package manager
Installation
Installing via Smithery
To install KMB Bus MCP for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @kennyckk/mcp_hkbus --client claude
Manual Installation
- First, install uv if you haven't already:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Clone the repository:
git clone [email protected]:kennyckk/mcp_hkbus.git
cd mcp_hkbus
- Use uv to handle the python package:
uv sync #using uv.lock
Usage
- Edit the Config in your MCP Client (e.g. Claude Desktop):
{
"mcpServers": {
"bus_service": {
"command": "path/to/uv.exe",
"args": ["--directory", "path/to/kmb_bus", "run", "kmb_mcp.py"],
"background": true
}
}
}
- The server provides several tools that can be used by Language Models to query bus information:
get_route_list(): Get a list of all bus routesget_stop_list(): Get a list of all bus stopsget_route_stops(): Get stops for a specific routefind_stops_by_name(): Search for bus stops by nameget_all_routes_at_stop(): Get all routes serving a specific stopget_eta(): Get estimated arrival times
Testing
Run the test suite using pytest:
pytest test/kmb-mcp-tests.py
Dependencies
httpx: For async HTTP requestsfastmcp: For MCP server implementationpytest: For testing (development only)
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Acknowledgments
- KMB/LWB for providing the open data API
- The MCP protocol developers
Note
This service relies on the KMB/LWB Open Data API. Please be mindful of API rate limits and implement appropriate error handling in production environments.
Recommend MCP Servers 💡
@dynatrace-oss/dynatrace-mcp-server
The Dynatrace MCP Server enables interaction with the Dynatrace observability platform, providing real-time data for monitoring, contextual debugging, security insights, and AI-powered DQL generation and explanation.
mcp_zoomeye
A Model Context Protocol server that provides network asset information based on query conditions. This server allows LLMs to obtain network asset information and supports querying network asset information by zoomeye dork etc.
searxng-mcp-server
An MCP server implementation integrated with SearXNG for privacy-respecting search capabilities for AI agents.
antymijaljevic/k8s-doc-mcp
A Kubernetes documentation assistant MCP server that fetches and converts docs to Markdown and provides recommendations.
@Panth1823/formula1-mcp
Provides real-time and historical Formula 1 racing data via the Model Context Protocol
Klavis-AI/klavis-youtube-mcp-server
An MCP server to retrieve YouTube video transcripts or details when transcripts are unavailable
