home / mcp / lta mcp server

LTA MCP Server

Provides real-time LTA DataMall data including bus arrivals, traffic, and train updates for MCP clients.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "arjunkmrm-lta-mcp": {
      "url": "https://example-mcp.lta.example.com/mcp",
      "headers": {
        "LTA_API_KEY": "YOUR-API-KEY"
      }
    }
  }
}

You can use this MCP server to access Singapore’s LTA DataMall API data in real time, including bus arrivals, traffic conditions, and train service updates. It exposes these data sources as configurable tools you can query from your MCP client for practical transportation insights.

How to use

To use this server, connect your MCP client to the local, stdio-based MCP server configuration. You will run the provided command to launch the server, then issue queries through your client to retrieve real-time bus arrivals, station crowding, train alerts, carpark availability, travel times, traffic incidents, and crowd forecasts.

How to install

Prerequisites: You need Node.js and npm installed on your system to run MCP servers via npx. Ensure you have internet access to fetch the MCP package.

Step 1: Install the MCP server using Smithery (optional helper) by running this command in your terminal.

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

Configuration and usage notes

Get your LTA API key by signing up for an account on LTA DataMall, subscribing to the API services, and retrieving the key from your account dashboard.

Configure your Claude Desktop client to use this MCP server by adding the following JSON snippet to your claude_desktop_config.json. This sets up the local MCP server and passes your API key to the server.

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

Additional configuration considerations

The MCP server supports these tools for querying data:

- bus_arrival: Get real-time bus arrival information for specific bus stops using busStopCode and optional serviceNo.

- station_crowding: Get real-time crowding levels at MRT/LRT stations with trainLine as input.

- train_alerts: Retrieve real-time train service alerts, including disruptions and shuttle services.

- carpark_availability: Check real-time parking availability for HDB, LTA, and URA carparks.

- travel_times: Get estimated travel times on expressway segments.

- traffic_incidents: View current road incidents like accidents and roadworks.

- station_crowd_forecast: Get forecasted station crowdedness in 30-minute intervals.

Security and keys

Protect your API key and never expose it in public client configurations. Use environment variables to keep keys out of source control.

Troubleshooting and notes

If you do not see expected data, verify your API key is valid and that the MCP server process is running. Check your client’s connection settings to ensure it is pointing to the local MCP server and that the command and environment variables are correctly set.

Available tools

bus_arrival

Get real-time bus arrival information for specific bus stops.

station_crowding

Get real-time crowding levels at MRT/LRT stations (updates every 10 minutes).

train_alerts

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

carpark_availability

Get real-time availability of parking lots for HDB, LTA, and URA carparks (updates every minute).

travel_times

Get estimated travel times on expressway segments (updates every 5 minutes).

traffic_incidents

Get current road incidents including accidents, roadworks, and heavy traffic (updates every 2 minutes).

station_crowd_forecast

Get forecasted MRT/LRT station crowdedness levels in 30-minute intervals.