sbb-mcp
This server connects AI assistants to Swiss Federal Railways (SBB) data, enabling train schedule lookups, ticket pricing, and direct ticket purchasing.
search_stations: Find Swiss train stations, addresses, or points of interest by name.search_connections: Look up train connections between two stations, returning schedules with departure/arrival times, duration, and transfers.get_trip_details: Retrieve detailed info about a specific connection, including intermediate stops, platforms, and occupancy.get_more_connections: Load earlier or later trains for a previously searched route.get_prices: Fetch ticket prices with Half-Fare (Halbtax) and GA travelcard discounts, supporting multi-traveler/family pricing.get_ticket_link: Generate a direct purchase link to SBB.ch (or the SBB app on mobile), with reduction cards and family travelers applied automatically.save_profile/get_profile: Store and retrieve a user's local travel profile (name, date of birth, reduction card) for personalization.list_travelers: List travelers in a SwissTrip account for family pricing (requires aSWISSTRIP_TOKEN).
sbb-mcp
This package is now an alias for
swisstrip-mcp. New users should installswisstrip-mcpdirectly: it is the canonical SwissTrip MCP client. Thesbb-mcpname continues to work — it spawnsswisstrip-mcpas a child process — so existing integrations don't break.
Independent MCP client by SwissTrip — connects AI assistants to Swiss Federal Railways (SBB / CFF / FFS) data: train schedules, station search, ticket prices, and direct ticket purchase links via SBB's SMAPI.
Thin client. All SBB API access, ticketing, and profile sync run on the hosted SwissTrip server at https://mcp.swisstrip.app/mcp.
Install (recommended: use the canonical name)
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"swisstrip": {
"command": "npx",
"args": ["-y", "swisstrip-mcp"]
}
}
}Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"swisstrip": {
"command": "npx",
"args": ["-y", "swisstrip-mcp"]
}
}
}ChatGPT (Plus / Pro / Business / Enterprise with Developer Mode)
No install required. Add a custom connector pointing at:
https://mcp.swisstrip.app/mcpExisting sbb-mcp configurations
Already running npx -y sbb-mcp? Nothing changes — it still works and forwards to the same hosted service. To migrate to the canonical name, swap sbb-mcp → swisstrip-mcp in your client config when convenient.
Related MCP server: swiss-rail-mcp
Tools
search_stations— find Swiss stations, addresses, and points of interestsearch_connections— train schedules between two stationsget_trip_details— detailed trip with all intermediate stopsget_more_connections— earlier or later trains for a previous searchget_prices— ticket prices with Halbtax / GA discountsget_ticket_link— direct purchase link to SBB.chsave_profile/get_profile— save your travel profile locallylist_travelers— multi-traveler family pricing (requiresSWISSTRIP_TOKEN)
Optional configuration
Environment variable | Purpose |
| Sync your traveler profile from your SwissTrip account. Mint at https://swisstrip.app/settings/developer. |
| Override the hosted server URL. Default: |
| Same as above (legacy name, still supported). |
Why was this renamed?
sbb-mcp started as the canonical npm package. To protect against future trademark conflicts (the SBB acronym belongs to Schweizerische Bundesbahnen) the canonical implementation now lives at swisstrip-mcp, which is registered under the SwissTrip™ trademark. sbb-mcp and 8 other npm names (sbb-mcp-official, sbb-cff-ffs-mcp, swiss-rail-mcp, swiss-railways-mcp, swiss-train-mcp, swisstrip, swisstrip-ai, swisstrip-server) are 1-line spawners that depend on swisstrip-mcp.
This means: if any one of the SBB-themed names ever needs to be transferred or removed, every existing integration keeps running unchanged because they all forward to the canonical swisstrip-mcp.
License
Proprietary. See LICENSE. © 2026 SwissTrip.
For commercial licensing inquiries: fabsforward2@gmail.com.
Available Tools
9 toolsget_more_connectionsGet More ConnectionsARead-onlyIdempotent
Load earlier or later train connections for a previous search. Use the collection ID from search_connections results.
Inputs: collection_id (required), direction (required).
get_pricesGet PricesARead-onlyIdempotent
Get ticket prices for one or more train connections. Supports Half-Fare card (Halbtax) and GA travelcard discounts. When connected to SwissTrip (SWISSTRIP_TOKEN), pass traveler_names to get family pricing for multiple travelers.
Inputs: trip_ids (required), traveler_type, reduction_card, traveler_names.
get_profileGet Travel ProfileARead-onlyIdempotent
Read the user's saved travel profile. Check this before showing prices to use correct reduction card. If no profile exists, ask the user for their details.
Inputs: no named parameters.
get_ticket_linkGet Ticket LinkARead-only
Get a direct purchase link to buy a train ticket on SBB.ch. Only call this when the user wants to buy a specific ticket. On mobile with SBB app installed, opens directly in the app with Halbtax/GA applied automatically. Pass traveler_names for family tickets when connected to SwissTrip.
Inputs: trip_id (required), from_name (required), from_id (required), to_name (required), +6 more.
get_trip_detailsGet Trip DetailsARead-onlyIdempotent
Get detailed information about a specific train connection including all intermediate stops, platforms, and occupancy. Use a trip ID from search_connections results.
Inputs: trip_id (required).
list_travelersList TravelersARead-onlyIdempotent
List all travelers in the user's SwissTrip account (self, partner, kids). Each traveler has their own reduction card. Use their names with get_prices for family trip pricing. Requires SWISSTRIP_TOKEN.
Inputs: no named parameters.
save_profileSave Travel ProfileAIdempotent
Save the user's travel profile locally for future sessions. Call this after asking the user for their details (name, date of birth, reduction card). Data is stored at ~/.sbb-mcp/profile.json.
Inputs: first_name, last_name, date_of_birth, reduction_card, +1 more.
search_connectionsSearch ConnectionsARead-onlyIdempotent
Find train connections between two Swiss stations. Returns schedules with departure/arrival times, duration, transfers, and trip IDs for pricing.
Inputs: from (required), to (required), date, time, +1 more.
search_stationsSearch StationsARead-onlyIdempotent
Search for Swiss train stations, addresses, or points of interest by name. Returns station IDs needed for other tools.
Inputs: query (required), limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Each tool targets a distinct aspect: station search, connection search, trip details, pricing, ticket link, loading more connections, profile read/save, and traveler listing. No overlapping purposes.
All tools follow a consistent verb_noun pattern with underscores (e.g., search_connections, get_prices, list_travelers), making them predictable and easy to navigate.
9 tools is well-scoped for a Swiss railway assistant, covering search, planning, pricing, purchase, and profile management without bloat or deficiency.
Covers core workflows: station search, connection search, trip details, pricing, purchase link, and profile. Minor gap in real-time delay information, but overall complete for travel planning and purchasing.
Maintenance
Related MCP Connectors
Canonical SwissTrip MCP — independent SBB/CFF/FFS schedules, prices, and ticket links by SwissTrip.
Swiss Transport MCP — wraps Transport Open Data API (free, no auth)
Swiss trains and public transport: live connections and departures. Official data, free, no key.
iRail MCP — Belgian rail (SNCB/NMBS) real-time via the community iRail API (https://api.irail.be…
Related MCP Servers
- AlicenseBqualityBmaintenanceSwiss open data MCP server — transport, weather, geodata, companies, etc,. Zero API keys.94416 npm27MIT
- AlicenseAqualityDmaintenanceA zero-authentication MCP server for Swiss public transport, enabling users to query train connections, disruptions, station facilities, and plan journeys using natural language.121MIT
- AlicenseAqualityDmaintenanceMCP server for Swiss public transport — connections, stationboards, real-time delays, and direct booking links for SBB.440 PyPI1MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying Swiss public transport data (stations, departures, connections) from the Transport Open Data API via natural language through an MCP gateway.312 npmMIT