使用说明
适用于n8n的MCP天气服务器
一个简单的模型上下文协议(MCP)服务器,通过OpenWeather API提供天气信息,设计用于与n8n的MCP客户端一起工作。此服务器使用 fastmcp 库,便于MCP实现。
特性
- 🌤️ 获取任何城市的当前天气
- 📅 获取5天天气预报
- 📡 用于实时通信的服务器发送事件(SSE)
- 🔌 MCP协议兼容
- 🚀 简单轻便的实现
设置
1.安装依赖项
pip install -r requirements.txt
2.配置OpenWeather API密钥
您必须将OpenWeather API密钥设置为环境变量:
export OPENWEATHER_API_KEY="your_api_key_here"
备注:API密钥是必需的,没有它服务器将无法启动。
3.运行服务器
python mcp_openweather_server.py
服务器将使用SSE(服务器发送事件)传输在端口8000上启动。
可用工具
服务器提供两个MCP工具:
1. get_current_weather
获取城市的当前天气状况。
参数:
city(string,必填):城市名称(例如“London”)units(字符串,可选):温度单位-“公制”(摄氏度)、“英制”(华氏度)或“标准”(开尔文)。默认为“公制”。
退货:
- 城市名称
- 温度
- 感觉像是温度
- 天气状况描述
- 湿度百分比
- 风速
- 数据源
2. get_weather_forecast
获取一个城市的5天天气预报。
参数:
city(string,必填):城市名称(例如“London”)units(字符串,可选):温度单位-“公制”(摄氏度)、“英制”(华氏度)或“标准”(开尔文)。默认为“公制”。
退货:
- 城市名称
- 未来24小时(3小时间隔)的预测数据
- 数据源
n8n集成
1.安装n8n MCP客户端
在n8n实例中,安装MCP客户端节点:
npm install n8n-nodes-mcp-client
2.配置MCP客户端节点
- 将MCP客户端节点添加到工作流中
- 配置连接:
- 服务器URL:
http://localhost:8000 - 客户端ID:
n8n(或任何唯一标识符) - 运输:SSE(服务器发送事件)
- 服务器URL:
3.使用天气工具
MCP客户端将自动发现两个可用工具:
get_current_weather-当前天气状况get_weather_forecast-用于天气预报
技术细节
建筑
- 框架:用途
fastmcpMCP实现库 - 运输:服务器通过HTTP发送事件(SSE)
- 端口:8000(可通过代码配置)
- API:OpenWeatherMap API v2.5
错误处理
服务器包括以下错误处理:
- 缺少API密钥
- API请求失败
- 无效响应
依赖项
fastmcp:MCP服务器实现requests:API调用的HTTP客户端os:环境变量处理
故障排除
常见问题
- 缺少API密钥:确保
OPENWEATHER_API_KEY环境变量已设置 - 端口已在使用中:如果8000被占用,请更改代码中的端口
- API费率限制:OpenWeather API对免费等级帐户有费率限制
测试
您可以通过运行服务器并检查控制台输出来测试服务器。服务器将显示连接日志和发生的任何错误。
发展
添加新工具
要添加新工具,请使用 @mcp.tool 装饰师:
@mcp.tool
def your_tool_name(param1: str, param2: int = 0) -> dict:
"""
Tool description.
Args:
param1: Description of param1
param2: Description of param2
Returns:
Tool result
"""
# Tool implementation
return {"result": "success"}
修改服务器配置
要更改服务器配置,请修改 mcp.run() 在文件底部调用:
mcp.run(transport="sse", port=8000)
许可证
这个项目是开源的,可以在MIT许可证下使用。