MCP天气应用服务器
该项目是一个简单的模型上下文协议(MCP)服务器,使用OpenWeather API为任何城市提供实时天气信息。它是用Python构建的,并利用FastMCP框架实现简单的工具集成和API服务。
特性
- 获取全球任何城市的当前天气数据
- 返回温度、湿度、天气描述、风速/风向、云量等信息
- 使用OpenWeather的地理编码和天气API
- 设计为MCP工具,便于与AI代理和其他MCP客户端集成
需求
- Python 3.8+
- OpenWeather API密钥
- Internet连接
安装
- 克隆存储库:
git clone
cd mcp_app_server- 安装依赖项:
如果使用 pip:
pip install -r requirements.txt或者,如果使用 pyproject.toml (带紫外线):
uv install确保你有 uv 安装。如果没有,你可以通过pip安装它:
- 设置环境变量:
- 创建一个 .env 文件,并添加您的OpenWeather API密钥:
echo "OPENWEATHER_API_KEY=your_openweather_api_key_here" > .env- 创建一个 .env 项目根目录中的文件:
OPENWEATHER_API_KEY=your_openweather_api_key_here用法
使用以下命令运行服务器:
python main.py服务器将启动并公开MCP工具以进行天气查询。
工具使用示例
主要工具是 get_weather(city: str) -> dict,它获取指定城市的天气数据。
示例请求
from mcp_weather import get_weather
result = get_weather("London")
print(result)示例响应
{
"city": "London",
"temperature": 18.5,
"humidity": 65,
"description": "light rain",
"icon": "10d",
"wind_speed": 4.1,
"wind_direction": 80,
"cloudiness": 90,
"timestamp": 1719324000,
"timezone": 3600,
"country": "GB"
}项目结构
mcp_app_server/
├── LICENSE
├── main.py # Entry point to run the MCP server
├── Notes.txt
├── pyproject.toml # Project metadata and dependencies
├── README.md
├── uv.lock
└── src/
├── mcp_weather.py # Weather tool implementation
环境变量
OPENWEATHER_API_KEY:来自OpenWeather的API密钥。服务器获取天气数据所必需的。
错误处理
- 如果API密钥丢失或无效,服务器将引发错误。
- 如果找不到城市,则返回描述性错误。
- 优雅地处理意外的API响应格式。
延伸
- 通过定义新功能添加更多MCP工具
@mcp.tool()室内装饰师src/mcp_weather.py或新模块。 - 根据需要与其他兼容MCP的代理或客户端集成。
📝 许可证
这个项目是 麻省理工学院 得到许可的。
