Transport NSW API クライアント (MCP 実装)
直接 HTTP リクエストを使用して Transport NSW API と対話するための Claude MCP。
について
このプロジェクトは、Transport NSW の API 用のモデル コンテキスト プロトコル (MCP) サービスを実装します。
設定
このリポジトリをクローンする
uv (高速 Python パッケージ マネージャー) を使用して依存関係をインストールします。
uv venv uv sync
API キーを使用して
.env
ファイルを作成します。OPEN_TRANSPORT_API_KEY=your_api_key_here
(オプション) 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でテストが自動的に実行されます。ワークフローは以下のとおりです。
Python 3.10をセットアップする
UVとプロジェクトの依存関係をインストールします
カバレッジレポート付きのテストを実行する
この機能を使用するには:
OPEN_TRANSPORT_API_KEY
をGitHubリポジトリシークレットとして追加しますコードをGitHubにプッシュする
MCP統合
このプロジェクトはモデルコンテキストプロトコル仕様に準拠しており、AI モデルが標準化されたインターフェースを通じて Transport NSW データにアクセスできるようになります。
パッケージ管理
このプロジェクトでは、Rustで書かれた最新のPythonパッケージマネージャーであるuvを使用しています。依存関係は以下を通じて管理されます。
pyproject.toml
: プロジェクトの依存関係を定義するuv.lock
: 再現可能な環境の依存関係のバージョンをロックします
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.
Transport NSW の API と対話するための MCP サービス。これにより、ユーザーは場所周辺の交通機関の停留所を検索したり、交通警報や交通混乱に関する情報を取得したりできます。
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server that provides access to NS (Dutch Railways) travel information.Last updated a month ago842MIT License
- -securityAlicense-qualityThis server enables large language models to access and interact with real-time transport alerts from Transport for NSW's network, supporting filtering by transport mode and returning formatted alert information about disruptions and planned works.Last updated 6 months ago67MIT License
- -securityFlicense-qualityAn MCP Server that enables interaction with Maharashtra's Motor Vehicle Department API, allowing users to access transportation-related services through natural language requests.Last updated 2 months ago
- -securityFlicense-qualityA MCP server that uses Amap API to provide location-based services, allowing users to get geographic information based on IP addresses and search for nearby points of interest.Last updated 3 months ago11