Skip to main content
Glama
irail-mcp
by HansF

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 name

  • lang (optional) - Language: en, nl, fr, de, it

get_liveboard

Real-time departures or arrivals from a station.

  • station (required) - Station name

  • date (optional) - YYYY-MM-DD, "today", "tomorrow", "+2 days"

  • time (optional) - HH:MM (24h)

  • arrival (optional) - Show arrivals instead of departures

  • lang (optional)

find_connections

Find routes between two stations.

  • from_station (required) - Departure station

  • to_station (required) - Destination station

  • date, 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/ -v

API 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 tools
find_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

    A3.8/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool has a clear, distinct purpose: route planning, disruptions, liveboard, train details, and station search. No overlap.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., find_connections, get_liveboard), making them predictable.

    Tool Count5/5

    With 5 tools, the set is well-scoped for a railway information server, covering essential operations without being excessive.

    Completeness5/5

    The tool surface covers core railway info needs: station lookup, liveboard, connections, train details, and disturbances. No obvious gaps for an informational API.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers