Check German public transport schedules, departures, disruptions and nearby bike or car sharing.
Connects to German public transport (ÖPNV) data to help Muse users find journeys, check real-time departures, see service disruptions, and locate nearby bike or car sharing options.
Try asking Muse: "Show me the next trains from Berlin to Munich and alert me to any delays."
Source: Found in the official MCP Registry (eu.projektionisten/mobility) · First listed September 24, 2026
Each bar is one check, every 15 minutes. Green means it answered. Last checked 2 h ago.
What Muse can see: You sign in to your own account with it, so Muse can reach what that account allows. Read what it asks for before you agree.
Before it acts: Read what Muse plans to do before you approve it, and remove the app from Muse when you stop using it.
musedirectory.ai is not part of Meta. More about how Muse handles your information
MobilityMCP is not in Muse's Connectors list yet, and it needs you to sign in with your MobilityMCP account. Apps that need this kind of sign-in usually cannot be used from a Muse chat yet. Follow it here and we will tell you when it reaches Muse.
https://ai.projektionisten.eu/mmcpNot in Muse's Connectors list yet. Muse can still use it: its page gives you a request to paste into Muse.
MobilityMCP is a remote MCP server, so any assistant that can add a custom connector by link can use it. Same link, same tools.
In ChatGPT, open Settings, then Connectors (called Apps & Connectors on some accounts).
Under Advanced settings, switch on Developer mode. That is what lets you add a connector by link.
Choose Create, give it a name, paste the link as the MCP server URL, and save. If it needs a sign-in, ChatGPT asks for it here.
Start a chat, open the tools menu, pick the connector, and ask. ChatGPT asks before it runs a tool the first time.
Custom connectors need a paid ChatGPT plan, and on Team, Enterprise and Edu accounts only an admin can add them. Our "Working" label means the server answered us; it cannot tell whether your plan lets you add it. All connectors that work in ChatGPT
In Claude, open Settings, then Connectors.
Choose Add custom connector, give it a name, and paste the link.
If it needs a sign-in, Claude sends you to it. Then turn the connector on in a chat from the tools menu and ask.
Custom connectors are available on paid Claude plans; on Team and Enterprise accounts an admin may need to add them. Our "Working" label means the server answered us; it cannot tell whether your plan lets you add it. All connectors that work in Claude
https://ai.projektionisten.eu/mmcpResponse time at the last check: 752ms. Worked in 99.1% of checks over 30 days.
Screened, no issues found
Screening looks for known threats and hidden instructions at the time of the check, and runs again weekly and whenever the tool list changes. It cannot see the server's code, so only connect what you need and review what Muse asks to do. How screening works.
search_placeLöst den NAMEN einer Stadt, Region oder eines Bezirks in Koordinaten und OSM-Ids auf — der erste Schritt, wenn ein GEBIET verortet werden muss („was kann ich in <REGION> unternehmen", „wie ist das Wetter in <CITY>"). **Für eine HALTESTELLE ist dieses Werkzeug fast immer falsch**:resolve_locationLöst Freitext in die Id auf, mit der gefahren wird — die Haltestelle, die Adresse oder den POI hinter „von <X> nach <Y>", „erzähl mir was über <POI>". Wo Routing, Abfahrtstafel oder POI-Steckbrief eine Id brauchen, steht es davor — auch wenn der Nutzer die Stadt dazu nennt („HaupnearbyFindet Haltestellen, POIs und Adressen im Radius um eine KOORDINATE (Schwerpunkt Hannover/Niedersachsen) — „was ist in der Nähe von <lat,lon>", „welche Haltestellen liegen um diesen Punkt". Liegt nur ein Name vor, kommt erst eine Auflösung: `search_place` für eine Stadt oder Regireverse_geocodeBenennt, was an einer KOORDINATE liegt — der Ort („was liegt bei <lat,lon>"), mit `level` eine bestimmte Ebene davon, mit `level='street'` die Straße samt nächster Hausnummer (der Lookup für eine GPS-Startposition). **Abgrenzung**: den Weg zurück (Name → Koordinate und OSM-Ids) gconnectionsPlant ÖPNV-Verbindungen von A nach B, deutschlandweit, Fernrouten eingeschlossen — **als Daten, für Ergebnisse, die du weiterverarbeitest**. Steht `show_connections` in deinem Werkzeug-Satz, ist das der Vordereingang für die Frage eines Menschen. Für „wie komme ich von X nach Y" departuresAbfahrten oder Ankünfte für EINE Haltestelle — **als Daten, für Ergebnisse, die du weiterverarbeitest**. Steht `show_departures` in deinem Werkzeug-Satz, ist das der Vordereingang für die Frage eines Menschen. Für „wann fährt von X", „letzte Stadtbahn von X" kommt die Auskunft audisruptionsAktuelle Störungen, Baustellen und Liniensperrungen im ÖPNV. Für „gibt es Störungen", „Ausfälle in X" ist dieses Werkzeug die Auskunft. **Datenlage — wichtig**: Störungsmeldungen liegen derzeit für Niedersachsen, Bremen und Hamburg vor; außerhalb gibt es dafür KEINE Datengrundlagline_courseLinienverlauf: die Halte-Folge einer ÖPNV-LINIE und ihre gezeichnete Strecke für die Karte — „wo fährt die Y entlang", „welche X-Linien gibt es". Für Linien-Fragen ist dieses Werkzeug die Auskunft. **Pflicht ist EINES**: `query` — Name/Nummer, wie ein Mensch sie schreibt (`'Heidelink_datetimeLöst eine Zeit-Nennung in einen absoluten ISO-8601-Zeitpunkt auf — „morgen früh", „heute Abend um 18 Uhr", „in zwei Stunden", „um 8:30". Auch „jetzt"/„now"/„aktuell" wird aufgelöst: nutze das als kanonische Quelle für die aktuelle Zeit, statt dir selbst ein Datum auszudenken. Dasget_usage_guideDie ausführliche Anleitung zu den Werkzeugen dieses Katalogs: wofür ein Werkzeug da ist, wogegen es abzugrenzen ist, was seine Argumente bewirken, was zurückkommt und was daraus zitiert werden darf. Die `description` eines Werkzeugs ist die Kurzform, dieser Text die vollständige.show_connections**Der Vordereingang für jede Verbindungsfrage eines Menschen**, auch wenn er nur nach Zeiten fragt: plant die Fahrt wie `connections` und liefert sie zusätzlich als Ansicht aus, die ein Wirt mit Ansichten dem Nutzer zeigt — je Verbindung eine Karte mit Zeiten, Dauer, Umstiegen unshow_departures**Der Vordereingang für jede Abfahrtsfrage eines Menschen**: liest die Tafel einer Haltestelle wie `departures` und liefert sie zusätzlich als Ansicht aus, die ein Wirt mit Ansichten dem Nutzer zeigt — je Abfahrt Linie, Ziel, Gleis/Steig, Zeit und Echtzeit-Lage. **Beantwortest dushow_connections_slim**Dieselbe Verbindungs-Ansicht wie `show_connections`, nur schlank ausgeliefert**: das Kartenwerk lädt die Ansicht als Skript, statt es mitzubringen. **Nimm dies nur, wenn ausdrücklich nach der schlanken Auslieferung gefragt wird** — sonst `show_connections`. Sonst unverändert: pjourney_map_image**Der Vordereingang für eine Verbindungsfrage in einem Client, der keine Ansicht zeichnet, aber Bilder zeigt** (z.B. eine Kommandozeile): plant die Fahrt wie `connections` und liefert zusätzlich EIN Kartenbild des Verlaufs — die Fahrt auf die echten Gleise und Straßen gelegt, mitlive_vehiclesZeigt die Fahrzeuge, die im Umkreis eines Punktes gerade unterwegs sind — je Fahrzeug die Linie und ihre Position, mit Fahrtrichtung, soweit die Quelle sie kennt. **Pflicht sind `longitude` und `latitude`** (WGS84, Längengrad zuerst) — Koordinaten aus `search_place`, `nearby`, `rlist_active_ticketsDie Tickets, die das angebundene Ticketshop-Konto derzeit hält — Deutschlandticket und Abos ebenso wie Tages- und Einzeltickets. **Keine Pflicht-Args.** Optional `format`. **Anleitung**: `get_usage_guide` mit `tool='list_active_tickets'` — woher die Angaben kommen und was sie nicticket_control_viewEin einzelnes Ticket des Kontos zum VORZEIGEN bei einer Fahrscheinkontrolle: seine Angaben und, wo der Ticketshop einen führt, sein Nachweis. **Pflicht** ist `ticket_id` — eine Id aus `list_active_tickets`; ruf das zuerst auf. Optional `format`. Der Nachweis selbst (Barcode, Sichticket_offersDas Tarifangebot der Region und was ein einzelnes Produkt darin kostet — beides aus dem Ticketshop selbst. **Ohne Argumente** kommt der Katalog: alle verkauften Produkte mit ihren Tarifbereichen, dazu die Tarifzonen der Region. **Mit `product`** kommt der Preis für genau dieses Pbuy_ticketKauft EIN Ticket im angebundenen Ticketshop. Der Kauf ist verbindlich und wird auf Rechnung des angebundenen Kontos ausgeführt — frag den Nutzer vorher mit Produkt UND Preis, und kauf erst auf seine Zusage. **Pflicht** sind `offer_token` (der Beleg aus der Preisauskunft `ticket_owidget_probe_v0**Sprosse 0 der Mount-Leiter** — das leerste Dokument, das dieser Endpunkt ausliefern kann: eine Beschriftung und der Pflicht-Handschlag in einem klassischen Skript, ohne Modul, ohne Bündel, ohne Schaltfläche, ohne Netz. Wird sie gezeichnet, ist an der Auslieferung der Ansichten widget_probe_v1**Sprosse 1 der Mount-Leiter** — Sprosse 0 und eine Schaltfläche, die den Wirt um Vollbild bittet, weiterhin aus einem klassischen Skript. Trennt „das Dokument tut etwas" von der Bauart, in der es das tut. Diagnose-Werkzeug des Entwicklungsstands; die Sprosse trägt keine Fahrplanwidget_probe_v2**Sprosse 2 der Mount-Leiter** — dasselbe Dokument wie Sprosse 1, Zeichen für Zeichen dasselbe Skript, nur als inline ES-Modul ausgeliefert statt als klassisches Skript. Das ist die einzige Bauart-Eigenschaft, die die echten Ansichten dieses Endpunkts mit einem vergleichbaren, gewidget_probe_v3**Sprosse 3 der Mount-Leiter** — dieselbe Schaltfläche wie Sprosse 2, diesmal als React-Komponente aus dem Bündler dieses Projekts und in der Dokument-Form, die alle echten Ansichten dieses Endpunkts haben. Trennt unsere Bauart von der Anwendung, die sonst darauf steht. Diagnose-widget_probe_v4**Sprosse 4 der Mount-Leiter, die Kontrolle** — die bestehende Abfahrtstafel dieses Endpunkts, unverändert, aber ohne Daten und darum als leere Tafel. Sie ist die Ansicht, um die es geht: was sie von Sprosse 3 trennt, ist die Anwendung selbst, nicht mehr die Bauart darunter. **Ruwidget_probe_r0**Sprosse r0 der Anmelde-Leiter, die Kontrolle** — dieselbe Ansicht wie auf allen Sprossen dieser Leiter, angemeldet wie zu dem Zeitpunkt, an dem kein Wirt mehr gezeichnet hat: der Standard-Zeiger auf die Erweiterungs-Adresse, der flache Zeiger auf die gezeichnete Adresse, beide widget_probe_r1**Sprosse r1 der Anmelde-Leiter** — Sprosse r0, und als einziger Unterschied zeigt auch der Standard-Zeiger auf die Adresse, die im gezeichneten Inhaltstyp ausgeliefert wird. Zeichnet r1 und r0 nicht, war der Zeiger die Ursache. Diagnose-Werkzeug des Entwicklungsstands; die Sproswidget_probe_r2**Sprosse r2 der Anmelde-Leiter** — Sprosse r0, und als einziger Unterschied trägt jeder der beiden Einträge einen eigenen Namen. Zeichnet r2 und r0 nicht, hat der Wirt seine Ressourcen-Liste über den Namen entdoppelt und dabei einen der beiden Einträge verloren. Diagnose-Werkzeuwidget_probe_r3**Sprosse r3 der Anmelde-Leiter** — die Anmeldung, unter der zuletzt nachweislich gezeichnet wurde: ein einziger Eintrag, im gezeichneten Inhaltstyp, und beide Zeiger darauf. Zeichnet r3 als einzige, stört den Wirt der zweite Eintrag selbst — und nicht sein Name und nicht der Zeiwidget_probe_g0**Sprosse g0 der Form-Leiter, die Kontrolle** — die Ansicht in der Form eines Endpunkts dieses Hauses, der bei einem Wirt mit Ansichten nachweislich zeichnet: ein einziger Eintrag im Inhaltstyp der Anwendungserweiterung, eine Adresse mit Datei-Endung, beide Zeiger auf dieselbe Adwidget_probe_g1**Sprosse g1 der Form-Leiter** — Sprosse g0, und als einziger Unterschied endet die Adresse der Ansicht nicht auf `.html`, so wie die Adressen dieses Endpunkts es nicht tun. Wird g0 gezeichnet und g1 nicht, war die Endung die Ursache. Diagnose-Werkzeug des Entwicklungsstands; diewidget_probe_g2**Sprosse g2 der Form-Leiter** — Sprosse g0, und als einziger Unterschied steht ein zweiter Eintrag derselben Ansicht in der Liste, im zweiten Inhaltstyp, wie dieser Endpunkt seine Ansichten listet. Wird g0 gezeichnet und g2 nicht, stört den Wirt der zweite Eintrag selbst. Diagnowidget_probe_g3**Sprosse g3 der Form-Leiter** — Sprosse g0, und als einziger Unterschied sind die beiden Rahmen-Richtlinien leer, wie sie es an den Ansichten dieses Endpunkts sind, die nichts nachladen. Wird g0 gezeichnet und g3 nicht, liest der Wirt eine leere Liste nicht als „nichts nötig". Dwidget_probe_g4**Sprosse g4 der Form-Leiter** — Sprosse g0, und als einziger Unterschied nennen die beiden Zeiger verschiedene Adressen, wie die Zeiger dieses Endpunkts es heute tun. Wird g0 gezeichnet und g4 nicht, folgt der Wirt einem Zeiger, dessen Adresse er nicht einhängen kann. Diagnose-Whttps://ai.projektionisten.eu/mmcpMobilityMCP is not in Muse's Connectors list yet, and it needs you to sign in with your MobilityMCP account. Apps that need this kind of sign-in usually cannot be used from a Muse chat yet. Follow it here and we will tell you when it reaches Muse.
At the last check (November 13, 2026, 12:00 UTC) the endpoint was working, sign-in needed, answering in 752ms. Over the last 7 days it answered 100% of health checks. It is checked every 15 minutes.
It was screened on September 24, 2026 with the result "screened, no issues found". Screening checks the domain against threat feeds and reads the tools for hidden instructions and requests for passwords or card numbers. It cannot see the server's code, so grant only the access you need.
It exposes 33 tools, including search_place, resolve_location, nearby, reverse_geocode. For example, you could ask Muse: "Show me the next trains from Berlin to Munich and alert me to any delays."
This listing was added from public sources (Found in the official MCP Registry (eu.projektionisten/mobility)). If you build MobilityMCP, claim it to correct the details and get your badge.
Paste this on your site or README. It always shows the latest check.
<a href="https://musedirectory.ai/connector/mobilitymcp"><img src="https://musedirectory.ai/badge/mobilitymcp.svg" alt="MobilityMCP on musedirectory.ai" width="236" height="40"></a>