Servidor MCP de horarios de base de datos
Un servidor de Protocolo de Contexto de Modelo (MCP) para la API de horarios de Deutsche Bahn. El servidor proporciona herramientas y recursos MCP para acceder a datos de horarios, información de estaciones y cambios de trenes.
Obligación de nombrar:
Este proyecto proporciona datos de horarios de Deutsche Bahn, que están disponibles públicamente bajo la licencia Creative Commons Atribución 4.0 Internacional (CC BY 4.0) .
Puede encontrar más información sobre la API y las condiciones de la licencia en developer.deutschebahn.com . Las solicitudes de API están sujetas a los términos de la licencia.
Funciones
Horarios actuales : recupera datos de horarios actuales de una estación
Cambios de horario : Seguimiento de los últimos cambios
Horarios planificados : acceso a datos de horarios planificados para una hora específica
Búsqueda de estaciones : busca estaciones de tren por nombre o código
Related MCP server: DevDb MCP Server
Requisitos
Node.js 18 o superior
Credenciales de API para la API de DB Timetable (ID de cliente y secreto de cliente)
instalación
Repositorio de clones:
git clone <repository-url> cd db-mcpInstalar dependencias:
npm installCompilar código TypeScript:
npm run build
configuración
Cree un archivo .env en el directorio raíz del proyecto con las siguientes variables de entorno:
Opciones de configuración
DB_TIMETABLE_CLIENT_ID: ID de cliente para la API de base de datos (obligatorio)DB_TIMETABLE_CLIENT_SECRET: Secreto del cliente para la API de base de datos (obligatorio)TRANSPORT_TYPE: Tipo de transporte para el servidor MCP (stdioosse, predeterminado:stdio)PORT: Puerto para el servidor SSE (predeterminado:8080)SSE_ENDPOINT: Punto final para conexiones SSE (predeterminado:/sse)LOG_LEVEL: Nivel de registro (debug,info,warn,error, predeterminado:info)
usar
Iniciar servidor
En modo stdio (para pruebas y depuración de CLI):
En modo SSE (para clientes web):
Prueba con el modo Inspeccionar
El servidor se puede probar con el Inspector FastMCP:
Herramientas MCP
El servidor proporciona las siguientes herramientas:
getCurrentTimetable : recupera los datos del horario actual de una estación
Parámetro:
evaNo- Número EVA de la estación (p. ej., 8000105 para Frankfurt Hbf)
getRecentChanges : recupera los cambios recientes de una estación
Parámetro:
evaNo- Número EVA de la estación (p. ej., 8000105 para Frankfurt Hbf)
getPlannedTimetable : recupera datos de horarios planificados para una estación
Parámetro:
evaNo- Número EVA de la estación (p. ej. 8000105 para Frankfurt Hbf)date- Fecha en formato AAMMDD (p. ej. 230401 para 01.04.2023)hour- hora en formato HH (p. ej. 14 para las 2 p.m.)
findStations : busca estaciones utilizando un patrón de búsqueda
Parámetro:
pattern- patrón de búsqueda (p. ej., "Frankfurt" o "BLS")
Recursos de MCP
El servidor proporciona los siguientes recursos:
Datos del horario actual :
db-api:timetable/current/{evaNo}Cambios de horario actuales :
db-api:timetable/changes/{evaNo}Datos del horario planificado :
db-api:timetable/planned/{evaNo}/{date}/{hour}Búsqueda de estación :
db-api:station/{pattern}
Desarrollo
Estructura del proyecto
Scripts de NPM
npm run build: compila el código TypeScriptnpm start: inicia el servidornpm run dev: inicia el servidor en modo de desarrollo con recarga automáticanpm test: ejecuta pruebas
Extensibilidad
Posibles extensiones
Procesamiento y enriquecimiento de datos
Procesamiento de datos de horarios semánticos: XML a JSON estructurado con enriquecimiento semántico
Análisis de datos históricos para detectar retrasos e interrupciones
Integración de conexiones de transporte multimodal
Herramientas MCP avanzadas
Planificación de rutas entre estaciones
Previsiones de retrasos y capacidad basadas en IA
Análisis de interrupciones de viajes
Comprobación de accesibilidad para estaciones y conexiones
Licencia
Servidor MCP: Licencia MIT
API de horarios de DB: Licencia Creative Commons Atribución 4.0 Internacional