mcp sg lta

Local 2025-09-01 00:31:12 0

Facilitates real-time access to Singapore's Land Transport Authority (LTA) transportation data, offering insights into bus arrivals, train services, traffic conditions, and more through integration with the LTA DataMall API.


smithery badge

An MCP server for Singapore's Land Transport Authority (LTA) DataMall API, providing real-time access to transportation information including bus arrivals, traffic conditions, and train service updates.

Installing via Smithery

To install Singapore LTA MCP Server for Claude Desktop automatically via Smithery:

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

Tools

bus_arrival

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

Inputs: - busStopCode (string, required): The unique 5-digit bus stop code - serviceNo (string, optional): Specific bus service number to filter results

station_crowding

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

Inputs: - trainLine (string, required): Code of train network line - Supported values: CCL, CEL, CGL, DTL, EWL, NEL, NSL, BPL, SLRT, PLRT, TEL

train_alerts

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

Inputs: None required

carpark_availability

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

Inputs: None required

travel_times

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

Inputs: None required

traffic_incidents

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

Inputs: None required

station_crowd_forecast

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

Inputs: - trainLine (string, required): Code of train network line - Supported values: CCL, CEL, CGL, DTL, EWL, NEL, NSL, BPL, SLRT, PLRT, TEL

Configuration

Getting an API Key

  1. Register for an account on LTA DataMall
  2. Subscribe to the API services
  3. Obtain your API key from the account dashboard

Usage with Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "lta": {
        "command": "npx", 
        "args": [
          "-y", 
          "arjunkmrm/mcp-sg-lta"
        ],
        "env": {
          "LTA_API_KEY": "YOUR-API-KEY"
        }
    }
  }
}
[
  {
    "description": "Get real-time bus arrival information for a specific bus stop and optionally a specific service number. Returns estimated arrival times, bus locations, and crowding levels.",
    "inputSchema": {
      "properties": {
        "busStopCode": {
          "description": "The unique 5-digit bus stop code",
          "type": "string"
        },
        "serviceNo": {
          "description": "Optional bus service number to filter results",
          "type": "string"
        }
      },
      "required": [
        "busStopCode"
      ],
      "type": "object"
    },
    "name": "bus_arrival"
  },
  {
    "description": "Get real-time MRT/LRT station crowdedness level for a particular train network line. Updates every 10 minutes.",
    "inputSchema": {
      "properties": {
        "trainLine": {
          "description": "Code of train network line (CCL, CEL, CGL, DTL, EWL, NEL, NSL, BPL, SLRT, PLRT, TEL)",
          "enum": [
            "CCL",
            "CEL",
            "CGL",
            "DTL",
            "EWL",
            "NEL",
            "NSL",
            "BPL",
            "SLRT",
            "PLRT",
            "TEL"
          ],
          "type": "string"
        }
      },
      "required": [
        "trainLine"
      ],
      "type": "object"
    },
    "name": "station_crowding"
  },
  {
    "description": "Get real-time train service alerts including service disruptions and shuttle services. Updates when there are changes.",
    "inputSchema": {
      "properties": {},
      "type": "object"
    },
    "name": "train_alerts"
  },
  {
    "description": "Get real-time availability of parking lots for HDB, LTA, and URA carparks. Updates every minute.",
    "inputSchema": {
      "properties": {},
      "type": "object"
    },
    "name": "carpark_availability"
  },
  {
    "description": "Get estimated travel times on expressway segments. Updates every 5 minutes.",
    "inputSchema": {
      "properties": {},
      "type": "object"
    },
    "name": "travel_times"
  },
  {
    "description": "Get current road incidents including accidents, roadworks, and heavy traffic. Updates every 2 minutes.",
    "inputSchema": {
      "properties": {},
      "type": "object"
    },
    "name": "traffic_incidents"
  },
  {
    "description": "Get forecasted MRT/LRT station crowdedness levels in 30-minute intervals.",
    "inputSchema": {
      "properties": {
        "trainLine": {
          "description": "Code of train network line (CCL, CEL, CGL, DTL, EWL, NEL, NSL, BPL, SLRT, PLRT, TEL)",
          "enum": [
            "CCL",
            "CEL",
            "CGL",
            "DTL",
            "EWL",
            "NEL",
            "NSL",
            "BPL",
            "SLRT",
            "PLRT",
            "TEL"
          ],
          "type": "string"
        }
      },
      "required": [
        "trainLine"
      ],
      "type": "object"
    },
    "name": "station_crowd_forecast"
  }
]