UNPKG

@siva-sub/mcp-public-transport

Version:

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

128 lines (127 loc) 3.26 kB
export interface QueryAnalysis { type: 'postal_code' | 'mrt_station' | 'landmark' | 'address' | 'mixed'; confidence: number; extractedComponents: { postalCode?: string; stationName?: string; streetName?: string; buildingName?: string; landmarks?: string[]; }; suggestedStrategies: SearchStrategy[]; modifications: QueryModification[]; } export interface QueryModification { type: 'typo_correction' | 'abbreviation_expansion' | 'partial_match'; original: string; suggested: string; confidence: number; } export interface LocationResolutionOptions { maxResults?: number; enableFuzzySearch?: boolean; userLocation?: { latitude: number; longitude: number; }; includeNearbyInfo?: boolean; skipCache?: boolean; searchTimeout?: number; } export interface LocationResolutionResult { query: string; queryAnalysis: QueryAnalysis; results: LocationResult[]; confidence: number; suggestions: SearchSuggestion[]; timestamp: string; } export interface SearchSuggestion { text: string; type: 'correction' | 'expansion' | 'alternative'; confidence: number; reason: string; } export interface SearchResult { query: string; results: LocationResult[]; suggestions: SearchSuggestion[]; confidence: number; searchStrategiesUsed: SearchStrategy[]; } export interface SearchOptions { maxResults?: number; enableFuzzySearch?: boolean; userLocation?: { latitude: number; longitude: number; }; timeout?: number; } export interface SearchContext { userLocation?: { latitude: number; longitude: number; }; timeContext?: { isBusinessHours: boolean; isRushHour: boolean; isWeekend: boolean; }; preferredTransport?: string[]; } export interface EnhancedQuery { original: string; expanded: string[]; corrections: string[]; abbreviations: string[]; } export interface ContextualQuery { query: string; context: SearchContext; enhancedQueries: string[]; } export interface AutoCompleteSuggestion { text: string; type: 'mrt_station' | 'landmark' | 'postal_code' | 'address'; confidence: number; metadata?: { line?: string; district?: string; category?: string; }; } export interface LocationSearchArgs { query: string; maxResults?: number; enableFuzzySearch?: boolean; includeNearbyInfo?: boolean; userLocation?: { latitude: number; longitude: number; }; } export interface LocationSearchResponse { query: string; results: LocationResult[]; suggestions: SearchSuggestion[]; confidence: number; searchStrategiesUsed: SearchStrategy[]; contextInfo: { singaporeTime: string; isBusinessHours: boolean; isRushHour: boolean; }; timestamp: string; } export interface ReverseGeocodeArgs { latitude: number; longitude: number; radius?: number; includeNearbyAmenities?: boolean; } export interface PostalCodeArgs { postalCode: string; includeNearbyInfo?: boolean; } import type { LocationResult, SearchStrategy } from './location.js';