# RZD Tickets MCP [Health: Active]

**Category:** 🚆 Travel & Transportation  
**Repository:** https://github.com/ex3lite/mcp_rzd_tickets  
**GitHub Stars:** 2  
**npm Downloads (last month):** 122  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/rzd-tickets-mcp

## Description
Read-only MCP server for RZD trains, cars, seats, adjacent pairs and car photos.

## Tools
Capabilities this server exposes over MCP:

- **rzd_station_suggest** — Find RZD station nodeId and expressCode by station name.
- **rzd_search_trains** — Return train-level availability, prices, car groups and checkout URL for a route/date.
- **rzd_train_cars** — Drill into CarPricing for selected trains and return cars, seat stats, lower/upper places, and adjacent pairs.
- **rzd_find_places** — Search trains and return only matches by seat/car filters. Use requirePair=true for adjacent lower+upper places.
- **rzd_checkout_url** — Build the official RZD search/checkout handoff URL. This tool does not book or pay.
- **rzd_parse_search_url** — Extract route nodeIds, date and passengers from an official ticket.rzd.ru search URL.
- **rzd_service_classes** — Explain how to read open-ended RZD ServiceClass codes. This is a decoding guide, not a closed enum.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "rzd-tickets-mcp": {
    "command": "npx",
    "args": ["-y","mcp-rzd-tickets"],
    "env": {
      "RZD_PROXY_URL": "",
      "RZD_TIMEOUT_MS": ""
    }
  }
}
```

**Requires environment variables:** `RZD_PROXY_URL`, `RZD_TIMEOUT_MS` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What RZD Tickets MCP MCP server does

RZD Tickets MCP MCP server exposes read-only access to train pricing and availability data from the RZD ticket website. It helps an agent identify stations, find trains for a route and date, inspect carriage-level availability, and return matching seats according to practical constraints.

The server can distinguish lower, upper, side, and other places, look for a lower-plus-upper pair in one compartment, apply price and minimum-seat filters, and optionally include accessible places. It also returns the official RZD URL for completing the process manually. No account access or transaction operation is provided.

## Tools and capabilities

Available MCP tools include:

- `rzd_station_suggest` finds a station’s `nodeId` and `expressCode` from its name.
- `rzd_search_trains` lists matching trains, prices, carriage groups, and an RZD link.
- `rzd_train_cars` retrieves carriage pricing details, seat information, upper/lower statistics, and image metadata.
- `rzd_find_places` returns only seats that satisfy the supplied filters.
- `rzd_checkout_url` creates an official RZD URL for manual checkout.
- `rzd_parse_search_url` reads parameters from an RZD search URL.
- `rzd_service_classes` explains service-class codes using information returned by RZD.

Search filters can include train numbers, departure-time windows, carriage type such as `coupe` or `platz`, raw service codes, seat type, pair requirements, side-seat and accessible-seat inclusion, maximum price, and minimum available places. Image retrieval can be requested when RZD reports that a carriage has images.

## How it works

RZD Tickets MCP MCP server runs as an MCP stdio process and queries the read-only pricing endpoints used by the RZD web application. It uses browser-like request headers and reports upstream errors rather than hiding changes in the RZD response format.

Carriage image data includes availability flags, scheme and carrier information, and thumbnail or full-size URLs when the gallery endpoint responds. RZD does not provide images for every carriage, so the result can state why images were unavailable instead of fabricating them.

Service classes remain raw RZD codes rather than a fixed local enum. Results may include a title, tags, an official transcript, and a display description; agents should retain the original code and rely on the transcript when an exact interpretation is needed.

## Setup and configuration

For a local checkout, install dependencies and build the project:

```bash
git clone git@github.com:ex3lite/mcp_rzd_tickets.git
cd mcp_rzd_tickets
npm install
npm run build
node dist/mcp.js
```

The published npm package can be started with `npx -y mcp-rzd-tickets`, which avoids cloning and building the repository. The server can be registered in Claude Desktop, Cursor, Windsurf, Cline, Roo Code, Continue, Claude Code, or Codex using each client’s MCP configuration. A local build can instead launch `node` with the absolute path to `dist/mcp.js`.

`RZD_TIMEOUT_MS` controls request timeout and defaults to `20000`. `RZD_PROXY_URL` optionally selects an HTTP, HTTPS, SOCKS4, or SOCKS5 proxy. Without that variable, requests go directly to RZD.

## Limitations and notes

RZD Tickets MCP MCP server is read-only. It does not authenticate, reserve tickets, create a hold, process payment, cancel an order, or change an RZD personal account. Booking must be completed by the user through the returned official link.

The upstream RZD web endpoints are private implementation details and may change without notice. Availability, pricing, service-class text, and wagon photos depend on what RZD returns at request time. Photo galleries are not guaranteed for every carriage, and a changed RZD payload may cause a visible tool error.

_Full upstream README: https://allmcps.com/mcp/rzd-tickets-mcp/readme_

