KMB Bus MCP Server について
KMB Bus MCP Serverは、香港のKMBとLong Win Busの路線、停留所、リアルタイム到着情報をLLMから利用できるようにします。停留所検索や路線と停留所の対応情報に加え、API呼び出しを最適化するキャッシュを備えています。
主な機能
- 01リアルタイム到着時刻の照会
- 02バス路線の一覧と検索
- 03停留所の一覧と検索
- 04路線と停留所の対応情報
- 05API結果のキャッシュ
- 06英語と繁体字中国語への対応
活用シーン
- 01KMBバスの到着予定時刻の確認
- 02名称から停留所を検索
- 03停留所に乗り入れる路線の確認
- 04特定路線の停留所を検索
MCP 対応
KMB/LWB公式オープンデータAPIを利用し、路線、停留所、検索、到着予定時刻のツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
KMB Bus MCP サーバー
香港のKMB(九龍巴士)およびLong Win Bus(龍運巴士)の路線情報と到着時刻にリアルタイムでアクセスできる、Model Context Protocol(MCP)サーバーです。このサーバーを利用すると、LLMは香港のバスサービス情報を照会し、バス路線、停留所、到着予定時刻に関するユーザーの質問に回答できます。
機能
- バスの到着情報をリアルタイムで提供(ETA)
- バス路線を幅広く照会
- バス停の情報と検索
- 路線と停留所の対応付け
- API 呼び出しを最適化するキャッシュシステム
- バイリンガル対応(英語と繁体字中国語)
データソース
このプロジェクトは、公式のKMB/LWB Open Data APIを利用しています。
前提条件
- Python 3.10 以上
- uv パッケージマネージャー
インストール
Smithery 経由でのインストール
Smithery 経由でKMB Bus MCPをClaude Desktopに自動インストールするには、次の手順を実行します。
npx -y @smithery/cli install @kennyckk/mcp_hkbus --client claude
手動インストール
- まず、まだインストールしていない場合はuvをインストールします。
curl -LsSf https://astral.sh/uv/install.sh | sh
- リポジトリをクローンします。
git clone [email protected]: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
}
}
}
- サーバーは、LLMがバス情報を照会するために使用できる複数のツールを提供します。
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: テスト用(開発時のみ)
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
謝辞
- オープンデータ API を提供しているKMB/LWB
- MCP プロトコルの開発者
注意
このサービスはKMB/LWB Open Data APIに依存しています。API のレート制限に留意し、本番環境では適切なエラーハンドリングを実装してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
