Skip to main content
Glama

Transport NSW API Client MCP

Transport NSW API Client (MCP Implementation)

A Claude MCP for interacting with the Transport NSW API using direct HTTP requests.

About

This project implements a Model Context Protocol (MCP) service for Transport NSW's API.

Setup

  1. Clone this repository
  2. Install dependencies using uv (fast Python package manager):
    uv venv uv sync
  3. Create a .env file with your API key:
    OPEN_TRANSPORT_API_KEY=your_api_key_here
  4. (Optional) Run the MCP Inspector:
    uv run mcp dev api.py
    And visit the server at http://localhost:5173 (port might be different).

Features

  • Stop Finder API: Find transport stops by name or coordinates
  • Alerts API: Get information about transport alerts and disruptions
  • Departure Monitor API: Get real-time departure information for transport stops
  • MCP Implementation: Structured as a Model Context Protocol service

Usage Examples

MCP Examples coming soon. Standard Python examples below:

Find Transport Stops

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)

Get Transport Alerts

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)

Monitor Real-time Departures

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

Demo Script

The project includes a comprehensive demo script that showcases all API functionality:

# 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

Testing

Local Testing

Run the complete test suite with pytest:

uv run pytest

Run with coverage reporting:

uv run pytest --cov=api

Continuous Integration

Tests automatically run on GitHub Actions for every push and pull request to the main branch. The workflow:

  1. Sets up Python 3.10
  2. Installs uv and project dependencies
  3. Runs tests with coverage reporting

To use this feature:

  1. Add your OPEN_TRANSPORT_API_KEY as a GitHub repository secret
  2. Push your code to GitHub

MCP Integration

This project follows the Model Context Protocol specification, allowing AI models to access Transport NSW data through a standardized interface.

Package Management

This project uses uv, a modern Python package manager written in Rust. Dependencies are managed through:

  • pyproject.toml: Defines project dependencies

License

This project is licensed under the MIT License.

-
security - not tested
A
license - permissive license
-
quality - not tested

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 サービス。これにより、ユーザーは場所周辺の交通機関の停留所を検索したり、交通警報や交通混乱に関する情報を取得したりできます。

  1. について
    1. 設定
      1. 特徴
        1. 使用例
          1. 交通機関の停留所を探す
          2. 交通アラートを受け取る
          3. リアルタイムの出発状況を監視
        2. デモスクリプト
          1. テスト
            1. ローカルテスト
            2. 継続的インテグレーション
          2. MCP統合
            1. パッケージ管理

              Related MCP Servers

              • -
                security
                A
                license
                -
                quality
                This 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 -
                3
                7
                JavaScript
                MIT License
                • Apple
              • -
                security
                F
                license
                -
                quality
                An 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 -
                Python
              • -
                security
                F
                license
                -
                quality
                A 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 -
                10
                Python
                • Linux
                • Apple

              View all related MCP servers

              MCP directory API

              We provide all the information about MCP servers via our MCP API.

              curl -X GET 'https://glama.ai/api/mcp/v1/servers/danhussey/transportnsw-mcp'

              If you have feedback or need assistance with the MCP directory API, please join our Discord server