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.
Related MCP server: TfNSW Realtime Alerts MCP Server
Configuración
Clonar este repositorio
Instalar dependencias usando uv (administrador rápido de paquetes de Python):
uv venv uv syncCrea un archivo
.envcon tu clave API:OPEN_TRANSPORT_API_KEY=your_api_key_here(Opcional) Ejecute el Inspector MCP:
uv run mcp dev api.pyY 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 = TrainGuió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 demoPruebas
Pruebas locales
Ejecute el conjunto de pruebas completo con pytest:
uv run pytestEjecutar con informes de cobertura:
uv run pytest --cov=apiIntegració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:
Configura Python 3.10
Instala uv y dependencias del proyecto
Ejecuta pruebas con informes de cobertura.
Para utilizar esta función:
Agregue su
OPEN_TRANSPORT_API_KEYcomo un secreto del repositorio de GitHubSube 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 proyectouv.lock: bloquea las versiones de dependencia para entornos reproducibles