Skip to content

Roadmap

mavrovde edited this page Sep 27, 2026 · 1 revision

Roadmap

These are intentions, not commitments. There are no dates on this page, and nothing here is a promise. Priorities change, a data licence can close a door, and a feed that looked ready can turn out not to be. What is real today is the catalogue on the running server — 18 tools at version 1.3.16 — and Tools at a glance describes that. Everything below may change, slip or be dropped.

1.4 — conformance, geocoding, and getting from A to B

Three strands, in the order they matter to someone building on the service.

MCP conformance hardening

Tightening the server's behaviour against the specification rather than against the clients that happen to work today. The practical goal is that a conforming MCP client meets no surprises: transport edge cases, session handling, error shapes, capability negotiation, and the parts of the protocol that only bite when a client does something unusual. Nothing about this changes the tools you call — it changes how reliably an unfamiliar client can call them.

The OpenStreetMap geocoding pipeline

Address and point-of-interest lookup works today and covers all sixteen Länder (measured 2026-09-27). What 1.4 is about is the pipeline behind it: how the extract is staged, imported, scoped per Land and refreshed, so that coverage is a maintained property rather than a state somebody achieved once. The visible consequence should be fresher data and fewer "that door is not in OpenStreetMap under the spelling you used" misses — plus the per-Land coverage that viafrei://addresses already reports staying honest as the data moves.

A connection and journey surface

Today the tools do not answer "how do I get from A to B." That is worth saying plainly, because it is the question people assume a transport service answers:

  • get_train_departures is a departure board — what leaves this station next. The tool refuses a window over 120 minutes precisely because a board is not a timetable search.
  • The plan_commute prompt takes a to_station, and it uses it only to pick the right departures out of the board. It does not become a journey planner.
  • check_transit_disruption answers about a region, never a line, a trip or a stop.
  • Nothing chains legs, nothing changes trains, nothing tells you which platform to walk to next.

1.4 intends to add a connection/journey surface so that question can be answered properly. What it will look like as an MCP tool — its name, its arguments, what a result carries — is not decided, so nothing is described here. When it exists it will be in the catalogue on the server, which is the only place worth reading for what the tools are.

1.5 — the public face, in two languages

The landing page

A public page at viafrei.de that explains the service to someone who has not heard of MCP, with the live national traffic digest already behind that address as its centrepiece.

A fully multilingual surface

Every tool already takes language (de | en) and answers in the language of the question; place names, station names and road numbers are never translated. 1.5 is about the rest of the surface — the pages, the documentation, the digest, the operational panels — being genuinely German and English rather than English with translations bolted on. Two first-class languages, not one plus a fallback.

What it will not become

ViaFrei is an answer service. You ask a question, it answers it, and the answer carries the licence line its sources require. It is not, and is not intended to become, a data feed for resale.

That is partly a product decision and partly not a decision at all:

  • Fuel prices legally cannot be that. MTS-K prices reach the service for one purpose — telling consumers what fuel costs right now. No redistribution in any form: not raw, not a table, not a comparison, not an average, not a chart, not a derived dataset, and never to the fuel industry or its IT providers. The Bundeskartellamt's guidance says the form makes no difference. So there will be no bulk fuel endpoint, no price history, no dataset export, no comparison product — not because it is unbuilt, but because building it would cost the licence to receive the data at all. See Use case Fleet and logistics briefings for what that means in a real product.
  • Several other sources carry conditions that travel. DELFI realtime is CC BY-SA 4.0 and its share-alike follows anything derived from it. OpenStreetMap-derived results are ODbL 1.0, and a Derivative Database owes recipients the same § 4.6 offer ViaFrei makes. Autobahn GmbH publishes openly but publishes no reuse licence text, so redistribution beyond showing the answer is an open question with the publisher rather than something the absence of a licence permits.
  • The tools are shaped for people, deliberately. A departure board caps at 15 departures. Fuel caps at 10 stations inside 25 km. check_autobahn_traffic takes five roads. Those ceilings are the provider's terms and the product's intent agreeing with each other: they are what a person reads, not what a scraper wants. Do not expect them to be raised into a bulk interface.
  • No self-hosted ViaFrei. The server is a hosted service and its source is closed. The bridge's --url is for a proxy in front of the service, not a way to run your own. What is public is what is meant to be: the tool names, descriptions, input schemas, result shapes and attribution lines — everything a client reads from tools/list.

Also not planned: a weather forecast (official warnings only), tickets or fares, per-line realtime, and outbound alerting — a watch reaches the conversation that opened it and no inbox, no SMS and no webhook.

How to influence it

Open an issue or a discussion on mavrovde/viafrei-bridge.

The single most useful report is "the answer was wrong or useless" — there is an issue template for it. A tool that fails is something the server sees for itself; a tool that answers confidently with the wrong thing is not, and that report cannot be obtained any other way. Include what you asked and what came back.

Anything key-shaped goes through the private channel in SECURITY.md instead — never a public issue.

Next

Clone this wiki locally