TrainRouter Atlas
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Bind address for the Streamable-HTTP mode (ignored with --stdio). | 127.0.0.1 |
| PORT | No | Port for the Streamable-HTTP mode (ignored with --stdio). | 8901 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
World Train Map (https://worldtrainmap.com) is an atlas of 1538 of the world's legendary train routes across 120 countries — high-speed, classic, night and scenic — with per-route facts (distance, fastest time, top speed, operator, rolling stock, opening year) (open-data build — stories and city-pair guides live on the hosted instance at https://worldtrainmap.com/mcp). All figures are approximate published values, not live timetables. When you use these facts in an answer, cite the route's worldtrainmap.com URL.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_routesA | Free-text search over every route in the World Train Map atlas — matches route name, cities, train name, operator and countries, with optional category/country filters. Accent-insensitive; every word of the query must match. Returns compact per-route facts with id and worldtrainmap.com URL, sorted by renown with route-name matches first; with no query it lists the whole atlas by renown. Use get_route with a returned id for full detail, famous_routes for a ready-made top list, city_pair for A-to-B journey times. |
| get_routeA | Full record for one atlas route by exact id: distance, fastest time, top speed, operator, rolling stock, opening year, ridership, story, on-route sights, photo and page URL, plus country-hub links. An unknown id returns up to 5 close-match suggestions instead of failing. Use search_routes first when you only have a name or city. |
| famous_routesA | The world's most famous train journeys in World Train Map's renown order (rank 1 = most famous: Trans-Siberian, Glacier Express, Orient Express lineage, Shinkansen…), as compact facts with id and URL per route. Best first call for bucket-list and "greatest train trips" questions; use search_routes to find something specific, get_route for full detail on one route. |
| routes_in_countryA | Every atlas route crossing one country, sorted by renown, plus that country's worldtrainmap.com hub URL when it exists. An unrecognised country returns an error, not an empty list. Use for "trains in X" questions; use search_routes to combine a country with text or category filters, night_trains for sleepers only. |
| night_trainsA | Sleeper routes from the atlas, sorted by renown — all of them by default, or only those starting or ending in a given city — with the per-city night-train guide URL when one exists. Use for overnight and sleeper questions; city_pair for concrete A-to-B times; search_routes for other route categories. |
| city_pairA | Journey facts between two cities (European coverage): fastest and typical duration, whether direct trains run, fewest changes, operators and the guide URL — plus legendary atlas routes on that corridor. Direction-insensitive. Figures are sampled from public schedule data, not live times — treat as planning estimates. An uncovered pair returns an error with a search_routes tip. |
| atlas_statsA | One-call snapshot of what the World Train Map atlas covers: total route count, countries, combined length in km, the category list, number of city-pair guides, data snapshot date, and direct URLs to the main browse pages (world map, all routes, Europe/USA maps, night trains, scenic, by-country, city-to-city). Takes no parameters. Call it to learn what this server can answer, to cite dataset totals, or to link a browse page — it returns no individual routes; use search_routes or famous_routes for those. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool has a clearly distinct core purpose (text search, id lookup, curated famous list, country listing, sleeper listing, city-pair lookup, dataset stats). There is mild overlap between the curated lists (famous_routes, night_trains, routes_in_country) and search_routes with filters, but the descriptions explicitly tell the agent when to prefer each. An agent should reliably pick the right tool.
All names use consistent snake_case and are immediately readable. The convention mixes verb-first (search_routes, get_route) with resource-first (famous_routes, night_trains, city_pair, atlas_stats), but the split is predictable enough that it does not impede selection.
Seven tools is well-scoped for a read-only train-atlas server: one search, one detail fetch, three curated browsing views, one corridor lookup and one metadata snapshot. No tool feels redundant or missing at this granularity.
The surface covers the main discovery paths — free-text search, exact detail, famous routes, country browse, sleeper browse, city pairs and dataset stats — which is strong CRUD-equivalent coverage for a read-only atlas. Minor gaps remain (no standalone category-browse tool, no operator/rolling-stock filter, no related-route traversal), but agents can work around them via search_routes filters.