mcp server
InfraNode
Keyless open data for 84 German cities: 12 lean read-only MCP tools covering 67 data types.
Description as published by the maintainer. Source
- version 1.1.1
- active
active — Most recent push to the repository was 2026-07-16.
What this server can do
12 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
air_quality(slug)- Get official air quality for a German city (PM10, NO2 and more). Sourced from the Umweltbundesamt (UBA). Read-only. For live nearest-station hourly readings use ``get_city_resource(slug, resource='air')`` instead. Required: slug.
compare(cities, resource)- Compare ONE resource across MULTIPLE cities in a single response. Fans the resource out over the listed cities and returns a per-city ``source_status`` (ok/disabled/no_data/error/not_found), so a missing or failing city source does not spoil the whole answer. Read-only. Required: resource, cities.
get_city(slug)- Get base data for a German city (population, area, coordinates). Sourced from Wikidata. Read-only. Useful as a first lookup to confirm a city exists and get its core attributes. For a broader question about the city (what data is available at all) use ``get_city_overview`` instead. Required: slug.
get_city_overview(slug)- Get a ONE-CALL overview of everything InfraNode knows about a German city. Start here for any city question. Returns: the city's base data, a CATALOG of all 81 available data types (weather, air quality, public transit, trains, traffic, charging, parking, solar, energy, demographics, taxes, accidents, tourism, heritage, trees, population density, playgrounds, post boxes and many more), each with its coverage status and the exact tool to call next (for most data types that is ``get_city_resource(slug, resource=<type>)``), plus a small live highlights snapshot (current weather, air quality and train departures). Data types not yet covered for this city show where they ARE available so you can pivot. InfraNode keeps adding data and cities, so the catalog grows over time. Read-only. Required: slug.
get_city_resource(slug, resource)- Fetch ANY per-city data type by its key (generic accessor, 81 data types). One tool for the whole breadth of InfraNode: live data (air, traffic, transit stops, parking, charging, water-level, flood, sharing, fuel-prices, webcams, station-departures/-arrivals/stations, ...), statistics (demographics, unemployment, tourism, accidents, crime-stats, indicators, land-values, tax-rates, insolvencies, ...), multi-year TIME SERIES (``sustainability``: SDG indicators per municipality, one value per year from 2006 to 2023, so trends can be answered without stitching snapshots), infrastructure and environment (solar, solar-roofs, district-heating, energy, heritage, tree-cadastre, playgrounds, public-toilets, markets, education, ...) and more. Discover the valid keys and per-city coverage with ``get_city_overview(slug)`` or the ``infranode://catalog`` resource; the ``resource`` enum lists every key. Uncovered types return ``source_status="not_covered"`` (plus where they ARE available), never an error. Read-only. Required: slug, resource.
list_cities- List all covered cities (slug, federal state, population, coverage). Takes no arguments. Call this first to discover valid city slugs before invoking any city-scoped tool. Read-only.
pois(slug, type)- Get points of interest in a German city, filtered by type. Sourced from OpenStreetMap. Read-only. Required: slug, type.
sources- List all data sources with license, attribution and availability. Takes no arguments. Shows which upstream sources InfraNode bundles and whether each is currently active. Read-only.
station_board_arrivals(eva)- Get live arrivals for ANY railway station by its EVA number. Mirror of ``station_board_departures`` for arriving trains (all categories, real-time delays, disruption messages). Get the EVA from ``get_city_resource(slug, resource='stations')``. Read-only. Required: eva.
station_board_departures(eva)- Get live departures for ANY railway station by its EVA number. Covers all train categories including local/regional (S/RB/RE) and long distance, with real-time delays, cancellations and disruption messages. Get the EVA from ``get_city_resource(slug, resource='stations')``. Read-only. Required: eva.
transit_departures(slug, stop_id)- Get live public-transport departures with real-time delays for a stop. Sourced from GTFS-RT/HVV/VGN. Unlike the static stop list (``get_city_resource(slug, resource='transit')``), this returns minute-fresh departures including delay for ONE stop. A ``stop_id`` is required: fetch the city's transit stops first to discover valid stop IDs, then pass one here. Read-only. Required: slug.
weather(slug)- Get current weather observations for a German city. Sourced from the Deutscher Wetterdienst (DWD): temperature, wind, precipitation and related fields. Read-only, current conditions only (not a forecast). For warnings use ``get_city_resource(slug, resource='weather-warnings')``. For a broader question about the city (not just weather) use ``get_city_overview`` instead, which already includes a live weather highlight. Required: slug.
Last successful function declaration observed on . Source: https://mcp.infranode.dev/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://mcp.infranode.dev/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| GitHub stars | 12 | Number of GitHub accounts that bookmarked this repository since it was created. It is a bookmark count, not installs, not active users and not quality. | cumulative, all time | GitHub | |
| Last commit | 2026-07-16 | Date of the most recent push to any branch. This is the strongest cheap indicator of whether the project is still maintained. | point in time | GitHub | |
| Open issues | 0 | Open issues plus open pull requests, as GitHub counts them together. A high number can mean an active project or an abandoned one. | as of fetch | GitHub | |
| Latest published version | 1.1.1 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-07-06 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| License | Apache-2.0 | Licence GitHub detected in the repository. Detection can be wrong; the LICENSE file is authoritative. | as of fetch | GitHub | |
| First listed in the MCP Registry | 2026-07-06 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| repository status | active | The repository exists on GitHub and is not archived. This says nothing about how recently it was worked on. | as of fetch | GitHub | |
| mcp tools declared | 12 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | mcp.infranode.dev | |
| mcp endpoint status | ok | The server listed 12 functions when asked. | as of probe | mcp.infranode.dev |
Where to get it
Related, by what their authors tagged them
-
io.github.causa-prima-ai/scribo
— last commit 2026-06-12, shares germany
EN 16931-compliant e-invoices: XRechnung, ZUGFeRD, Factur-X, Peppol BIS, Facturae or US PDF. Free.
-
io.github.cmendezs/mcp-einvoicing-de
— last commit 2026-07-20, shares germany
German e-invoicing MCP server: ZUGFeRD 2.x, XRechnung 3.x, EN 16931, KoSIT validation, Peppol.
-
DaedalMap Administrative Boundaries (loc_id to polygon)
— last commit 2026-08-04, shares fastapi, geospatial, open-data
A loc_id to its bounding box, centroid, and polygon, with its name and admin level.
-
DaedalMap Disaster and Geospatial Data
— last commit 2026-08-04, shares fastapi, geospatial, open-data
Geospatial MCP server for earthquake, tsunami, volcano, disaster, and FX data queries.
-
DaedalMap Historical FX Rates
— last commit 2026-08-04, shares fastapi, geospatial, open-data
Historical FX rates for 100+ currencies vs USD from IMF and World Bank data, 1940-present.
-
DaedalMap Distributed Manufacturing Locations
— last commit 2026-08-04, shares fastapi, geospatial, open-data
Open manufacturing and maker facility locations for country and facility-type queries.
-
DaedalMap Earthquake Data
— last commit 2026-08-04, shares fastapi, geospatial, open-data
Global earthquake events from the USGS, 2150 BC-present: magnitude, depth, location, counts.
-
DaedalMap Flood Events
— last commit 2026-08-04, shares fastapi, geospatial, open-data
Global flood events and extent 1985-present from the Dartmouth Flood Observatory and GFD.
-
DaedalMap Geocoding and Reverse Geocoding (loc_id)
— last commit 2026-08-04, shares fastapi, geospatial, open-data
Reverse geocode latitude/longitude to loc_id; resolve loc_ids to boundaries, centroids, hierarchy.
-
DaedalMap Hurricane and Tropical Cyclone Data
— last commit 2026-08-04, shares fastapi, geospatial, open-data
Global hurricane and tropical cyclone tracks from IBTrACS/NOAA, 1842-present. Wind and pressure.
These share tags the maintainers applied themselves, such as germany, fastapi, geospatial, open-data. Common tags like "mcp" or "ai" are ignored for this: agreeing with six hundred other projects is not a similarity.
This is not a recommendation and not a test result. It is a map of what the authors said their work is about.
How the author describes it
Topics the maintainer set on GitHub: claude, fastapi, geospatial, germany, mcp, mcp-server, model-context-protocol, open-data, open-government-data, remote-mcp, rest-api, streamable-http.
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json