# MCP Weather Server
這是一個基於Model Context Protocol (MCP)的天氣資訊服務器,使用OpenWeatherMap API提供即時天氣資訊和天氣預報功能。
## 功能特點
- 獲取城市當前天氣資訊
- 獲取城市5天天氣預報
- 支持中英文城市名稱查詢
- 完整的錯誤處理機制
- 豐富的天氣資訊顯示(溫度、濕度、風速等)
## 系統要求
- Python >= 3.10
- OpenWeatherMap API金鑰
## 安裝
1. 確保您已安裝 Python 3.10 或更高版本
2. 使用以下命令安裝依賴套件:
```bash
uv venv
uv pip install -r requirements.txt
```
## 配置
在 `mcp.json` 中配置您的OpenWeatherMap API金鑰:
```json
{
"mcpServers": {
"weather": {
"command": "uv",
"args": ["--directory", ".", "run", "main.py"],
"description": "天氣資訊伺服器 - 取得當前天氣和天氣預報",
"env": {
"OPENWEATHER_API_KEY": "your_api_key_here"
}
}
}
}
```
## 使用方法
### 作為MCP服務器運行
```bash
python main.py
```
### 使用客戶端
```bash
python client.py
```
## API參考
### 獲取當前天氣
```python
get_current_weather(city: str) -> str
```
- 參數:
- city: 城市名稱(支持中英文)
- 返回:格式化的當前天氣資訊
### 獲取天氣預報
```python
get_weather_forecast(city: str, days: int = 5) -> str
```
- 參數:
- city: 城市名稱(支持中英文)
- days: 預報天數(1-5天,預設5天)
- 返回:格式化的天氣預報資訊
## 資源端點
- `weather://current/{city}` - 獲取指定城市的當前天氣資源
- `weather://forecast/{city}` - 獲取指定城市的天氣預報資源
- `weather://api-status` - 獲取API狀態資訊
## 授權
MIT License
## 貢獻
歡迎提交問題和拉取請求!
## 致謝
- [OpenWeatherMap](https://openweathermap.org/) - 天氣數據提供
- [Model Context Protocol](https://www.claudemcp.com/zh/docs/mcp-py-sdk-basic) - MCP協議支持
## 部署
關於部署的詳細信息,請參考 [部署指南](DEPLOY.md)。
支持的部署方式:
- 直接部署(Python 環境)
- Docker 部署
- Docker Compose 部署
- 系統服務部署(Linux)