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服务器。其工作流程:
- IP地址发现
- 如果 ip 提供、使用它。 - 如果没有,则查询一系列外部服务(api.ipify.org, ipinfo.io/ip, icanhazip.com)检测您的公共IP。
- 地理位置
- 使用 geocoder 图书馆从IP地址获取纬度、经度和城市。 - 如果提供的IP的地理定位失败,它将尝试回退到您检测到的公共IP。
- 天气数据
- 查询 开放气象API 用于坐标处未来24小时的每小时降水概率。
- 结果
- 将下一小时的降水概率与阈值进行比较。 - 返回包含位置、降雨概率和布尔标志的详细JSON。
______________________________________________________________________
安装
安装Python包:
pip install "mcp[cli]" requests geocoderGemini 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______________________________________________________________________
