next_trainsLABSCO SUMMARY
It reads the published timetable, and it is forgiving about how you name a station.
Answers come from the GTFS files Caltrain publishes — stops, trips, stop times and the service calendar — so this is the schedule, not live train positions. The station matching is what makes it usable in conversation: sf resolves to San Francisco and diridon to San Jose Diridon without you spelling either out.
What it is
A Caltrain schedule server built on Caltrain's own GTFS feed. It answers departure questions between any two stations on the line.
What you get
- Upcoming departures between two stations — next_trains, with an optional when_iso for a specific time
- All 31 Caltrain stations, from San Francisco to Gilroy — list_stations
- Forgiving station matching: full names, short names, abbreviations like sf, and partial matches like diridon
- Weekday and weekend service handled through the GTFS calendar
Requirements
Nothing beyond an MCP client: uvx caltrain-mcp installs and runs the published package. Running from source instead needs uv sync and a GTFS fetch through scripts/fetch_gtfs.py.
Setup effort
One command — uvx caltrain-mcp
USE CASES
Deciding when to leave
Ask for the next departures between where you are and where you are going.
Planning a trip for a specific time
Pass the time you want to travel and get the departures around it.
Checking which stations exist
List all 31 stops before guessing at a name.
2 tools
Listed in project docs. Your client may show a different list.
list_stationsBEFORE YOU INSTALL
What to know first
Tools you get
2 tools named in the project's documentation.
Requires
uvx on PATH
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
uvx caltrain-mcpMCP Clients
Claude Desktop
{
"mcpServers": {
"caltrain": {
"command": "uvx",
"args": [
"caltrain-mcp"
]
}
}
}