get_weather_alerts
Retrieve weather alert details for a specific location or all areas using the Weather MCP Server. Input a location name to view targeted alerts or leave blank for comprehensive updates.
Instructions
Get weather alert information
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | Location name (optional, if not provided, get all alerts) |
Implementation Reference
- src/weather-service.ts:49-65 (handler)The core handler function that implements the logic for the get_weather_alerts tool, filtering mock weather alerts based on location.async getWeatherAlerts(location?: string): Promise<WeatherAlert[]> { if (!location) { return mockWeatherAlerts; } const normalizedLocation = this.normalizeLocation(location); const locationName = mockWeatherData[normalizedLocation]?.location || location; return mockWeatherAlerts.filter(alert => alert.areas.some(area => area.toLowerCase().includes(locationName.toLowerCase()) || locationName.toLowerCase().includes(area.toLowerCase()) || area.toLowerCase().includes(normalizedLocation) || normalizedLocation.includes(area.toLowerCase()) ) ); }
- src/index.ts:72-84 (schema)JSON Schema definition for the input parameters of the get_weather_alerts tool.{ name: 'get_weather_alerts', description: 'Get weather alert information', inputSchema: { type: 'object', properties: { location: { type: 'string', description: 'Location name (optional, if not provided, get all alerts)', }, }, }, },
- src/index.ts:143-154 (registration)Registration of the tool call handler for get_weather_alerts in the main MCP stdio server.case 'get_weather_alerts': { const { location } = args as { location?: string }; const alerts = await this.weatherService.getWeatherAlerts(location); return { content: [ { type: 'text', text: JSON.stringify(alerts, null, 2), }, ], }; }
- src/types.ts:30-39 (schema)TypeScript interface defining the WeatherAlert type used for output validation.export interface WeatherAlert { id: string; type: string; severity: 'minor' | 'moderate' | 'severe' | 'extreme'; title: string; description: string; areas: string[]; startTime: string; endTime: string; }
- src/mock-data.ts:339-400 (helper)Mock data array of WeatherAlert objects used by the handler to provide sample weather alerts.export const mockWeatherAlerts: WeatherAlert[] = [ { id: 'hk-typhoon-001', type: 'Typhoon', severity: 'severe', title: 'Typhoon Warning Signal No. 8', description: 'Strong winds and heavy rain expected. Stay indoors and avoid unnecessary travel. Public transport may be suspended.', areas: ['Hong Kong Island', 'Kowloon', 'New Territories'], startTime: new Date().toISOString(), endTime: new Date(Date.now() + 12 * 60 * 60 * 1000).toISOString() }, { id: 'tokyo-heatwave-001', type: 'Heat Wave', severity: 'moderate', title: 'High Temperature Advisory', description: 'Temperatures may exceed 35°C. Stay hydrated and avoid prolonged outdoor activities during peak hours.', areas: ['Tokyo Metropolitan Area', 'Chiba', 'Saitama'], startTime: new Date().toISOString(), endTime: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString() }, { id: 'osaka-thunderstorm-001', type: 'Thunderstorm', severity: 'moderate', title: 'Severe Thunderstorm Warning', description: 'Heavy rain, lightning, and strong winds expected. Avoid outdoor activities and seek shelter.', areas: ['Osaka Prefecture', 'Kyoto', 'Nara'], startTime: new Date(Date.now() + 2 * 60 * 60 * 1000).toISOString(), endTime: new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString() }, { id: 'sapporo-snow-001', type: 'Snow', severity: 'minor', title: 'Late Season Snow Advisory', description: 'Unexpected late spring snowfall possible. Roads may become slippery, drive with caution.', areas: ['Sapporo City', 'Hokkaido Central'], startTime: new Date(Date.now() + 6 * 60 * 60 * 1000).toISOString(), endTime: new Date(Date.now() + 18 * 60 * 60 * 1000).toISOString() }, { id: 'london-flood-001', type: 'Flood', severity: 'moderate', title: 'Flood Warning', description: 'Heavy rainfall may cause flooding in low-lying areas. Avoid driving through flooded roads.', areas: ['Thames Valley', 'South London', 'Surrey'], startTime: new Date().toISOString(), endTime: new Date(Date.now() + 6 * 60 * 60 * 1000).toISOString() }, { id: 'fukuoka-typhoon-001', type: 'Typhoon', severity: 'severe', title: 'Typhoon Approach Warning', description: 'Typhoon approaching southern Japan. Prepare for strong winds, heavy rain, and possible power outages.', areas: ['Fukuoka Prefecture', 'Kumamoto', 'Kagoshima'], startTime: new Date(Date.now() + 4 * 60 * 60 * 1000).toISOString(), endTime: new Date(Date.now() + 20 * 60 * 60 * 1000).toISOString() } ];