TrainRouter Atlas

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.

Category
Visit Server

README

TrainRouter Atlas — the world's legendary train routes, as open data

DOI

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 LineString is 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 to https://trainrouter.com (or the specific route page in url) satisfies attribution. (full notice)
  • Code (the MCP server in mcp/): MIT.

Also available on

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 at https://trainrouter.com/mcp, listed in the Official MCP Registry as com.trainrouter/atlas), which serves this atlas as tools for Claude and other MCP clients.

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured