Repository avatar
Other Tools
v1.0.0
active

arjunkmrm-sg-bus-test

ai.smithery/arjunkmrm-sg-bus-test

Get real-time bus arrival times for any Singapore bus stop by code, with optional service filterin…

Documentation

Singapore Bus Arrival MCP Server

An MCP (Model Context Protocol) server that provides real-time bus arrival information for Singapore using the LTA DataMall API.

Features

  • Get real-time bus arrival times for any Singapore bus stop
  • Filter by specific bus service number (optional)
  • Shows next 3 buses with:
    • Estimated arrival time in minutes
    • Bus capacity status (Seats/Standing Available/Limited Standing)
    • Bus type (Single/Double Deck/Bendy)
    • Wheelchair accessibility
    • Operator information

Prerequisites

  1. LTA DataMall API Key: You need to register for a free API key from LTA DataMall:

    • Go to LTA DataMall
    • Create an account and request for API access
    • Copy your API key (AccountKey)
  2. Node.js: Version 18 or higher

Installation

# Install dependencies
npm install

Usage

Development Mode

npm run dev

The server will start on http://localhost:3000

Testing the Tool

You can test the bus arrival tool using curl:

# Initialize the connection with your API key
curl -X POST "http://127.0.0.1:3000/mcp?ltaApiKey=YOUR_API_KEY_HERE&debug=false" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{"tools":{}},"clientInfo":{"name":"test-client","version":"1.0.0"}}}'

# Send initialized notification
curl -X POST "http://127.0.0.1:3000/mcp?ltaApiKey=YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","method":"notifications/initialized"}'

# Get bus arrival for a specific bus stop (e.g., 83139)
curl -X POST "http://127.0.0.1:3000/mcp?ltaApiKey=YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"get-bus-arrival","arguments":{"busStopCode":"83139"}}}'

# Get arrival for a specific bus service at a bus stop
curl -X POST "http://127.0.0.1:3000/mcp?ltaApiKey=YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":6,"method":"tools/call","params":{"name":"get-bus-arrival","arguments":{"busStopCode":"83139","serviceNo":"15"}}}'

Replace YOUR_API_KEY_HERE with your actual LTA DataMall API key.

Configuration

The server requires the following configuration:

  • ltaApiKey (required): Your LTA DataMall API key (AccountKey)
  • debug (optional, default: false): Enable debug logging

API Reference

Tool: get-bus-arrival

Get real-time bus arrival information for a specific bus stop.

Parameters:

  • busStopCode (required): Bus stop reference code (e.g., "83139")
  • serviceNo (optional): Specific bus service number to filter (e.g., "15")

Example Response:

📍 Bus Stop: 83139
⏰ Updated: 10/7/2025, 2:30:00 PM

🚌 Service 15 (GAS)
Next: 3 min 🟢 (SEA) | Single Deck ♿
2nd: 8 min 🟡 (SDA) | Double Deck
3rd: 15 min 🟢 (SEA) | Single Deck

🚌 Service 175 (SMRT)
Next: 5 min 🟢 (SEA) | Double Deck
2nd: 12 min 🟢 (SEA) | Double Deck
3rd: No data

🟢 Seats Available | 🟡 Standing Available | 🔴 Limited Standing | ♿ Wheelchair Accessible

Finding Bus Stop Codes

To find bus stop codes:

  1. Use the LTA DataMall Bus Stops API: https://datamall2.mytransport.sg/ltaodataservice/BusStops
  2. Check physical bus stop signs - the code is usually displayed
  3. Use third-party apps like SG BusLeh or transit apps

Deployment

Deploy to Smithery

  1. Push your code to GitHub
  2. Go to smithery.ai/new
  3. Connect your repository
  4. Smithery will handle the deployment

Build for Production

npm run build

Data Update Frequency

The LTA DataMall Bus Arrival API updates every 20 seconds with real-time information.

Operators

  • SBST: SBS Transit
  • SMRT: SMRT Corporation
  • TTS: Tower Transit Singapore
  • GAS: Go-Ahead Singapore

License

ISC