Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Db Timetable Mcp

    Ein Model Context Protocol (MCP) Server für die Deutsche Bahn Timetable API

    7 stars
    TypeScript
    Updated Sep 12, 2025

    Table of Contents

    • Warum dieser Server?
    • Schnellstart
    • Claude Desktop
    • Tools
    • Datenmodell
    • Streamable HTTP und Docker
    • Konfiguration
    • Entwicklung
    • Fehlerbehebung
    • Datenquelle und Lizenz

    Table of Contents

    • Warum dieser Server?
    • Schnellstart
    • Claude Desktop
    • Tools
    • Datenmodell
    • Streamable HTTP und Docker
    • Konfiguration
    • Entwicklung
    • Fehlerbehebung
    • Datenquelle und Lizenz

    Documentation

    DB Timetable MCP Server

    CI

    Smithery

    Ein produktionsreifer Model Context Protocol Server für die offizielle Deutsche-Bahn-Timetables-API. Er übersetzt das kompakte DB-XML in semantisches JSON und führt Sollfahrplan und Echtzeitänderungen zu einer verlässlichen Bahnhofstafel zusammen.

    Warum dieser Server?

    • Korrekte Gleise und Zeiten: effective enthält den tatsächlich anzuzeigenden Wert; planned und changed erklären Abweichungen.
    • LLM-freundlich: Tools liefern structuredContent, beschreibende JSON-Schemas und ein abrufbares Datenmodell.
    • MCP-konform: Offizielles TypeScript-SDK, stdio für lokale Clients und stateless Streamable HTTP für Remote-Betrieb.
    • Sicherer Betrieb: Keine Logs auf stdout, lokale Bindung als Standard, Host-Allowlist, Timeouts, Non-root-Container und reproduzierbares Lockfile.
    • Nachvollziehbar: Unit-, Vertrags- und Transporttests, Coverage-Grenzen, CI, Dependency- und Secret-Checks.

    Schnellstart

    Voraussetzungen: Node.js 22 oder 24 LTS sowie ein abonniertes Timetables-Produkt im DB API Marketplace.

    bash
    git clone https://github.com/jorekai/db-timetable-mcp.git
    cd db-timetable-mcp
    npm ci
    cp .env.example .env

    In .env eintragen:

    dotenv
    DB_TIMETABLE_CLIENT_ID=deine-client-id
    DB_TIMETABLE_CLIENT_SECRET=dein-api-key

    Dann bauen und starten:

    bash
    npm run build
    npm start

    Im stdio-Modus wartet der Prozess auf einen MCP-Client. Statusmeldungen gehen ausschließlich nach stderr; stdout bleibt für JSON-RPC reserviert.

    Claude Desktop

    Zuerst npm ci && npm run build ausführen. Anschließend einen absoluten Pfad in claude_desktop_config.json verwenden.

    macOS/Linux:

    json
    {
      "mcpServers": {
        "db-timetable": {
          "command": "node",
          "args": ["/absolute/path/db-timetable-mcp/dist/index.js"]
        }
      }
    }

    Windows:

    json
    {
      "mcpServers": {
        "db-timetable": {
          "command": "node",
          "args": ["C:\\absolute\\path\\db-timetable-mcp\\dist\\index.js"]
        }
      }
    }

    Die .env-Datei wird sowohl im aktuellen Arbeitsverzeichnis als auch neben dem Projektverzeichnis gesucht. Das funktioniert auch dann, wenn Claude Desktop den kompilierten Server aus einem anderen Arbeitsverzeichnis startet. Alternativ können die beiden Zugangsdaten im env-Objekt des MCP-Eintrags gesetzt werden.

    Nach einer Konfigurationsänderung Claude Desktop vollständig beenden und neu starten. Weitere Hinweise stehen unter Fehlerbehebung.

    Tools

    ToolZweck
    getStationBoardEmpfohlen: verbindet Sollfahrplan und vollständige Änderungen zu einer Live-Bahnhofstafel
    getPlannedTimetableStatischer Sollfahrplan für EVA-Nummer, Datum und Stunde
    getCurrentTimetableVollständiger Änderungsbestand (fchg); aus Kompatibilitätsgründen so benannt
    getRecentChangesÄnderungen der letzten zwei Minuten (rchg) für inkrementelle Aktualisierungen
    findStationsStationssuche nach Name, EVA-Nummer oder DS100-Code

    Alle Tools akzeptieren optional includeRawXml: true. Die vollständige Referenz mit Beispielen steht in docs/api.md.

    Datenmodell

    Ein Ereignis für Ankunft oder Abfahrt sieht verkürzt so aus:

    json
    {
      "planned": { "time": { "local": "2026-07-17T10:20" }, "platform": "8" },
      "changed": { "time": { "local": "2026-07-17T10:27" }, "platform": "10" },
      "effective": { "time": { "local": "2026-07-17T10:27" }, "platform": "10" },
      "delayMinutes": 7,
      "platformChanged": true,
      "isCancelled": false
    }

    Für Antworten an Reisende immer effective verwenden. Das Modell kann dieselbe Erklärung über die Ressource db-timetable://docs/data-model abrufen. Details: docs/data-model.md.

    Streamable HTTP und Docker

    Direkt lokal starten:

    bash
    MCP_TRANSPORT=http npm start
    • MCP-Endpunkt: http://127.0.0.1:3000/mcp
    • Healthcheck: http://127.0.0.1:3000/health

    Mit Docker Compose:

    bash
    docker compose up --build -d
    docker compose ps
    curl http://127.0.0.1:3000/health

    Compose bindet den Port absichtlich nur an Loopback, startet als nicht privilegierter Benutzer und verwendet ein schreibgeschütztes Dateisystem. Für einen öffentlichen Endpunkt sind zusätzlich TLS und Authentifizierung über einen Reverse Proxy erforderlich. ALLOWED_HOSTS muss alle erlaubten Hostnamen enthalten.

    Konfiguration

    VariableStandardBeschreibung
    DB_TIMETABLE_CLIENT_ID–DB-Client-ID, für API-Aufrufe erforderlich
    DB_TIMETABLE_CLIENT_SECRET–DB-API-Key, für API-Aufrufe erforderlich
    DB_TIMETABLE_BASE_URLoffizielle v1-URLAlternative Basis-URL, primär für Tests
    DB_TIMETABLE_TIMEOUT_MS15000Request-Timeout zwischen 1000 und 120000 ms
    MCP_TRANSPORTstdiostdio oder http
    HOST127.0.0.1HTTP-Bindeadresse
    PORT3000HTTP-Port
    MCP_ENDPOINT/mcpStreamable-HTTP-Pfad
    ALLOWED_HOSTS–Kommaseparierte Host-Allowlist; bei 0.0.0.0/:: verpflichtend
    DOTENV_CONFIG_PATH–Expliziter absoluter Pfad zu einer Env-Datei
    LOG_LEVELinfodebug, info, warn oder error

    Die alten Werte TRANSPORT_TYPE=sse|httpStream und SSE_ENDPOINT werden für eine sanfte Migration weiterhin auf Streamable HTTP abgebildet.

    Entwicklung

    bash
    npm run dev          # stdio mit Watch-Modus
    npm run dev:http     # Streamable HTTP mit Watch-Modus
    npm run check        # Lint, Typen, Tests und Build
    npm run test:coverage

    Weitere Dokumente:

    • API-Referenz
    • Datenmodell
    • Architektur
    • Teststrategie
    • Beitragen
    • Sicherheitsrichtlinie
    • Änderungshistorie

    Fehlerbehebung

    **Expected "," or "]" after array element in Claude Desktop**

    Auf Version 2 aktualisieren und neu bauen. Frühere Versionen schrieben Logzeilen auf den stdio-Protokollkanal; Version 2 nutzt dafür ausschließlich stderr.

    **DB-API-Zugangsdaten fehlen trotz .env**

    Die Datei muss im Repository-Root neben package.json liegen. Bei einem anderen Ort DOTENV_CONFIG_PATH absolut setzen. Keine Anführungszeichen oder zusätzlichen Leerzeichen um die Werte verwenden.

    401/403 von der DB API

    Prüfen, ob Client-ID und API-Key zusammengehören und die Anwendung das Produkt Timetables abonniert hat.

    Falsches Gleis

    getStationBoard verwenden und effective.platform lesen. planned.platform ist ausdrücklich das Sollgleis; changed.platform ist nur gesetzt, wenn die DB eine Änderung gemeldet hat.

    Datenquelle und Lizenz

    Die Fahrplandaten stammen von der Deutschen Bahn und werden über die Timetables API 1.0.274 bereitgestellt. Laut DB API Marketplace stehen die Daten unter CC BY 4.0; die Namensnennung der Deutschen Bahn ist bei Nutzung der Daten erforderlich. Der Marketplace nennt derzeit ein Limit von 60 Aufrufen pro Minute.

    Der MCP-Server selbst steht unter der MIT-Lizenz.

    Similar MCP

    Based on tags & features

    • MC

      Mcp Server Aws Sso

      TypeScript·
      6
    • MC

      Mcp Ipfs

      TypeScript·
      11
    • LI

      Liveblocks Mcp Server

      TypeScript·
      11
    • MC

      Mcp Wave

      TypeScript00

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • MC

      Mcp Server Aws Sso

      TypeScript·
      6
    • MC

      Mcp Ipfs

      TypeScript·
      11
    • LI

      Liveblocks Mcp Server

      TypeScript·
      11
    • MC

      Mcp Wave

      TypeScript00

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k