mcpField
S
SNCF API MCP Server

SNCF API MCP Server

ローカル
github.com/Kryzo開発ツール2084 週間前に更新

SNCF API MCP Server について

SNCF API MCP Server は、フランス国鉄 SNCF の API をラップしたモジュール式の Python ライブラリで、Claude Desktop と連携する MCP サーバーインターフェースを備えています。フランス国内の列車の経路検索、駅情報、運行障害の確認に利用できます。

主な機能

  1. 01都市名や駅名によるフランス国内の経路検索
  2. 02駅の詳細、交通手段、周辺施設の取得
  3. 03出発・到着の時刻表の取得
  4. 04ネットワーク上の運行障害の監視

活用シーン

  1. 01Claude Desktop でパリからリヨンまでの列車を検索
  2. 02リヨン・パールデュー駅などの出発時刻を確認
  3. 03マルセイユ方面の列車に影響する運行障害を確認

MCP 対応

MCP サーバーとして、経路検索、駅検索、時刻表、運行障害の各機能をツールとして提供し、Claude Desktop などの MCP クライアントから利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

SNCF API MCP サーバー

このプロジェクトは、SNCF API 用のモジュール式 Python ラッパーを提供します。MCP サーバーインターフェースを備えており、Claude Desktop とシームレスに連携して、フランス全土のインテリジェントな経路計画と列車情報の取得を実現します。

目次

概要

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:リポジトリをクローンする
git clone https://github.com/yourusername/sncf-mcp-new.git
cd sncf-mcp-new
手順 2:依存関係をインストールする
pip install -r requirements.txt

requirements.txt ファイルが見つからない場合は、次のパッケージをインストールしてください。 requests mcp

pip install requests pandas mcp

API キーの取得

このサーバーを使用する前に、SNCF から API キーを取得する必要があります。

  1. SNCF API Portal にアクセスします
  2. アカウントを作成するか、ログインします
  3. 「Navitia」API サービスに登録します
  4. 登録手続きを完了します
  5. 承認されると、アカウントのダッシュボードに API キーが表示されます

API キーは UUID 形式の文字列です(例:01293485-3NS3-3242-23AZ-3241324512)。

設定

Claude Desktop のセットアップ

SNCF MCP ツールを Claude Desktop と統合するには、以下の手順に従ってください。

  1. まだインストールしていない場合は、Claude Desktop をインストールします
  2. Claude Desktop の設定を開きます:
    • Claude Desktop の設定に移動します
    • 設定ファイルを開きます(通常は %APPDATA%\Claude\claude_desktop_config.json にあります)
{
 "sncf": {
  "command": "py",
  "args": [
    "c:\\Users\\ChristianELHAJJ\\sncf-mcp-new\\sncf_server.py",
    "--api-key={YOUR-API-KEY}"
  ],
  "cwd": "c:\\Users\\ChristianELHAJJ\\sncf-mcp-new"
},

path/to/sncf-mcp-new を、インストール先ディレクトリの実際のパスに置き換えてください。

  1. 設定ファイルを保存し、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:駅の詳細情報を含めるかどうか

Claude へのプロンプト例:

Plan a train journey from Paris to Lyon tomorrow morning at 8 AM.
駅情報
get_station_details

都市内の鉄道駅に関する詳細情報を取得します。

パラメーター:

  • city_name:駅を検索する都市名
  • station_name:特定の駅名(省略可)
  • station_id:駅 ID の直接指定(省略可)
  • include_transport_types:交通機関の種類に関する分析を含めるかどうか
  • include_nearby_places:近隣の場所に関する情報を含めるかどうか
  • nearby_distance:近隣の場所を検索する半径(メートル)
  • nearby_count:返す近隣の場所の最大数

Claude へのプロンプト例:

What transport options are available at the main train station in Grenoble?
get_station_schedule

駅の出発時刻表と到着時刻表を取得します。

パラメーター:

  • city_name:駅を検索する都市名
  • station_name:特定の駅名(省略可)
  • station_id:駅 ID の直接指定(省略可)
  • count:返す出発または到着の件数
  • datetime:検索開始日時(省略可)
  • duration:所要時間(秒、省略可)
  • data_freshness:データの鮮度レベル(realtime または base_schedule)

Claude へのプロンプト例:

Show me the next 5 train departures from Paris Gare de Lyon.
運行障害の監視
check_disruptions

SNCF 交通ネットワークで現在発生している運行障害を確認します。

パラメーター:

  • coverage:対象エリア(デフォルト:「sncf」)
  • count:返す運行障害の最大数
  • station_id:特定の駅による絞り込み(省略可)
  • line_id:特定の路線による絞り込み(省略可)
  • since:この日付以降に有効な運行障害のみを対象とします
  • until:この日付より前に有効な運行障害のみを対象とします
  • fetch_train_details:影響を受ける列車の詳細情報を追加で取得するかどうか

Claude へのプロンプト例:

Are there any current disruptions affecting trains to Marseille?

使用例

経路の検索

Claude に依頼して、フランス国内の任意の 2 都市間の経路を検索できます。

I need to travel from Paris to Nice next Friday at 2 PM. Can you find me a train?

Claude は plan_journey_by_city_names ツールを使用して、以下を行います。

  1. 両都市の主要駅を検索します
  2. その間の最適な経路を検索します
  3. 出発時刻と到着時刻、所要時間、乗り換えの詳細を提示します
駅情報の取得

駅の詳細情報を取得するには、次のように依頼します。

What facilities and transport options are available at Gare de Lyon in Paris?

Claude は get_station_details ツールを使用して、以下を提示します。

  1. 基本的な駅情報(名称、ID、座標)
  2. 利用可能な交通機関の種類(電車、バス、路面電車)
  3. 近隣の場所や観光スポット
列車時刻表の確認

今後の出発または到着を確認するには、次のように依頼します。

When are the next trains leaving from Bordeaux to Paris today?

Claude は get_station_schedule ツールを使用して、以下を表示します。

  1. ボルドーからの今後の出発
  2. 目的地の情報
  3. 利用可能な場合はホームの詳細
  4. リアルタイムの運行状況の更新
運行障害の監視

運行障害を確認するには、次のように依頼します。

Are there any disruptions affecting the Paris to Lyon route today?

Claude は check_disruptions ツールを使用して、以下を行います。

  1. 関連する運行障害を検索します
  2. 運行への影響を説明します
  3. 影響を受ける列車の追加情報を提示します

トラブルシューティング

よくある問題
"No API key provided"
  • Claude Desktop の設定に SNCF API キーを追加したことを確認してください
  • MCP サーバーの設定で環境変数が正しく参照されていることを確認してください
"No stations found for city"
  • より具体的な都市名を使用してみてください
  • 小さな都市の場合は、近くにある大きな都市の名前を使用してみてください
  • システムにはフランスの主要都市の座標がハードコードされており、安定して動作するはずです
"Failed to connect to SNCF API"
  • インターネット接続を確認してください
  • API キーが有効で、期限切れでないことを確認してください
  • SNCF API が停止している可能性があります。時間をおいてからもう一度お試しください
"Error initializing CSV station finder"
  • 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、Intercités)
  • 地域列車(TER)
  • 地域内交通(バス、トラム、地下鉄)
  • その他のサービス(タクシー、シェアサイクル)
周辺スポットの検索

駅の詳細ツールでは、駅周辺のスポットを検索できます。

  • その他の交通機関の停留所
  • 公共施設
  • 観光スポット
  • 住所地点

この機能は、駅から先の移動を計画する旅行者にとって特に便利です。


コントリビューション

SNCF MCP Server の改善へのコントリビューションを歓迎します。プルリクエストの送信や、バグや機能リクエストに関する Issue の作成をお気軽にどうぞ。

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。

謝辞

  • API を提供している SNCF
  • 包括的な公共交通機関 API を提供している Navitia チーム
  • 高度な統合機能を提供している Claude AI

作成者:Christian delage ([email protected])

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。