opendata-mcp
MODEL CONTEXT PROTOCOL · REMOTE SERVER · CLOUDFLARE WORKERS

一句話問天氣、地震、空品、交通,
Claude 直接幫你查。

台灣各機關的開放資料散在不同平台,申請流程、認證方式、欄位命名各不相同。opendata-mcp 把它們收斂成一組好用的工具——不用申請金鑰、不用記資料集代碼、不用煩惱「臺」還是「台」。

加進 Claude 看原始碼
$ curl -s https://opendata-mcp…workers.dev/mcp -d '{"method":"tools/list"}' → 11 tools ready
0
精選工具
0
通用查詢工具
0
資料平台
0
已登記資料集(含 8 筆長尾)
0
單元測試

問答示意看板

SAMPLE · 示意畫面,非即時資料
QUERY
RESPONSE

以上問答為預先寫好的示意內容,用於說明服務用途,並非即時查詢結果。實際回應由 Claude 於對話當下呼叫官方 API 取得,內容與格式以官方資料為準。

TOOLS · 09 + 02

支援的工具總覽

9 個精選工具直接可用,另有 2 個通用工具涵蓋 8 筆長尾資料集。工具本身的 description 才是最新的文件來源,這裡只列摘要。

tw_weather_forecast01
指定縣市未來 36 小時天氣狀況、降雨機率、氣溫、舒適度指數
中央氣象署F-C0032-001每日數次
tw_recent_earthquakes02
近期顯著有感地震報告:規模、深度、震央、各地最大震度
中央氣象署E-A0015-001地震時即時
tw_typhoon03
目前活動中的颱風/熱帶氣旋消息與官方預測路徑
中央氣象署W-C0034-005每 6 小時
tw_air_quality04
指定縣市或測站的即時 AQI、PM2.5、PM10、O3
環境部aqx_p_432每小時
tw_bus_eta05
指定縣市/路線/站牌的公車動態預估到站時間
交通部 TDX約 30 秒–1 分鐘
tw_youbike06
指定縣市/站點的 YouBike 等公共自行車可借還數量
交通部 TDX約 1–3 分鐘
tw_rail07
指定台鐵車站即時到離站看板、誤點分鐘數
交通部 TDX約 2 分鐘延遲
tw_metro_status08
台北/高雄/桃園捷運目前營運狀態
交通部 TDX約 60 秒
tw_highway_traffic09
全國國道(高速公路/快速道路)即時事故、施工、管制事件
高速公路局約 60 秒
tw_search_datasets

用關鍵字(例如「潮汐」「紫外線」)搜尋本伺服器已登記的全部資料集,找出可用的 datasetId 與參數說明。

tw_query_dataset

帶著查到的 datasetId 執行實際查詢——只接受已登記的 id,不接受任意網址,避免被當跳板打任意上游 API。

長尾資料集包含:潮汐預報、氣象站觀測、天氣特報、紫外線指數每日最大值與即時值、颱風警報、空品預報、道路可變訊息標誌位置。

GET STARTED

怎麼開始使用

路線 01

用公開 demo 服務

打開 claude.ai → 左下角設定ConnectorsAdd custom connector → 貼上下方網址,存檔後直接問「臺北市明天天氣如何?」。

https://opendata-mcp.dragonheartliu1440.workers.dev/mcp

這是一個公開展示(demo)服務,僅供測試使用,沒有登入機制、沒有專屬額度保證。流量較大時可能回應較慢,也可能因為共用的官方 API 額度用完而暫時查不到資料。

同樣的網址也可以接進 ChatGPT、Cursor、Windsurf、Cline 等任何 MCP 相容平台,不需要任何驗證設定。

路線 02

自行部署一份

完全免費,約 10–15 分鐘,不需要自己的伺服器。長期穩定使用(尤其是 TDX 那四個工具)建議走這條。

  1. Fork 這個 repo 到你的 GitHub
  2. Cloudflare Dashboard → Workers & Pages → Create → Import an existing Git repository,選你 Fork 的 repo 直接部署
  3. Settings → Variables and Secrets,加上 CWA_API_KEYMOENV_API_KEYTDX_CLIENT_IDTDX_CLIENT_SECRET(用 Secret,不要用一般環境變數)
  4. 建立自己的快取 KV namespace,把 wrangler.toml 裡的 id 換掉
  5. 之後 push 到 main 就會自動重新部署

金鑰都是免費申請;國道事件完全公開、不需要金鑰。沒設定金鑰的工具會回傳明確錯誤訊息,不會讓整個服務掛掉。完整步驟見 README 的「自行部署」章節

QUALITY GATES

品質保證

三個 GitHub Actions workflow 做持續性把關,設計成不依賴人工手動驗證,讓貢獻者可以放心送 PR。三者都能在 Actions 分頁手動觸發。

ci.yml TRIGGER · 每個 PR
01typecheck
02跑全部單元測試(目前 333 個)
03wrangler deploy --dry-run 確認建置成功

任一步驟失敗,PR 會顯示紅叉、不可合併。

fixtures-refresh.yml TRIGGER · 每週一次
01對每個已註冊資料集打一次真實 API
02與 fixtures 做結構性比對(欄位、型別,不比對數值)
03上游改格式 → 自動開 schema-drift PR 與 issue

在猜錯格式的問題影響到使用者之前,先在自動化流程裡抓到。

post-deploy-smoke-test.yml TRIGGER · push 到 main 後
01initialize 真實 MCP 請求
02tools/list 確認所有工具正確曝光
03依序真實呼叫幾個工具,確認回應信封格式正確

失敗會自動開一個標記 smoke-test-failed 的 issue。

LICENSE & SOURCES

資料來源與授權

本專案串接的資料,皆依政府資料開放授權條款第 1 版釋出:

免責聲明:本專案僅為官方開放資料的轉載與整理工具,不自行生成、推測或判斷任何預報、警報或路況內容,也不保證資料的即時性與準確性(查詢結果依各資料集更新頻率有短時間快取,最多可能有數分鐘延遲)。防災、颱風、地震、空品惡化、道路封閉等相關警特報訊息,請務必以中央氣象署、環境部、交通部及所屬機關官方網站、官方 App 或其他官方管道公布之內容為準;本專案不提供任何形式的氣象預報、警特報發布或交通指揮服務,亦不承擔因使用本專案資料所產生之任何損失或責任。

程式碼採用 MIT License 授權。透過本專案取得的資料本身另依政府資料開放授權條款第 1 版釋出,授權範圍與程式碼分開,使用前請自行確認符合該授權條款的要求(主要是註明出處)。