CWA MCP Server
# CWA MCP 伺服器
一個簡單的模型內容協定 (Model Context Protocol, MCP) 伺服器,可將 Claude Desktop 連接到台灣中央氣象署 (CWA) API 以獲取氣象資料。
## 功能特色
- 簡單、輕量的 Node.js 實作
- 容易設定並與 Claude Desktop 配合使用
- 存取所有台灣縣市的 CWA 氣象預報資料
## 快速開始
1. 取得 CWA API 金鑰:
- 前往 [https://opendata.cwa.gov.tw/user/authkey](https://opendata.cwa.gov.tw/user/authkey)
- 登入(若沒有帳號,請先註冊)
- 點擊「取得授權碼」按鈕
- 複製你的 API 金鑰
2. 使安裝腳本可執行:
```bash
chmod +x install.sh
```
3. 執行安裝腳本:
```bash
./install.sh
```
4. 編輯位於 `~/.config/claude/claude_desktop_config.json` 的設定檔,加入你的 CWA API 金鑰:
```json
{
"mcpServers": {
"cwa": {
"command": "node",
"args": [
"/path/to/cwa-server.js"
],
"env": {
"CWA_API_KEY": "CWA-1E740A28-FFDC-4186-BE0D-B02662F066EF"
}
}
}
}
```
5. 重新啟動 Claude Desktop
6. 開始在與 Claude 的對話中使用 CWA 氣象資料!
## 可用工具
### `get_weather_forecast`
透過縣市名稱獲取台灣未來 36 小時的氣象預報。
在 Claude 中的使用範例:
```
台北市現在的天氣如何?
```
## 使用 Docker
你也可以使用 Docker 來執行這個 MCP 伺服器:
1. 建立 `docker-compose.yml` 檔案:
```yaml
version: '3'
services:
cwa-mcp-server:
container_name: cwa-mcp-server
image: node:18
volumes:
- ./:/app
working_dir: /app
command: node cwa-server.js
environment:
- CWA_API_KEY=你的_CWA_API_金鑰
restart: unless-stopped
```
2. 將 `你的_CWA_API_金鑰` 替換為你實際的 CWA API 金鑰
3. 更新你的 Claude Desktop 設定:
```json
{
"mcpServers": {
"cwa": {
"command": "docker",
"args": [
"exec",
"-i",
"cwa-mcp-server",
"node",
"cwa-server.js"
]
}
}
}
```
4. 啟動 Docker 容器:
```bash
docker-compose up -d
```
5. 重新啟動 Claude Desktop
## 可用地區列表
支援以下縣市名稱:
- 宜蘭縣、花蓮縣、臺東縣、澎湖縣、金門縣、連江縣
- 臺北市、新北市、桃園市、臺中市、臺南市、高雄市
- 基隆市、新竹縣、新竹市、苗栗縣、彰化縣、南投縣
- 雲林縣、嘉義縣、嘉義市、屏東縣
## 故障排除
- 確保已安裝 Node.js 18 或更高版本
- 檢查你的 CWA API 金鑰是否有效並正確設定在設定檔中
- 使用 `./test.sh` 測試伺服器以確認其正常運作
- 確保 Claude Desktop 已正確設定,並在設定變更後重新啟動
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or overlap between tools. The tool has a single, clear purpose: retrieving weather forecasts for specific locations in Taiwan.
The single tool name 'get_weather_forecast' follows a clear verb_noun pattern (get + weather_forecast). Since there's only one tool, consistency is inherently perfect with no deviations to evaluate.
A single tool is too few for a weather server's apparent scope, which typically involves multiple operations like current conditions, forecasts, alerts, or location searches. This minimal surface suggests the server is underpowered for comprehensive weather interactions.
The server is severely incomplete for a weather domain, offering only a 36-hour forecast retrieval. It lacks essential operations such as current weather, extended forecasts, severe weather alerts, or location-based searches, which will limit agent capabilities significantly.