Koleo MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Koleo MCP Server Find connections from Krakow to Warsaw for tomorrow morning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
koleo-mcp
MCP server for the Koleo Polish train timetable API.
It exposes 14 tools you can call from Claude Desktop (or any MCP client) to search stations, departures/arrivals, connections, train routes, seat data, and realtime timetable.
Requirements
Python 3.12+
pip
Related MCP server: mcp-national-rail
Quick start (copy/paste)
git clone https://github.com/MBratkowski/koleo-mcp.git
cd koleo-mcp
python3 -m pip install -e .
python3 server.pyIf server.py starts without crashing, the server is ready.
How to test the server (easy mode)
Run the MCP inspector:
mcp dev server.pyThen in the inspector UI call these tools:
tool_search_stationswith:query:Krakow
tool_get_departureswith:station:Krakow Glowny
tool_search_connectionswith:start:Krakowend:Warszawalength:3
tool_get_brandstool_get_realtime_timetablewith:train_id: any integer (for example12345)
Each tool returns JSON with at least:
datasummarykoleo_url
On errors you also get an error key.
How to use with Claude Desktop
Add this to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"koleo": {
"command": "python3",
"args": ["/absolute/path/to/koleo-mcp/server.py"]
}
}
}Replace /absolute/path/to/koleo-mcp/server.py with your real path.
Restart Claude Desktop.
Authentication (optional, needed for realtime tool)
Create ~/.config/koleo-mcp/config.json:
{
"email": "your@email.com",
"password": "yourpassword"
}You can override the config path with KOLEO_MCP_CONFIG.
If auth is missing, tool_get_realtime_timetable returns a friendly auth_required error.
Available tools
Tool | Description |
| Search stations by name |
| Station address, opening hours, facilities |
| Departures from a station |
| Arrivals at a station |
| All trains (departures + arrivals) at a station |
| Find connections A->B |
| Train route by brand + number |
| Train route by Koleo train ID |
| Operating dates for a train |
| Live timetable (auth required) |
| Seat occupancy stats on a route |
| Raw seat map by connection ID |
| List train brands |
| List carriers |
Troubleshooting
ModuleNotFoundError: runpython3 -m pip install -e .again.SSL certificate errors on macOS/Python.org builds: install certificates for your Python installation and retry.
auth_requiredfor realtime tool: add~/.config/koleo-mcp/config.jsonas shown above.
Available Tools
14 toolstool_get_all_trainsA
Get all trains (both departures and arrivals) at a station, sorted by time.
Inputs: station (required), date. Returns: result
tool_get_arrivalsC
Get upcoming train arrivals at a station.
Inputs: station (required), date. Returns: result
tool_get_brandsB
List all available train brands/operators (IC, REG, EIC, KM, etc.).
Inputs: no named parameters. Returns: result
tool_get_carriersB
List all train carriers (PKP Intercity, POLREGIO, etc.).
Inputs: no named parameters. Returns: result
tool_get_departuresC
Get upcoming train departures from a station.
Inputs: station (required), date. Returns: result
tool_get_realtime_timetableB
Get realtime timetable for a train, including actual vs scheduled times. Requires authentication in config.
Inputs: train_id (required), operating_day. Returns: result
tool_get_seat_availabilityC
Get raw seat availability for a connection by connection_id, train_nr, and place_type.
Inputs: connection_id (required), train_nr (required), place_type (required). Returns: result
tool_get_seat_statsC
Check seat occupancy statistics for a train on a given route segment.
Inputs: brand (required), train_number (required), stations (required), date. Returns: result
tool_get_station_infoA
Get detailed info about a station: address, opening hours, available facilities.
Inputs: station (required). Returns: result
tool_get_train_by_idB
Get a train's route and stops by its internal Koleo ID.
Inputs: train_id (required). Returns: result
tool_get_train_calendarC
Get all dates when a specific train runs (operating calendar).
Inputs: brand (required), train_number (required). Returns: result
tool_get_train_routeC
Get the full route and stop schedule for a train by brand and number.
Inputs: brand (required), train_number (required), date, closest. Returns: result
tool_search_connectionsC
Search for train connections between two stations.
Inputs: start (required), end (required), date, brands, +3 more. Returns: result
tool_search_stationsB
Search for train stations by name. Returns station IDs, slugs, and types.
Inputs: query (required), type, country. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Every tool has a clearly distinct purpose with no ambiguity. For example, tool_get_arrivals and tool_get_departures are clearly separated by direction, while tool_get_train_by_id and tool_get_train_route target different lookup methods. The descriptions reinforce these distinctions, making misselection unlikely.
All tool names follow a consistent verb_noun pattern with 'tool_get_' or 'tool_search_' prefixes, followed by descriptive nouns. This uniformity (e.g., tool_get_all_trains, tool_search_connections) makes the set predictable and easy to navigate, with no deviations in style.
With 14 tools, the count is well-scoped for a train information server, covering core operations like station lookups, train schedules, seat availability, and connections. Each tool earns its place without feeling bloated or insufficient for the domain.
The tool surface provides complete coverage for train-related queries, including CRUD-like operations (e.g., get, search), real-time data, seat information, and station details. There are no obvious gaps; agents can handle typical workflows from planning to real-time updates without dead ends.
Maintenance
Related MCP Connectors
MCP server for China Railway 12306 ticket availability: schedules and seats by Chinese station name.
MCP server for China Railway 12306 ticket availability: schedules and seats by Chinese station name.
26 authless MCP servers: flights, stays, maps, shopping, web search, Polish web (Allegro, OLX, NBP).
Skiplagged MCP Server for flight search, hotel booking, and travel planning
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that enables AI assistants to interact with the Netherlands Railways (NS) API for route planning, pricing, and real-time departure information. It provides tools for searching stations, planning trips with connections, and viewing real-time departure boards.31MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server to retrieve train schedules from National Rail using the Realtime Trains API, providing tools for live departures and arrivals.7MIT
- AlicenseAqualityBmaintenanceAn MCP server for Swiss Federal Railways (SBB) open data, enabling AI models to query real-time disruptions, passenger frequencies, station details, and more without an API key.933 PyPI2MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server for real-time Italian railway data, enabling natural language queries about train schedules, delays, departures, arrivals, and live tracking via the Viaggiatreno API.7MIT