DB Timetable MCP Server

Integrations

  • Supports configuration through .env files for storing API credentials and server settings.

  • Handles content licensed under Creative Commons Attribution 4.0 International License (CC BY 4.0), ensuring proper attribution for Deutsche Bahn timetable data.

  • Provides access to Deutsche Bahn timetable data, including current schedules, planned timetables, schedule changes, and station search functionality through the Deutsche Bahn API.

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

Requisitos

  • Node.js 18 o superior
  • Credenciales de API para la API de DB Timetable (ID de cliente y secreto de cliente)

instalación

  1. Repositorio de clones:
    git clone <repository-url> cd db-mcp
  2. Instalar dependencias:
    npm install
  3. Compilar 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:

DB_TIMETABLE_CLIENT_ID=deine-client-id DB_TIMETABLE_CLIENT_SECRET=dein-client-secret TRANSPORT_TYPE=stdio PORT=8080 SSE_ENDPOINT=/sse LOG_LEVEL=info

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 ( stdio o sse , 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):

npm start

En modo SSE (para clientes web):

TRANSPORT_TYPE=sse npm start

Prueba con el modo Inspeccionar

El servidor se puede probar con el Inspector FastMCP:

npx fastmcp inspect path/to/index.js

Herramientas MCP

El servidor proporciona las siguientes herramientas:

  1. 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)
  2. 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)
  3. 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.)
  4. 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:

  1. Datos del horario actual : db-api:timetable/current/{evaNo}
  2. Cambios de horario actuales : db-api:timetable/changes/{evaNo}
  3. Datos del horario planificado : db-api:timetable/planned/{evaNo}/{date}/{hour}
  4. Búsqueda de estación : db-api:station/{pattern}

Desarrollo

Estructura del proyecto

db-mcp/ ├── src/ │ ├── api/ # API-Client und Typen │ ├── tools/ # MCP-Tools │ ├── resources/ # MCP-Ressourcen │ ├── utils/ # Hilfsfunktionen │ ├── config.ts # Konfiguration │ └── index.ts # Haupteinstiegspunkt ├── dist/ # Kompilierte Dateien ├── .env # Umgebungsvariablen ├── package.json ├── tsconfig.json └── README.md

Scripts de NPM

  • npm run build : compila el código TypeScript
  • npm start : inicia el servidor
  • npm run dev : inicia el servidor en modo de desarrollo con recarga automática
  • npm test : ejecuta pruebas

Extensibilidad

Posibles extensiones

  1. 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
  2. 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

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

Proporciona acceso a los horarios de trenes de Deutsche Bahn, información de estaciones y cambios de horarios a través de las herramientas y recursos del Protocolo de Contexto de Modelo.

  1. Funktionen
    1. Voraussetzungen
      1. Installation
        1. Konfiguration
          1. Konfigurationsoptionen
        2. Verwendung
          1. Server starten
          2. Mit Inspect-Modus testen
          3. MCP-Tools
          4. MCP-Ressourcen
        3. Entwicklung
          1. Projekt-Struktur
          2. NPM-Skripte
        4. Erweiterbarkeit
          1. Lizenz
            ID: bgzurp6esf