Authenticated MCP SSE Server

import { AlertFeature, ForecastPeriod, AlertsResponse, ForecastResponse } from "../types/weather"; // Format alert data export const formatAlert = (feature: AlertFeature): string => { const props = feature.properties; return [ `Event: ${props.event || "Unknown"}`, `Area: ${props.areaDesc || "Unknown"}`, `Severity: ${props.severity || "Unknown"}`, `Status: ${props.status || "Unknown"}`, `Headline: ${props.headline || "No headline"}`, "---", ].join("\n"); }; // Format forecast period export const formatForecastPeriod = (period: ForecastPeriod): string => { return [ `${period.name || "Unknown"}:`, `Temperature: ${period.temperature || "Unknown"}°${period.temperatureUnit || "F"}`, `Wind: ${period.windSpeed || "Unknown"} ${period.windDirection || ""}`, `${period.shortForecast || "No forecast available"}`, "---", ].join("\n"); }; // Format alerts response for display export const formatAlertsResponse = (alertsData: AlertsResponse, stateCode: string): string => { const features = alertsData.features || []; if (features.length === 0) { return `No active alerts for ${stateCode}`; } const formattedAlerts = features.map(formatAlert); return `Active alerts for ${stateCode}:\n\n${formattedAlerts.join("\n")}`; }; // Format forecast response for display export const formatForecastResponse = (forecastData: ForecastResponse, latitude: number, longitude: number): string => { const periods = forecastData.properties?.periods || []; if (periods.length === 0) { return "No forecast periods available"; } const formattedForecast = periods.map(formatForecastPeriod); return `Forecast for ${latitude}, ${longitude}:\n\n${formattedForecast.join("\n")}`; };