Deutsch | English
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
InfraNode
**Die Open-Data-REST-API für Deutschland: eine HTTP-API ohne API-Key für Open
Data zur öffentlichen Infrastruktur, auch als MCP-Server verfügbar.**
Deutsche Städte veröffentlichen viel Open Data, aber jede Quelle hat ihr eigenes
Format, eigene Felder und eigene Eigenheiten, und für mehrere braucht es eine
Registrierung im jeweiligen Portal. InfraNode normalisiert rund 20 Kategorien,
Wetter (DWD), Luftqualität (UBA), ÖPNV (inklusive Echtzeit-Abfahrten), Verkehr,
Strompreis (SMARD), Bodenrichtwerte (BORIS), Parken, Ladeinfrastruktur,
Pegelstände, Demografie, Energie und mehr, für **84+ deutsche Städte** hinter
**einer** Schnittstelle. **Kein API-Key, kein Konto.** Jede Antwort nutzt
denselben kanonischen { data, meta }-Umschlag mit Lizenz und Attribution je
Datensatz. Dieselben Daten stehen KI-Agenten auch als MCP-Server zur Verfügung
(12 schlanke Read-only-Tools über 78 Datenarten).
Der Einstieg ist get_city_overview, ein einziger Aufruf: Er liefert einen
Katalog aller Datenarten, die es für eine Stadt gibt, dazu einen Live-Auszug der
wichtigsten Werte. So sehen Agenten die volle Breite und nicht nur das Wetter.
InfraNode wächst laufend, neue Datenarten und Städte kommen regelmäßig dazu.
Zu den Quellen gehören der Deutsche Wetterdienst (DWD), das Umweltbundesamt
(UBA), Mobilithek/DELFI, der VBB (Verkehrsverbund Berlin-Brandenburg, CC-BY 4.0),
GovData, OpenStreetMap, die Bundesnetzagentur, das KBA und weitere.
Im Einsatz
*Ein einziger get_city_overview("koeln")-Aufruf: aktuelles Wetter, amtliche
Luftqualität, DWD-Warnungen, Live-Zugabfahrten mit Verspätungen, Baustellen und
der vollständige Datenkatalog der Stadt, aus einem Endpoint ohne API-Key. Jede
Stadt lässt sich live ausprobieren auf
infranode.dev.*
So funktioniert es
Ein gemeinsamer HTTP-Client fragt die Upstream-Quellen ab, jede Antwort wird auf
das kanonische Schema abgebildet, mit ihrer Attribution durch das Lizenz-Gate
geführt und in Redis zwischengespeichert (mit Stale-on-Error-Fallback), danach
über eine REST-API und einen MCP-Server ausgeliefert. Fällt eine Quelle aus,
schlägt sich das in source_status nieder. Der Aufruf selbst scheitert nie
daran.
> Wenn InfraNode dir eine Datenintegration erspart: Ein Stern hilft anderen Entwicklern, das Projekt zu finden.
Schnellstart
Basis-URL https://infranode.dev/api/v1. Kein Key, kein Konto, einfach
aufrufen:
Jede Antwort folgt demselben { data, meta }-Umschlag: Jeder Datensatz trägt
seine attribution (Lizenz und Quelle), und meta.source_status sagt, ob die
Upstream-Quelle Daten geliefert hat. Eine tote Quelle degradiert damit sauber,
statt den Aufruf scheitern zu lassen.
Über alle Datenarten hinweg sind Feldnamen snake_case und englisch, und dasselbe
Konzept heißt immer gleich: post_code, street, house_number, place,
name, start, end, distance_km, power_kw, lat, lon. post_code ist
immer ein fünfstelliger String (führende Nullen bleiben erhalten), Zeitstempel
sind ISO 8601 mit Zeitzone, und ein Wert, den die Quelle nicht liefert, ist
null, nie ein leerer String. Manche Antworten führen daneben noch ältere
Doppelnamen mit identischen Werten (plz, zip, strasse, hausnummer, ort,
city, bezeichnung, beginn, ende, art, dist_km, leistung_kw,
einheit_typ, dazu die camelCase-Rohfelder der Autobahn-Verkehrsmeldungen).
Diese Namen sind veraltet, nimm die kanonischen.
> Tipp: Ruf zuerst /api/v1/cities auf, um die kanonischen Stadt-Slugs zu
> finden (etwa koeln, berlin, hamburg), und danach einen stadtbezogenen
> Endpoint.
>
> Der {slug} wird tolerant aufgelöst, die exakte ASCII-Form brauchst du also
> selten: der deutsche Name mit oder ohne Umlaute, jede Groß- und
> Kleinschreibung, gängige englische Exonyme und Kurzformen führen alle auf den
> kanonischen Slug (München/münchen/munich/munchen → muenchen,
> cologne → koeln, frankfurt → frankfurt-am-main). Ein unbekannter Name
> liefert 404 mit dem Hinweis Meintest du ...?, der den nächstliegenden Slug