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
Recibir alertas de transporte
Monitorizar salidas en tiempo real
Guión de demostración
El proyecto incluye un script de demostración completo que muestra toda la funcionalidad de la API:
Pruebas
Pruebas locales
Ejecute el conjunto de pruebas completo con pytest:
Ejecutar con informes de cobertura:
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:
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