Singapore Location Intelligence MCP

Proporciona datos de transporte de Singapur en tiempo real e información de rutas.

Documentación

Singapore Location Intelligence MCP 🇸🇬

CI/CD npm version License: MIT

Como creador de este proyecto, yo, Siva (Sivasubramanian Ramanathan), desarrollé esta plataforma integral de inteligencia de ubicación para Singapur con el fin de explorar las capacidades del Protocolo de Contexto de Modelos (MCP). Mi objetivo era probar cómo se podía aprovechar MCP para ayudar a la IA a planificar rutas con precisión, al mismo tiempo que demostraba mi capacidad para trabajar con diversas APIs y mi experiencia en las tecnologías involucradas.

Lo que comenzó como un experimento con la integración de MCP evolucionó hasta convertirse en una aplicación sofisticada del mundo real que demuestra el poder de este nuevo y emocionante protocolo para crear herramientas que pueden rivalizar con soluciones comerciales. Esta plataforma proporciona enrutamiento de transporte de nivel empresarial, resolución de códigos postales e inteligencia de ubicación con instrucciones de navegación detalladas de nivel Google Maps, todo optimizado para el ecosistema de transporte único de Singapur.

🌟 Características Principales

🎯 NUEVO en v0.3.0 - Integración de Salidas MRT y Corrección de la Herramienta de Lugares de Referencia

  • 🚇 Recomendaciones de Salidas MRT - Precisión de nivel Google Maps con códigos de salida específicos
  • 🏛️ Resolución de Ubicación Mejorada - Corrección del análisis de cadenas JSON y validación de coordenadas
  • 📍 Navegación a Nivel de Salida - "Use la Salida E (14 m a pie, 1 min)" para una navegación óptima en estaciones
  • 🔧 Manejo Robusto de Entradas - Todos los formatos de ubicación ahora funcionan correctamente
  • 🎯 Optimizado para Singapur - Límites de coordenadas adecuados y validación de códigos postales

🎯 v0.2.7 - Correcciones del Servicio Meteorológico y Mayor Fiabilidad

  • 🌦️ Integración Meteorológica Robusta - Corregidas todas las inconsistencias y fallos de la API meteorológica
  • 🔧 Manejo de Errores Listo para Producción - Degradación gradual cuando las APIs meteorológicas fallan
  • 🎯 Compatibilidad con la API Meteorológica de Singapur - Soporta los 5 endpoints meteorológicos oficiales
  • Planificación de Viajes Mejorada - Enrutamiento consciente del clima con respaldos resilientes
  • 🛡️ Garantía de Cero Fallos - Los fallos del servicio meteorológico ya no interrumpen la planificación de viajes

🎯 NUEVO en v0.2.1 - Inteligencia Meteorológica

  • 🌦️ Herramientas Meteorológicas Independientes - Condiciones meteorológicas completas y avisos específicos por actividad
  • 🎯 Recomendaciones de Actividades - Consejos personalizados para caminar, ciclismo, deportes, fotografía, restaurantes
  • 🌡️ Análisis de Confort - Evaluación inteligente del nivel de confort con impacto en los viajes
  • Recomendaciones de Mejor Momento - Horario óptimo para actividades al aire libre según el clima

🎯 NUEVO en v0.2.0 - Inteligencia Mejorada

  • 🔍 Búsqueda Difusa Avanzada - "Opp Blk 910" → encuentra "Opposite Block 910" con un 95% de precisión
  • 🌦️ Enrutamiento Consciente del Clima - Impacto meteorológico en tiempo real en los tiempos de caminata y sugerencias de ruta
  • 🚇 Minimización de Transbordos - Algoritmos inteligentes para reducir transbordos en viajes multimodales
  • 🗺️ Indicaciones de Calidad Google Maps - Instrucciones de nivel "Gire a la Izquierda para Continuar por Thomson Road"
  • 📍 Detalles Completos de Paradas - Servicios cercanos, información de accesibilidad y contexto de ubicación

🎯 Características Principales

  • 🎯 Inteligencia Avanzada de Códigos Postales - Resolución con un 95% de precisión para todos los códigos postales de Singapur
  • 🗺️ Instrucciones de Navegación Profesionales - Indicaciones paso a paso como "Gire a la Izquierda para Continuar por Thomson Road"
  • 🚇 Planificación de Transporte Multimodal - Integración perfecta de MRT, LRT, autobuses y caminatas
  • Inteligencia Horaria de Singapur - Horario comercial, detección de horas punta y optimización de tiempos
  • 🔍 Búsqueda Inteligente de Ubicaciones - Coincidencia difusa, tolerancia a errores tipográficos y sugerencias inteligentes
  • 📍 Geocodificación Integral - Geocodificación directa e inversa con precisión específica para Singapur
  • 🚌 Datos de Transporte en Tiempo Real - Llegadas de autobuses en vivo, estado del tren y interrupciones del servicio
  • 💡 Enrutamiento Contextual - Optimización de horas punta, advertencias de último tren, alternativas de autobuses nocturnos

🎯 Problema del Mundo Real Resuelto

Antes: Herramientas de transporte básicas con resolución fallida de códigos postales Después: Plataforma de inteligencia de ubicación de nivel empresarial con enrutamiento consciente del clima

Singapore Transport MCP Demo

INPUT: "How to get to Suntec City from Little India MRT during heavy rain?"

OUTPUT: 
✅ Postal Code 039594 → SUNTEC CITY
🌧️ Heavy rain detected - prefer covered routes
🚇 Route: DT Line (8 min) → Covered walkway (6 min) 
💰 Cost: $1.55 | 🕐 Duration: 32 minutes (adjusted for weather)
📍 Step-by-step: "Walk 246m via covered walkway to ROCHOR MRT → Take DT Line from Rochor to Promenade → Use underground connection to Suntec City"
⚠️ Weather Advisory: Allow extra 5 minutes for walking segments

🚀 Inicio Rápido

Instalación

npx @siva-sub/mcp-public-transport

Configuración de Claude Desktop

Añada a su claude_desktop_config.json:

{
  "mcpServers": {
    "singapore-transport": {
      "command": "npx",
      "args": ["-y", "@siva-sub/mcp-public-transport"],
      "env": {
        "LTA_ACCOUNT_KEY": "your_lta_api_key_here",
        "ONEMAP_TOKEN": "your_onemap_token_here",
        "ONEMAP_EMAIL": "your_onemap_email@example.com",
        "ONEMAP_PASSWORD": "your_onemap_password"
      }
    }
  }
}

⚙️ Configuración

Variables de Entorno Requeridas

  • LTA_ACCOUNT_KEY: Requerida. Su clave de API de LTA DataMall (Obtener aquí)

Variables de Entorno Opcionales

  • ONEMAP_TOKEN: Token de API de OneMap para funciones mejoradas (Registrarse aquí)
  • ONEMAP_EMAIL: Correo electrónico de la cuenta OneMap para autenticación
  • ONEMAP_PASSWORD: Contraseña de la cuenta OneMap para autenticación
  • CACHE_DURATION: Duración de la caché en segundos (predeterminado: 300)
  • LOG_LEVEL: Nivel de registro (predeterminado: info)

🛠️ Herramientas Disponibles

🌍 NUEVO - Inteligencia de Ubicación Mejorada

  • search_bus_stops ⭐ - Búsqueda difusa avanzada con abreviaturas de Singapur

    • Soporta: "Opp Blk 910", "Bef Jurong East MRT", "CP near Orchard"
    • Reconocimiento inteligente de patrones y tolerancia a errores tipográficos
    • Clasificación basada en distancia y puntuación de confianza
  • get_bus_stop_details ⭐ - Información completa de paradas

    • Información de servicio en tiempo real y servicios cercanos
    • Detalles de accesibilidad y contexto de ubicación
    • Distancias a pie hasta paradas cercanas
  • plan_comprehensive_journey ⭐ - Planificación completa de viajes multimodales

    • Algoritmos de minimización de transbordos
    • Manejo de interrupciones en tiempo real
    • Indicaciones paso a paso de calidad Google Maps
    • Impacto meteorológico en los tramos a pie
    • Soporta todos los tipos de entrada: direcciones, códigos postales, coordenadas

🌍 Inteligencia de Ubicación

  • search_location - Mejorada con capacidades de búsqueda difusa
  • resolve_postal_code - Resolución de códigos postales de Singapur de alta precisión (95% de éxito)
  • reverse_geocode - Convierte coordenadas a direcciones con precisión específica para Singapur

🚌 Transporte Público

  • get_bus_arrival - Horarios de llegada de autobuses en tiempo real con información de afluencia
  • find_bus_stops - Encuentre paradas de autobús por ubicación, nombre o coordenadas
  • plan_comprehensive_journey - Planificación de viajes multimodales con instrucciones detalladas

🚇 Servicios de Tren

  • get_train_service_status - Estado del servicio MRT/LRT e interrupciones en tiempo real

🚕 Taxis y Transporte Privado

  • get_nearby_taxis - Encuentre taxis disponibles y estime los tiempos de espera

🚦 Tráfico y Carreteras

  • get_traffic_conditions - Condiciones de tráfico en vivo, incidentes y velocidades de las vías

🌦️ NUEVO - Inteligencia Meteorológica

  • get_weather_conditions ⭐ - Clima integral en tiempo real con impacto en los viajes

    • Datos en tiempo real de temperatura, lluvia, humedad y viento
    • Análisis del nivel de confort y calificaciones de las condiciones para caminar
    • Evaluación del impacto en los viajes con ajustes de tiempo
    • Recomendaciones específicas por actividad y consejos de seguridad
  • get_weather_advisory ⭐ - Recomendaciones meteorológicas específicas por actividad

    • Consejos personalizados para caminar, ciclismo, restaurantes al aire libre, deportes, fotografía
    • Calificaciones de idoneidad y recomendaciones del mejor momento
    • Orientación de seguridad y precauciones específicas según el clima

📊 Características Empresariales

Enrutamiento Avanzado con Inteligencia Meteorológica

// Weather-aware journey planning
{
  "primaryRoute": {
    "summary": {
      "totalTime": 1980, // seconds (adjusted for weather)
      "walkingTime": 720, // includes weather buffer
      "transfers": 1
    },
    "weatherImpact": {
      "conditions": {
        "rainfall": 12.5, // mm
        "temperature": 28, // °C
        "humidity": 85 // %
      },
      "advisories": [
        {
          "severity": "high",
          "type": "rain",
          "message": "Heavy rain detected. Allow extra time for walking.",
          "routingImpact": {
            "walkingTimeMultiplier": 1.5,
            "preferredModes": ["MRT", "Covered Bus Stops"]
          }
        }
      ]
    }
  }
}

Búsqueda Mejorada de Paradas de Autobús

// Fuzzy search with Singapore intelligence
{
  "query": "Opp Blk 910",
  "searchType": "fuzzy",
  "results": [
    {
      "busStopCode": "83139",
      "description": "OPP BLK 910",
      "matchScore": 0.95,
      "locationPatterns": {
        "blockNumber": "910",
        "direction": "opp"
      },
      "searchContext": {
        "queryVariations": ["opposite block 910", "opp blk 910"],
        "bestMatch": "OPP BLK 910"
      }
    }
  ]
}

Detalles Completos de Paradas

// Detailed stop information with context
{
  "details": {
    "busStopCode": "83139",
    "description": "OPP BLK 910",
    "services": [...], // Real-time arrivals
    "nearbyStops": [...], // Within walking distance
    "accessibility": {
      "wheelchairAccessible": true,
      "sheltered": true,
      "tactilePaving": true
    },
    "locationContext": {
      "district": "Tampines",
      "landmarks": ["Block 910", "Tampines Mall"],
      "transportHubs": ["Tampines MRT Station"]
    },
    "nearbyAmenities": [
      {
        "name": "Tampines Mall",
        "type": "shopping",
        "distance": 250,
        "walkingTime": 3
      }
    ]
  }
}

Inteligencia Horaria de Singapur

{
  "singaporeTime": "27/06/2025, 10:58 PM",
  "businessHours": false,
  "rushHour": false,
  "contextInfo": {
    "nextRushHour": "7:00 AM tomorrow",
    "travelRecommendation": "Off-peak travel - comfortable journey expected"
  }
}

Inteligencia de Códigos Postales

{
  "postalCode": "039594",
  "location": {
    "name": "SUNTEC CITY",
    "address": "3 TEMASEK BOULEVARD SUNTEC CITY SINGAPORE 039594",
    "district": "Downtown Core",
    "areaType": "Central Singapore",
    "confidence": 0.98
  }
}

🎯 Casos de Uso

1. Aplicaciones de Navegación

  • Planificación de rutas consciente del clima
  • Indicaciones detalladas paso a paso
  • Optimización de viajes multimodales
  • Integración de tráfico en tiempo real

2. Entrega y Logística

  • Validación y resolución de códigos postales
  • Planificación óptima de rutas con consideraciones meteorológicas
  • Estandarización de direcciones y coincidencia difusa

3. Planificación Urbana

  • Análisis de accesibilidad al transporte
  • Impacto meteorológico en el tráfico peatonal
  • Optimización del tráfico en horas punta
  • Mapeo de la cobertura del transporte público

4. Turismo y Hostelería

  • Indicaciones adaptadas al turista con puntos de referencia
  • Sugerencias de rutas apropiadas según el clima
  • Orientación sobre transporte público
  • Descubrimiento de ubicaciones con búsqueda difusa

📈 Rendimiento y Fiabilidad

  • Planificación de rutas en menos de 3 segundos con integración meteorológica
  • Caché de datos meteorológicos de 5 minutos para capacidad de respuesta en tiempo real
  • Caché inteligente con TTL consciente de ubicación y clima
  • Degradación gradual durante el mantenimiento de APIs
  • 95% de precisión en la resolución de códigos postales
  • Integración de datos en tiempo real con APIs oficiales de Singapur
  • Precisión de búsqueda difusa superior al 90% para términos de Singapur

🔧 Configuración Avanzada

Preferencias de Ruta Conscientes del Clima

{
  "routingOptions": {
    "includeWeatherImpact": true,
    "maxWalkingDistance": 800,
    "weatherSensitivity": "high",
    "preferredModes": ["MRT", "Covered Bus Stops"],
    "minimizeTransfers": true
  }
}

Configuración de Búsqueda Difusa

{
  "searchOptions": {
    "enableFuzzySearch": true,
    "minScore": 0.3,
    "singaporeAbbreviations": true,
    "typoTolerance": true
  }
}

Configuración de Horario Comercial

{
  "businessHours": {
    "weekdays": { "start": 9, "end": 18 },
    "saturday": { "start": 9, "end": 13 },
    "sunday": { "closed": true }
  }
}

🤝 Integración de APIs

Integración con OneMap

  • Autenticación: Renovación automática de tokens con TTL de 3 días
  • Geocodificación: Resolución de direcciones de alta precisión con coincidencia difusa
  • Enrutamiento: Indicaciones paso a paso de nivel profesional
  • Integración Meteorológica: Datos meteorológicos en tiempo real de las APIs de Singapur

Integración con LTA DataMall

  • Datos en Tiempo Real: Llegadas de autobuses, estado del tren, condiciones de tráfico
  • Red de Transporte: Datos completos de la red de autobuses y trenes
  • Alertas de Servicio: Notificaciones en vivo de interrupciones y mantenimiento
  • Manejo de Errores Mejorado: Degradación gradual y lógica de reintentos

Integración con la API Meteorológica de Singapur

  • Datos en Tiempo Real: Lluvia, temperatura, humedad, velocidad del viento
  • Actualizaciones cada 5 minutos: Datos meteorológicos frescos para un enrutamiento preciso
  • Basado en Ubicación: Condiciones meteorológicas para segmentos de ruta específicos
  • Generación de Avisos: Recomendaciones inteligentes basadas en las condiciones

🚀 Desarrollo

Desarrollo Local

git clone https://github.com/siva-sub/MCP-Public-Transport
cd MCP-Public-Transport
npm install
cp .env.example .env.local
# Add your API keys to .env.local
npm run dev

Compilación

npm run build    # Builds both ESM and CJS versions
npm run test     # Runs comprehensive test suite
npm run lint     # TypeScript and ESLint checks

Pruebas

# Unit tests
npm run test

# Integration tests with real APIs
npm run test:integration

# Performance tests
npm run test:performance

📦 Arquitectura

src/
├── services/           # Core business logic
│   ├── lta.ts         # LTA DataMall integration
│   ├── onemap.ts      # OneMap API with authentication
│   ├── weather.ts     # ⭐ Real-time weather integration
│   ├── routing.ts     # ⭐ Enhanced multi-modal routing
│   ├── fuzzySearch.ts # ⭐ Singapore-optimized fuzzy search
│   ├── time.ts        # Singapore time intelligence
│   ├── postalCode.ts  # Postal code validation & resolution
│   └── cache.ts       # Intelligent caching layer
├── tools/             # MCP tool implementations
│   ├── location/      # Enhanced location intelligence tools
│   ├── bus/           # ⭐ Enhanced bus tools with fuzzy search
│   │   ├── search.ts  # ⭐ Advanced bus stop search
│   │   └── details.ts # ⭐ Comprehensive stop details
│   ├── routing/       # ⭐ Enhanced journey planning tools
│   │   └── enhanced.ts# ⭐ Weather-aware optimal routing
│   ├── train/         # Train service tools
│   └── traffic/       # Traffic and road tools
├── types/             # TypeScript interfaces
│   ├── location.ts    # Location and search types
│   ├── transport.ts   # Transport system types
│   ├── search.ts      # Search and query types
│   └── time.ts        # Singapore time types
└── utils/             # Shared utilities
    ├── errors.ts      # Custom error handling
    ├── logger.ts      # Structured logging
    └── validation.ts  # Input validation

🌟 Qué Hace Esto Especial

  1. Optimizado para Singapur: Construido específicamente para el ecosistema de transporte único de Singapur con inteligencia local
  2. Consciente del Clima: La integración meteorológica en tiempo real afecta las decisiones de enrutamiento y las estimaciones de tiempo de caminata
  3. Nivel Profesional: Instrucciones de enrutamiento comparables a Google Maps con capacidades de búsqueda difusa
  4. Contexto en Tiempo Real: Horario comercial, horas punta, clima e inteligencia de tiempos
  5. Alta Precisión: 95% de éxito en la resolución de códigos postales, más del 90% de precisión en búsqueda difusa
  6. Listo para Empresas: Manejo integral de errores, resiliencia meteorológica y optimización del rendimiento
  7. Amigable para Desarrolladores: Soporte completo de TypeScript con documentación integral
  8. Minimización de Transbordos: Algoritmos inteligentes para reducir transbordos en viajes multimodales

🎯 Contribuciones

¡Agradecemos las contribuciones! Consulte nuestra Guía de Contribución para más detalles.

📝 Licencia

Licencia MIT - consulte LICENCIA para más detalles.

🙏 Agradecimientos

  • Autoridad de Tierras de Singapur (SLA) por la API de OneMap
  • Autoridad de Transporte Terrestre (LTA) por la API de DataMall
  • Servicio Meteorológico de Singapur por los datos meteorológicos
  • Protocolo de Contexto de Modelos por el marco extensible
  • Iniciativa de Datos Abiertos de Singapur por los datos de transporte público

Construido con ❤️ para la iniciativa de ciudad inteligente de Singapur y la exploración de MCP

📊 Estadísticas de la Versión 0.2.0

  • 11 Herramientas en Total (antes 8)
  • 4 Nuevos Servicios Principales añadidos
  • 3 Nuevas Herramientas con capacidades avanzadas
  • Integración de API Meteorológica para condiciones en tiempo real
  • Motor de Búsqueda Difusa con más de 50 abreviaturas de Singapur
  • Indicaciones paso a paso de calidad Google Maps
  • Algoritmos de Minimización de Transbordos