Data Collection
lad.lviv.ua
Provides real-time and static public transit data including arrivals, routes, vehicle positions, and stop geometry.
ENDPOINT 1
https://api.lad.lviv.ua/mcp
MCP server metadata
- Name
- com.lad.lviv/timetable-api
- Version
- 1.3.5
Lviv, Ukraine public transport assistant. Read-only. No authentication required. ## Tool selection - User asks about arrivals or "when is the next bus/tram at stop X" → `get_stop_realtime` - User asks "where is route X right now" or wants live vehicle positions on a route → `get_route_realtime` - User asks which stops a route serves, wants a route map, or asks about departure times → `get_route_static` - User needs route polylines overlaid on an existing map (no live data needed) → `get_stop_geometry` - User provides an address or coordinates instead of a stop ID → `get_stops_around_location` first, then use the returned stop IDs - User asks "what vehicles are near me" or wants live vehicles near a location → `get_nearby_vehicles` - User wants to track a specific vehicle by ID → `get_vehicle_info` ## Input conventions - Stop IDs are **numeric codes** printed on physical stop signage (e.g. 707). Accept both integer and digits-only string. - Route names are **short names** as shown on vehicles and stops (e.g. "T30", "32A"). Numeric external IDs are also accepted. - Never guess a stop ID from a place name — always call `get_stops_around_location` first when only an address or coordinates are given. ## UI contract Every tool response is a JSON object with three top-level keys: - `view` — always `"transit_realtime"` - `data` — the raw structured payload (use for text summaries and extraction) - `ui_blocks` — ordered rendering hints for map-capable clients; process in array order Block types: - `map` — render a map centred on `data.center [lat, lng]` at `data.zoom`. Plot `stops` as markers, `vehicles` as moving icons with `bearing`, `polylines` as route shapes. - `arrival_list` — render arrivals sorted by `arrival_minutes` ascending. Show `route`, `direction`, `vehicle_type`, and ETA. Vehicles with no ETA have `eta_status: "unassigned"`. Consistency rule: every vehicle shown on a map must either match an arrival in the list (by `vehicle_id`) or carry `eta_status: "unassigned"`. ## Data caveats - Live positions and ETAs come from upstream GTFS-RT feeds; occasional gaps or stale positions are expected. - `get_route_static` departure times (`departures` and `schedule.workday`/`schedule.weekend`) are only populated for direction 0 (outbound, first stop). - `direction` in `get_route_realtime` vehicles corresponds to the index into `get_route_static`'s `stops` array (0 = outbound, 1 = return).
Known tools 7
get_stop_realtimeReturns live arrivals and vehicle positions for a stop, producing both a map UI block and a structured arrival list.
Inferred read-onlyget_route_staticReturns static route metadata: short and long name, vehicle type, brand colour, ordered stop lists for both directions, and route polylines (shapes) for map rendering.
Inferred read-onlyget_route_realtimeReturns live positions for all vehicles currently running on a route, optimised for map rendering.
Inferred read-onlyget_stop_geometryReturns static map context for a stop: its marker and polylines for every route that serves it.
Inferred read-onlyget_stops_around_locationDiscovers transit stops near a geographic point, returning each stop's numeric code, name, coordinates, and walking distance.
Inferred read-onlyget_nearby_vehiclesReturns live positions for all transit vehicles within 1 km of given coordinates.
Inferred read-onlyget_vehicle_infoReturns full details for a specific transit vehicle by its ID: current position, bearing, route, license plate, direction, and upcoming stop arrivals.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.com-lad-lviv-timetable-api]
url = "https://api.lad.lviv.ua/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"com-lad-lviv-timetable-api": {
"type": "http",
"url": "https://api.lad.lviv.ua/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: com-lad-lviv-timetable-api
Remote MCP URL: https://api.lad.lviv.ua/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"com-lad-lviv-timetable-api": {
"url": "https://api.lad.lviv.ua/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"com-lad-lviv-timetable-api": {
"type": "http",
"url": "https://api.lad.lviv.ua/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "com-lad-lviv-timetable-api",
"transport": "streamable-http",
"url": "https://api.lad.lviv.ua/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Trust Data Available
BuiltWith Trust API v2 evidence for lad.lviv.ua was fetched 2026-08-24T00:24:59.154Z and is being refreshed.
lad.lviv.ua is assessed as Trusted: Domain has an established technology history spanning over a year.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.