UNPKG

@siva-sub/mcp-public-transport

Version:

A Model Context Protocol server for Singapore transport data with real-time information and routing

72 lines (71 loc) 2.03 kB
import { CacheService } from './cache.js'; export interface WeatherStation { id: string; deviceId: string; name: string; labelLocation?: { latitude: number; longitude: number; }; location?: { latitude: number; longitude: number; }; } export interface WeatherReading { timestamp: string; data: Array<{ stationId: string; value: number; }>; } export interface WeatherData { stations: WeatherStation[]; readings: WeatherReading[]; readingType: string; readingUnit: string; } export interface WeatherConditions { temperature: number; rainfall: number; humidity: number; windSpeed: number; windDirection: number; location: { latitude: number; longitude: number; }; timestamp: string; } export interface WeatherAdvisory { severity: 'low' | 'medium' | 'high'; type: 'rain' | 'heat' | 'wind' | 'humidity'; message: string; routingImpact: { walkingTimeMultiplier: number; preferredModes: string[]; avoidedAreas: string[]; }; } export declare class WeatherService { private cache; private timeout; private client; private readonly baseUrl; constructor(cache: CacheService, timeout?: number); private setupInterceptors; getRainfall(date?: string): Promise<WeatherData>; getAirTemperature(date?: string): Promise<WeatherData>; getRelativeHumidity(date?: string): Promise<WeatherData>; getWindSpeed(date?: string): Promise<WeatherData>; getWindDirection(date?: string): Promise<WeatherData>; getWeatherConditionsForLocation(latitude: number, longitude: number): Promise<WeatherConditions>; private getAllWeatherData; private processWeatherData; private getDefaultWeatherConditions; generateWeatherAdvisory(conditions: WeatherConditions): WeatherAdvisory[]; private getStationCoordinates; private findNearestStation; private getLatestReading; private calculateDistance; }