天气预测服务

Rainsoon MCP是一个为Gemini CLI提供的天气预测服务,通过MCP协议提供`check_for_rain`功能和`/rainsoon`命令,用于检测指定IP地址的降雨概率。

  • by jaredevans
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jaredevans/mcp-rainsoon

使用说明

Rainsoon MCP

此项目为Gemini CLI提供了一个简单的MCP(模型上下文协议)服务器,该服务器公开了一个工具: check_for_rain 以及a /rainsoon slash命令用于快速访问。


什么是MCP?

主控程序 (模型上下文协议)允许Gemini CLI与本地或远程工具安全可靠地交互。

这 rainsoon_mcp.py 脚本作为本地MCP服务器运行,使其 check_for_rain 函数作为Gemini CLI中的可调用工具提供。

加上一个 MCP提示,Gemini CLI现在公开 /rainsoon 作为带有参数的本地斜线命令。


特性

check_for_rain(ip: str = "", threshold: int = 20) -> dict

  • 检查指定IP地址的降雨概率。
  • 如果没有提供IP地址,它将使用多个回退服务自动检测您的公共IP。
  • 您可以设置自定义 阈值 (以百分比表示)定义“即将下雨”的含义(默认值: 20%).
  • 返回一个JSON对象,其中包含:
    • 位置详细信息
    • 降雨概率
    • 概率是否超过阈值
    • 人类可读的信息

/rainsoon Gemini CLI中的命令

MCP服务器包括 快速定义 Gemini CLI变成斜线命令:

用途:

/rainsoon                      # auto-detect IP, default threshold=20%
/rainsoon --ip="134.231.2.45"       # check for a specific IP
/rainsoon --ip="134.231.2.45" --threshold=35

输出是 原始JSON 从 check_for_rain.

例子:

╭───────────────╮
│  > /rainsoon  │
╰───────────────╯

✔  check_for_rain (rainsoon MCP Server) {"threshold":20,"ip":""}

{
  "ip": "96.231.151.145",
  "location": "Wheaton",
  "lat": 39.0358,
  "lng": -77.0523,
  "rain": false,
  "precipitation_chance": 0,
  "threshold": 20,
  "message": "No, 0% chance of rain soon in Wheaton.",
  "hour_sample": [
    "2025-08-12T00:00",
    "2025-08-12T01:00",
    "2025-08-12T02:00"
  ]
}

原理

这 rainsoon_mcp.py 脚本是一个自包含的MCP服务器。其工作流程:

  1. IP地址发现

    • 如果 ip 提供、使用它。
    • 如果没有,则查询一系列外部服务(api.ipify.org, ipinfo.io/ip, icanhazip.com)检测您的公共IP。
  2. 地理位置

    • 使用 geocoder 图书馆从IP地址获取纬度、经度和城市。
    • 如果提供的IP的地理定位失败,它将尝试回退到您检测到的公共IP。
  3. 天气数据

    • 查询 开放气象API 用于坐标处未来24小时的每小时降水概率。
  4. 结果

    • 将下一小时的降水概率与阈值进行比较。
    • 返回包含位置、降雨概率和布尔标志的详细JSON。

安装

安装Python包:

pip install "mcp[cli]" requests geocoder

Gemini CLI配置 (~/.gemini/settings.json):

{
  "selectedAuthType": "gemini-api-key",
  "theme": "Default",
  "mcpServers": {
    "rainsoon": {
      "command": "/absolute/path/to/venv/bin/python3",
      "args": ["-u", "/absolute/path/to/rainsoon_mcp.py"],
      "timeout": 15000
    }
  }
}

领域:

  • mcpServers --所有MCP服务器配置。
  • rainsoon --服务器名称(用于 /mcp call 命令)。
  • command --在你的venv中找到Python的绝对路径。
  • args — -u 对于无缓冲输出,则为脚本的绝对路径。
  • timeout --在ms中。

⚠ 更新环境的路径。


如何使用

自然语言

当您键入以下内容时,Gemini CLI可以自动调用该工具:

Will it rain soon?
Will it rain soon for IP 134.231.2.45?
Will I be wet soon?

/rainsoon 命令

/rainsoon
/rainsoon --ip="134.231.2.45"
/rainsoon --ip="134.231.2.45" --threshold=35