ViaFrei
REMOTE · MCP.VIAFREI.DE · 2 COMPONENTS
The German Real-Time Mobility Context Platform for AI: traffic, trains, charging, parking, weather.
Available components
Last scanned (4 hours ago)
Scores higher than 89% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Maps and Location
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security74
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability74
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 19289 tokens (~567/item across 34 items; 24 tools + 10 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 24 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 26 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 0
- Server version: 2.5.8 → 2.5.13 functional
- “find_charging_station” reworded the description of “conditions” cosmetic
- “find_charging_station” reworded the description of “connector” cosmetic
- 4 Nov 26 +1
- Tool “get_train_departures” rewrote its description, which is the text the model reads security
- Tool “check_autobahn_traffic” rewrote its description, which is the text the model reads security
- Tool “check_station_facilities” rewrote its description, which is the text the model reads security
- Server version: 2.5.7 → 2.5.8 functional
- New tool “describe_station” functional
- “check_autobahn_traffic” added an optional parameter “land” cosmetic
- “check_autobahn_traffic” reworded the description of “roads” cosmetic
- “check_autobahn_traffic” made “roads” optional cosmetic
- 3 Nov 26 0
- Tool “get_departures” rewrote its description, which is the text the model reads security
- Tool “find_charging_station” rewrote its description, which is the text the model reads security
- Tool “find_nearby” rewrote its description, which is the text the model reads security
- Server version: 2.5.6 → 2.5.7 functional
- Server version: 2.5.5 → 2.5.6 functional
- Server version: 2.5.3 → 2.5.5 functional
- New tool “find_speed_cameras” functional
- “get_departures” added an optional parameter “lat” cosmetic
- “get_departures” added an optional parameter “lon” cosmetic
- “get_departures” added an optional parameter “place” cosmetic
- “find_charging_station” added an optional parameter “conditions” cosmetic
- “find_nearby” reworded the description of “categories” cosmetic
- 2 Nov 26 +1
- Server version: 2.5.2 → 2.5.3 functional
- Server version: 2.5.1 → 2.5.2 functional
- “find_nearby” reworded the description of “place” cosmetic
- “get_driving_rules” reworded the description of “place” cosmetic
- “find_sharing” reworded the description of “place” cosmetic
- “find_parking” reworded the description of “place” cosmetic
- “find_hydrogen_station” reworded the description of “place” cosmetic
- “find_fuel_station” reworded the description of “place” cosmetic
- “find_cheapest_fuel” reworded the description of “place” cosmetic
- “find_charging_station” reworded the description of “place” cosmetic
- “check_weather_warnings” reworded the description of “place” cosmetic
- “check_road_status” reworded the description of “place” cosmetic
- “check_autobahn_traffic” reworded the description of “place” cosmetic
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 0
- Server version: 2.5.0 → 2.5.1 functional
- 29 Oct 26 +1
- Server version: 2.4.9 → 2.5.0 functional
- Server version: 2.4.7 → 2.4.9 functional
- 28 Oct 26 0
- Server version: 2.4.6 → 2.4.7 functional
- Server version: 2.4.4 → 2.4.6 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp.viafrei.de/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.viafrei.de | CN=YE2,O=Let's Encrypt,C=US | 18 Sept 2026 | 17 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 639c9874a7c4d9475f03019b71a4eb9d375 |
| SANs: mcp.viafrei.de | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.viafrei.de. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| de. | present | 26755 | 8 | Verified |
| viafrei.de. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.viafrei.de/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.viafrei.de/mcp | HTTPS enforced | 308 | https://mcp.viafrei.de/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
check_autobahn_traffic ~1,185
Per motorway (≤ 5), or one Bundesland's motorways with land: an Ampel, then jams, closures, roadworks in force, with place/delay/speed/map. Use when asked about a named motorway now: frei/clear (Ampel), Stau, delay, how it looks, or a LIST of closures; name every motorway (Munich→Berlin: A9). Do NOT use for open/closed/gesperrt/passable, even now, a closure with no time word or a later one (tonight, weekend), or a town, no motorway — check_road_status; Baustellen dated or geplant — find_roadworks_ahead; a named city street: not held; trains (get_train_departures). ~5 min old. Show attribution.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Pagination cursor from a previous result's _meta.nextCursor. Omit for the first page. |
| kinds | array | – | Which event kinds to return: warning = live traffic (jams, slow traffic, hazards), closure = full closures, roadworks = construction sites. Set it when the SUBJECT of the question is one of those cat… |
| land | string | – | Optional, instead of roads: one Bundesland, and the answer is the motorways of the whole Land as its page shows them — counts, the longest jams, each motorway with something in force. Use it instead… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place. |
| limit | integer | – | Maximum events to return across all roads (1–50, default 10). Each road's most important item comes first, in the order you listed the roads, so every road with something in force is on the first pag… |
| lon | number | – | Longitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place. |
| place | string | – | Optional: the town, junction or address the person is at or asks about ("A1 bei Köln", "A3 near Frankfurt"). Then each road's events within radius_km come first, nearest first, and the headline count… |
| radius_km | integer | – | Radius around place or lat+lon in km (1–100, default 25). Ignored without a place. |
| roads | array | – | Autobahn numbers, e.g. ["A9"] or ["A8", "A99", "A9"] (1–5 per call). Name every motorway on the route so the whole drive is briefed in one call — "A9", "A 9" and "a9" are the same road. Results are g… |
No output schema declared.
No examples provided.
check_road_status ~1,188
If a motorway/B/Land road (NI, NW, HE, BW, MV, SN, TH; B also SH, BY, BE; pass Land/town as place) is open/closed/restricted now/soon; by place, jams, city/Land messages, Hamburg traffic cameras; lorry limits, Lang-Lkw (vehicle). Use when asked if a road's open/closed/gesperrt/passable, even now — "A8 in diesem Moment gesperrt?" — closures tonight/weekend, or Stau in a town (Köln). Do NOT use for a named motorway frei/clear (Ampel) or its jams/delays — check_autobahn_traffic; dated roadworks — find_roadworks_ahead; a named city street: not held, no call. ≤14 days/11 entries. Show attribution.
| Name | Type | Req | Description |
|---|---|---|---|
| horizon_days | integer | – | Days ahead from now (0 = right now only, max 14, default 3). Only what was asked; count the days from today to the last day meant, both included: 0 for right now / jetzt / gerade; 1 for today, tonigh… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place. |
| limit | integer | – | Maximum entries to return (1–11, default 10). By road, closures come first, then restrictions in force, then planned works; by place, nearest first. |
| lon | number | – | Longitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place. |
| place | string | – | Where to look, as free text: a city ("München", "Munich"), a district or Kreis ("Kreis Fulda"), a Bundesland, a station or stop ("Hamburg Hbf"), a motorway junction ("AK Neufahrn"), or a street addre… |
| road | string | – | One road: a German motorway, e.g. "A8"; a Bundesstraße in Schleswig-Holstein, Niedersachsen, Nordrhein-Westfalen, Hessen, Baden-Württemberg, Bayern, Berlin, Mecklenburg-Vorpommern, Sachsen or Thüring… |
| vehicle | string | – | Set ONLY when the person asks for a lorry (Lkw, truck, HGV) or a long lorry (Lang-Lkw, EuroCombi, Gigaliner): then the answer is where that vehicle may go, instead of closures. "long_lorry" with a ro… |
No output schema declared.
No examples provided.
check_station_facilities ~584
Whether the lifts and escalators of a railway station or Köln Stadtbahn stop work now: each with place, state, reason. Another tram, U-Bahn or bus stop (named with its city: "Stuttgart Charlottenplatz") gets its step-free survey where one exists. Use when asked about step-free access, broken lifts, wheelchair or pram: "Funktioniert der Aufzug am Kölner Hbf?", "is the lift at Hamburg Hbf working?". Do NOT use for departures, platforms or delays: get_train_departures (trains), get_departures (bus/tram/U-Bahn); whole station: describe_station. At most 50, broken first. Show the attribution line.
| Name | Type | Req | Description |
|---|---|---|---|
| eva_no | string | – | The station's EVA number (6–8 digits, e.g. 8000207 for Köln Hbf), when a previous result — a departure board, for instance — already gave you one. It skips the name lookup and is exact. |
| facility | string | – | Which equipment to report: "elevator" for lifts only, "escalator" for escalators only, "any" for both (default). Pass a value only when the person named the equipment itself ("Aufzug", "Rolltreppe",… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| limit | integer | – | How many facilities to list (1–50, default 20). Out-of-service equipment is listed first and the counts in the summary always cover ALL of them, so a shorter list never hides a broken lift. |
| station | string | – | The railway station — or Köln Stadtbahn stop — as the person says it: "Köln Hbf", "Hamburg Hbf", "Munich Central", "Neumarkt Köln". Pass their words — English names and "central station" are understo… |
No output schema declared.
No examples provided.
check_transit_disruption ~534
How punctual public transport is now in one German region: the share of trips ever >5 min late, trips skipping a stop, trips cancelled, the trend and the service alerts in force there (diversions, closed stops). Use when asked whether buses and trains run normally, or a strike, storm or works disrupt them. Do NOT use for a station's departures or a line from a named DEPARTURE station ("RE1 ab Köln Hbf verspätet?"; a destination, "nach …"/"zum …", is not one) — get_train_departures. No per-line figures. Window ≤ 120 min. CC BY-SA (DELFI) or CC BY 4.0 (VBB, Berlin/Brandenburg): show attribution.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use region. |
| lon | number | – | Longitude in WGS 84, e.g. 11.576. Use with lat; otherwise use region. |
| region | string | – | The German region to report on, as free text: a Bundesland ("Bayern", "Bavaria", "Nordrhein-Westfalen"), a city ("Hamburg", "Köln"), a Kreis ("Landkreis Fulda") or one of the conurbations Ruhrgebiet,… |
| window_min | integer | – | How many minutes back to look, 5–120 (default 60). The trend compares this window with the equally long one before it, so 60 means "the last hour against the hour before". Use a short window for "rig… |
No output schema declared.
No examples provided.
check_weather_warnings ~724
Returns the official DWD weather warnings in force for a place — storm, snow, ice, heavy rain, thunderstorm, heat — with Warnstufe 1–4, area, validity and the official text unaltered. At a town or coordinate it adds the DWD road-surface forecast (Straßenwetter-Prognose: dry to black ice, road temperature) for the nearest road-weather stations. Use when asked about weather on a trip, safe driving, storm or snow warnings, or icy roads (Glätte, Glatteis). Do NOT use for a general forecast (not offered) or jams (check_autobahn_traffic). Show the attribution line.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place. |
| lon | number | – | Longitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place. |
| min_level | integer | – | Lowest official DWD level to report, 0–4 (default 0, i.e. everything). The DWD's own names: 1 = Wetterwarnung, 2 = Markante Wetterwarnung, 3 = Unwetterwarnung, 4 = Warnung vor extremem Unwetter; 0 =… |
| place | string | – | Where to look, as free text: a city ("München", "Munich"), a district or Kreis ("Kreis Fulda"), a Bundesland, a station or stop ("Hamburg Hbf"), a motorway junction ("AK Neufahrn"), or a street addre… |
No output schema declared.
No examples provided.
describe_location ~288
Turns a coordinate into words: the nearest address, settlement and motorway junction with their distances, and the Gemeinde, Kreis and Land the point lies in; also any low-emission zone. Use when you already HAVE a lat/lon and need to say where that is. Do NOT use to look up a place or address BY NAME — that is find_place, find_poi or find_address; this only goes coordinate to words. Those come from the municipality the point lies in (its key), not the nearest Kreis point; near the border the answer says so. OpenStreetMap ODbL 1.0 for the address; show the attribution line.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | yes | Latitude of the point to describe (WGS84). |
| lon | number | yes | Longitude of the point to describe (WGS84). |
No output schema declared.
No examples provided.
describe_station ~402
One German railway station as its viafrei.de page shows it: address, step-free platforms now, lifts and escalators (out of service first), platforms, the next departures with live delays, service alerts, parking and charging. Use when asked about a station as a whole: "Was gibt es am Bahnhof Köln Hbf?", "tell me about Leipzig Hbf", "is Hannover Hbf step-free today?". Do NOT use for one lift (check_station_facilities), one train's delay or platform (get_train_departures) or a bus stop (get_departures). Show the attribution line.
| Name | Type | Req | Description |
|---|---|---|---|
| departures | integer | – | How many of the next departures to include (0–10, default 10, as many as the station page shows at least). 0 leaves the board out — for "tell me about the station" without trains. |
| eva_no | string | – | The station's EVA number (6–8 digits, e.g. 8000207 for Köln Hbf), when a previous result gave you one: exact, no name lookup. |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| station | string | – | The railway station, as the person says it: "Köln Hbf", "Leipzig Hauptbahnhof", "Munich Central". If the name fits several stations, call anyway: the result lists them and asks which. Give either sta… |
No output schema declared.
No examples provided.
find_address ~393
Looks up a street address: its coordinate, and the named OpenStreetMap objects at it (company, shop, office) or that none are. Use when the person gives a STREET AND NUMBER — "Bahnhofstraße 12, Fulda" — for the point or the business there, never who lives there. The coordinate passes to any other tool as lat/lon. Do NOT use for a town/district/station name alone (find_place) or a company/shop/landmark by name (find_poi). At most 5 points; a door mapped twice is folded, points far apart say how far; several towns are a question. OpenStreetMap ODbL 1.0; show the attribution line.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| limit | integer | – | How many results to return (1–5, default 3) — more than one means the same address carries more than one OpenStreetMap object. |
| query | string | yes | A street address, as a person writes one: street and house number, plus a town or postcode — "Bahnhofstraße 12, 36037 Fulda" or "Bahnhofstraße 12, Fulda". Both orders work. A street and number with n… |
No output schema declared.
No examples provided.
find_charging_station ~1,306
Returns EV charging sites near a place or coordinate: operator, plugs, max power, price per kWh where published, and points free now where live status is published. Filters: plug, power (min/max kW), operator, free now, conditions (24/7, card, free of charge, public). Use when an EV driver asks where to charge ("Wo kann ich laden?", "CCS 150 kW near Leipzig", "ist gerade eine Säule frei?"). Do NOT use for petrol or diesel (find_cheapest_fuel) or E-Kennzeichen rules (get_driving_rules). Radius ≤ 25 km, ≤ 10 sites; missing availability is unknown, never free. Show the attribution line.
| Name | Type | Req | Description |
|---|---|---|---|
| conditions | array | – | Only sites with ONE point that meets every listed term: "open247" (open around the clock, "rund um die Uhr", "24/7"), "card" (pay by credit or debit card at the charger, "mit Karte zahlen"), "free" (… |
| connector | string | – | Plug the vehicle needs: "ccs2" (CCS Combo 2 — the DC fast-charging standard on almost every European EV), "type2" (Typ 2 / Mennekes, the AC socket), "chademo" (older Japanese DC, e.g. Nissan Leaf) or… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place. |
| limit | integer | – | How many lines to return, nearest first (1–10, default 5). Places within 50 m that read alike are folded into one line that says how many units it holds; structuredContent.sites has one entry per pla… |
| lon | number | – | Longitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place. |
| max_power_kw | number | – | Only charging points of at most this many kW (1–1000). Use for a normal AC post ("normale AC-Säule", "Wallbox": 22) or, with min_power_kw, a band (50 and 149 = DC fast but not HPC). Never below min_p… |
| min_power_kw | number | – | Only charging points of at least this many kW (1–1000). Use when the person names a number or asks for fast charging: 50 = DC fast (a bare "fast"/"schnell"/"Schnelllader"), 150 = HPC ("HPC", "ultra",… |
| only_available | boolean | – | When true, return only sites with at least one point reported FREE right now. Default false. Use it when the person asks what is free at this moment. Note that only some operators publish live status… |
| operator | string | – | Only sites of this charge-point operator brand, as the person names it: "IONITY", "EnBW", "Tesla", "Aral pulse". Spellings of one brand match together ("EnBW mobility+ AG", "ENBW"); sites whose sourc… |
| place | string | – | Where to look, as free text: a city ("München", "Munich"), a district or Kreis ("Kreis Fulda"), a Bundesland, a station or stop ("Hamburg Hbf"), a motorway junction ("AK Neufahrn"), or a street addre… |
| radius_km | number | – | Search radius around the place in kilometres (1–25, default 10). A charging stop is worth a detour, so this is wider than the fuel radius — but 25 km is the cap, and a larger circle is a dataset requ… |
No output schema declared.
No examples provided.
find_cheapest_fuel ~706
Returns the cheapest stations for one fuel grade near a place or coordinate: price per litre, brand, address, distance, open state. Use when the user asks where to fill up or what fuel costs. Do NOT use for charging an electric car (call find_charging_station), price history, or traffic (call check_autobahn_traffic). Radius ≤ 25 km, at most 10 stations. For a brand, a name, open now or at a named time, or nearest-first, call find_fuel_station. Each line names the age of its price and opening-hours claim. Prices are consumer information only; the attribution line and MTS-K note must be shown.
| Name | Type | Req | Description |
|---|---|---|---|
| fuel | string | – | Fuel grade: "e5" (Super E5), "e10" (Super E10, the standard German petrol) or "diesel" — LPG/Autogas and CNG are not held by any source here: say so, never substitute a petrol grade. Default "e10". P… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place. |
| limit | integer | – | How many stations to return, cheapest first (1–10, default 5). The provider's terms cap it at 10. |
| lon | number | – | Longitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place. |
| place | string | – | Where to look, as free text: a city ("München", "Munich"), a district or Kreis ("Kreis Fulda"), a Bundesland, a station or stop ("Hamburg Hbf"), a motorway junction ("AK Neufahrn"), or a street addre… |
| radius_km | number | – | Search radius around the place in kilometres (1–25, default 5). The provider's terms cap it at 25 km — a larger circle is a dataset request, not a consumer question. |
No output schema declared.
No examples provided.
find_fuel_station ~1,118
Finds filling stations around a place or coordinate under any combination of filters — grade, brand, name, open now, open at a time you name, open 24 h — sorted by distance, price or name. Use when the question is WHICH station: the closest diesel to a stop, an ARAL open tonight, what one forecourt sells. Do NOT use for the plain "where is fuel cheapest" question (call find_cheapest_fuel) or for charging an electric car (call find_charging_station). Every result carries the attribution and the MTS-K note, and says how old each price and opening-hours claim is.
| Name | Type | Req | Description |
|---|---|---|---|
| brand | string | – | Only stations of this brand, matched case-insensitively anywhere in the brand field: "ARAL", "Shell", "TotalEnergies", "JET". Use it when the person named a chain ("die ARAL an der B1"). Free station… |
| fuel | string | – | Only stations with a current price for this grade: "e5" (Super E5), "e10" (Super E10) or "diesel" — LPG/Autogas and CNG are not held by any source here, so say so rather than call for them. Omit to g… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place. |
| limit | integer | – | How many stations to return (1–10, default 5). |
| lon | number | – | Longitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place. |
| name | string | – | Part of the station's own name or brand, case-insensitive: "Autohof", "Raststätte Fulda". Use it when the person named a specific forecourt rather than a chain. Combine with place to keep the search… |
| open_at | string | – | Only stations open at that time in Germany (Europe/Berlin): "23:30" means the next time the clock shows 23:30, and "2026-09-30 06:15" a specific local date and time. Use it for "is it still open toni… |
| open_now | boolean | – | When true, only stations the published opening hours say are open at this moment. Default false. A station whose hours we have never read is NOT returned by this filter and is counted in the answer i… |
| place | string | – | Where to look, as free text: a city ("München", "Munich"), a district or Kreis ("Kreis Fulda"), a Bundesland, a station or stop ("Hamburg Hbf"), a motorway junction ("AK Neufahrn"), or a street addre… |
| radius_km | number | – | Search radius around the place in kilometres (1–25, default 5). 25 km is the provider's own ceiling — a larger circle is a dataset request, not a consumer question. |
| sort | string | – | Order of the answer: "distance" (nearest first, the default — use it for "closest diesel to Hamburg Hbf"), "price" (cheapest first, needs fuel), or "name" (alphabetical, for a person scanning a list… |
| whole_day | boolean | – | When true, only stations the provider flags as open around the clock (24/7). Default false. Use it when asked whether a station never closes ("durchgehend geöffnet", "around the clock") and for a nig… |
No output schema declared.
No examples provided.
find_hydrogen_station ~696
Returns hydrogen (H2) filling stations near a place or coordinate, nearest first, with operator, address, pumps (700 bar car, 350 bar truck/bus), opening hours where published and the age of the record. Use when someone asks where to refuel a fuel-cell car, lorry or bus ("Wasserstofftankstelle", "H2 tanken", "hydrogen station near me"). Do NOT use for petrol or diesel (call find_fuel_station) or EV charging (call find_charging_station); LPG/Autogas and CNG are not held — say so. Radius ≤ 150 km, ≤ 10 stations; no live availability or price is published. Shows the attribution line.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place. |
| limit | integer | – | How many stations to list, nearest first (1–10, default 5). |
| lon | number | – | Longitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place. |
| place | string | – | Where to look, as free text: a city ("München", "Munich"), a district or Kreis ("Kreis Fulda"), a Bundesland, a station or stop ("Hamburg Hbf"), a motorway junction ("AK Neufahrn"), or a street addre… |
| radius_km | number | – | Search radius around place or lat+lon in kilometres (1–150, default 50). Hydrogen stations are few, so the default is wide; when none is inside, the answer still names the nearest one beyond. Example… |
| vehicle | string | – | Which pump the vehicle needs: "car" (Pkw — 700 bar, e.g. Toyota Mirai, Hyundai Nexo; a few sites also offer 350 bar for cars) or "truck" (Lkw or bus — 350 bar). Omit unless the person said what they… |
No output schema declared.
No examples provided.
find_nearby ~752
Overview of what is around a place or coordinate: fuel, EV charging, parking, nearest railway station and motorway junction, with distances; everyday places (shop, pharmacy, cash, food, hotel, workshop, police) only when named in categories. Use when asked "what is around me". Do NOT use for a fuel grade's price (find_cheapest_fuel), charger status (find_charging_station), parking occupancy (find_parking), a NAME lookup (find_place/find_poi/find_address), or a coordinate's address (describe_location). Radius ≤ 15 km, up to 3 per category (5 per need). Shows each source's attribution.
| Name | Type | Req | Description |
|---|---|---|---|
| categories | array | – | Which categories to include: "fuel", "charging", "parking", "station" (railway station), "junction" (motorway junction) — omit for these five. Everyday places from OpenStreetMap only when named: "gro… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place. |
| lon | number | – | Longitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place. |
| place | string | – | Where to look, as free text: a city ("München", "Munich"), a district or Kreis ("Kreis Fulda"), a Bundesland, a station or stop ("Hamburg Hbf"), a motorway junction ("AK Neufahrn"), or a street addre… |
| radius_km | number | – | Search radius around place or lat+lon in kilometres (1–15, default 5). This tool answers "what is around me", not "search a wide area" — for that, use the specific tool with its own wider radius. |
No output schema declared.
No examples provided.
find_parking ~1,352
Parking near a place, a coordinate or along one motorway: lorry parks, car parks, P+R and disabled-badge bays, with total spaces, stated amenities (WC, shower) and published free spaces. Use when asked where to park or leave the car for the train ("Parkhaus in Köln", "Rastplatz A3", "P+R"). Do NOT use for fuel (find_cheapest_fuel) or EV charging (find_charging_station). Radius ≤ 25 km, ≤ 10 sites per list; ODbL and CC BY-SA sources are separate lists (up to three). No "free now" means no published count, not full. No prices: for "was kostet" say so, no call. Show each source's attribution.
| Name | Type | Req | Description |
|---|---|---|---|
| facilities | array | – | Keep only sites whose own publisher states ALL of these amenities: "toilet", "shower", "restaurant", "snack", "cafe", "shop", "fuel", "charging", "drinking_water", "picnic", "playground", "wifi", "se… |
| kind | string | – | Which kind of parking: "car_park" = public car park (Parkhaus/Parkplatz), "park_and_ride" = P+R beside a station, "truck" = lorry parking, "any" = all of them. Default "any". "disabled_badge" = on-st… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place. |
| limit | integer | – | How many facilities to return, nearest first (1–10, default 5). |
| lon | number | – | Longitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place. |
| only_with_free_spaces | boolean | – | Set true only when the person asks whether spaces are free right now. It keeps just the facilities whose operator publishes live occupancy AND currently reports a space, and the result says how many… |
| place | string | – | Where to look, as free text: a city ("München", "Munich"), a district or Kreis ("Kreis Fulda"), a Bundesland, a station or stop ("Hamburg Hbf"), a motorway junction ("AK Neufahrn"), or a street addre… |
| radius_km | number | – | Search radius around place or lat+lon in kilometres (1–25, default 10). Ignored when you pass road, which covers the whole motorway. Start small in a city and widen if the answer is empty. |
| road | string | – | A single motorway number to list parking along, e.g. "A3" ("A 3" and "a3" are the same road). Use this when the person named a road and no town — "Rastplatz auf der A7". Give road OR place OR lat+lon… |
No output schema declared.
No examples provided.
find_place ~508
Looks up a place name and returns every match, each with its kind, population, English name and coordinate; the official key (AGS/RS) only in the structured result. Use when the person asks where somewhere is, when you need a coordinate for another tool, and above all to RECOVER after a tool reported a name as ambiguous — this is where you find out which Neustadt is which. Pass `near` to rank and separate same-named places by distance. Do NOT use to find a company, shop or landmark: call find_poi. At most 10 results, radius <= 200 km. Every result carries an attribution line to show the user.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | – | Narrow to one kind: "city", "district" (Kreis), "admin" (Land or Regierungsbezirk), "station", "stop", "motorway" or "junction". Omit unless the person was specific. |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude to measure from, instead of `near`. |
| limit | integer | – | How many candidates to return, best match first (1–10, default 5). |
| lon | number | – | Longitude to measure from, instead of `near`. |
| near | string | – | A second place to measure from, used to tell same-named candidates apart: "Neustadt" near "Hamburg" is one of twenty Neustadts. Every result then carries its distance from this point. |
| query | string | yes | The place name to look up, as the person said it — "Neustadt", "Munich", "Kreis Fulda", "Köln Hbf". English names and spellings without umlauts both work. |
| radius_km | number | – | When near/lat+lon is given, keep only candidates within this many kilometres (1–200). Omit to rank by distance without dropping any. |
No output schema declared.
No examples provided.
find_poi ~780
Finds a business or landmark by name or kind — company, shop, clinic, hotel, hostel — with address, category and coordinate. Use when the person names a THING rather than a town: "the adesso office in Dortmund", "the nearest Aldi", "a hotel in Weimar". The coordinate passes to any other tool as lat/lon. Do NOT use for a town, district or station (every tool's `place` resolves those), nor for fuel, charging or parking (own tools). Give "in" (a town) when you can: far faster than nationwide. 25 per page, 50 via cursor; radius <= 50 km. OpenStreetMap under ODbL 1.0; show the attribution line.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Narrow to one OpenStreetMap family: "office" (companies, agencies), "shop", "amenity" (fuel, pharmacy, school, restaurant, town hall), "healthcare" (hospitals, clinics, doctors, pharmacies), "tourism… |
| cursor | string | – | Pagination cursor from a previous result's _meta.nextCursor. Omit for the first page. |
| in | string | – | A town to search in — "Dortmund", "Fulda". Strongly preferred: it is both far faster and far less ambiguous than a nationwide search. Use this OR near/lat+lon, not both. |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude of the point to search around, when the caller already holds a coordinate. |
| limit | integer | – | How many to return per page, best match first (1–25, default 10). The answer says when more matched; fetch them with cursor, up to 50 in all. |
| lon | number | – | Longitude of the point to search around. |
| name | string | yes | The name of the thing to find — a company, shop, clinic, hotel, office or landmark. Part of the name is enough: "adesso" finds "adesso SE". A chain name works too, because brands are matched as well… |
| near | string | – | A place to search around, when the question is "the nearest X" rather than "X in Y". Use with radius_km. |
| radius_km | number | – | Search radius in kilometres around near/lat+lon (1–50, default 10). Ignored when "in" is used. |
No output schema declared.
No examples provided.
find_roadworks_ahead ~783
Returns roadworks PLANNED on one motorway, one Bundes-/Landesstraße in NI, NW, HE, BW, MV, SN or TH (BY: B only), or city streets by place, in a date window: where, impact, dates, map links. Use when a date or window is named, it says geplant, or how long a site lasts ("Baustellen auf der A7 in den Sommerferien?"). ONE road/place per call. Do NOT use when more than one motorway is named, for the situation this minute, or for Baustellen with neither date nor geplant — all three are check_autobahn_traffic; whether a road is open — check_road_status. ≤ 92 days, max 20 sites. Show attribution.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | – | First day of the window, as YYYY-MM-DD in German local time. Omit for today. Resolve relative wording ("next Friday", "in den Sommerferien", "nächsten Monat") into real dates yourself, counted from t… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| limit | integer | – | Maximum sites to return (1–20, default 10), ordered by planned start. Every returned site is in the structured result; the readable text prints the first 10 and says how many more of them are in the… |
| place | string | – | A place — a district, street or address, e.g. "Hamburg-Altona", "Berlin-Mitte", "Kiel" — for the city and Land roadworks held by point within 3 km of it. Where no such source covers the place, the an… |
| road | string | – | The road to look at, one per call: an Autobahn, e.g. "A7" or "A100"; a Bundesstraße in Niedersachsen, Nordrhein-Westfalen, Hessen, Baden-Württemberg, Bayern, Mecklenburg-Vorpommern, Sachsen or Thürin… |
| to | string | – | Last day of the window, inclusive, as YYYY-MM-DD. Omit for 7 days after `from`, which is the right window for "am I going to hit roadworks on this drive". The window may span at most 92 days. For "ho… |
No output schema declared.
No examples provided.
find_sharing ~651
Returns rentable shared bikes near a place or coordinate: bike-sharing stations with bikes and free docks now, and free-floating bikes around, with distance and data age (nextbike incl. KVB Rad, MyRadl, VAG_Rad; Donkey Republic). Use when someone asks for a rental or shared bike ("Leihrad", "Fahrradverleih", "nächstes nextbike", "bike share near me"). Do NOT use for parking (find_parking) or a general look around a place (find_nearby). Radius ≤ 5 km, ≤ 20 stations; e-scooters are not covered. Shows each source's attribution.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place. |
| limit | integer | – | How many stations to list, nearest first (1–20, default 8). Free-floating bikes are summarised, not listed one by one. |
| lon | number | – | Longitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place. |
| only_available | boolean | – | true (default): list only stations with at least one bike to rent right now. false: also list empty stations, e.g. to find a free dock to return a bike. |
| place | string | – | Where to look, as free text: a city ("München", "Munich"), a district or Kreis ("Kreis Fulda"), a Bundesland, a station or stop ("Hamburg Hbf"), a motorway junction ("AK Neufahrn"), or a street addre… |
| radius_km | number | – | Search radius around place or lat+lon in kilometres (0.1–5, default 1). Example: 1 |
No output schema declared.
No examples provided.
find_speed_cameras ~617
Returns a town's published speed-enforcement locations (fixed and red-light cameras, section control, announced mobile checks, measuring sites) by kind and street, with the § 23 Abs. 1c StVO notice. Use when someone plans a trip and asks where speed cameras are ("Blitzer Köln"). Planning only — show the notice verbatim. If they say they are driving now: show the notice, offer the list for before the trip or a stop. Never read locations to a driver, never a live warning. Do NOT use for speed limits (get_driving_rules) or roadworks (check_road_status). Area ≤ 25 km. Shows the attribution line.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place. |
| limit | integer | – | How many locations to list (1–50, default 20); the answer says how many more the area holds. |
| lon | number | – | Longitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place. |
| place | string | – | Where to look, as free text: a city ("München", "Munich"), a district or Kreis ("Kreis Fulda"), a Bundesland, a station or stop ("Hamburg Hbf"), a motorway junction ("AK Neufahrn"), or a street addre… |
| radius_km | number | – | The area around place or lat+lon, in kilometres (1–25, default 5). An area, not an order: the list is never sorted by distance. Example: 5 |
No output schema declared.
No examples provided.
get_departures ~933
Scheduled departures from any German stop — bus, tram, U-/S-Bahn, train, ferry — or the nearest stops around a place ("Abfahrten in der Nähe"). Use when asked when a bus, tram, U-/Stadtbahn or ferry goes ("welche Bahnen" at a Hbf too), or for another DAY or a time over 2 h away: "Wann fährt der nächste Bus ab Fulda Bahnhof?" Do NOT use for a rail station's trains today: get_train_departures. Plan times with live delay/cancellation where held; punctuality: check_transit_disruption. No A-to-B journeys: say so, no call. Holds ≥ 48 h ahead, ≤ 3 days. 15 per call. Show the attribution line.
| Name | Type | Req | Description |
|---|---|---|---|
| duration_min | integer | – | How far past that moment to look, in minutes (5–1440, default 60). Small for "what goes now", a few hours for an evening. To look further ahead (the timetable reaches at least 48 h), move `when` inst… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude in WGS 84, e.g. 50.551 — with lon, the nearest stops around a point the caller already holds. Use place for a named place. |
| limit | integer | – | How many departures to return, earliest first (1–15, default 10). The result always says how many more were in the window. |
| lon | number | – | Longitude in WGS 84, e.g. 9.676. Use with lat. |
| modes | array | – | Keep only these kinds of service: "bus", "tram", "subway" (U-Bahn), "rail" (every train, including S-Bahn and regional) or "ferry". Omit it unless the person named a kind — "nur Busse", "welche Tram"… |
| place | string | – | A place to list the nearest stops around, when the person names no one stop: a town, district or address ("Bahnhofstraße 12, Fulda", "Köln-Ehrenfeld"). Lists the nearest stops within 5 km with their… |
| stop | string | – | The stop, as the person says it: "Fulda, Bahnhof", "München, Marienplatz", "Köln, Hbf", "Hamburg, Rathausmarkt" (town first). Include the town when the person did — half the names in Germany exist in… |
| stop_id | string | – | The stop's timetable id, exactly as a previous result of this tool gave it ("de:06631:1234"). It skips the name lookup and is exact — use it for a follow-up about a stop this tool has already named,… |
| when | string | – | Start of the window as an ISO-8601 instant with an offset ("2026-10-02T07:30:00+02:00"). Leave it out for "now". Convert the person's words yourself — "morgen früh", "tonight" — and pass the instant;… |
No output schema declared.
No examples provided.
get_driving_rules ~628
Returns the German road rules a visitor needs: low-emission zones (Umweltzone) and the Feinstaubplakette, speed limits (advisory 130), winter tyres, alcohol, the Sunday lorry ban, tolls, Rettungsgasse, what must be in the car, electric cars. Use when someone drives through Germany or asks whether they may enter a city or street. Do NOT use for live traffic or closures: check_autobahn_traffic; to FIND a charger: find_charging_station. city narrows to its zone; place or lat+lon checks a point against the published zone boundaries. Sourced, dated; show the attribution. Not legal advice.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | City the question is about, e.g. "Stuttgart", "München", "Munich". Narrows "lez" to that city's zone and adds the per-city caveat for "ev". Other topics are nationwide. Omit when the question is not… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| lat | number | – | Latitude (WGS 84) of the point to check against the zone boundaries. Use with lon; otherwise use place. |
| lon | number | – | Longitude (WGS 84) of the point to check against the zone boundaries. Use with lat; otherwise use place. |
| place | string | – | A street address, district, station or other point ("Alexanderplatz, Berlin", "Kölner Dom") to check against the published low-emission-zone boundaries: inside, outside with the distance, or unknown.… |
| topic | string | – | Which rule to answer. "lez" = low-emission zone and Feinstaubplakette, "speed" = speed limits including the Autobahn advisory 130, "winter" = winter-tyre duty, "alcohol" = alcohol and drugs, "toll" =… |
No output schema declared.
No examples provided.
get_train_departures ~737
Next trains at a German railway station: platform, delay, cancellations. Use when asked when a train, S-Bahn or ICE leaves a named station, or if a train or line from it is late; later today ("heute Abend") stays here. A line with no DEPARTURE station ("ist die S1 pünktlich?"; a destination, "nach …", is not one) — check_transit_disruption. Lists U-Bahn and trams too. Do NOT use for one bus/tram/U-Bahn line, a non-railway stop, another day or over 2 h — get_departures. Types ICE/IC/RE/RB/S; no destination filter; whole station: describe_station. ≤ 15 rows, ≤ 120 min. Show the attribution line.
| Name | Type | Req | Description |
|---|---|---|---|
| categories | array | – | Keep only these train types, when the person named one: "ICE", "IC" (also EC, ECE, Railjet, Nightjet), "RE" (also IRE), "RB" or "S" (S-Bahn). "next ICE to …" is ["ICE"], "Fernzug" is ["ICE", "IC"], "… |
| duration_min | integer | – | How far ahead to look, in minutes (5–120, default 60). Use a small window for "what leaves now" and a larger one for "this evening". Above 120 is refused: a departure board is not a timetable search. |
| eva_no | string | – | The station's EVA number (6–8 digits, e.g. 8002549 for Hamburg Hbf), when a previous result gave you one. It skips the name lookup and is exact — use it to answer a follow-up about a station this too… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| limit | integer | – | How many departures to return, earliest first (1–15, default 10). More than 15 is refused — that is a board a person can read, not a dataset. |
| station | string | – | The railway station, as the person says it: "Hamburg Hbf", "Köln Hbf", "Munich Central", "Frankfurt (Main) Hbf". Pass their words — English names and "central station" are understood. If the name fit… |
| when | string | – | Start of the window as an ISO-8601 instant with an offset ("2026-09-20T18:30:00+02:00"). Leave it out for "now", which is what almost every question means. Times in the answer are Europe/Berlin whate… |
No output schema declared.
No examples provided.
stop_watch ~528
Ends a watch this conversation opened with watch_situation, so no further notifications arrive for it. Use when the person no longer needs to be told — "du musst mir nichts mehr zur A8 sagen", "stop watching that charger". No id at hand: pass kind ("weather") and key in the person's words ("A8", "Bamberg", "Kiel"); one match is stopped, several are listed. Do NOT use to look a situation up (call check_road_status), to list what is running (read viafrei://watches), or to cancel anything outside this chat. Another session's watch is never found. Results carry their attribution line.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | – | Instead of an id: the watched subject in the person's words, as it was given to watch_situation — a road or place ("A8", "Bamberg"), and with `kind` a place for a weather or charger watch or a stop n… |
| kind | string | – | Instead of an id: the kind of watch the person means, as watch_situation took it ("road", "station", "region", "place", "weather", "charger"). "Turn off the charging alert" is kind "charger" alone. |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| uri | string | – | The watch's resource uri, e.g. "viafrei://watch/12". Give either this or `watch_id`, not both. |
| watch_id | integer | – | The numeric id of the watch to stop, as `watch_situation` returned it (the 12 in viafrei://watch/12). |
No output schema declared.
No examples provided.
watch_situation ~1,134
Opens a watch so THIS conversation is told when something changes: a road closed or restricted, a motorway jam, a stop running late, a weather warning, a charger freeing up. Use when asked to be told later: "sag mir Bescheid, wenn die A8 wieder frei ist", "tell me when a warning comes for Kiel". A name is enough as key; no lookup first. Do NOT use to look up now, nor for e-mail, SMS or alerts outside this chat — we cannot send one; say so. Set hours (≤ 24, default 3) for the time asked; condition narrows it (only the reopening, one charge point). Session-scoped, ≤ 10 watches. Show attribution.
| Name | Type | Req | Description |
|---|---|---|---|
| condition | object | – | Optional threshold; the keys of each kind, with an example: road {"event": "reopen"} (only the reopening), {"events": ["jams"]} (jams on a motorway); station {"delay_min": 20}; region {"late_share":… |
| hours | number | – | How long to watch, in hours (default 3, maximum 24). Prefer this over `until`: it needs no knowledge of the current time. Give one of `hours` or `until`, never both. |
| key | string | yes | The thing to watch, in the person's own words — a name is enough and no read tool is needed first; the server resolves it and the answer names the key it resolved to. `road`: a road number ("A8", "B2… |
| kind | string | yes | What kind of thing to watch. `road` = one motorway or federal road (key: "A8", "B27") — reports a closure or restriction appearing or clearing, and on a motorway a jam (condition events) appearing or… |
| language | string | – | Set this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback w… |
| request | string | – | The person's request in their own words ("sag mir Bescheid, wenn sich auf der A7 ein Stau bildet"). Pass it on every call: a jam asked for on a motorway is watched (the Autobahn GmbH's and the police… |
| until | string | – | An explicit end instant as ISO-8601 with an offset ("2026-09-20T18:40:00+02:00"), at most 24 hours ahead. Use only when the person named a time; otherwise use `hours`. Give one of `hours` or `until`,… |
No output schema declared.
No examples provided.
How do I install the ViaFrei MCP server?
ViaFrei is a hosted endpoint at https://mcp.viafrei.de/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.viafrei.de
claude mcp add --transport http de-viafrei-mcp 'https://mcp.viafrei.de/mcp'
What is the ViaFrei MCP server?
ViaFrei is an MCP server listed in the public MCP registry as de.viafrei/mcp. The German Real-Time Mobility Context Platform for AI: traffic, trains, charging, parking, weather. This page covers its hosted endpoint (https://mcp.viafrei.de/mcp).
Is the ViaFrei MCP server safe to use?
ViaFrei scores 84 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the ViaFrei MCP server expose?
ViaFrei exposes 24 tools: check_autobahn_traffic, find_cheapest_fuel, find_fuel_station, find_parking, check_road_status, and 19 more. Their descriptions and schemas cost roughly 18,527 tokens of context every time the server is loaded.
Does the ViaFrei MCP server require authentication?
No. We connected to ViaFrei without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the ViaFrei MCP server still maintained?
ViaFrei is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.