@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
TypeScript
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';