@bashcat/cwa-mcp-weather
Version:
MCP 伺服器整合中央氣象署 (CWA) 開放資料 API - 完整支援所有15個天氣工具
352 lines • 12.9 kB
JavaScript
// 台灣縣市列表
export const TAIWAN_COUNTIES = [
'宜蘭縣', '花蓮縣', '臺東縣', '澎湖縣', '金門縣', '連江縣',
'臺北市', '新北市', '桃園市', '臺中市', '臺南市', '高雄市',
'基隆市', '新竹縣', '新竹市', '苗栗縣', '彰化縣', '南投縣',
'雲林縣', '嘉義縣', '嘉義市', '屏東縣'
];
// 天氣因子類型
export const WEATHER_ELEMENTS = {
// 一般天氣預報因子
GENERAL: {
'Wx': '天氣現象',
'PoP': '降雨機率',
'CI': '舒適度指數',
'MinT': '最低溫度',
'MaxT': '最高溫度'
},
// 鄉鎮預報因子(3天)
TOWNSHIP_3DAY: {
'露點溫度': '露點溫度',
'天氣預報綜合描述': '天氣預報綜合描述',
'舒適度指數': '舒適度指數',
'風向': '風向',
'降雨機率': '降雨機率',
'溫度': '溫度',
'風速': '風速',
'天氣現象': '天氣現象',
'相對濕度': '相對濕度',
'體感溫度': '體感溫度'
},
// 鄉鎮預報因子(1週)
TOWNSHIP_WEEKLY: {
'最高溫度': '最高溫度',
'天氣預報綜合描述': '天氣預報綜合描述',
'平均相對濕度': '平均相對濕度',
'最高體感溫度': '最高體感溫度',
'降雨機率': '降雨機率',
'風向': '風向',
'平均露點溫度': '平均露點溫度',
'最低體感溫度': '最低體感溫度',
'平均溫度': '平均溫度',
'最大舒適度指數': '最大舒適度指數',
'最小舒適度指數': '最小舒適度指數',
'風速': '風速',
'紫外線指數': '紫外線指數',
'天氣現象': '天氣現象',
'最低溫度': '最低溫度'
},
// 觀測資料因子
OBSERVATION: {
'ELEV': '海拔高度',
'WDIR': '風向',
'WDSD': '風速',
'TEMP': '溫度',
'HUMD': '相對濕度',
'PRES': '測站氣壓',
'SUN': '日照時數',
'H_24R': '日累積雨量',
'H_FX': '小時最大陣風',
'H_XD': '小時最大陣風風向',
'H_FXT': '小時最大陣風時間',
'D_TX': '日最高溫',
'D_TXT': '日最高溫時間',
'D_TN': '日最低溫',
'D_TNT': '日最低溫時間'
}
};
// 完整的 CWA API 端點列表
export const CWA_API_ENDPOINTS = [
// === 預報類 ===
{
id: 'F-C0032-001',
path: '/v1/rest/datastore/F-C0032-001',
name: '一般天氣預報-今明36小時天氣預報',
description: '臺灣各縣市天氣預報資料及國際都市天氣預報',
type: 'general',
category: 'forecast'
},
// 鄉鎮預報 - 宜蘭縣
{
id: 'F-D0047-001',
path: '/v1/rest/datastore/F-D0047-001',
name: '鄉鎮天氣預報-宜蘭縣未來3天天氣預報',
description: '宜蘭縣各鄉鎮市區未來3天(逐3小時)天氣預報',
county: '宜蘭縣',
period: '3days',
type: 'township',
category: 'forecast'
},
{
id: 'F-D0047-003',
path: '/v1/rest/datastore/F-D0047-003',
name: '鄉鎮天氣預報-宜蘭縣未來1週天氣預報',
description: '宜蘭縣各鄉鎮市區未來1週天氣預報',
county: '宜蘭縣',
period: 'weekly',
type: 'township',
category: 'forecast'
},
// 潮汐預報
{
id: 'F-A0021-001',
path: '/v1/rest/datastore/F-A0021-001',
name: '潮汐預報-未來1個月潮汐預報',
description: '未來1個月潮汐預報',
type: 'general',
category: 'forecast'
},
// 健康氣象預報
{
id: 'F-H0053-001',
path: '/v1/rest/datastore/F-H0053-001',
name: '健康氣象冷傷害指數及警示全臺各鄉鎮五日預報',
description: '冷傷害指數及警示全臺各鄉鎮五日預報',
type: 'general',
category: 'forecast'
},
{
id: 'F-H0053-003',
path: '/v1/rest/datastore/F-H0053-003',
name: '健康氣象冷傷害指數及警示全臺各鄉鎮未來72小時逐3小時預報',
description: '冷傷害指數及警示全臺各鄉鎮未來72小時逐3小時預報',
type: 'general',
category: 'forecast'
},
// === 觀測類 ===
{
id: 'O-A0001-001',
path: '/v1/rest/datastore/O-A0001-001',
name: '自動氣象站-氣象觀測資料',
description: '全臺自動氣象站氣象觀測資料',
type: 'observation',
category: 'observation'
},
{
id: 'O-A0002-001',
path: '/v1/rest/datastore/O-A0002-001',
name: '自動雨量站-雨量觀測資料',
description: '全臺自動雨量站雨量觀測資料',
type: 'observation',
category: 'observation'
},
{
id: 'O-A0003-001',
path: '/v1/rest/datastore/O-A0003-001',
name: '現在天氣觀測報告-現在天氣觀測報告',
description: '現在天氣觀測報告',
type: 'observation',
category: 'observation'
},
{
id: 'O-A0005-001',
path: '/v1/rest/datastore/O-A0005-001',
name: '紫外線指數-每日紫外線指數最大值',
description: '每日紫外線指數最大值',
type: 'observation',
category: 'observation'
},
{
id: 'O-A0006-001',
path: '/v1/rest/datastore/O-A0006-001',
name: '臭氧總量觀測資料-台北站',
description: '臭氧總量觀測資料-台北站',
type: 'observation',
category: 'observation'
},
{
id: 'O-B0074-001',
path: '/v1/rest/datastore/O-B0074-001',
name: '海象監測資料-48小時浮標站與潮位站海況監測資料',
description: '48小時浮標站與潮位站海況監測資料',
type: 'observation',
category: 'observation'
},
{
id: 'O-B0075-003',
path: '/v1/rest/datastore/O-B0075-003',
name: '海象監測資料-30天浮標站與潮位站海況監測資料',
description: '30天浮標站與潮位站海況監測資料',
type: 'observation',
category: 'observation'
},
// === 地震海嘯類 ===
{
id: 'O-B0076-001',
path: '/v1/rest/datastore/O-B0076-001',
name: '海嘯資訊資料-海嘯資訊資料',
description: '海嘯資訊資料',
type: 'earthquake',
category: 'earthquake_tsunami'
},
{
id: 'E-A0015-001',
path: '/v1/rest/datastore/E-A0015-001',
name: '顯著有感地震報告資料-顯著有感地震報告',
description: '顯著有感地震報告',
type: 'earthquake',
category: 'earthquake_tsunami'
},
{
id: 'E-A0015-002',
path: '/v1/rest/datastore/E-A0015-002',
name: '顯著有感地震報告資料-顯著有感地震報告(英文)',
description: '顯著有感地震報告(英文)',
type: 'earthquake',
category: 'earthquake_tsunami'
},
{
id: 'E-A0016-001',
path: '/v1/rest/datastore/E-A0016-001',
name: '小區域有感地震報告資料-小區域有感地震報告',
description: '小區域有感地震報告',
type: 'earthquake',
category: 'earthquake_tsunami'
},
{
id: 'E-A0016-002',
path: '/v1/rest/datastore/E-A0016-002',
name: '小區域有感地震報告資料-小區域有感地震報告(英文)',
description: '小區域有感地震報告(英文)',
type: 'earthquake',
category: 'earthquake_tsunami'
},
// === 氣候類 ===
{
id: 'C-B0024-001',
path: '/v1/rest/datastore/C-B0024-001',
name: '每日雨量-地面測站每日雨量資料',
description: '地面測站每日雨量資料',
type: 'climate',
category: 'climate'
},
{
id: 'C-B0025-001',
path: '/v1/rest/datastore/C-B0025-001',
name: '月平均-地面測站資料',
description: '地面測站月平均資料',
type: 'climate',
category: 'climate'
},
{
id: 'C-B0074-001',
path: '/v1/rest/datastore/C-B0074-001',
name: '氣象測站基本資料-有人氣象測站基本資料',
description: '有人氣象測站基本資料',
type: 'climate',
category: 'climate'
},
{
id: 'C-B0074-002',
path: '/v1/rest/datastore/C-B0074-002',
name: '氣象測站基本資料-無人氣象測站基本資料',
description: '無人氣象測站基本資料',
type: 'climate',
category: 'climate'
},
// === 天氣警特報類 ===
{
id: 'W-C0033-001',
path: '/v1/rest/datastore/W-C0033-001',
name: '天氣特報-各別縣市地區目前之天氣警特報情形',
description: '各別縣市地區目前之天氣警特報情形',
type: 'warning',
category: 'warning'
},
{
id: 'W-C0033-002',
path: '/v1/rest/datastore/W-C0033-002',
name: '天氣特報-各別天氣警特報之內容及所影響之區域',
description: '各別天氣警特報之內容及所影響之區域',
type: 'warning',
category: 'warning'
},
{
id: 'W-C0034-005',
path: '/v1/rest/datastore/W-C0034-005',
name: '颱風消息與警報-熱帶氣旋路徑',
description: '熱帶氣旋路徑資料',
type: 'warning',
category: 'warning'
},
{
id: 'F-H0052-001',
path: '/v1/rest/datastore/F-H0052-001',
name: '健康氣象-熱傷害指數及警示全台各鄉鎮五日逐三小時預報',
description: '熱傷害指數及警示全台各鄉鎮五日逐三小時預報',
type: 'warning',
category: 'warning'
},
// === 數值預報類 ===
{
id: 'M-A0064-001',
path: '/v1/rest/datastore/M-A0064-001',
name: '數值預報-全球預報系統溫度資料',
description: '全球預報系統溫度資料',
type: 'numerical',
category: 'numerical'
},
// === 天文類 ===
{
id: 'A-B0062-001',
path: '/v1/rest/datastore/A-B0062-001',
name: '日出日沒時刻-全臺各縣市年度逐日日出日沒時刻資料',
description: '全臺各縣市年度逐日日出日沒時刻資料',
type: 'astronomy',
category: 'astronomy'
},
{
id: 'A-B0063-001',
path: '/v1/rest/datastore/A-B0063-001',
name: '月出月沒時刻-全臺各縣市年度逐日月出月沒時刻資料',
description: '全臺各縣市年度逐日月出月沒時刻資料',
type: 'astronomy',
category: 'astronomy'
}
];
// 縣市代碼對應表
export const COUNTY_API_MAPPING = {
'宜蘭縣': { threeDays: 'F-D0047-001', weekly: 'F-D0047-003' },
'桃園市': { threeDays: 'F-D0047-005', weekly: 'F-D0047-007' },
'新竹縣': { threeDays: 'F-D0047-009', weekly: 'F-D0047-011' },
'苗栗縣': { threeDays: 'F-D0047-013', weekly: 'F-D0047-015' },
'彰化縣': { threeDays: 'F-D0047-017', weekly: 'F-D0047-019' },
'南投縣': { threeDays: 'F-D0047-021', weekly: 'F-D0047-023' },
'雲林縣': { threeDays: 'F-D0047-025', weekly: 'F-D0047-027' },
'嘉義縣': { threeDays: 'F-D0047-029', weekly: 'F-D0047-031' },
'屏東縣': { threeDays: 'F-D0047-033', weekly: 'F-D0047-035' },
'臺東縣': { threeDays: 'F-D0047-037', weekly: 'F-D0047-039' },
'花蓮縣': { threeDays: 'F-D0047-041', weekly: 'F-D0047-043' },
'澎湖縣': { threeDays: 'F-D0047-045', weekly: 'F-D0047-047' },
'基隆市': { threeDays: 'F-D0047-049', weekly: 'F-D0047-051' },
'新竹市': { threeDays: 'F-D0047-053', weekly: 'F-D0047-055' },
'嘉義市': { threeDays: 'F-D0047-057', weekly: 'F-D0047-059' },
'臺北市': { threeDays: 'F-D0047-061', weekly: 'F-D0047-063' },
'高雄市': { threeDays: 'F-D0047-065', weekly: 'F-D0047-067' },
'新北市': { threeDays: 'F-D0047-069', weekly: 'F-D0047-071' },
'臺中市': { threeDays: 'F-D0047-073', weekly: 'F-D0047-075' },
'臺南市': { threeDays: 'F-D0047-077', weekly: 'F-D0047-079' },
'連江縣': { threeDays: 'F-D0047-081', weekly: 'F-D0047-083' },
'金門縣': { threeDays: 'F-D0047-085', weekly: 'F-D0047-087' }
};
// API 類別常數
export const API_CATEGORIES = {
FORECAST: 'forecast',
OBSERVATION: 'observation',
EARTHQUAKE_TSUNAMI: 'earthquake_tsunami',
CLIMATE: 'climate',
WARNING: 'warning',
NUMERICAL: 'numerical',
ASTRONOMY: 'astronomy'
};
//# sourceMappingURL=types.js.map