irail-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@irail-mcp Show departures from Brussels Central at 5 PM"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
iRail MCP Server
Disclaimer: This project was vibe coded and is not affiliated with or supported by iRail vzw. Train data may be inaccurate or outdated. Always verify with official sources (belgiantrain.be or the NMBS/SNCB app) before making travel decisions.
A Model Context Protocol (MCP) server that provides Belgian railway travel information via the iRail API.
Features
Search Stations - Find Belgian railway stations by name
Live Departures/Arrivals - Real-time departure and arrival boards
Find Connections - Route planning between stations with transfers
Train Information - Detailed stops, delays, and platforms for a specific train
Network Disturbances - Current disruptions and planned maintenance
Related MCP server: mcp-sbb-transport
Installation
Requires Python 3.11+ and uv.
git clone https://github.com/HansF/irail-mcp.git
cd irail-mcp
uv venv && source .venv/bin/activate
uv pip install -e .Usage with Claude Code
Add to your project's .mcp.json:
{
"mcpServers": {
"irail": {
"command": "uvx",
"args": ["irail-mcp"]
}
}
}Then ask Claude things like:
"What trains leave Brussels Central in the next hour?"
"Find a route from Antwerp to Bruges at 2:30 PM tomorrow"
"Are there any disruptions on the Belgian rail network?"
"Show me details for train IC2240"
Tools
search_stations
Search for stations by name.
query(required) - Station name or partial namelang(optional) - Language: en, nl, fr, de, it
get_liveboard
Real-time departures or arrivals from a station.
station(required) - Station namedate(optional) - YYYY-MM-DD, "today", "tomorrow", "+2 days"time(optional) - HH:MM (24h)arrival(optional) - Show arrivals instead of departureslang(optional)
find_connections
Find routes between two stations.
from_station(required) - Departure stationto_station(required) - Destination stationdate,time,lang(optional)arrival_time(optional) - If true, time is desired arrival time
get_train_info
Detailed information about a specific train.
train_id(required) - e.g. "IC1234" or "BE.NMBS.IC1234"date,lang(optional)
get_disturbances
Current network disruptions and planned works.
lang(optional)
Running Tests
uv pip install -e ".[dev]"
python -m pytest tests/ -vAPI Compliance
Rate limited to 3 requests/second per iRail guidelines
Proper User-Agent header set
30-second timeout for slow responses
License
MIT
References
Available Tools
5 toolsfind_connectionsB
Find routes between two stations with connection details
Inputs: to_station (required), from_station (required), date, lang, +2 more.
get_disturbancesA
Get current network disruptions and planned maintenance works
Inputs: lang.
get_liveboardB
Get real-time departures or arrivals from a station
Inputs: station (required), date, lang, time, +1 more.
get_train_infoB
Get detailed information about a specific train including all stops and current delays
Inputs: train_id (required), date, lang.
search_stationsA
Search for railway stations in Belgium by name
Inputs: query (required), lang.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a clear, distinct purpose: route planning, disruptions, liveboard, train details, and station search. No overlap.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., find_connections, get_liveboard), making them predictable.
With 5 tools, the set is well-scoped for a railway information server, covering essential operations without being excessive.
The tool surface covers core railway info needs: station lookup, liveboard, connections, train details, and disturbances. No obvious gaps for an informational API.
Maintenance
Related MCP Connectors
iRail MCP — Belgian rail (SNCB/NMBS) real-time via the community iRail API (https://api.irail.be…
Belgian trains for AI agents: live journeys, departures, delays, disruptions. Free, no key.
Cached UK train departures and qualified platforms, powered by National Rail Enquiries.
Check UK Delay Repay, UK261 flights and TfL refunds. Save claims and check commutes on request.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides real-time Dutch Railways (NS) data for journey planning, live departures, disruptions, and station search.3-
- FlicenseNot gradedqualityDmaintenanceEnables querying Swiss public transport (trains, buses, trams, boats) for stations, connections, and station boards via the opendata.ch API.-
- FlicenseNot gradedqualityDmaintenanceMCP server for querying Belgian railway data (SNCB/NMBS) via the iRail API, enabling station search, liveboard, and journey planning.-
- AlicenseNot gradedqualityCmaintenanceProvides real-time Belgian rail (SNCB/NMBS) data via the iRail API, enabling AI agents to query train schedules and live information.118 npmMIT