UNPKG

@bashcat/cwa-mcp-weather

Version:

MCP 伺服器整合中央氣象署 (CWA) 開放資料 API - 完整支援所有15個天氣工具

247 lines 6.36 kB
import { CWAWeatherData, CWAObservationData, CWAEarthquakeData, CWAWarningData } from './types.js'; export declare class CWAAPIClient { private config; constructor(apiKey: string); /** * 呼叫 CWA API */ private callAPI; /** * 載入站點映射資料 */ private loadStationMapping; /** * 取得縣市天氣預報(今明36小時) */ getCountyWeather(params?: { locationName?: string[]; elementName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<CWAWeatherData>; /** * 取得鄉鎮天氣預報 */ getTownshipWeather(params: { county: string; period: '3days' | 'weekly'; locationName?: string[]; elementName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<CWAWeatherData>; /** * 取得潮汐預報 */ getTidalForecast(params?: { locationName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<CWAWeatherData>; /** * 取得健康氣象預報 */ getHealthWeatherForecast(params: { apiId: 'F-H0053-001' | 'F-H0053-003' | 'F-H0052-001'; locationName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<CWAWeatherData>; /** * 取得自動氣象站觀測資料 */ getWeatherStationData(params?: { stationName?: string[]; elementName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<CWAObservationData>; /** * 取得自動雨量站觀測資料 */ getRainfallStationData(params?: { stationName?: string[]; elementName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<CWAObservationData>; /** * 取得現在天氣觀測報告 */ getCurrentWeatherReport(params?: { locationName?: string[]; }): Promise<CWAObservationData>; /** * 取得紫外線指數 */ getUVIndex(params?: { locationName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<CWAObservationData>; /** * 取得臭氧總量觀測資料 */ getOzoneData(params?: { timeFrom?: string; timeTo?: string; }): Promise<CWAObservationData>; /** * 取得海象監測資料 */ getMarineData(params: { period: '48hours' | '30days'; stationName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<CWAObservationData>; /** * 取得海嘯資訊 */ getTsunamiData(params?: { timeFrom?: string; timeTo?: string; }): Promise<any>; /** * 取得地震報告 */ getEarthquakeReport(params: { type: 'significant' | 'local'; language: 'zh' | 'en'; timeFrom?: string; timeTo?: string; }): Promise<CWAEarthquakeData>; /** * 取得每日雨量資料 */ getDailyRainfall(params?: { stationName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<any>; /** * 取得月平均資料 */ getMonthlyAverage(params?: { stationName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<any>; /** * 取得氣象測站基本資料 */ getStationInfo(params: { type: 'manned' | 'unmanned'; stationName?: string[]; }): Promise<any>; /** * 取得天氣特報 */ getWeatherWarning(params: { type: 'county' | 'content'; locationName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<CWAWarningData>; /** * 取得颱風資訊 */ getTyphoonData(params?: { timeFrom?: string; timeTo?: string; }): Promise<any>; /** * 取得數值預報資料 */ getNumericalForecast(params?: { locationName?: string[]; elementName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<any>; /** * 取得日出日沒時刻 */ getSunriseSunset(params?: { locationName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<any>; /** * 取得月出月沒時刻 */ getMoonriseMoonset(params?: { locationName?: string[]; timeFrom?: string; timeTo?: string; }): Promise<any>; /** * 取得所有支援的縣市列表 */ getSupportedCounties(): string[]; /** * 檢查 API 是否可用(測試連線) */ testConnection(): Promise<boolean>; /** * 格式化天氣資料為可讀的文字(限制長度避免 MCP 協議問題) */ formatWeatherData(data: CWAWeatherData): string; /** * 格式化觀測資料為可讀的文字 */ formatObservationData(data: any): string; /** * 格式化地震資料為可讀的文字(限制長度避免 MCP 協議問題) */ formatEarthquakeData(data: any): string; /** * 格式化海嘯資料為可讀的文字 */ formatTsunamiData(data: any): string; /** * 格式化警特報資料為可讀的文字 */ formatWarningData(data: CWAWarningData): string; /** * 格式化日出日沒資料為可讀的文字 */ formatAstronomyData(data: any): string; /** * 格式化月出月沒資料為可讀的文字 */ formatMoonData(data: any): string; /** * 格式化鄉鎮天氣預報資料 */ formatTownshipWeatherData(data: any): string; /** * 取得潮汐站點的類型資訊 */ private getTidalStationInfo; /** * 格式化潮汐資料為可讀的文字 */ formatTidalData(data: any): string; /** * 格式化預報資料為可讀的文字 */ formatForecastData(data: any): string; /** * 通用格式化方法 */ formatData(data: any, type: string): string; /** * 根據地點名稱篩選觀測站 */ private filterStationsByLocation; /** * 根據地點名稱篩選紫外線站點 */ private filterUVStationsByLocation; /** * 格式化颱風資料 */ private formatTyphoonData; } //# sourceMappingURL=cwa-client.d.ts.map