search_bus_stopsLABSCO SUMMARY
Weather changes the route, not just the commentary.
The distinguishing behaviour is that rainfall feeds back into the plan — walking times stretch and covered options are preferred — rather than being reported next to it. The fuzzy stop search is the other practical piece: Singapore bus stop names are written in shorthand nobody types consistently, and this resolves them with a score you can check.
What it is
A location and transport server for Singapore, built on LTA DataMall and OneMap. It resolves addresses and postal codes, plans multi-modal journeys across rail, bus and walking, and folds live weather into the walking segments.
What you get
- A full journey planned between any two of an address, a postal code or a coordinate pair, with turn-by-turn instructions, transfer minimisation and disruption handling (plan_comprehensive_journey)
- Postal codes resolved to a named place with district and address, and coordinates turned back into addresses (resolve_postal_code, reverse_geocode, search_location)
- Bus stops found the way people actually write them — abbreviations, block references and typos included — with a match score (search_bus_stops, find_bus_stops)
- One stop in detail: live services, nearby stops and walking distances, accessibility, landmarks and nearby amenities (get_bus_stop_details)
- Live bus arrivals with crowding, and rail service status and disruptions (get_bus_arrival, get_train_service_status)
- Taxi availability nearby, and live traffic conditions, incidents and road speeds (get_nearby_taxis, get_traffic_conditions)
- Real-time weather with a read on walking conditions and travel impact, plus activity-specific advice for walking, cycling, dining, sport and photography (get_weather_conditions, get_weather_advisory)
- Station exit recommendations and time-of-day context — business hours, rush hour, last train
Requirements
An LTA DataMall API key, which is the one required credential. A OneMap account unlocks the geocoding and routing quality; without it the transport tools still work. Runs from the published npm package.
Setup effort
One command plus a key — npx @siva-sub/mcp-public-transport, then supply credentials
USE CASES
Getting somewhere when it is pouring
Plan the journey and let rainfall push it toward covered walkways and rail, with the walking time adjusted.
Starting from a postal code
Resolve it to a real place, then plan from there.
Finding a stop from a half-remembered name
Search with the abbreviation or the block number and take the best-scoring match.
Deciding whether to wait or walk
Check live arrivals for the stop and current rail service status together.
Checking the roads before you drive
Read live traffic conditions and incidents, or look for a taxi nearby instead.
13 tools
Listed in project docs. Your client may show a different list.
get_bus_stop_detailsplan_comprehensive_journeysearch_locationresolve_postal_codereverse_geocodeget_bus_arrivalfind_bus_stopsget_train_service_statusget_nearby_taxisget_traffic_conditionsget_weather_conditionsget_weather_advisoryBEFORE YOU INSTALL
What to know first
Tools you get
13 tools named in the project's documentation.
Requires
- npx on PATH
- LTA_ACCOUNT_KEY in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
npx @siva-sub/mcp-public-transportMCP Clients
Claude Desktop
{
"mcpServers": {
"singapore-transport": {
"command": "npx",
"args": [
"-y",
"@siva-sub/mcp-public-transport"
],
"env": {
"LTA_ACCOUNT_KEY": "<YOUR_LTA_ACCOUNT_KEY>",
"ONEMAP_TOKEN": "<YOUR_ONEMAP_TOKEN>",
"ONEMAP_EMAIL": "<YOUR_ONEMAP_EMAIL>",
"ONEMAP_PASSWORD": "<YOUR_ONEMAP_PASSWORD>"
}
}
}
}