Back to MCP directory
publicPublicdnsLocal runtime

weather-mcp-server

一个基于WeatherAPI的天气信息MCP服务器,提供实时天气、天气预报、位置搜索等功能,通过标准输入输出与AI助手通信。

article

README

🚀 天气MCP服务器

这是一个模型上下文协议(MCP)服务器,借助WeatherAPI服务提供天气信息。该服务器允许AI助手通过标准输入输出(stdio)通信获取当前天气、天气预报,并搜索地点。

🚀 快速开始

本服务器可让AI助手借助标准输入输出通信获取当前天气、天气预报并搜索地点。你可以按照以下步骤进行安装和配置。

✨ 主要特性

  • 当前天气:获取任意地点的实时天气状况
  • 天气预报:获取长达14天的天气预报
  • 地点搜索:查找并验证地点名称
  • 空气质量数据:可选的空气质量信息
  • 调试日志:全面的日志记录,便于故障排查
  • 标准输入输出通信:通过标准输入/输出进行直接的MCP协议通信

📦 安装指南

选项1:通过Smithery(推荐)

通过 Smithery MCP注册表自动安装:

npx -y @smithery/cli install weather-mcp-server --client claude

或者用于其他MCP客户端:

npx -y @smithery/cli install weather-mcp-server

这将自动完成以下操作:

  • 安装天气MCP服务器
  • 将其添加到你的MCP客户端配置中
  • 提示你输入WeatherAPI密钥

选项2:手动安装

  1. 克隆或下载此仓库
  2. 获取WeatherAPI密钥

    请确保你的API密钥安全,切勿将其提交到版本控制系统。

  3. 安装依赖项
uv sync

💻 使用示例

运行服务器

直接执行

WEATHER_API_KEY=your_api_key uv run server.py

启用调试日志

DEBUG=true WEATHER_API_KEY=your_api_key uv run server.py

通过MCP客户端

当你的MCP客户端(如mcphost或Claude Desktop)连接到服务器时,服务器将自动启动。

可用工具

1. weather_current

获取某个地点的当前天气状况。 参数

  • q(必需):地点查询(城市名称、坐标、邮政编码)
  • aqi(可选):是否包含空气质量数据(“yes” 或 “no”,默认:“no”) 示例
{
  "name": "weather_current",
  "arguments": {
    "q": "New York, NY",
    "aqi": "yes"
  }
}

2. weather_forecast

获取1 - 14天的天气预报。 参数

  • q(必需):地点查询
  • days(可选):预报天数(1 - 14,默认:1) 示例
{
  "name": "weather_forecast",
  "arguments": {
    "q": "London, UK",
    "days": 7
  }
}

3. weather_search

搜索与查询匹配的地点。 参数

  • q(必需):搜索查询 示例
{
  "name": "weather_search",
  "arguments": {
    "q": "Paris"
  }
}

地点查询格式

天气工具支持多种地点格式:

  • 城市名称:“New York”、“London”
  • 城市和州/国家:“New York, NY”、“London, UK”
  • 坐标:“40.7128,-74.0060”
  • 邮政编码:“10001”、“SW1A 1AA”
  • 机场代码:“JFK”、“LHR”

📚 详细文档

配置

环境变量

设置你的WeatherAPI密钥:

export WEATHER_API_KEY=your_api_key_here

可选 - 启用调试日志

export DEBUG=true

MCP客户端配置

将此服务器添加到你的MCP客户端配置(例如 config.json)中:

{
  "mcpServers": {
    "weather": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/weather-mcp-server",
        "run",
        "server.py"
      ],
      "env": {
        "WEATHER_API_KEY": "your_api_key_here"
      }
    }
  }
}

启用调试日志,添加 DEBUG 环境变量:

{
  "mcpServers": {
    "weather": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/weather-mcp-server",
        "run",
        "server.py"
      ],
      "env": {
        "WEATHER_API_KEY": "your_api_key_here",
        "DEBUG": "true"
      }
    }
  }
}

测试

手动测试

使用JSON - RPC请求测试服务器:

echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | WEATHER_API_KEY=your_api_key uv run server.py

启用调试日志

echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | DEBUG=true WEATHER_API_KEY=your_api_key uv run server.py

工具测试

测试天气工具:

echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"weather_current","arguments":{"q":"New York"}}}' | WEATHER_API_KEY=your_api_key uv run server.py

Docker支持

构建镜像

docker build -t weather-mcp-server .

使用Docker运行

docker run --rm -i -e WEATHER_API_KEY=your_api_key weather-mcp-server

调试模式

服务器支持可选的调试日志。设置 DEBUG 环境变量以启用详细日志记录。 日志级别

  • INFO:基本服务器操作(默认)
  • DEBUG:详细的请求/响应信息、API调用(当 DEBUG=true 时)

错误处理

服务器能够优雅地处理常见错误:

  • 无效的API密钥:返回带有指导的错误消息
  • 未找到地点:建议替代搜索词
  • 网络问题:提供重试建议
  • 速率限制:指示何时超出限制

依赖项

  • httpx:用于API请求的HTTP客户端
  • asyncio:支持异步/等待
  • 标准库:jsonloggingsysos

API限制

WeatherAPI免费套餐包括:

  • 每月100万次调用
  • 当前天气和3天天气预报
  • 可升级以获取更长的预报和更高的限制

故障排除

常见问题

  1. “No content response received”
    • 检查API密钥是否正确设置
    • 验证网络连接
    • 查看调试日志以查找错误
  2. “API key not provided”
    • 设置 WEATHER_API_KEY 环境变量
    • 检查MCP客户端配置
  3. “Location not found”
    • 尝试不同的地点格式
    • 使用 weather_search 工具查找有效地点

调试输出

通过设置 DEBUG 环境变量启用详细日志记录:

DEBUG=true WEATHER_API_KEY=your_api_key uv run server.py 2>&1 | grep -E "(DEBUG|ERROR)"

架构

此服务器使用以下方式实现MCP协议:

  • 标准输入输出通信:通过标准输入/输出进行直接的JSON - RPC通信
  • 异步事件循环:非阻塞请求处理
  • 手动JSON - RPC:自定义实现以实现精确控制
  • WeatherAPI集成:带有错误处理的RESTful API调用

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

许可证

本项目采用MIT许可证 - 详情请参阅 LICENSE 文件。

支持


最后更新时间:2025年7月12日

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client