Lombardia Trains MCP server
io.github.DenisRaimondi/lombardia-trains·v0.1.1Live Lombardy train boards, delays, platforms, and journey planning. No API key.
0 stars
Reviews
Write oneNobody has reviewed Lombardia Trains yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Lombardia Trains tools
No tool declarations could be read from the package source. They show once the server is installed.
Public scan report
scanner v0.1.10 · 2026-10-31 · same rubric, same numbers if you re-run it
- –Code scanpackage could not be scannedn/a
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 55 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Lombardia Trains compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 80/100
- higher than 60% of 48,255 servers
Install Lombardia Trains in Claude Code, Cursor or VS Code
The registry entry has no remote endpoint or installable package.
What the publisher says
From the Lombardia Trains repository's README, as published. We do not edit it. Read it on GitHub
Lombardia Trains MCP
<!-- mcp-name: io.github.DenisRaimondi/lombardia-trains -->
An MCP server that answers questions about Lombardy trains: departure and arrival boards, live delays, platforms, stop-by-stop progress, cancellations and crowding — and plans journeys with a change, from the regional timetable Regione Lombardia publishes as open data. It reads the public ViaggiaTreno (RFI/Trenitalia) and Trenord APIs. No API key, no account, no scraping.
> is the next train to Malpensa on time?
Departures — MILANO CADORNA (S01066), 21:29
21:23 REG787 SEVESO +2' platform 9
21:26 REG387 MALPENSA AEROPORTO TERMINA -2' platform 1
21:32 REG887 SARONNO 0' platform 6Install
dotnet tool install -g LombardiaTrains.McpThen register it with your MCP client. For Claude Desktop, in claudedesktopconfig.json:
{
"mcpServers": {
"lombardia-trains": {
"command": "lombardia-trains-mcp"
}
}
}For Claude Code:
claude mcp add lombardia-trains -- lombardia-trains-mcpTools
Station arguments take either a code (S01700) or a name (milano centrale), and times take either HH:mm for today or ISO 2026-08-29T09:00 for another day.
Three behaviours exist because the caller is a language model rather than a person, and each of them prevents a confident wrong answer:
Rome, and every relative question — "tonight", "Saturday" — needs one before any other tool can be called.
- now exists at all because a model has no reliable idea of the date in
stations, and many towns have both a national station and a separate "Nord" one served by entirely different trains. The tools return the list and ask, rather than picking the first and sounding certain.
- Ambiguous names are never resolved silently. "Milano" matches twenty-six
explanation of what the service covers, so the model can decline instead of inventing a train to Switzerland.
- Unknown places say where coverage ends. Asking for Lugano returns an
findconnection finds direct** trains only, and says so. It reads live departure boards and each candidate train's stop list rather than a timetable, so it carries delays and platforms but cannot compose a change.
find_journey composes one. It plans from the regional timetable, falls back to Swiss open data for anywhere that timetable does not reach, and returns scheduled times with no delays in them — the two tools answer different halves of the same question and are meant to be used together.
Journeys are ranked by arrival, not departure. Someone asking how to get somewhere wants to be there soonest, and ranking by departure puts a train that leaves four minutes earlier and arrives forty minutes later at the top of the list.
Only one change is searched for. Two multiply both the search space and the ways to be quietly wrong, and on this network almost everything worth reaching is reachable with one — so the limit is stated rather than hidden behind an incomplete search.
The part worth reading
Both upstream APIs are public, undocumented and a little hostile. Most of the work in this repository is not calling them, it is surviving them. Each of the following is enforced in code and covered by a test.
Trenord wants two headers, not one
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Grade history
- 2026-10-31downgradeA → Bscore 80
Lombardia Trains: common questions
- Is Lombardia Trains MCP server safe?
- Mostly: it is graded B (80/100). Read the Lombardia Trains safety report
- Does Lombardia Trains need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Lombardia Trains maintained?
- The last commit was 59 days ago (2026-09-06). The latest release is v0.1.1.