taiwan-weather-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@taiwan-weather-mcp台北未來36小時天氣如何?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
taiwan-weather-mcp
台灣即時天氣預報、天氣特報與有感地震查詢的 MCP(Model Context Protocol)server, 讓 Claude Desktop / Claude Code 直接查中央氣象署的開放資料。
使用官方 mcp Python SDK 的 FastMCP
(SDK v2 起更名為 MCPServer,本專案使用穩定版 v1 系列),stdio transport。
資料來源:中央氣象署開放資料平臺。
提供的工具
工具 | 說明 | 參數 |
| 某縣市未來 36 小時天氣預報(天氣現象、降雨機率、氣溫區間、舒適度)。縣市名稱有模糊對應:「台中」→「臺中市」、「Taipei」→「臺北市」;「新竹」「嘉義」會同時回傳市與縣 |
|
| 目前生效中的天氣特報(颱風、豪雨、低溫、強風等),依特報種類彙整影響縣市;沒有特報時會明確說明 | 無 |
| 最近幾筆顯著有感地震(時間、規模、深度、震央、各縣市最大震度摘要) |
|
對應的 CWA dataset:F-C0032-001(36 小時預報)、W-C0033-001(天氣特報)、E-A0015-001(顯著有感地震報告)。
Related MCP server: Weather MCP Server
1. 申請 CWA API 授權碼(免費)
到 中央氣象署開放資料平臺 點右上角「登入/註冊」,註冊會員(一般 Email 即可,即時核發)。
登入後到 會員資訊 → API授權碼。
點「取得授權碼」,複製形如
CWA-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX的字串。
授權碼只透過環境變數
CWA_API_KEY讀取,不要寫進任何檔案。 本機開發可複製.env.example為.env填入(.env已被.gitignore排除)。
2. 安裝
先安裝 uv:
# Windows(PowerShell)
winget install astral-sh.uv
# WSL / Linux / macOS
curl -LsSf https://astral.sh/uv/install.sh | sh然後:
git clone https://github.com/tun0000/taiwan-weather-mcp.git
cd taiwan-weather-mcp
uv sync # 會自動下載 Python 3.12 與所有依賴3. 在 Claude Code 使用
# Windows(PowerShell,路徑換成你 clone 的位置)
claude mcp add taiwan-weather -e CWA_API_KEY=你的授權碼 -- uv --directory "C:\path\to\taiwan-weather-mcp" run server.py
# WSL / Linux / macOS(repo 需 clone 在該環境內)
claude mcp add taiwan-weather -e CWA_API_KEY=你的授權碼 -- uv --directory ~/taiwan-weather-mcp run server.py加好後用 claude mcp list 確認,然後在對話中直接問「台中明天天氣如何?」即可。
4. 在 Claude Desktop(Windows)使用
設定檔位置:%APPDATA%\Claude\claude_desktop_config.json
(Claude Desktop → 設定 → 開發人員 → 編輯設定檔)。
改完設定檔請從系統匣完全結束 Claude Desktop 再重開;檔案須以 UTF-8 儲存。
寫法 A:server 在 WSL 內,透過 wsl.exe 橋接
前置(在 WSL 內執行一次):
curl -LsSf https://astral.sh/uv/install.sh | sh # 安裝 uv
git clone https://github.com/tun0000/taiwan-weather-mcp.git ~/taiwan-weather-mcp
cd ~/taiwan-weather-mcp && uv syncrepo 請放 WSL 自己的檔案系統(如
~/),不要放/mnt/c/...,速度差很多。
{
"mcpServers": {
"taiwan-weather": {
"command": "wsl.exe",
"args": [
"-e", "bash", "-c",
"CWA_API_KEY=你的授權碼 exec $HOME/.local/bin/uv --directory $HOME/taiwan-weather-mcp run server.py"
]
}
}
}兩個常見地雷這個寫法都避開了:
Claude Desktop 的
env區塊不會自動穿透 WSL 邊界,所以金鑰用行內環境變數帶入。 若不想讓金鑰出現在 args,可改用WSLENV轉送:{ "mcpServers": { "taiwan-weather": { "command": "wsl.exe", "args": ["-e", "/home/你的WSL帳號/.local/bin/uv", "--directory", "/home/你的WSL帳號/taiwan-weather-mcp", "run", "server.py"], "env": { "CWA_API_KEY": "你的授權碼", "WSLENV": "CWA_API_KEY/u" } } } }用非登入 shell(
bash -c而非bash -lc)+ uv 絕對路徑:登入 shell 的 profile 若有任何輸出, 會污染 stdout 打斷 MCP 協定。
寫法 B:直接在 Windows 端用 Python/uv 執行
前置:Windows 裝好 uv(見上),repo clone 在 Windows 檔案系統並 uv sync。
{
"mcpServers": {
"taiwan-weather": {
"command": "C:\\Users\\你的帳號\\.local\\bin\\uv.exe",
"args": ["--directory", "C:\\path\\to\\taiwan-weather-mcp", "run", "server.py"],
"env": { "CWA_API_KEY": "你的授權碼" }
}
}
}
command建議填 uv 的完整路徑(Claude Desktop 不一定繼承你的 PATH)。 在 PowerShell 執行(Get-Command uv).Source查詢實際位置 (winget 安裝的路徑會在...\WinGet\Packages\astral-sh.uv_...\uv.exe)。 JSON 內的反斜線要寫成\\。
5. 示範對話
36 小時天氣預報(「台中這兩天天氣怎樣?」)

天氣特報(「現在有什麼天氣警報嗎?」)

近期有感地震(「最近有地震嗎?」)

6. 開發
uv run pytest # 離線測試(fixtures)
uv run --env-file .env python scripts/explore_api.py # 實測 CWA API、重錄 fixtures
uv run --env-file .env python scripts/smoke_test.py # stdio 起 server 實呼叫三個 tool專案結構:
server.py # MCP server 入口(FastMCP + 3 個 tool)
taiwan_weather/
api.py # CWA API 呼叫(唯一做網路 I/O 的模組)
cities.py # 縣市名稱模糊對應(純函式)
formatters.py # JSON → 精簡繁中文字(純函式)
errors.py # 錯誤類別與所有使用者訊息
scripts/explore_api.py # 實測 API、錄製 tests/fixtures
scripts/smoke_test.py # stdio 端對端煙霧測試
tests/ # pytest(unit + in-memory 整合測試)資料來源與授權
氣象資料:中央氣象署開放資料平臺,依 政府資料開放授權條款 使用。
程式碼:MIT License。
安全性
授權碼只從環境變數
CWA_API_KEY讀取,程式碼與 repo 中不含任何金鑰。.env已被.gitignore排除;.env.example僅含佔位字串。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tun0000/taiwan-weather-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server