Polish train, bus & city transit timetables: journeys, departures, live delays, fares
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Which carriers/feeds are loaded, their validity dates, licences and required attribution; which feeds can be enabled.
This tool takes no arguments.
Which carriers/feeds are loaded, their validity dates, licences and required attribution; which feeds can be enabled.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Departure (or arrival) board for a station or stop: time, live delay, train/bus line, platform, destination and main stops. Optionally only services going towards a given place.
| Argument | Type | Description |
|---|---|---|
| date | string | Date: "YYYY-MM-DD", "today", "tomorrow", a weekday ("friday", "piątek") or "DD.MM". Default: today. |
| live | boolean | |
| time | string | Local time "HH:MM" (Europe/Warsaw). Default: now (today) or 04:00 (other days). |
| limit | integer | Max rows (default 30). |
| modes | array | Restrict to these modes, e.g. ["train"] or ["train","bus"]. Default: all loaded. |
| station* | string | Station or stop name, e.g. 'Kraków Główny', 'Zbąszyń' |
| arrivals | boolean | Show arrivals instead of departures. |
| direction | string | Only services that later call at this place, e.g. 'Poznań'. |
| duration_minutes | integer | Time window (default 120). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"station"
],
"properties": {
"date": {
"type": "string",
"description": "Date: \"YYYY-MM-DD\", \"today\", \"tomorrow\", a weekday (\"friday\", \"piątek\") or \"DD.MM\". Default: today."
},
"live": {
"type": "boolean"
},
"time": {
"type": "string",
"description": "Local time \"HH:MM\" (Europe/Warsaw). Default: now (today) or 04:00 (other days)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max rows (default 30)."
},
"modes": {
"type": "array",
"items": {
"enum": [
"train",
"bus",
"tram",
"metro",
"ferry",
"all"
],
"type": "string"
},
"description": "Restrict to these modes, e.g. [\"train\"] or [\"train\",\"bus\"]. Default: all loaded."
},
"station": {
"type": "string",
"description": "Station or stop name, e.g. 'Kraków Główny', 'Zbąszyń'"
},
"arrivals": {
"type": "boolean",
"description": "Show arrivals instead of departures."
},
"direction": {
"type": "string",
"description": "Only services that later call at this place, e.g. 'Poznań'."
},
"duration_minutes": {
"type": "integer",
"maximum": 1440,
"minimum": 10,
"description": "Time window (default 120)."
}
},
"additionalProperties": false
}Search stations/stops by name (fuzzy, diacritics optional). Shows modes, coordinates and source feeds.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| modes | array | Restrict to these modes, e.g. ["train"] or ["train","bus"]. Default: all loaded. |
| query* | string | Name or part of it, e.g. 'warszawa centr', 'Szklarska' |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"modes": {
"type": "array",
"items": {
"enum": [
"train",
"bus",
"tram",
"metro",
"ferry",
"all"
],
"type": "string"
},
"description": "Restrict to these modes, e.g. [\"train\"] or [\"train\",\"bus\"]. Default: all loaded."
},
"query": {
"type": "string",
"description": "Name or part of it, e.g. 'warszawa centr', 'Szklarska'"
}
},
"additionalProperties": false
}Stations and stops within a radius of coordinates (e.g. after geocoding an address).
| Argument | Type | Description |
|---|---|---|
| lat* | number | |
| lon* | number | |
| modes | array | Restrict to these modes, e.g. ["train"] or ["train","bus"]. Default: all loaded. |
| radius_m | integer | Default 800 m |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"maximum": 56,
"minimum": 48
},
"lon": {
"type": "number",
"maximum": 25,
"minimum": 13
},
"modes": {
"type": "array",
"items": {
"enum": [
"train",
"bus",
"tram",
"metro",
"ferry",
"all"
],
"type": "string"
},
"description": "Restrict to these modes, e.g. [\"train\"] or [\"train\",\"bus\"]. Default: all loaded."
},
"radius_m": {
"type": "integer",
"maximum": 5000,
"minimum": 50,
"description": "Default 800 m"
}
},
"additionalProperties": false
}Find connections between two places in Poland, including changes between trains and buses (PKS). from/to accept a station name ("Poznań Główny"), a town ("Zakopane" = all its stops) or coordinates "52.40,16.91". Returns several options with times, platforms, operators, changes and live delays (today).
| Argument | Type | Description |
|---|---|---|
| to* | string | Destination: station, town or 'lat,lon' |
| date | string | Date: "YYYY-MM-DD", "today", "tomorrow", a weekday ("friday", "piątek") or "DD.MM". Default: today. |
| from* | string | Origin: station, town or 'lat,lon' |
| live | boolean | Include live delays (default true). |
| time | string | Local time "HH:MM" (Europe/Warsaw). Default: now (today) or 04:00 (other days). |
| modes | array | Restrict to these modes, e.g. ["train"] or ["train","bus"]. Default: all loaded. |
| results | integer | Number of options (default 5). |
| arrive_by | boolean | If true, `time` is the latest arrival time instead of the earliest departure. |
Current and upcoming disruptions on Polish railway lines from PKP PLK: track closures, replacement buses (ZKA), cancellations, diversions. Optional `query` filters by station name or text (e.g. "Kraków", "ZKA"). plan_journey, departures and trip_details already flag affected trains.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results (default 15) |
| query | string | Station name or text to filter by |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Max results (default 15)"
},
"query": {
"type": "string",
"description": "Station name or text to filter by"
}
},
"additionalProperties": false
}All stops of one train or bus run with times, platforms and live delays/cancellations. Identify it by `ref` (from plan_journey/departures) or by train number/name (e.g. '3510', 'IC 3510', 'Podhalanin') plus date.
| Argument | Type | Description |
|---|---|---|
| ref | string | Trip ref like 'polish-trains:PLK_IC_2026_123@2026-10-20' |
| date | string | Date: "YYYY-MM-DD", "today", "tomorrow", a weekday ("friday", "piątek") or "DD.MM". Default: today. |
| live | boolean | |
| train | string | Train number or name |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"ref": {
"type": "string",
"description": "Trip ref like 'polish-trains:PLK_IC_2026_123@2026-10-20'"
},
"date": {
"type": "string",
"description": "Date: \"YYYY-MM-DD\", \"today\", \"tomorrow\", a weekday (\"friday\", \"piątek\") or \"DD.MM\". Default: today."
},
"live": {
"type": "boolean"
},
"train": {
"type": "string",
"description": "Train number or name"
}
},
"additionalProperties": false
}Official IMGW-PIB meteorological warnings (storm, wind, frost, heat, snow, ice...) and flood warnings in Poland. With `place` (town, station or "lat,lon"): warnings for its county (powiat); without: national overview. plan_journey already adds warnings for the start and destination.
| Argument | Type | Description |
|---|---|---|
| place | string | Town, station or 'lat,lon' |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"place": {
"type": "string",
"description": "Town, station or 'lat,lon'"
}
},
"additionalProperties": false
}| max_transfers | integer | Maximum number of changes (default 3, 0 = direct only). |
| min_transfer_minutes | number | Minimum time for a change (default 4). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "Destination: station, town or 'lat,lon'"
},
"date": {
"type": "string",
"description": "Date: \"YYYY-MM-DD\", \"today\", \"tomorrow\", a weekday (\"friday\", \"piątek\") or \"DD.MM\". Default: today."
},
"from": {
"type": "string",
"description": "Origin: station, town or 'lat,lon'"
},
"live": {
"type": "boolean",
"description": "Include live delays (default true)."
},
"time": {
"type": "string",
"description": "Local time \"HH:MM\" (Europe/Warsaw). Default: now (today) or 04:00 (other days)."
},
"modes": {
"type": "array",
"items": {
"enum": [
"train",
"bus",
"tram",
"metro",
"ferry",
"all"
],
"type": "string"
},
"description": "Restrict to these modes, e.g. [\"train\"] or [\"train\",\"bus\"]. Default: all loaded."
},
"results": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Number of options (default 5)."
},
"arrive_by": {
"type": "boolean",
"description": "If true, `time` is the latest arrival time instead of the earliest departure."
},
"max_transfers": {
"type": "integer",
"maximum": 6,
"minimum": 0,
"description": "Maximum number of changes (default 3, 0 = direct only)."
},
"min_transfer_minutes": {
"type": "number",
"maximum": 60,
"minimum": 0,
"description": "Minimum time for a change (default 4)."
}
},
"additionalProperties": false
}