Ironway

In most European languages the word for railway means iron road: Eisenbahn, jernbane, järnväg, chemin de fer, ferrovia, raudtee. English is one of the few exceptions. Ironway is a Model Context Protocol server for European railway data, built on each country's own public API rather than on a scraped aggregate.

Endpoint

https://ironway.msge.no/mcp

Coverage

What each country can answer, and what it cannot. This is generated from the adapters themselves, so it cannot drift from the code.

Belgium (BE)

Source: api.irail.be.
Tools: find_stop_places, get_departures, get_service_alerts, plan_journey

Data from iRail (api.irail.be), a keyless, volunteer-run API in front of NMBS/SNCB's own real-time data. iRail asks every client to identify itself with a descriptive User-Agent, which this service sends built from its contact address, and to stay under 3 requests a second. No licence is stated for the API itself; treat it, like Switzerland's community service, as offered for light use rather than as a licensed commercial dependency.

Estonia (EE)

Source: api.peatus.ee.
Tools: find_stop_places, get_departures, get_service_alerts, plan_journey

Data from Transpordiamet via peatus.ee, keyless. The national feed is published as open data; the API's own terms of use are not stated on the endpoint, so treat the quota as unpublished and stay modest.

Finland (FI)

Source: rata.digitraffic.fi.
Tools: find_stop_places, get_departures, get_service_alerts

Data from Fintraffic's Digitraffic rail API (rata.digitraffic.fi), keyless, licensed Creative Commons Attribution 4.0. Required attribution, verbatim from Fintraffic's terms of service: "Source: Fintraffic / digitraffic.fi, license CC 4.0 BY". Every request identifies this service with a Digitraffic-User header derived from IRONWAY_CONTACT, never a person's name or address, per Fintraffic's own instructions.

France (FR)

Source: api.sncf.com.
Tools: find_stop_places, get_departures, get_service_alerts, plan_journey

Data from SNCF's open API (api.sncf.com), which runs Navitia over SNCF's own timetable and realtime feeds. Used under a free self-serve key with a published allowance of 5 000 requests a day. The key is sent as HTTP Basic with the key as username, the convention for this API family, so it never reaches a URL. Navitia itself is open source, by Hove.

Ireland (IE)

Source: api.irishrail.ie.
Tools: find_stop_places, get_departures

Data from Iarnród Éireann's own realtime service, keyless. In the service's own words: "Irish Rail provides this information as is and do not offer any support." No licence is published for it anywhere this adapter found; an as-is disclaimer is a disclaimer of liability, not a grant of rights, so this is used as informally offered rather than as licensed open data. See ADR 0008.

Norway (NO)

Source: api.entur.io.
Tools: find_stop_places, get_departures, get_service_alerts, plan_journey

Data from Entur, keyless, under NLOD (Norwegian Licence for Open Government Data). Entur requires every client to identify itself with an ET-Client-Name header and may block one that does not; this service sends a name derived from its contact address.

Sweden (SE)

Source: api.resrobot.se.
Tools: find_stop_places, get_departures, plan_journey

Data from Trafiklab's ResRobot v2.1, operated by Samtrafiken. Used under a free Trafiklab key; the key travels in an Authorization header rather than the `accessId` query parameter their examples use, so it never reaches a URL. Trafiklab's terms are silent on redistribution and reserve the right to withdraw access at any time, which is worth knowing before depending on this.

Switzerland (CH)

Source: transport.opendata.ch.
Tools: find_stop_places, get_departures, plan_journey

Data from transport.opendata.ch, a community service built on the Swiss public timetable. It publishes no licence of its own and is offered for light use, which is an honestly unclear basis: attribute it, stay within the rate limit, and do not build a commercial dependency on it. The official, licensed route is opentransportdata.swiss, which is phase 3.