Zum Inhalt springen

MCP-Server und CLI für Bahn und ÖPNV in Deutschland

Die fünf ImTakt-Werkzeuge find, plan, show, status und follow: Eingaben, Antworten, Beispielaufrufe und die Fehler, die Agenten vermeiden sollten.

ImTakt RedaktionAktualisiert 3 Min. Lesezeit3 Quellen

Leerer Bahnsteig im Frankfurter Hauptbahnhof, die Gleise laufen unter der Hallenkuppel in die Ferne
Frankfurt (Main) Hbf · Foto · CC0

Das Wichtigste in Kürze

  • ImTakt bietet fünf Werkzeuge: find, plan, show, status und follow. Sie heißen in CLI, MCP und HTTP-API gleich.
  • Der gehostete MCP-Server liegt unter https://api.imtakt.dev/mcp, die CLI startet ohne Installation mit npx -y @imtakt/cli@latest.
  • Der empfohlene Ablauf: find für Start und Ziel, plan mit view=board, dann show für die gewählte Option.
  • Haltestellen-IDs immer aus find übernehmen, nie raten und nicht über Tage speichern.
Inhalt
  1. Die fünf Werkzeuge
  2. MCP einrichten
  3. Fehler, die Agenten vermeiden sollten
  4. Häufige Fragen
  5. Quellen

Ein Agent braucht keine Webseite, er braucht Werkzeuge mit klaren Eingaben und strukturierten Antworten. ImTakt stellt fünf davon bereit. Ob der Agent sie als MCP-Tools, als Shell-Befehle oder über HTTP aufruft, ist egal: Name, Eingaben und Antwortformat sind überall gleich.

Die fünf Werkzeuge

find: Haltestelle auflösen

Eingabe ist ein Ortsname, eine Koordinate oder eine bekannte ID. Die Antwort enthält den besten Treffer mit Konfidenz und Alternativen. Die ID des besten Treffers geht direkt in plan.

npx -y @imtakt/cli@latest find "Köln Hbf" --json
CLI

plan: Verbindungen vergleichen

Mit view=board liefert plan eine kompakte Liste von Optionen: Abfahrt, Ankunft, Dauer, Umstiege, Linien, kürzester Umstieg, Risikostufe und ob die Option zum gewählten Tarif passt. Die einzelnen Abschnitte fehlen bewusst, sie kommen erst mit show.

{
  "schema": "imtakt.agent.board/v1",
  "options": [
    { "optionId": "opt_…", "departLocal": "23:28", "arriveLocal": "07:15", "durationMinutes": 467,
      "changes": 0, "lines": ["ICE 18"], "fareOk": true, "riskLevel": "low", "tags": ["overnight", "long_distance"] },
    { "optionId": "opt_…", "departLocal": "22:29", "arriveLocal": "05:55", "durationMinutes": 446,
      "changes": 4, "lines": ["ICE 28", "S8", "N34", "U6", "U5"], "riskLevel": "high",
      "tags": ["overnight", "tight_transfer"], "minTransferMinutes": 3 }
  ]
}
Antwort von plan mit view=board, Berlin Hbf nach München Hbf am späten Abend (gekürzt)

Das Beispiel zeigt, warum ImTakt keine beste Option wählt: Die schnellere Verbindung hat vier Umstiege, einen davon mit 3 Minuten. Die Direktverbindung dauert 21 Minuten länger. Was besser ist, entscheidet der Agent mit dem Menschen.

show: eine Option öffnen

show nimmt eine optionId aus dem Board und liefert die vollständige Verbindung mit allen Abschnitten, Umstiegen und Fußwegen.

status und follow: live unterwegs

status zeigt die nächsten Abfahrten an einer Haltestelle mit gemeldeten Verspätungen. follow verfolgt einen einzelnen Zug über seine runId durch alle Halte.

MCP einrichten

Der gehostete MCP-Server spricht das Streamable-HTTP-Transportprotokoll und braucht keine Anmeldung. In Clients, die entfernte MCP-Server unterstützen, genügt die URL:

{
  "mcpServers": {
    "imtakt": { "url": "https://api.imtakt.dev/mcp" }
  }
}
Beispiel für eine MCP-Client-Konfiguration. Das genaue Format hängt vom Client ab.

Die Einrichtung für Claude, ChatGPT, Cursor, VS Code, Codex, Gemini CLI und Windsurf, jeweils mit Befehl oder Ein-Klick-Installation, steht auf der Seite MCP-Server.

Agenten mit Shell-Zugriff brauchen gar keine Konfiguration: Die CLI läuft direkt über npx. Zusammen mit der ImTakt-Skill kennt der Agent außerdem den empfohlenen Ablauf.

Fehler, die Agenten vermeiden sollten

Typische Fehler und wie es besser geht
FehlerBesser
Haltestellen-IDs erfinden oder aus dem Gedächtnis nehmenImmer find aufrufen und best.stopId übernehmen
Alle paar Minuten neu planen, um eine Ankunftszeit zu treffenplan mit Ankunftszeit (arrive) und Zeitfenster (window)
Für jede Probe die volle Verbindung ladenErst view=board, dann show für die gewählte Option
Gleisnummern nennen, die nicht in der Antwort stehenGleis weglassen und auf die Anzeige am Bahnhof verweisen
Eine „beste“ Verbindung behauptenOptionen mit Fakten vergleichen und nachfragen
WeiterlesenEin Ablauf von Anfang bis Endewie ein Agent eine konkrete Anfrage beantwortet.

Häufige Fragen

Gibt es einen MCP-Server für die Deutsche Bahn?

Einen offiziellen der DB nicht. ImTakt betreibt einen öffentlichen MCP-Server für Bahn, Bus und Nahverkehr in ganz Deutschland unter https://api.imtakt.dev/mcp, ohne Anmeldung.

Welche Werkzeuge bietet der ImTakt-MCP-Server?

Fünf: imtakt_find, imtakt_plan, imtakt_show, imtakt_status und imtakt_follow. Sie entsprechen den gleichnamigen CLI-Befehlen und HTTP-Endpunkten.

Brauche ich MCP, oder reicht die CLI?

Für Agenten mit Shell-Zugriff reicht die CLI über npx völlig. MCP ist praktisch für Clients ohne Shell oder wenn die Werkzeuge direkt in der Werkzeugliste erscheinen sollen.

Was bedeutet riskLevel in der Antwort?

Eine Einschätzung, wie anfällig die Option ist, etwa wegen kurzer Umstiege. Zusammen mit minTransferMinutes und tags wie tight_transfer hilft sie dem Agenten, Risiken zu benennen.

Quellen

  1. [1]Model Context Protocol: Spezifikationmodelcontextprotocol.io
  2. [2]ImTakt: SKILL.md für Agentenimtakt.dev
  3. [3]ImTakt API: Status und Datenstand (/health)api.imtakt.dev

Stand: 27. September 2026. Fehler gefunden? Schreib uns an contact@imtakt.dev.

Weiterlesen