SNCF API MCP サーバー
このプロジェクトは、SNCF API 用のモジュール式 Python ラッパーを提供します。MCP サーバー インターフェイスは、Claude Desktop とシームレスに統合され、フランス全土でのインテリジェントな旅程計画と列車情報の取得を実現します。
目次
Related MCP server: Optimized Memory MCP Server V2
概要
SNCF MCP サーバーは、フランス国鉄 (SNCF) の API サービスへの包括的なインターフェイスを提供し、次のことが可能になります。
フランスの都市間の鉄道旅行を計画する
駅の詳細情報を取得する
出発と到着のスケジュールを確認する
サービス中断を監視する
近くの場所や交通手段を探す
構造は次のように構成されています。
sncf_api/- SNCF APIインタラクションのメインパッケージ__init__.py- パッケージの初期化config.py- 構成設定client.py- ベース API クライアントapi.py- すべてのモジュールを組み合わせたメインAPIインターフェースsearch.py- 検索関連のエンドポイントjourney.py- 旅程計画エンドポイントstations.py- 駅関連のエンドポイントnetworks.py- ネットワークとトランスポートモードのエンドポイントdisruptions.py- 中断関連のエンドポイントstation_finder.py- 座標による効率的な駅検索csv_station_finder.py- CSV データベースを使用した駅の検索vehicle_journey.py- 詳細な列車の旅程情報
sncf_server.py- すべてのツールエンドポイントを備えた MCP サーバーの実装train_stations_europe.csv- 座標付きヨーロッパの鉄道駅のデータベース
特徴
インテリジェントな旅程計画:自動駅選択機能でフランスのあらゆる都市間の旅行を計画
包括的な駅の詳細: 次のような駅の詳細情報を取得します。
利用可能な交通手段(電車、バス、路面電車)
近くの場所や名所
座標とアクセス情報
リアルタイムスケジュール:最新の出発・到着情報にアクセス
中断監視: サービス中断に関する最新情報を入手
スマートステーション検索: 都市名、駅名、または座標で駅を検索します
フォールバックメカニズム: 主要都市の座標がハードコードされているため、API検索が失敗した場合でも信頼性が確保されます。
詳細なログ記録: デバッグと監視のための包括的なログ記録
インストール
前提条件
Python 3.6以上
pip (Python パッケージ マネージャー)
ステップ1: リポジトリのクローンを作成する
ステップ2: 依存関係をインストールする
requirements.txt ファイルが見つからない場合は、次のパッケージをインストールします: request mcp
APIキーの取得
このサーバーを使用する前に、SNCF から API キーを取得する必要があります。
SNCF APIポータルにアクセスしてください
アカウントを作成するかログインしてください
「Navitia」APIサービスに登録する
登録手続きを完了する
承認されると、アカウントダッシュボードにAPIキーが届きます。
API キーは UUID 文字列のように見えます (例: 01293485-3NS3-3242-23AZ-3241324512 )。
構成
Claudeデスクトップの設定
SNCF MCP ツールを Claude Desktop と統合するには:
Claude Desktopをまだインストールしていない場合はインストールしてください
Open Claude デスクトップ構成:
Claudeデスクトップの設定に移動します
構成ファイルを開きます(通常は
%APPDATA%\Claude\claude_desktop_config.jsonにあります)。
path/to/sncf-mcp-newインストール ディレクトリへの実際のパスに置き換えます。
設定ファイルを保存し、Claude Desktopを再起動します。
利用可能なMCPツール
設定が完了すると、Claude Desktop で次のツールが利用できるようになります。
旅程計画
plan_journey_by_city_names
フランスの 2 つの都市間の旅を計画します。
パラメータ:
from_city: 出発都市名(例:「パリ」)to_city: 目的地の都市名(例:「マルセイユ」)datetime: 出発時刻または到着時刻(オプション)(形式:YYYYMMDDTHHMMSS)datetime_represents: "departure" または "arrival" (デフォルト: "departure")include_station_details: 詳細な駅情報を含めるかどうか
クロードへのプロンプトの例:
駅情報
get_station_details
都市内の鉄道駅に関する包括的な詳細情報を入手します。
パラメータ:
city_name: 駅を検索する都市の名前station_name: オプションの特定の駅名station_id: オプションの直接ステーションIDinclude_transport_types: トランスポートタイプ分析を含めるかどうかinclude_nearby_places: 近くの場所の情報を含めるかどうかnearby_distance: 近くの場所の検索半径(メートル)nearby_count: 返される近くの場所の最大数
クロードへのプロンプトの例:
get_station_schedule
駅の出発と到着のスケジュールを取得します。
パラメータ:
city_name: 駅を検索する都市の名前station_name: オプションの特定の駅名station_id: オプションの直接ステーションIDcount: 返送する出発/到着便の数datetime: 開始するオプションの日時duration: 秒単位でのオプションの継続時間data_freshness: データの鮮度レベル(リアルタイムまたはベーススケジュール)
クロードへのプロンプトの例:
混乱監視
check_disruptions
SNCF 輸送ネットワークの現在の混乱を確認してください。
パラメータ:
coverage: カバレッジエリア(デフォルト: "sncf")count: 返される中断の最大数station_id: 特定の駅のオプションフィルターline_id: 特定の行のオプションフィルターsince: この日付以降の中断のみ有効until: この日付以前の中断のみ有効fetch_train_details: 影響を受ける列車に関する追加の詳細を取得するかどうか
クロードへのプロンプトの例:
使用例
旅の計画
クロードにフランスの任意の 2 つの都市間の旅程を計画するよう依頼できます。
Claude はplan_journey_by_city_namesツールを使用して次のことを行います。
両都市の主要駅を探す
それらの間の最適な旅程を計画する
出発/到着時刻、所要時間、接続の詳細を表示します
駅情報の取得
ステーションの詳細情報を取得するには:
Claude はget_station_detailsツールを使用して以下を提供します。
駅の基本情報(名称、ID、座標)
利用可能な交通手段(電車、バス、路面電車)
近くの場所や名所
列車のスケジュールを確認する
今後の出発便または到着便を確認するには:
Claude はget_station_scheduleツールを使用して次の内容を表示します。
ボルドー発の今後の出発便
目的地情報
プラットフォームの詳細(入手可能な場合)
リアルタイムのステータス更新
中断の監視
サービスの中断を確認するには:
Claude はcheck_disruptionsツールを使用して次のことを行います。
関連する混乱を見つける
サービスへの影響を説明する
影響を受ける列車に関する追加情報を提供する
トラブルシューティング
よくある問題
「APIキーが提供されていません」
Claude Desktop の設定に SNCF API キーを追加したことを確認してください。
MCPサーバー構成で環境変数が正しく参照されていることを確認します
「市内の駅が見つかりません」
より具体的な都市名を使ってみてください
小さな都市の場合は、近くの大きな都市の名前を使ってみてください
システムにはフランスの主要都市の座標がハードコードされており、確実に動作するはずです。
「SNCF APIへの接続に失敗しました」
インターネット接続を確認してください
APIキーが有効で期限切れでないことを確認してください
SNCF API がダウンしている可能性があります。しばらくしてからもう一度お試しください。
「CSV ステーション検索の初期化中にエラーが発生しました」
train_stations_europe.csvファイルが正しい場所にあることを確認します
ファイルの権限をチェックして、ファイルが読み取り可能であることを確認してください
高度な機能
ハードコードされた座標
システムには、API 検索が失敗した場合でも信頼性を確保するために、フランスの主要都市の座標がハードコードされています。
パリ(48.853, 2.348)
マルセイユ(43.303、5.380)
リヨン(45.760, 4.860)
トゥールーズ(43.611, 1.454)
ニース(43.704, 7.262)
ナント(47.217、-1.542)
ストラスブール(48.585, 7.735)
ボルドー(44.826、-0.556)
リール(50.638, 3.072)
レンヌ(48.103、-1.672)
グルノーブル(45.192, 5.716)
輸送タイプ分析
get_station_detailsツールは、駅で利用できる交通手段の種類を分析し、分類することができます。
長距離列車(TGV、インターシテ)
地域列車(TER)
地域交通機関(バス、路面電車、地下鉄)
その他のサービス(タクシー、自転車シェアリング)
近くの場所を検索
駅詳細ツールでは、駅の近くの興味のある場所を見つけることができます。
その他の交通機関の停留所
公共施設
興味のある場所
アドレスポイント
この機能は、駅から次の旅程を計画している旅行者にとって特に便利です。
貢献
SNCF MCP サーバーの改善への貢献を歓迎します。バグや機能のリクエストについては、プルリクエストを送信したり、問題を報告したりしてお気軽にお問い合わせください。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。
謝辞
APIを提供してくれたSNCF
包括的な公共交通APIを提供するNavitiaチーム
インテリジェントな統合機能を実現するClaude AI
Christian delage ( dr.christian.delage@gmail.com ) 作成