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.

Cliente API de Transport NSW (implementación de MCP)

Un MCP de Claude para interactuar con la API de Transport NSW mediante solicitudes HTTP directas.

Acerca de

Este proyecto implementa un servicio de Protocolo de Contexto de Modelo (MCP) para la API de Transport NSW.

Configuración

  1. Clonar este repositorio
  2. Instalar dependencias usando uv (administrador rápido de paquetes de Python):
    uv venv uv sync
  3. Crea un archivo .env con tu clave API:
    OPEN_TRANSPORT_API_KEY=your_api_key_here
  4. (Opcional) Ejecute el Inspector MCP:
    uv run mcp dev api.py
    Y visite el servidor en http://localhost:5173 (el puerto puede ser diferente).

Características

  • API del buscador de paradas : busque paradas de transporte por nombre o coordenadas
  • API de alertas : obtenga información sobre alertas e interrupciones del transporte
  • API de monitorización de salidas : obtenga información de salidas en tiempo real para las paradas de transporte
  • Implementación de MCP : Estructurado como un servicio de protocolo de contexto modelo

Ejemplos de uso

Próximamente, ejemplos de MCP. Ejemplos estándar de Python a continuación:

Encontrar paradas de transporte

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)

Recibir alertas de transporte

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)

Monitorizar salidas en tiempo real

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

Guión de demostración

El proyecto incluye un script de demostración completo que muestra toda la funcionalidad de la 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

Pruebas

Pruebas locales

Ejecute el conjunto de pruebas completo con pytest:

uv run pytest

Ejecutar con informes de cobertura:

uv run pytest --cov=api

Integración continua

Las pruebas se ejecutan automáticamente en GitHub Actions para cada solicitud de inserción y extracción a la rama principal. El flujo de trabajo:

  1. Configura Python 3.10
  2. Instala uv y dependencias del proyecto
  3. Ejecuta pruebas con informes de cobertura.

Para utilizar esta función:

  1. Agregue su OPEN_TRANSPORT_API_KEY como un secreto del repositorio de GitHub
  2. Sube tu código a GitHub

Integración MCP

Este proyecto sigue la especificación del Protocolo de Contexto de Modelo, lo que permite que los modelos de IA accedan a los datos de Transport NSW a través de una interfaz estandarizada.

Gestión de paquetes

Este proyecto utiliza uv, un gestor de paquetes de Python moderno escrito en Rust. Las dependencias se gestionan mediante:

  • pyproject.toml : define las dependencias del proyecto
  • uv.lock : bloquea las versiones de dependencia para entornos reproducibles
-
security - not tested
F
license - not found
-
quality - not tested

Un servicio MCP para interactuar con la API de Transport NSW que permite a los usuarios encontrar paradas de transporte cerca de ubicaciones y recuperar información sobre alertas e interrupciones del transporte.

  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