内容
# 农业信号MCP
一个用于农场和土地决策支持的MCP服务器,完全基于免费、无密钥的公共数据:
[Open-Meteo](https://open-meteo.com)(天气、土壤湿度/温度、蒸散量)和
[SoilGrids](https://soilgrids.org)(ISRIC的全球250m分辨率土壤地图)。无需API密钥,无需注册,
无需OAuth — 每个工具都开箱即用。
与通用的天气/土壤API包装不同,该服务器不仅提供原始数据 — 它
将天气和土壤综合成农业决策:是否灌溉以及灌溉多少,霜冻和热应激风险窗口,
生长度日积累用于预测作物发育,以及干旱跟踪。目标是为没有昂贵精准农业服务的人提供帮助 —
小农户农民、农学学生、推广工作者、非政府组织。
**每个建议都显示其底层数据,并以数据为基础的估计为准,不作为认证的农学建议。**
这些是简化的模型(参见下面每个工具的注意事项),用于初步筛选和规划,而不是替代站点特定的专业知识。
## 工具
| 工具 | 描述 |
|---|---|
| `geocode_location` | 将地名解析为坐标(其他工具所需的首步) |
| `get_soil_profile` | 土壤质地、pH、有机碳在多个深度(SoilGrids) |
| `get_growing_conditions` | 当前天气 + 土壤快照 + 短期预报 |
| `get_irrigation_advice` | 土壤水平衡估计:是否应该灌溉,灌溉多少? |
| `get_frost_and_heat_risk` | 扫描预报中的霜冻/冻结和热应激风险日 |
| `get_growing_degree_days` | 日期范围内的GDD积累(作物发育/成熟度跟踪) |
| `get_dry_spell_status` | 连续干旱天数和总降水量 — 粗略的干旱指标 |
## 设置
无需API密钥。将其添加到您的MCP客户端即可。
**Claude 代码:**
```sh
claude mcp add --transport stdio agrisignal -- npx -y agrisignal-mcp
```
**Claude 桌面版** — 添加到 `claude_desktop_config.json`:
```json
{
"mcpServers": {
"agrisignal": {
"command": "npx",
"args": ["-y", "agrisignal-mcp"]
}
}
}
```
任何其他支持stdio服务器的MCP客户端都可以以相同的方式运行:`npx -y agrisignal-mcp`.
## 示例用法
- "我应该在爱荷华州艾姆斯附近的田地里灌溉吗?" → `geocode_location` 然后 `get_irrigation_advice`
- "这个位置的土壤怎么样 — 适合种植番茄吗?" → `get_soil_profile`
- "接下来的10天内有霜冻风险吗?" → `get_frost_and_heat_risk`
- "自从我5月15日种植以来,累计了多少生长度日?" → `get_growing_degree_days`
- "该地区是否经历了干旱?" → `get_dry_spell_status`
## 使用的模型说明
- **灌溉建议** 是一个简化的单层土壤水平衡(仿照FAO-56核算):总可用水 = (田间持水量 − 凋萎点)× 根区深度,使用预报降水量减去参考蒸散量(ET0,非作物特定实际ET)进行预测。它忽略了径流和根区以下的排水。田间持水量和凋萎点来自SoilGrids 15–30cm深度;当前土壤湿度来自Open-Meteo的9–27cm波段 — 一个合理但近似的匹配到通用根区,而不是特定作物的根区。
- **生长度日** 使用美国推广服务指导玉米的修改方法:Tmin在基准温度下设为地板,然后取平均值,可选地应用Tmax上限。设置为`floor_tmin_at_base: false`以适用于普通平均法,如果更适合您的作物。
- **干旱严重程度** 阈值(轻度 >7天,中度 >14,严重 >21)是一个通用经验法则,而不是校准的气象干旱指数(例如SPI)。
- **SoilGrids无数据像素**:地理编码的位置坐标通常落在城镇/城市中心,这可能是SoilGrids 250m网格中的无数据像素(建筑物、铺路)。土壤数据工具会自动重试约1公里远,并在响应中说明 — 对于实际的田地,请传递其实际坐标,而不是城镇中心,以获得更准确的读数。
## 速率限制
Open-Meteo和SoilGrids是免费服务。请考虑避免快速重复调用;特别是SoilGrids每个请求可能需要几秒钟。
## 开发
```sh
npm install
npm run build
npm test
```
## 许可证
MIT