Find direct commuter buses in Singapore: routes, stops, departure times and 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.
Find direct buses (Premium, City Direct, ShareTransport) in Singapore that stop near an office/destination. Give the office as office_area (a name or slug from list_areas, e.g. "Raffles Place", "one-north") or as office_lat/office_lng. Optionally give home as home_area (a neighbourhood like "Punggol") or home_lat/home_lng to keep only buses that pick up near home (within 1 km of home_lat/home_lng, or anywhere in the home_area neighbourhood). Returns up to 15 results with service number, type, operator, nearest stop, departure times, fare and the directbus.sg page URL.
Optional: latitude of home/pickup area. When provided, only buses that pick up within 1 km of home are returned.
Optional: longitude of home/pickup area. Requires home_lat.
Optional: home neighbourhood name or slug from list_areas, e.g. "Punggol", "ang-mo-kio". Use instead of home_lat/home_lng.
Latitude of the office/destination (Singapore: 1.1–1.5).
Longitude of the office/destination (Singapore: 103.5–104.1).
Office area name or slug from list_areas, e.g. "Raffles Place", "marina-bay". Use instead of office_lat/office_lng.
Optional: filter to morning (AM) or evening (PM) services.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http directbus https://directbus.sg/mcp
Find direct buses (Premium, City Direct, ShareTransport) in Singapore that stop near an office/destination. Give the office as office_area (a name or slug from list_areas, e.g. "Raffles Place", "one-north") or as office_lat/office_lng. Optionally give home as home_area (a neighbourhood like "Punggol") or home_lat/home_lng to keep only buses that pick up near home (within 1 km of home_lat/home_lng, or anywhere in the home_area neighbourhood). Returns up to 15 results with service number, type, operator, nearest stop, departure times, fare and the directbus.sg page URL.
| Argument | Type | Description |
|---|---|---|
| home_lat | number | Optional: latitude of home/pickup area. When provided, only buses that pick up within 1 km of home are returned. |
| home_lng | number | Optional: longitude of home/pickup area. Requires home_lat. |
| home_area | string | Optional: home neighbourhood name or slug from list_areas, e.g. "Punggol", "ang-mo-kio". Use instead of home_lat/home_lng. |
| office_lat | number | Latitude of the office/destination (Singapore: 1.1–1.5). |
| office_lng | number | Longitude of the office/destination (Singapore: 103.5–104.1). |
| office_area | string | Office area name or slug from list_areas, e.g. "Raffles Place", "marina-bay". Use instead of office_lat/office_lng. |
| time_of_day | string | Optional: filter to morning (AM) or evening (PM) services. |
{
"type": "object",
"properties": {
"home_lat": {
"type": "number",
"description": "Optional: latitude of home/pickup area. When provided, only buses that pick up within 1 km of home are returned."
},
"home_lng": {
"type": "number",
"description": "Optional: longitude of home/pickup area. Requires home_lat."
},
"home_area": {
"type": "string",
"description": "Optional: home neighbourhood name or slug from list_areas, e.g. \"Punggol\", \"ang-mo-kio\". Use instead of home_lat/home_lng."
},
"office_lat": {
"type": "number",
"description": "Latitude of the office/destination (Singapore: 1.1–1.5)."
},
"office_lng": {
"type": "number",
"description": "Longitude of the office/destination (Singapore: 103.5–104.1)."
},
"office_area": {
"type": "string",
"description": "Office area name or slug from list_areas, e.g. \"Raffles Place\", \"marina-bay\". Use instead of office_lat/office_lng."
},
"time_of_day": {
"enum": [
"morning",
"evening"
],
"type": "string",
"description": "Optional: filter to morning (AM) or evening (PM) services."
}
}
}Get full details for one direct bus service: all route stops with estimated arrival times, fare, operator contact, operator timetable or booking link, schedule (AM and PM runs) and the directbus.sg page URL. Accepts a service number (e.g. "776", "SKM1", "BA 2 (AM)") or a URL slug (e.g. "ba-2-am", "skm1", "776").
| Argument | Type | Description |
|---|---|---|
| slug | string | URL slug, e.g. "776", "skm1", "ba-2-am". |
| service_no | string | Service number, e.g. "776", "SKM1", "BA 2 (AM)". |
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "URL slug, e.g. \"776\", \"skm1\", \"ba-2-am\"."
},
"service_no": {
"type": "string",
"description": "Service number, e.g. \"776\", \"SKM1\", \"BA 2 (AM)\"."
}
}
}List all office areas (CBD, business parks) served by direct buses, and all residential neighbourhoods that have direct buses. Includes coordinates and directbus.sg page URLs. Use this to discover what areas exist and get coordinates to pass to find_direct_buses.
No arguments.
{
"type": "object",
"properties": {}
}Find the nearest direct-bus pickup stops to a location in Singapore. Returns up to 10 stops with the buses that stop there and walking distance in metres.
| Argument | Type | Description |
|---|---|---|
| lat* | number | Latitude (Singapore: 1.1–1.5). |
| lng* | number | Longitude (Singapore: 103.5–104.1). |
| radius_m | integer | Search radius in metres (100–2000, default 500). |
{
"type": "object",
"required": [
"lat",
"lng"
],
"properties": {
"lat": {
"type": "number",
"description": "Latitude (Singapore: 1.1–1.5)."
},
"lng": {
"type": "number",
"description": "Longitude (Singapore: 103.5–104.1)."
},
"radius_m": {
"type": "integer",
"description": "Search radius in metres (100–2000, default 500)."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.
What changed in this server's tools since we started watching, newest first. Each change is scanned again.