home / mcp / singapore lta mcp server

Singapore LTA MCP Server

MCP server for Singapore's Land Transport Authority (LTA) DataMall API

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "arjunkmrm-mcp-sg-lta": {
      "command": "npx",
      "args": [
        "-y",
        "arjunkmrm/mcp-sg-lta"
      ],
      "env": {
        "LTA_API_KEY": "YOUR-API-KEY"
      }
    }
  }
}

This MCP Server provides real-time access to Singapore’s LTA DataMall API, delivering up-to-date bus arrivals, traffic conditions, train service updates, and other transit-related data to your MCP clients. It enables you to build responsive transport-aware applications that react to live mobility information.

How to use

You interact with this MCP Server through your MCP client by specifying the server name as a source. It exposes real-time data endpoints such as bus arrivals, station crowding, train alerts, carpark availability, travel times, traffic incidents, and crowd forecast. Use the client to request information for specific inputs (for example, a bus stop code or train line) and receive structured results suitable for dashboards, alerts, or route planning.

How to install

Prerequisites: you need Node.js and npm installed on your system.

npx -y @smithery/cli install @arjunkmrm/mcp-sg-lta --client claude

Configuration and usage notes

API access requires an LTA DataMall API key. Obtain your key by registering an account, subscribing to the API services, and retrieving the key from your account dashboard. When you configure the client, provide this key as an environment variable to authorize requests to the LTA DataMall.

Add the MCP server configuration to your Claude Desktop setup to enable the server: you will place the configuration in your claude_desktop_config.json under mcpServers. The example below shows how to reference the MCP server using npx with the appropriate arguments and environment variable for the API key.

{
  "mcpServers": {
    "lta": {
        "command": "npx", 
        "args": [
          "-y", 
          "arjunkmrm/mcp-sg-lta"
        ],
        "env": {
          "LTA_API_KEY": "YOUR-API-KEY"
        }
    }
  }
}

Example usage patterns

- Retrieve real-time bus arrivals for a specific stop to populate a transit dashboard.

- Monitor MRT/LRT station crowding to adjust service recommendations in a passenger-facing app.

Available tools

bus_arrival

Get real-time bus arrival information for specific bus stops using the 5-digit stop code and an optional service number to filter results.

station_crowding

Fetch real-time crowding levels for MRT/LRT stations, updated every 10 minutes, keyed by train line code.

train_alerts

Return real-time train service alerts including disruptions and shuttle services.

carpark_availability

Provide real-time parking availability for HDB, LTA, and URA lots, refreshing every minute.

travel_times

Estimate travel times on expressway segments with updates every 5 minutes.

traffic_incidents

Report current road incidents like accidents, roadworks, and heavy traffic with updates every 2 minutes.

station_crowd_forecast

Forecast MRT/LRT station crowdedness in 30-minute intervals for planning.