MCP.Market

Lombardia Trains MCP server

by DenisRaimondi·io.github.DenisRaimondi/lombardia-trains·v0.1.1

Live Lombardy train boards, delays, platforms, and journey planning. No API key.

B80/100grade B
What users say
No reviews yet
Be the first
Safety scan
B80/100

full report

Adoption
New

0 stars

Reviews

Write one

Nobody 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

no findings
  • –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
Overall 80/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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 6

Install

dotnet tool install -g LombardiaTrains.Mcp

Then 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-mcp

Tools

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.