天气数据服务

一个基于MCP协议的天气数据服务,提供实时天气、天气预报和位置搜索功能,适用于需要天气信息的应用集成。

  • by AADHIIII
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aadhiiii/mcp-weather

使用说明

MCP气象服务器

模型上下文协议(MCP)服务器,为Claude和其他MCP客户端提供天气数据工具。该服务器与Open-Meteo API集成,以获取当前天气状况、预报和位置数据。

特性

  • 当前天气:获取任何位置的实时天气状况
  • 天气预报:提前16天检索天气预报
  • 位置搜索:使用地理编码按名称查找位置坐标

先决条件

  • Python 3.12+
  • uv 包管理器(安装指南)
  • Claude Desktop应用程序(用于MCP集成)

快速开始

  1. 导航到项目目录:

    cd mcp-server-weather
    
  2. 运行安装脚本:

    python setup.py
    
  3. 测试服务器:

    source .venv/bin/activate && python test_server.py
    

手动安装

如果您更喜欢手动设置:

  1. 创建并激活虚拟环境:

    uv venv
    source .venv/bin/activate
    
  2. 安装依赖项:

    uv sync
    

MCP检验员测试

使用内置的MCP检查器测试您的服务器:

mcp dev server.py

然后打开http://localhost:5173在浏览器中与工具进行交互。

可用工具

get_current天气

获取特定位置的当前天气状况。

参数:

  • latitude (浮动):纬度坐标
  • longitude (float):经度坐标

例子:

{
  "latitude": 40.7128,
  "longitude": -74.0060
}

获取预测

获取某个地点的天气预报。

参数:

  • latitude (浮动):纬度坐标
  • longitude (float):经度坐标
  • days (int,可选):预测天数(1-16,默认值:7)

例子:

{
  "latitude": 40.7128,
  "longitude": -74.0060,
  "days": 5
}

get_location

按名称搜索位置以获取其坐标。

参数:

  • query (string):要搜索的位置名称

例子:

{
  "query": "New York City"
}

与Claude Desktop集成

要将此服务器与Claude Desktop一起使用,请将其添加到MCP配置中:

  1. 打开克劳德桌面设置
  2. 添加此服务器配置:
{
  "mcpServers": {
    "weather": {
      "command": "uv",
      "args": ["run", "python", "/path/to/mcp-server-weather/server.py"],
      "cwd": "/path/to/mcp-server-weather"
    }
  }
}

替换 /path/to/mcp-server-weather 带有项目目录的实际路径。

API数据源

此服务器使用 开放气象API,它提供:

  • 无需API密钥的免费天气数据
  • 全球覆盖
  • 高质量气象数据
  • 可靠的地理编码服务

示例用法

一旦与Claude集成,您可以提出以下问题:

  • “东京现在的天气怎么样?”
  • “给我一份伦敦5天的天气预报”
  • “找到旧金山的坐标”

服务器将自动获取数据并提供全面的天气信息。