home / mcp / singapore bus arrival mcp server

Singapore Bus Arrival MCP Server

Provides real-time bus arrival data from LTA DataMall via MCP, with optional service filtering and comprehensive bus details.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "arjunkmrm-sg-bus-test": {
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "debug": "false",
        "ltaApiKey": "YOUR_API_KEY_HERE"
      }
    }
  }
}

You can access real-time Singapore bus arrival information through an MCP server that connects to the LTA DataMall API. This MCP server exposes a simple, consistent interface to request arrivals by bus stop and optional service number, returning details such as estimated arrival times, capacity status, bus type, wheelchair accessibility, and operator information. It is designed for easy integration with MCP clients and supports development and testing workflows.

How to use

You will interact with the MCP server using an MCP client. Start by running the server in development mode, then connect your client to the MCP endpoint to initialize the session and request bus arrival data. You can query real-time arrivals for a specific bus stop, and optionally filter by a service number to focus on a single bus.

Typical usage patterns include starting the server locally, initializing the MCP session with your API key, and then issuing tool calls to retrieve arrivals for a bus stop or a specific service at that stop. Use your MCP client to send the standard initialize notification, followed by tool calls to fetch arrival information.

How to install

Prerequisites you need before installation include your LTA DataMall API key and Node.js version 18 or higher.

Step-by-step installation flow you should follow on your machine:

  • Run the following command to install required packages: npm install

Run the development server

npm install
```

```
npm run dev
```

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

Available tools

get-bus-arrival

Fetch real-time bus arrival information for a specific bus stop. You can optionally filter by a particular service number to get arrivals for that service only.