Transport NSW API Client MCP

by danhussey
Verified

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.

Integrations

  • References swagger-client as a local dependency for integration with the Transport NSW API, enabling structured API access.

Transport NSW API クライアント (MCP 実装)

直接 HTTP リクエストを使用して Transport NSW API と対話するための Claude MCP。

について

このプロジェクトは、Transport NSW の API 用のモデル コンテキスト プロトコル (MCP) サービスを実装します。

設定

  1. このリポジトリをクローンする
  2. uv (高速 Python パッケージ マネージャー) を使用して依存関係をインストールします。
    uv venv uv sync
  3. API キーを使用して.envファイルを作成します。
    OPEN_TRANSPORT_API_KEY=your_api_key_here
  4. (オプション) MCP インスペクターを実行します。
    uv run mcp dev api.py
    そして、 http://localhost:5173でサーバーにアクセスします (ポートは異なる場合があります)。

特徴

  • Stop Finder API : 名前または座標で交通機関の停留所を検索します
  • Alerts API : 交通警報や交通混乱に関する情報を取得します
  • 出発モニターAPI :交通機関の停留所の出発情報をリアルタイムで取得します
  • MCP実装:モデルコンテキストプロトコルサービスとして構造化

使用例

MCPの例は近日公開予定です。以下は標準的なPythonの例です。

交通機関の停留所を探す

from api import find_transport_stops # Search by name stops = find_transport_stops(stop_name="Central Station") # Search by coordinates (Central Station area) central_station = '151.206290:-33.884080:EPSG:4326' stops = find_transport_stops(coord=central_station, radius=500)

交通アラートを受け取る

from api import get_transport_alerts # Get all current alerts alerts = get_transport_alerts() # Get alerts for a specific date date_alerts = get_transport_alerts(date='22-03-2025') # Get train alerts only (mot_type=1) train_alerts = get_transport_alerts(mot_type=1)

リアルタイムの出発状況を監視

from api import get_departure_monitor # Get departures from Central Station departures = get_departure_monitor("200060") # Central Station ID # Get departures for a specific time from datetime import datetime time_departures = get_departure_monitor("200060", time="15:30") # Get only train departures train_departures = get_departure_monitor("200060", mot_type=1) # 1 = Train

デモスクリプト

このプロジェクトには、すべての API 機能を紹介する包括的なデモ スクリプトが含まれています。

# Run the full demo python demo.py # Run specific sections python demo.py --stops # Stop finder demo python demo.py --alerts # Transport alerts demo python demo.py --departures # Departure monitoring demo

テスト

ローカルテスト

pytest を使用して完全なテスト スイートを実行します。

uv run pytest

カバレッジレポートを使用して実行:

uv run pytest --cov=api

継続的インテグレーション

メインブランチへのプッシュリクエストとプルリクエストごとに、GitHub Actionsでテストが自動的に実行されます。ワークフローは以下のとおりです。

  1. Python 3.10をセットアップする
  2. UVとプロジェクトの依存関係をインストールします
  3. カバレッジレポート付きのテストを実行する

この機能を使用するには:

  1. OPEN_TRANSPORT_API_KEYをGitHubリポジトリシークレットとして追加します
  2. コードをGitHubにプッシュする

MCP統合

このプロジェクトはモデルコンテキストプロトコル仕様に準拠しており、AI モデルが標準化されたインターフェースを通じて Transport NSW データにアクセスできるようになります。

パッケージ管理

このプロジェクトでは、Rustで書かれた最新のPythonパッケージマネージャーであるuvを使用しています。依存関係は以下を通じて管理されます。

  • pyproject.toml : プロジェクトの依存関係を定義する
  • uv.lock : 再現可能な環境の依存関係のバージョンをロックします
-
security - not tested
F
license - not found
-
quality - not tested

Transport NSW の API と対話するための MCP サービス。これにより、ユーザーは場所周辺の交通機関の停留所を検索したり、交通警報や交通混乱に関する情報を取得したりできます。

  1. About
    1. Setup
      1. Features
        1. Usage Examples
          1. Find Transport Stops
          2. Get Transport Alerts
          3. Monitor Real-time Departures
        2. Demo Script
          1. Testing
            1. Local Testing
            2. Continuous Integration
          2. MCP Integration
            1. Package Management
              ID: mvi4lsuguu