用途
mcp_weather_server 是一个 Model Context Protocol (MCP) 服务器,用于从 Open-Meteo API 获取天气、空气质量及时间信息。它设计为可被 MCP 客户端(如 Claude Desktop)或 Web 应用调用,以提供实时的天气与环境数据。
主要能力
- 天气信息:获取当前天气的综合指标,包括温度、湿度、露点、风速、风向、阵风、降水(雨/雪)及概率、大气压、云量、紫外线指数、能见度、“体感”温度、日出日落时间(当地时间)。
- 按日期范围查询:获取指定日期范围内的每小时天气详情,包括温度趋势、降水模式、风况评估、紫外线趋势、天气警告与建议等。
- 详细天气数据:以结构化 JSON 返回程序化使用的详细天气信息。
- 空气质量:获取 PM2.5、PM10、臭氧、二氧化氮、一氧化碳、二氧化硫、氨、沙尘、气溶胶光学厚度等污染物数据,附带空气质量分类(优/中等/不健康/危险)、健康建议及与 WHO、EPA 标准的对比。
- 时间与时区:获取任意时区的当前日期时间、时区信息,以及在不同时区之间转换时间。
- 传输模式:支持 stdio(标准 MCP,桌面客户端)、SSE(Server-Sent Events,Web 应用)、streamable-http(现代 MCP Streamable HTTP 协议,支持有状态/无状态),并可通过 Starlette 提供 RESTful API 端点。
使用方式
- 安装:可通过 pip 安装,或通过 Smithery 自动安装(适用于 Claude Desktop 等 MCP 客户端)。手动配置需在客户端的
cline_mcp_settings.json中添加服务器配置。HTTP 模式需额外安装依赖(starlette、uvicorn)。 - 运行:默认以 stdio 模式运行;SSE 模式使用
python -m mcp_weather_server --mode sse,端点为http://localhost:8080/sse和http://localhost:8080/messages/;Streamable HTTP 模式使用python -m mcp_weather_server --mode streamable-http,端点为http://localhost:8080/mcp。 - Docker 部署:提供 Docker Hub 镜像
dog830228/mcp_weather_server:latest或版本化标签,也可从源码构建。 - 可用工具:
get_current_weather、get_weather_by_datetime_range、get_weather_details、get_air_quality、get_air_quality_details、get_current_datetime、get_timezone_info、convert_time。
适用场景
- 将天气与空气质量数据集成到 AI 助手或聊天机器人中。
- 在 Web 应用中通过 SSE 或 Streamable HTTP 实时获取环境信息。
- 需要按时间范围分析天气趋势或空气质量变化的应用。
- 时间与时区转换相关的工具需求。
限制
- 城市名称仅支持英文,可能需要包含国家(如 "Paris, France")。
- 日期格式必须为 ISO 8601(YYYY-MM-DD),且 start_date 需早于 end_date。
- HTTP 模式需确保依赖安装、端口未被防火墙阻止,并验证端点正确。
- 服务器本身不需要 API 密钥,但依赖 Open-Meteo API 的可用性。
- 部分错误响应为结构化错误消息,需注意处理。