# Lombardia Trains (nuget · LombardiaTrains.Mcp)

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

- Trust score: 84/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- nuget · `LombardiaTrains.Mcp`: 84/100 (this document), [markdown](https://verifymcp.io/servers/denisraimondi-lombardia-trains/lombardiatrains-mcp.md), [page](https://verifymcp.io/servers/denisraimondi-lombardia-trains/lombardiatrains-mcp)

## Channel facts

- Registry: `nuget`
- Package: `LombardiaTrains.Mcp`
- Version: `0.1.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 13 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 82/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 799 tokens (~114/item across 7 items; 7 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 90/100
  - Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the Lombardia Trains MCP server?

Lombardia Trains runs locally as a NuGet package, launched with dnx LombardiaTrains.Mcp@0.1.1 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add denisraimondi-lombardia-trains -- dnx LombardiaTrains.Mcp@0.1.1 --yes
```

### Cursor

```json
{
  "mcpServers": {
    "denisraimondi-lombardia-trains": {
      "command": "dnx",
      "args": [
        "LombardiaTrains.Mcp@0.1.1",
        "--yes"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "denisraimondi-lombardia-trains": {
      "command": "dnx",
      "args": [
        "LombardiaTrains.Mcp@0.1.1",
        "--yes"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add denisraimondi-lombardia-trains -- dnx LombardiaTrains.Mcp@0.1.1 --yes
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "denisraimondi-lombardia-trains": {
      "type": "local",
      "command": [
        "dnx",
        "LombardiaTrains.Mcp@0.1.1",
        "--yes"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  denisraimondi-lombardia-trains:
    command: "dnx"
    args: ["LombardiaTrains.Mcp@0.1.1", "--yes"]
```

### Netclaw

```json
{
  "McpServers": {
    "denisraimondi-lombardia-trains": {
      "Transport": "stdio",
      "Command": "dnx",
      "Arguments": [
        "LombardiaTrains.Mcp@0.1.1",
        "--yes"
      ]
    }
  }
}
```

### Other

```json
{
  "mcpServers": {
    "denisraimondi-lombardia-trains": {
      "command": "dnx",
      "args": [
        "LombardiaTrains.Mcp@0.1.1",
        "--yes"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-19 (score 84, +1)

No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-16 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-14 (score 82, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-12 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-10 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-08 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-06 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-04 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (7)

### `get_departures` (~143 tokens)

Departure board for a station: time, train, destination, delay in minutes (negative means early) and platform ('-' when not yet assigned). Works for future dates as well as today.

Input parameters:

- `at` (string|null): When, as 'HH:mm' for today or ISO '2026-08-29T09:00' for another day. Defaults to now. Call the 'now' tool first if the user said something relative like 'Saturday'.
- `limit` (integer): How many rows to return. Default 10.
- `station` (string, required): Station code such as 'S01136', or a name such as 'milano centrale'.

### `now` (~57 tokens)

Current date and time in Italy, with the day of the week. Call this before answering anything relative such as 'today', 'tonight', 'Saturday' or 'in an hour': the other tools need an explicit date and cannot guess one.

### `search_station` (~88 tokens)

Find railway stations by name and return their codes. Names are frequently ambiguous — 'Milano' matches twenty-six stations, and many towns have both a national station and a separate Nord one served by different trains — so check here first when the user gave a name rather than a code.

Input parameters:

- `name` (string, required): Full or partial station name, for example 'milano centrale' or 'como'.

### `get_arrivals` (~100 tokens)

Arrival board for a station: time, train, origin, delay and platform.

Input parameters:

- `at` (string|null): When, as 'HH:mm' for today or ISO '2026-08-29T09:00' for another day.
- `limit` (integer): How many rows to return. Default 10.
- `station` (string, required): Station code such as 'S01136', or a name such as 'milano centrale'.

### `get_train` (~75 tokens)

Live status of a single train, stop by stop: delay, platforms, cancellations and crowding where published. Asks Trenord first and falls back to ViaggiaTreno, because neither source covers every line on its own.

Input parameters:

- `trainNumber` (string, required): Train number, for example '4307' or '11866'.

### `find_connection` (~128 tokens)

Direct trains between two stations, with departure, arrival, duration, delay and platform. Only direct services: this reads live boards rather than a timetable, so journeys needing a change are not found and the answer says so.

Input parameters:

- `at` (string|null): When to leave, as 'HH:mm' for today or ISO '2026-08-29T09:00'. Defaults to now.
- `from` (string, required): Origin station code or name.
- `limit` (integer): How many connections to return. Default 5.
- `to` (string, required): Destination station code or name.

### `find_journey` (~208 tokens)

Full journey between two places, changes included. Use this rather than find_connection whenever the two places are not obviously on the same line, or when a change may be needed. Plans from the Lombardy regional timetable, which reaches the Swiss stations on the cross-border lines, and falls back to Swiss open data for anywhere it does not cover. Returns timetabled times: pair it with get_departures or get_train for delays, platforms and cancellations.

Input parameters:

- `at` (string|null): When to leave, as 'HH:mm' for today or ISO '2026-08-29T09:00'. Defaults to now.
- `from` (string, required): Origin, as a place or station name: 'Milano Centrale', 'Malpensa', 'Como'.
- `limit` (integer): How many journeys to return. Default 3.
- `to` (string, required): Destination, as a place or station name. May be in Switzerland: 'Lugano', 'Chiasso'.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/denisraimondi-lombardia-trains/lombardiatrains-mcp#diagnostics

## Score history

- 2026-09-20: 84
- 2026-09-19: 84
- 2026-09-18: 83
- 2026-09-17: 83
- 2026-09-16: 83
- 2026-09-15: 82
- 2026-09-14: 82
- 2026-09-13: 81
- 2026-09-12: 81
- 2026-09-11: 80
- 2026-09-10: 80
- 2026-09-09: 79
- 2026-09-08: 79
- 2026-09-07: 78
- 2026-09-06: 78
- 2026-09-05: 77
- 2026-09-04: 77
- 2026-09-03: 76
- 2026-09-02: 76
- 2026-09-01: 76
- 2026-08-31: 72
- 2026-08-30: 72
- 2026-08-29: 72
- 2026-08-28: 72
- 2026-08-27: 72
- 2026-08-26: 72
- 2026-08-25: 70
- 2026-08-24: 55

## Common questions

### What is the Lombardia Trains MCP server?

Lombardia Trains is an MCP server listed in the public MCP registry as io.github.DenisRaimondi/lombardia-trains. Live Lombardy train boards, delays, platforms, and journey planning. No API key. This page covers its NuGet package (LombardiaTrains.Mcp).

### Is the Lombardia Trains MCP server safe to use?

Lombardia Trains scores 84 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Lombardia Trains MCP server expose?

Lombardia Trains exposes 7 tools: get_departures, now, search_station, get_arrivals, get_train, and 2 more. Their descriptions and schemas cost roughly 799 tokens of context every time the server is loaded.

### Is the Lombardia Trains MCP server still maintained?

Lombardia Trains is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Lombardia Trains MCP server under?

Lombardia Trains declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- NuGet package: https://www.nuget.org/packages/LombardiaTrains.Mcp
- Socket report: https://socket.dev/nuget/package/LombardiaTrains.Mcp
- Repository: https://github.com/DenisRaimondi/lombardia-trains-mcp
- Changelog RSS feed: https://verifymcp.io/servers/denisraimondi-lombardia-trains/lombardiatrains-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/denisraimondi-lombardia-trains/lombardiatrains-mcp.json
- HTML version of this page: https://verifymcp.io/servers/denisraimondi-lombardia-trains/lombardiatrains-mcp
