DB時刻表MCPサーバー
ドイツ鉄道時刻表 API 用のモデル コンテキスト プロトコル (MCP) サーバー。サーバーは、時刻表データ、駅情報、列車の変更にアクセスするための MCP ツールとリソースを提供します。
命名義務:
このプロジェクトは、クリエイティブ コモンズ アトリビューション 4.0 国際ライセンス (CC BY 4.0)に基づいて公開されているドイツ鉄道の時刻表データを提供します。
API およびライセンス条件の詳細については、 developers.deutschebahn.comをご覧ください。 API リクエストにはライセンスの条件が適用されます。
機能
現在の時刻表: 駅の現在の時刻表データを取得します
時刻表の変更:最新の変更を追跡する
予定時刻表: 特定の時間の予定時刻表データへのアクセス
駅検索:駅名またはコードで駅を検索します
Related MCP server: DevDb MCP Server
要件
Node.js 18以上
DBタイムテーブルAPIのAPI認証情報(クライアントIDとクライアントシークレット)
インストール
リポジトリのクローン:
git clone <repository-url> cd db-mcp依存関係をインストールします:
npm installTypeScript コードをコンパイルします。
npm run build
構成
次の環境変数を使用して、プロジェクトのルート ディレクトリに.envファイルを作成します。
設定オプション
DB_TIMETABLE_CLIENT_ID: DB APIのクライアントID(必須)DB_TIMETABLE_CLIENT_SECRET: DB APIのクライアントシークレット(必須)TRANSPORT_TYPE: MCP サーバーのトランスポートタイプ (stdioまたはsse、デフォルト:stdio)PORT: SSEサーバーのポート(デフォルト:8080)SSE_ENDPOINT: SSE接続のエンドポイント(デフォルト:/sse)LOG_LEVEL: ログレベル (debug、info、warn、error、デフォルト:info)
使用
サーバーを起動する
stdio モード (CLI テストおよびデバッグ用):
SSE モード (Web クライアントの場合):
検査モードでテストする
サーバーは FastMCP Inspector を使用してテストできます。
MCPツール
サーバーは次のツールを提供します。
getCurrentTimetable : 駅の現在の時刻表データを取得します
パラメータ:
evaNo- 駅のEVA番号(例:フランクフルト中央駅の場合は8000105)
getRecentChanges : ステーションの最近の変更を取得します
パラメータ:
evaNo- 駅のEVA番号(例:フランクフルト中央駅の場合は8000105)
getPlannedTimetable : 駅の予定時刻表データを取得します
パラメータ:
evaNo- 駅のEVA番号(例:フランクフルト中央駅の場合は8000105)date- YYMMDD形式の日付(例:2023年4月1日の場合は230401)hour- HH 形式の時間 (例: 午後 2 時の場合は 14)
findStations : 検索パターンを使用してステーションを検索します
パラメータ:
pattern- 検索パターン(例:「Frankfurt」または「BLS」)
MCPリソース
サーバーは次のリソースを提供します。
現在の時刻表データ:
db-api:timetable/current/{evaNo}現在の時刻表の変更:
db-api:timetable/changes/{evaNo}計画時刻表データ:
db-api:timetable/planned/{evaNo}/{date}/{hour}駅検索:
db-api:station/{pattern}
発達
プロジェクト構造
NPMスクリプト
npm run build: TypeScriptコードをコンパイルするnpm start: サーバーを起動しますnpm run dev: 自動リロードで開発モードでサーバーを起動しますnpm test: テストを実行する
拡張性
潜在的な拡張
データ処理と拡充
セマンティック時刻表データ処理: XML からセマンティックエンリッチメントによる構造化 JSON へ
遅延や混乱に関する履歴データ分析
複合輸送接続の統合
高度なMCPツール
駅間のルート計画
AIベースの遅延と容量予測
旅行中断分析
駅や乗り換えのアクセシビリティチェック
ライセンス
MCP サーバー: MIT ライセンス
DBタイムテーブルAPI:クリエイティブ・コモンズ 表示4.0 国際ライセンス