TrainRouter Atlas
The world railway atlas as read-only MCP tools: search 744+ legendary train routes (high-speed, classic, night, scenic) and get per-route facts, rankings and journey times. Runs from the repo's open dataset (CC BY 4.0); a free hosted endpoint is also live at https://trainrouter.com/mcp.
README
TrainRouter Atlas — the world's legendary train routes, as open data
744 train routes · 118 countries · ≈ 366,500 km of line — every route with its key facts and hand-traced geometry, from trainrouter.com, the interactive world railway map.
High-speed spines (Eurostar, TGV, Shinkansen, AVE), classic long-distance runs (Trans-Siberian, California Zephyr), night trains (Nightjet, the Ghan) and the scenic lines people fly in just to ride (Glacier Express, Bernina Express, the Jacobite).
🗺️ Explore it interactively: trainrouter.com
🤖 Use it from an AI assistant: free MCP server at https://trainrouter.com/mcp (how to connect) — or run it from this repo: npm install && npm start (mcp/)
Files
| File | Contents |
|---|---|
data/routes.csv |
One row per route — all facts, no geometry |
data/routes.json |
Same records with structured country objects |
data/routes.geojson |
LineString per route (lon/lat waypoints) + all facts as properties |
Schema
| Field | Type | Notes |
|---|---|---|
id |
string | Stable slug, e.g. glacier-express |
name |
string | Route/service name |
from, to |
string | Terminus cities |
category |
enum | high-speed · classic · night · scenic |
train |
string | Rolling stock, e.g. e320 · Class 374 |
operator |
string | Operating company |
distance_km |
number | Route length |
top_speed_kmh |
number | Service top speed |
duration |
string | Published journey time, e.g. 2 h 16 min |
opened |
number | Year the line/service entered service |
pax_per_year |
number|null | Approx. annual ridership where published |
countries_iso / countries |
string | |-separated, in travel order (CSV); structured objects in JSON |
highlight |
string | One-line description of what makes the route legendary |
fame_rank |
number | 1 = most famous (TrainRouter renown ranking) |
url |
string | The route's page on trainrouter.com |
Quick start
import pandas as pd
routes = pd.read_csv("data/routes.csv")
routes.nsmallest(10, "fame_rank")[["name", "from", "to", "distance_km"]]
import geopandas as gpd
gdf = gpd.read_file("data/routes.geojson")
gdf.plot(column="category", figsize=(16, 8))
Sources, accuracy & provenance
- No upstream dataset. This atlas is hand-built — not derived from OpenStreetMap, Overpass, Wikidata, Natural Earth or any other licensed dataset — so it carries no third-party licensing obligations and the CC BY 4.0 licence is the author's to grant.
- Geometry is hand-traced at map scale: each route's
LineStringis a set of hand-placed[lon, lat]waypoints following the line's real corridor through its stops — deliberately schematic (smoothed for display), not survey-grade alignment, and not extracted from OSM or any geodata source. - Facts are approximate published values: distance, top speed, journey time, operator, opening year and approximate ridership are compiled from public references (operators' own figures, timetables, press material, encyclopaedic articles). Individual facts like these aren't copyrightable; the licence covers the curated compilation. Good for exploration and visualization, not operations.
- Curated, not exhaustive: the world's notable routes, not every line on earth. Route names and the one-line
highlights are the author's own wording. - Deliberately excluded (they live only on the site, to keep provenance clean): per-route stories and sights, photos (Wikimedia Commons, separately licensed), and the city-to-city journey guides (derived from public schedule feeds).
- Basemap ≠ data: the interactive site renders these routes over OpenFreeMap (OpenStreetMap) tiles, but those tiles are not part of this dataset — the geometry here is the author's own hand-traced lines. OSM © OpenStreetMap contributors.
License & attribution
- Data (
data/): CC BY 4.0 — free to use, share and adapt, with attribution to TrainRouter. A link tohttps://trainrouter.com(or the specific route page inurl) satisfies attribution. (full notice) - Code (the MCP server in
mcp/): MIT.
Also available on
- Kaggle: kaggle.com/datasets/albanius/world-train-routes-trainrouter-atlas
- Hugging Face: huggingface.co/datasets/Flightmussy/trainrouter-atlas
- Zenodo (archived, DOI): doi.org/10.5281/zenodo.21322030 — always resolves to the latest version
Citing
TrainRouter Atlas: the world's legendary train routes (2026). trainrouter.com. DOI: 10.5281/zenodo.21322030. https://github.com/Flightmussy/trainrouter-atlas
Updating
The data is generated from the TrainRouter atlas source. New versions land here first; publishing a GitHub release mints a fresh Zenodo DOI and (once the repo's KAGGLE_API_TOKEN/HF_TOKEN secrets are configured) syncs the Kaggle and Hugging Face mirrors automatically via sync-mirrors.yml.
Also in this repo
mcp/— source of the TrainRouter MCP server (live athttps://trainrouter.com/mcp, listed in the Official MCP Registry ascom.trainrouter/atlas), which serves this atlas as tools for Claude and other MCP clients.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.