Server data from the Official MCP Registry
Keyless open-data MCP for 84 German cities: weather, air, electricity, transit, land, tax.
Keyless open-data MCP for 84 German cities: weather, air, electricity, transit, land, tax.
Remote endpoints: streamable-http: https://mcp.infranode.dev/mcp
Valid MCP server (1 strong, 2 medium validity signals). 4 known CVEs in dependencies (0 critical, 2 high severity) Imported from the Official MCP Registry.
Endpoint verified · Open access · 4 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"dev-infranode-infranode": {
"url": "https://mcp.infranode.dev/mcp"
}
}
}From the project's GitHub README.
The open-data MCP server for Germany: a keyless, remote MCP server for German public-infrastructure open data.
German cities publish a lot of open data, but every source has its own format, fields and quirks, and several need portal registration. InfraNode normalizes ~20 categories, weather (DWD), air quality (UBA), public transit (incl. realtime departures), traffic, electricity price (SMARD), land values (BORIS), parking, charging, water levels, demographics, energy and more, for 84+ German cities behind one interface, and serves it as an MCP server. 44 read-only tools, no API key, no account, no install.
Sources include the Deutscher Wetterdienst (DWD), Umweltbundesamt (UBA), Mobilithek/DELFI, GovData, OpenStreetMap, Bundesnetzagentur, KBA, DIVI and more.
One line with Claude Code:
claude mcp add --transport http infranode https://mcp.infranode.dev/mcp
Any other MCP client, point it at the remote endpoint (Streamable HTTP):
{
"mcpServers": {
"infranode": { "url": "https://mcp.infranode.dev/mcp" }
}
}
~/.cursor/mcp.json (or the app's MCP settings).code --add-mcp '{"name":"infranode","url":"https://mcp.infranode.dev/mcp"}'mcpServers block to your claude_desktop_config.json.https://mcp.infranode.dev/mcp.Full install guide, the complete tool manifest with example outputs, the permission model and an example transcript are in docs/mcp-install.md. The registry manifest is server.json.
Ask your agent something like "What's the weather in Cologne right now?" and it
calls weather:
// weather(slug="koeln")
{
"data": {
"city_slug": "koeln",
"observed_at": "2026-06-18T13:00:00Z",
"source": "dwd",
"attribution": { "text": "Datenbasis: Deutscher Wetterdienst", "modified": true },
"payload": { "kind": "weather", "temperature_c": 30.4, "humidity": 43.0, "station_id": "02667" }
},
"meta": { "source_status": "ok", "cache_status": "hit", "correlation_id": "..." }
}
Every response follows the same { data, meta } envelope: each record carries
its attribution (license + source), and meta.source_status tells you whether
the upstream source delivered data, so a dead source degrades gracefully instead
of failing the call.
Tip: call
list_citiesfirst to discover valid city slugs (e.g.koeln,berlin,hamburg), then call any city-scoped tool.
| Group | Tools |
|---|---|
| Discovery | list_cities, sources, compare (one resource across many cities) |
| Weather & environment | weather, weather_warnings, air_quality, air_quality_live, pollen_uv, water_level, flood |
| Mobility | transit, transit_departures, stations (catalog), station_board_departures/station_board_arrivals (any station by EVA, incl. local trains + disruptions), station_departures, station_arrivals, traffic, road_events, webcams, charging, sharing, fuel_prices |
| City & people | get_city, geo, demographics, indicators, unemployment, tourism, construction, accidents, health, icu_live, holidays, election, events, pois |
| Economy & real estate | land_values, tax_rates (trade/property tax multipliers per municipality), business_registrations (founding dynamics per district) |
| Energy & vehicles | power_load, power_price, energy, vehicle_registrations |
All tools are annotated readOnlyHint: true / destructiveHint: false /
idempotentHint: true, so MCP clients can safely auto-allow them.
city_briefing, compare_air_quality, commute_check, ready-made flows that chain several tools.infranode://cities and infranode://sources, browse the coverage catalog without a tool call.{ data, meta } with per-source status and attribution.source_status, not an error.See SECURITY.md for the security model.
You don't need to, the hosted endpoint above is the fastest path. But the code is open. Run the API stack locally with Docker (Compose v2):
cp .env.example .env # example config, contains NO real secrets
docker compose -f deploy/docker-compose.yml up
curl http://localhost/api/v1/health # -> {"status":"ok","version":"1.0.0","redis":true}
To run the MCP server itself locally over stdio (against the public API):
uv sync --group mcp
INFRANODE_MCP_API_BASE=https://infranode.dev/api/v1 uv run python -m infranode.mcp.server
All settings use the INFRANODE_ env prefix (see .env.example); each data
source is toggled by its own INFRANODE_ENABLE_* flag. Real secrets are never
committed, only .env.example is versioned and CI runs a gitleaks scan.
DATA-LICENSES.md. The Apache-2.0 license covers only the API source code, not
the passed-through data.Contributions are welcome. Setup, gate commands and the secret rule are in CONTRIBUTING.md.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.