The Cabin Class

For AI assistants

Ask your assistant about our cabins

The Cabin Class runs an MCP server, so an AI assistant can search the directory directly: every published cabin on premium trains, river ships and expedition ships, with its score out of 10, the score breakdown, the fare as quoted with the date we read it, and the sources behind each fact. Every answer carries a link back to the cabin’s page here. It is free, needs no account and reads only what is already published on this site.

Server URL https://thecabinclass.com/mcp

Streamable HTTP, no sign-in. Requests are rate-limited per connection.

Add it to your assistant

Menus change from time to time; if yours differ, look for “custom connector” or “MCP server”.

Claude (claude.ai and the desktop app)

  1. Open Settings, then Connectors.
  2. Choose Add custom connector.
  3. Name it The Cabin Class and paste https://thecabinclass.com/mcp as the URL. No authentication is needed.

Claude Code

claude mcp add --transport http cabinclass https://thecabinclass.com/mcp

ChatGPT

  1. Open Settings, then Apps & Connectors, then Advanced settings, and turn on Developer mode.
  2. Back in Apps & Connectors, choose Create.
  3. Name it The Cabin Class, paste https://thecabinclass.com/mcp as the MCP server URL and choose No authentication.

Grok

Through the xAI API, add it as a remote MCP tool:

"tools": [{ "type": "mcp", "server_url": "https://thecabinclass.com/mcp", "server_label": "cabinclass" }]

Anything else that speaks MCP

Point it at https://thecabinclass.com/mcp over streamable HTTP. The server is stateless: each POST is one JSON-RPC 2.0 message and gets one JSON reply. The same data is in /directory.json; see the API notes.

Things to ask

The tools

search_cabins

Search the scored cabins on premium trains, river ships and expedition ships. Filters combine. Ship fares are per person per night; rail fares are per person per journey, so the two fare filters never mix. Returns score, fare as quoted with its date, and the cabin's URL.

mode
Mode: "rail" (trains; "train" works too), "river" (river ships) or "expedition" (expedition ships).
query
Free text: train, ship, cabin, operator, route, region or river.
region
Region the train runs in or the ship sails in.
max_fare_per_night
Ships only: highest lowest-fare per person per night, in `currency`. Leaves out trains and cabins without a per-night fare.
max_fare_per_journey
Trains only: highest lowest-fare per person for the journey, in `currency`. Leaves out ships and cabins without a per-person fare.
currency
ISO 4217 code the fare filters are in (default USD). Fares quoted in another currency are compared through ECB reference rates (approximate).
min_score
Lowest overall score out of 10.
sort
Sort order: "score" (default, highest first), "fare" (lowest first) or "name".
limit
Most results to return (default 20).

get_cabin

One cabin in full: overall score and the five-part breakdown with notes, the fare as quoted with its date and sources, facts with sources, reader notes, and the link to its page.

id (required)
Cabin id from search_cabins (e.g. "glacier-express--excellence-class"), or its thecabinclass.com URL.

get_train_or_ship

One train or ship: operator, regions, summary, sourced facts and its scored cabins, with links.

id (required)
Train or ship id (e.g. "glacier-express"), or its thecabinclass.com URL.

list_entries

Every train and ship in the directory, with operator, regions, cabin count, best score and URL.

kind
Only trains or only ships.
mode
Mode: "rail" (trains; "train" works too), "river" (river ships) or "expedition" (expedition ships).

What it serves, and what it doesn’t

Know a train or ship we should look at? Suggest one.