@bashcat/cwa-mcp-weather
Version:
MCP 伺服器整合中央氣象署 (CWA) 開放資料 API - 完整支援所有15個天氣工具
247 lines • 6.36 kB
TypeScript
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