npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

taiwan-cwa-mcp-server

v0.1.0

Published

Taiwan Central Weather Administration (CWA) API MCP Server

Readme

台灣中央氣象局 MCP 伺服器

這個專案提供一個與台灣中央氣象局 (CWA) API 進行對接的 Model Context Protocol (MCP) 伺服器,讓你能夠簡單地獲取台灣地區的天氣資料。

中文版 | English

✨ 功能特色

  • 獲取台灣各縣市未來 3 天的天氣預報資料
  • 獲取台灣各縣市未來 1 週的天氣預報資料
  • 獲取過去三天的雨量資料
  • 自動資料清理與格式轉換
  • 錯誤處理機制與重試邏輯
  • 簡化的 API 輸出,僅包含必要資訊

🚀 安裝說明

Claude Desktop 設定

  1. 安裝 Claude Desktop

    • 下載 Claude Desktop
    • 確保您使用的是最新版本 (選單: Claude -> 檢查更新...)
  2. 設定 MCP 伺服器

    {
      "mcpServers": {
        "taiwan-weather": {
          "command": "npx",
          "args": [
            "taiwan-cwa-mcp-server"
          ],
          "env": {
            "CWA_API_KEY": "您的API金鑰"
          }
        }
      }
    }
    • 您的API金鑰 替換為從中央氣象局取得的 API 金鑰

從本地開發版本啟動

{
  "mcpServers": {
    "taiwan-weather": {
      "command": "npx",
      "args": [
        "tsx",
        "/您的專案目錄路徑/src/server.ts"
      ],
      "env": {
        "CWA_API_KEY": "您的API金鑰",
        "MAX_RETRIES": "3",
        "TIMEOUT_MS": "10000"
      }
    }
  }
}

🛠️ 可用工具

get_3_days_weather

獲取指定縣市未來 3 天的天氣預報資料。

參數:

  • location_name (字串): 縣市名稱,必須是有效的台灣縣市名稱

有效的縣市名稱包括:宜蘭縣, 花蓮縣, 臺東縣, 澎湖縣, 金門縣, 連江縣, 臺北市, 新北市, 桃園市, 臺中市, 臺南市, 高雄市, 基隆市, 新竹縣, 新竹市, 苗栗縣, 彰化縣, 南投縣, 雲林縣, 嘉義縣, 嘉義市, 屏東縣

get_1_week_weather

獲取指定縣市未來 1 週的天氣預報資料。

參數:

  • location_name (字串): 縣市名稱,必須是有效的台灣縣市名稱

有效的縣市名稱包括:宜蘭縣, 花蓮縣, 臺東縣, 澎湖縣, 金門縣, 連江縣, 臺北市, 新北市, 桃園市, 臺中市, 臺南市, 高雄市, 基隆市, 新竹縣, 新竹市, 苗栗縣, 彰化縣, 南投縣, 雲林縣, 嘉義縣, 嘉義市, 屏東縣

get_historical_rainfall

獲取過去三天的雨量資料。

🧪 開發說明

環境變數配置

本專案使用 .env 檔案進行配置。請參考 .env.example 並建立自己的 .env 檔案:

# API 金鑰設定
CWA_API_KEY=YOUR_API_KEY_HERE

# API 請求設定
MAX_RETRIES=3
RETRY_DELAY_BASE=2
TIMEOUT_MS=10000

使用 fastmcp dev 測試

最快速的測試和調試方法是使用 fastmcp dev

npm run dev  # 或 npx fastmcp dev src/server.ts

這將在終端中運行伺服器與 mcp-cli 一起測試和調試。

使用 MCP Inspector 檢查

另一種方法是使用官方的 MCP Inspector 在網頁界面檢查伺服器:

npm run inspect  # 或 npx fastmcp inspect src/server.ts

中央氣象局 API 資源

要使用本專案,你需要先從中央氣象局取得 API 金鑰:

資料格式

天氣預報資料格式

[
  {
    "ElementName": "溫度",
    "Time": [
      ["2025-04-11T00:00", "21"],
      ["2025-04-11T01:00", "21"],
      ...
    ]
  },
  {
    "ElementName": "相對濕度",
    "Time": [
      ["2025-04-11T00:00", "90"],
      ["2025-04-11T01:00", "89"],
      ...
    ]
  },
  ...
]

雨量資料格式

{
  "rain_labels": ["Now", "Past10Min", "Past1hr", "Past3hr", "Past6Hr", "Past12hr", "Past24hr", "Past2days", "Past3days"],
  "stations": [
    {
      "name": "測站名稱",
      "time": "觀測時間",
      "loc": "縣市,鄉鎮",
      "geo": [緯度, 經度],
      "rain": [當前, 過去10分鐘, 過去1小時, 過去3小時, 過去6小時, 過去12小時, 過去24小時, 過去2天, 過去3天]
    },
    ...
  ]
}

🤝 貢獻

歡迎問題報告和功能請求! 請訪問問題頁面

📄 授權

MIT 授權 - Copyright (c) 2025 Stephen J. Li