Skip to main content
Glama
RealGUppercut

uk-rail-mcp

uk-rail-mcp

MCP server for live UK rail data, using the free-for-personal-use Realtime Trains next-generation API, with pre-filled thetrainline.com booking links. Trainline itself has no public API, so this wraps open rail data and hands off to Trainline for purchase.

Tools

  • search_stations — name/CRS lookup (2,608 GB stations bundled)

  • live_departures — live board for a station, optionally filtered to a destination; includes a Trainline booking link when filtered

  • live_arrivals — live arrivals board

  • service_details — full calling pattern + real-time info for one train

  • trainline_booking_link — pre-filled thetrainline.com search URL

Related MCP server: NS Travel MCP Server

Setup

  1. Sign in at https://api-portal.rtt.io (needs an RTT unified login account) and request an API token. The portal issues either a long-life access token or a refresh token — it will tell you which.

  2. Build:

npm install
npm run build

Run as a remote server (default) — for claude.ai custom connectors

RTT_ACCESS_TOKEN=... MCP_PATH_TOKEN=some-long-random-string npm start
# or, if the portal gave you a refresh token:
RTT_REFRESH_TOKEN=... MCP_PATH_TOKEN=some-long-random-string npm start

Serves Streamable HTTP MCP at POST /mcp/<MCP_PATH_TOKEN> (or /mcp if no token is set), plus GET /healthz. Stateless mode: no sessions, safe behind load balancers.

Claude connects from Anthropic's cloud, not your machine, so the server must be publicly reachable — deploy to Railway, Fly.io, Render, or any VPS (all read PORT automatically). Then in claude.ai: Settings → Connectors → Add custom connector, and paste https://your-host/mcp/<token>.

The path token is lightweight access control (this server has no OAuth): anyone with the full URL can burn your RTT quota, so use a long random token and treat the URL as a secret. For anything beyond personal use, put proper OAuth in front (the MCP SDK supports it).

Run locally in Claude Desktop instead

node dist/index.js --stdio

claude_desktop_config.json:

{
  "mcpServers": {
    "uk-rail": {
      "command": "node",
      "args": ["/absolute/path/to/trainline-mcp/dist/index.js", "--stdio"],
      "env": {
        "RTT_ACCESS_TOKEN": "your-token-from-api-portal.rtt.io"
      }
    }
  }
}

Things to verify (unofficial/undocumented behaviour)

  • The client targets the RTT next-generation API (base https://data.rtt.io, bearer auth) and was written directly against the official OpenAPI spec (https://realtimetrains.github.io/api-specification/). Field parsing should be sanity-checked against one real response once you have a token.

  • RTT forbids putting tokens in distributable client apps; this server-side proxy pattern is exactly what they require, but keep the token out of the repo.

  • The Trainline deep-link format (/book/results?origin=...&destination=...) is not officially documented and may change — test one link in a browser.

Limitations / roadmap

  • UK (GB) only — RTT has no European coverage.

  • No fares or journey planning with pricing; that data is licence-gated (National Rail OJP / Rail Data Marketplace, or a Trainline Partner Solutions agreement).

  • No booking — deliberate; handled by the Trainline handoff link.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Real-time transit stops, routes, arrivals, vehicle positions, and schedules via OneBusAway APIs.

  • iRail MCP — Belgian rail (SNCB/NMBS) real-time via the community iRail API

  • Swiss Transport MCP — wraps Transport Open Data API (free, no auth)

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RealGUppercut/uk-rail-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server