Skip to main content
Glama

Caiyun Weather MCP Server

by marcusbai
types.ts9.76 kB
// 彩云天气API响应类型 export interface CaiyunWeatherResponse { status: string; api_version: string; api_status: string; lang: string; unit: string; tzshift: number; timezone: string; server_time: number; location: [number, number]; result: { realtime?: RealtimeData; minutely?: MinutelyData; hourly?: HourlyData; daily?: DailyData; alert?: AlertData; primary?: number; forecast_keypoint?: string; }; } // 降水类型枚举 export enum PrecipitationType { RAIN = 'rain', SNOW = 'snow', SLEET = 'sleet', HAIL = 'hail', NONE = 'none' } // 降水类型中文映射 export const precipitationTypeMap: Record<string, string> = { [PrecipitationType.RAIN]: '雨', [PrecipitationType.SNOW]: '雪', [PrecipitationType.SLEET]: '雨夹雪', [PrecipitationType.HAIL]: '冰雹', [PrecipitationType.NONE]: '无降水' }; // 降水类型英文映射 export const precipitationTypeMapEn: Record<string, string> = { [PrecipitationType.RAIN]: 'Rain', [PrecipitationType.SNOW]: 'Snow', [PrecipitationType.SLEET]: 'Sleet', [PrecipitationType.HAIL]: 'Hail', [PrecipitationType.NONE]: 'No Precipitation' }; // 空气质量趋势 export interface AirQualityTrend { direction: 'up' | 'down' | 'stable'; change: number; description: string; } // 主要污染物 export interface PrimaryPollutant { type: string; concentration: number; description: string; } // 扩展的生活指数 export interface ExtendedLifeIndex { ultraviolet: { index: number; desc: string; }; comfort: { index: number; desc: string; }; sport?: { index: string; desc: string; }; travel?: { index: string; desc: string; }; cold?: { index: string; desc: string; }; carWashing: { index: string; desc: string; }; dressing: { index: string; desc: string; }; } // 实时天气数据 export interface RealtimeData { status: string; temperature: number; humidity: number; cloudrate: number; skycon: string; visibility: number; dswrf: number; wind: { speed: number; direction: number; }; pressure: number; apparent_temperature: number; precipitation: { local: { status: string; datasource: string; intensity: number; type?: string; // 降水类型 }; nearest?: { status: string; distance: number; intensity: number; type?: string; // 降水类型 }; }; air_quality: { pm25: number; pm10: number; o3: number; so2: number; no2: number; co: number; aqi: { chn: number; usa: number; }; description: { chn: string; usa: string; }; trend?: AirQualityTrend; // 空气质量趋势 primary_pollutant?: PrimaryPollutant; // 主要污染物 }; life_index: ExtendedLifeIndex; } // 分钟级降水数据 export interface MinutelyData { status: string; datasource: string; precipitation_2h: number[]; precipitation: number[]; probability: number[]; description: string; } // 小时级天气数据 export interface HourlyData { status: string; description: string; precipitation: Array<{ datetime: string; value: number; probability?: number; type?: string; // 降水类型 }>; temperature: Array<{ datetime: string; value: number; }>; apparent_temperature: Array<{ datetime: string; value: number; }>; wind: Array<{ datetime: string; speed: number; direction: number; }>; humidity: Array<{ datetime: string; value: number; }>; cloudrate: Array<{ datetime: string; value: number; }>; skycon: Array<{ datetime: string; value: string; }>; pressure: Array<{ datetime: string; value: number; }>; visibility: Array<{ datetime: string; value: number; }>; dswrf: Array<{ datetime: string; value: number; }>; air_quality: { aqi: Array<{ datetime: string; value: { chn: number; usa: number; }; trend?: AirQualityTrend; }>; pm25: Array<{ datetime: string; value: number; }>; primary_pollutant?: Array<{ datetime: string; value: PrimaryPollutant; }>; }; } // 天级别天气数据 export interface DailyData { status: string; astro: Array<{ date: string; sunrise: { time: string; }; sunset: { time: string; }; }>; precipitation: Array<{ date: string; max: number; min: number; avg: number; probability: number; type?: string; // 降水类型 }>; temperature: Array<{ date: string; max: number; min: number; avg: number; }>; temperature_08h_20h?: Array<{ date: string; max: number; min: number; avg: number; }>; temperature_20h_32h?: Array<{ date: string; max: number; min: number; avg: number; }>; wind: Array<{ date: string; max: { speed: number; direction: number; }; min: { speed: number; direction: number; }; avg: { speed: number; direction: number; }; }>; wind_08h_20h?: Array<{ date: string; max: { speed: number; direction: number; }; min: { speed: number; direction: number; }; avg: { speed: number; direction: number; }; }>; wind_20h_32h?: Array<{ date: string; max: { speed: number; direction: number; }; min: { speed: number; direction: number; }; avg: { speed: number; direction: number; }; }>; humidity: Array<{ date: string; max: number; min: number; avg: number; }>; cloudrate: Array<{ date: string; max: number; min: number; avg: number; }>; pressure: Array<{ date: string; max: number; min: number; avg: number; }>; visibility: Array<{ date: string; max: number; min: number; avg: number; }>; dswrf: Array<{ date: string; max: number; min: number; avg: number; }>; air_quality: { aqi: Array<{ date: string; max: { chn: number; usa: number; }; avg: { chn: number; usa: number; }; min: { chn: number; usa: number; }; trend?: AirQualityTrend; }>; pm25: Array<{ date: string; max: number; avg: number; min: number; }>; primary_pollutant?: Array<{ date: string; value: PrimaryPollutant; }>; }; skycon: Array<{ date: string; value: string; }>; skycon_08h_20h: Array<{ date: string; value: string; }>; skycon_20h_32h: Array<{ date: string; value: string; }>; life_index: { ultraviolet: Array<{ date: string; index: string; desc: string; }>; carWashing: Array<{ date: string; index: string; desc: string; }>; dressing: Array<{ date: string; index: string; desc: string; }>; comfort: Array<{ date: string; index: string; desc: string; }>; coldRisk: Array<{ date: string; index: string; desc: string; }>; sport?: Array<{ date: string; index: string; desc: string; }>; travel?: Array<{ date: string; index: string; desc: string; }>; }; } // 预警数据 export interface AlertData { status: string; content: Array<{ province: string; status: string; code: string; description: string; regionId: string; county: string; pubtimestamp: number; latlon: [number, number]; city: string; alertId: string; title: string; adcode: string; source: string; location: string; request_status: string; }>; adcodes?: { [key: string]: { status: string; request_status: string; }; }; } // 高德地图地理编码响应 export interface GeocodingResponse { status: string; info: string; infocode: string; count: string; geocodes: Array<{ formatted_address: string; country: string; province: string; citycode: string; city: string; district: string; township: string; neighborhood: { name: string; type: string; }; building: { name: string; type: string; }; adcode: string; street: string; number: string; location: string; level: string; }>; } // 天气图标映射 export const skyconMap: Record<string, string> = { CLEAR_DAY: '晴天', CLEAR_NIGHT: '晴夜', PARTLY_CLOUDY_DAY: '多云', PARTLY_CLOUDY_NIGHT: '多云', CLOUDY: '阴', LIGHT_HAZE: '轻度雾霾', MODERATE_HAZE: '中度雾霾', HEAVY_HAZE: '重度雾霾', LIGHT_RAIN: '小雨', MODERATE_RAIN: '中雨', HEAVY_RAIN: '大雨', STORM_RAIN: '暴雨', FOG: '雾', LIGHT_SNOW: '小雪', MODERATE_SNOW: '中雪', HEAVY_SNOW: '大雪', STORM_SNOW: '暴雪', DUST: '浮尘', SAND: '沙尘', WIND: '大风' }; // 英文天气图标映射 export const skyconMapEn: Record<string, string> = { CLEAR_DAY: 'Clear Day', CLEAR_NIGHT: 'Clear Night', PARTLY_CLOUDY_DAY: 'Partly Cloudy Day', PARTLY_CLOUDY_NIGHT: 'Partly Cloudy Night', CLOUDY: 'Cloudy', LIGHT_HAZE: 'Light Haze', MODERATE_HAZE: 'Moderate Haze', HEAVY_HAZE: 'Heavy Haze', LIGHT_RAIN: 'Light Rain', MODERATE_RAIN: 'Moderate Rain', HEAVY_RAIN: 'Heavy Rain', STORM_RAIN: 'Storm Rain', FOG: 'Fog', LIGHT_SNOW: 'Light Snow', MODERATE_SNOW: 'Moderate Snow', HEAVY_SNOW: 'Heavy Snow', STORM_SNOW: 'Storm Snow', DUST: 'Dust', SAND: 'Sand', WIND: 'Wind' };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/marcusbai/caiyun-weather-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server