DB時刻表MCPサーバー
ドイツ鉄道時刻表 API 用のモデル コンテキスト プロトコル (MCP) サーバー。サーバーは、時刻表データ、駅情報、列車の変更にアクセスするための MCP ツールとリソースを提供します。
命名義務:
このプロジェクトは、クリエイティブ コモンズ アトリビューション 4.0 国際ライセンス (CC BY 4.0)に基づいて公開されているドイツ鉄道の時刻表データを提供します。
API およびライセンス条件の詳細については、 developers.deutschebahn.comをご覧ください。 API リクエストにはライセンスの条件が適用されます。
機能
- 現在の時刻表: 駅の現在の時刻表データを取得します
- 時刻表の変更:最新の変更を追跡する
- 予定時刻表: 特定の時間の予定時刻表データへのアクセス
- 駅検索:駅名またはコードで駅を検索します
要件
- Node.js 18以上
- DBタイムテーブルAPIのAPI認証情報(クライアントIDとクライアントシークレット)
インストール
- リポジトリのクローン:
- 依存関係をインストールします:
- TypeScript コードをコンパイルします。
構成
次の環境変数を使用して、プロジェクトのルート ディレクトリに.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(https://developers.deutschebahn.com/db-api-marketplace/apis/product/timetables)
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
モデル コンテキスト プロトコルのツールとリソースを通じて、ドイツ鉄道の列車の時刻表、駅情報、スケジュールの変更にアクセスできるようにします。
Related MCP Servers
- AsecurityFlicenseAqualityEnables Large Language Models to access real-time data on Vilnius public transport stops and routes through the Model Context Protocol.Last updated -21Python
- -securityFlicense-qualityA Model Context Protocol server that provides language models with access to personal Whoop fitness data, allowing queries for cycles, recovery, strain, and workout information from the Whoop API.Last updated -2Python
- -securityFlicense-qualityA Model Context Protocol server that enables Claude to interact with your Todoist account, allowing you to manage tasks, projects, and labels through natural language.Last updated -1Python
- -securityFlicense-qualityA Model Context Protocol implementation that enables large language models to call external tools (like weather forecasts and GitHub information) through a structured protocol, with visualization of the model's reasoning process.Last updated -839TypeScript