Unoffiicial Mvg Public Transport Incidents Mcp Server (munich/germany) について
MVG Störung は、ミュンヘンの U-Bahn、Tram、Bus の運行障害情報を提供する MCP サーバーです。MVG 公式 API のデータをキャッシュし、路線、タイトル、説明で検索できます。
主な機能
- 01現在の運行障害を取得
- 02データを 10 分以上キャッシュ
- 03路線・タイトル・説明で検索
- 04キャッシュ状態とリソースを公開
活用シーン
- 01ミュンヘンの現在の運行障害を確認
- 02特定路線の運行障害を検索
- 03キャッシュ状態の確認や手動更新
MCP 対応
互換性のあるクライアントに現在の運行障害とキャッシュ情報を公開し、取得、検索、キャッシュ管理のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/rmoriz/mvg_stoerung_mcp:latestローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/rmoriz/mvg_stoerung_mcp:lateststdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MVG Störung MCP サーバー
ミュンヘン公共交通機関(MVG)の運行障害データをキャッシュして提供する、Model Context Protocol(MCP)サーバーです。
特長
- キャッシュデータ:API 呼び出しを減らすため、MVG のインシデントデータを 10 分以上自動的にキャッシュします
- リアルタイムのインシデント:MVG の公式 API から現在のインシデントを取得します
- 検索機能:路線、タイトル、説明でインシデントを検索できます
- 拡張データ:人が読みやすいタイムスタンプを追加し、データを使いやすい形式に整えます
- MCP 互換:MCP 互換のあらゆるクライアントで動作します
データソース
このサーバーは、MVG の公式 API エンドポイントを使用します:https://www.mvg.de/api/bgw-pt/v3/messages
サーバーは API レスポンスをフィルタリングしてインシデント(type=INCIDENT)のみを返し、次の情報を追加します。
- 人が読みやすいタイムスタンプ
- 整形された説明
- 重複を除いた路線情報
インストール
# Install dependencies
pip install -r requirements.txt
# Or install as a package
pip install -e .
使用方法
サーバーの実行
python mvg_mcp_server.py
利用可能なツール
-
get_mvg_incidents:現在の MVG のインシデントを取得します(10 分以上キャッシュされます)
- 任意のパラメーター:
force_refresh(ブール値)— 有効期限が切れていなくても、キャッシュを強制的に更新します
- 任意のパラメーター:
-
get_cache_status:キャッシュの状態に関する情報を取得します
-
search_incidents:路線、タイトル、説明でインシデントを検索します
- 必須パラメーター:
query(文字列)— 検索クエリ - 任意のパラメーター:
line(文字列)— 特定の路線で絞り込みます(例:'U6'、'S1')
- 必須パラメーター:
利用可能なリソース
- mvg://incidents:ミュンヘン公共交通機関(MVG)の現在のインシデント
- mvg://cache-info:現在のキャッシュ状態に関する情報
使用例
現在のすべてのインシデントを取得する
{
"method": "tools/call",
"params": {
"name": "get_mvg_incidents"
}
}
U6 路線の問題を検索する
{
"method": "tools/call",
"params": {
"name": "search_incidents",
"arguments": {
"query": "verspätung",
"line": "U6"
}
}
}
キャッシュを強制的に更新する
{
"method": "tools/call",
"params": {
"name": "get_mvg_incidents",
"arguments": {
"force_refresh": true
}
}
}
キャッシュの動作
- キャッシュ期間:最低 10 分(設定可能)
- 自動更新:有効期限が切れると、キャッシュは自動的に更新されます
- 強制更新:
force_refreshパラメーターで手動で実行できます - キャッシュ情報:有効期限やキャッシュされた項目数など、キャッシュの状態を確認できます
データ形式
各インシデントには、次の情報が含まれます。
title:インシデントのタイトルdescription:詳細な説明type:常に "INCIDENT"publication:公開タイムスタンプ(Unix ミリ秒)publication_readable:人が読みやすい公開時刻validFrom/validTo:有効期間validFrom_readable/validTo_readable:人が読みやすい有効期間lines:詳細情報を含む、影響を受ける交通路線provider:常に "MVG"
エラー処理
サーバーは、次のようなさまざまなエラー状況に対応します。
- API のタイムアウトと接続エラー
- 無効な JSON レスポンス
- キャッシュの有効期限切れ
- データの欠落または形式の不備
開発
プロジェクト構成
├── mvg_mcp_server.py # Main MCP server implementation
├── requirements.txt # Python dependencies
├── pyproject.toml # Project configuration
└── README.md # This file
依存関係
mcp>=1.0.0:Model Context Protocol フレームワークhttpx>=0.25.0:非同期 HTTP クライアントpydantic>=2.0.0:データの検証とシリアライズ
ライセンス
このプロジェクトは、CC0 1.0 Universal ライセンスに基づき、パブリックドメインに提供されています。詳細は LICENSE ファイルをご覧ください。
コントリビューション
コントリビューションを歓迎します。お気軽にイシューやプルリクエストを送信してください。
免責事項
このプロジェクトは MVG の公式プロジェクトではなく、MVG による承認や推奨を受けていません。使用する前に MVG に許可を求めてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。