arjunkmrm-sg-bus-test
Get real-time bus arrival times for any Singapore bus stop by code, with optional service filterin鈥�
可用工具 (5 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
tavily_search 14 个参数 需填 1 项
Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.
必填参数:query
tavily_extract 6 个参数 需填 1 项
Extract content from URLs. Returns raw page content in markdown or text format.
必填参数:urls
tavily_crawl 11 个参数 需填 1 项
Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.
必填参数:url
tavily_map 8 个参数 需填 1 项
Map a website's structure. Returns a list of URLs found starting from the base URL.
必填参数:url
tavily_research 2 个参数 需填 1 项
Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources to answer a question or complete a task. Returns a detailed response based on the research findings.
必填参数:input
服务介绍
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
-
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)
-
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:
- Use the LTA DataMall Bus Stops API:
https://datamall2.mytransport.sg/ltaodataservice/BusStops - Check physical bus stop signs - the code is usually displayed
- Use third-party apps like SG BusLeh or transit apps
# Deployment
# # Deploy to Smithery
- Push your code to GitHub
- Go to smithery.ai/new
- Connect your repository
- 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