农业智能分析服务

Plantos MCP Server 是一个农业智能分析服务,通过API提供农场位置分析、实时土壤数据、天气数据、市场数据访问以及农业顾问聊天功能,适用于农业决策支持和智能助手集成。

  • by Plantos-Sensor
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Plantos-Sensor/mcp-server

使用说明

Plantos MCP 服务器

提供Plantos农业智能API的工具给Claude和其他AI助手的模型上下文协议(MCP)服务器。

概述

这个MCP服务器封装了Plantos API,使AI助手能够:

  • 分析农场位置以选择最佳作物
  • 从SSURGO数据库获取实时土壤数据
  • 从美国国家海洋和大气管理局(NOAA)获取当前天气数据
  • 获取实时大宗商品市场价格
  • 与由RAG技术支持的农业顾问进行聊天
  • 生成经济分析和农业建议

可用工具

1. analyze_farm_location

针对特定地点的全面农业分析。

输入:

  • latitude (数字):纬度坐标(-90至90)
  • longitude (数字):经度坐标(-180 至 180)

返回值:

  • 土壤特性及见解
  • 天气状况
  • 作物产量预测(准确率87%)
  • 实时市场数据
  • 经济分析(收入、成本、投资回报率)
  • 人工智能生成的推荐

2. get_soil_data

使用SSURGO数据库获取详细的土壤属性。

输入:

  • latitude (数字):纬度坐标
  • longitude (数字):经度坐标

返回值: 土壤质地、排水性、pH值、有机质、成分

3. get_weather_data

从NOAA Weather.gov API获取当前天气数据。

输入:

  • latitude (数字):纬度坐标
  • longitude (数字):经度坐标

返回值: 温度、降水量、湿度、积温日数、风力数据

4. get_market_data

获取来自美国农业部(USDA)和芝加哥商品交易所(CME)的实时商品市场价格。

输入:

  • crops (字符串):以逗号分隔的作物类型(例如,“玉米,大豆,小麦”)
  • latitude (数字,可选):用于地区价格调整
  • longitude (数字,可选):用于地区价格调整

返回值: 当前价格、期货价格、价格趋势

5. get_market_summary

获取包含基于位置洞察的全面市场概览。

输入:

  • latitude (数字,可选):用于区域上下文
  • longitude (数字,可选):用于提供区域背景信息

返回: 市场概况、趋势、区域背景

6. chat_with_agricultural_advisor

向基于RAG(检索增强生成)技术的AI农业顾问提问。

输入:

  • message (字符串):你的问题
  • context (对象,可选):位置、土壤、天气、作物和经济数据

返回: 基于证据的答案,并附上来源引用

7. get_api_health

检查API健康状态和数据库连接。

返回: API状态,数据库连接性,时间戳

安装

先决条件

  • Python 3.10 或更高版本
  • 运行Plantos API实例
  • Plantos API的API密钥

设置

  1. 安装依赖项:
cd mcp-server
pip install -r requirements.txt
  1. 配置环境:
cp .env.example .env
# Edit .env with your settings:
# PLANTOS_API_URL=http://localhost:8000
# PLANTOS_API_KEY=your-api-key-here
  1. 测试服务器:
python src/plantos_mcp_server.py

与Claude桌面版的集成

将此配置添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "plantos": {
      "command": "python",
      "args": [
        "/absolute/path/to/plantos/mcp-server/src/plantos_mcp_server.py"
      ],
      "env": {
        "PLANTOS_API_URL": "http://localhost:8000",
        "PLANTOS_API_KEY": "your-api-key-here"
      }
    }
  }
}

替换 /absolute/path/to/plantos/ 请替换为您的实际安装路径。

重启Claude桌面版

添加配置后,重启Claude Desktop。你应该能在工具菜单中看到Plantos工具。

使用示例

示例1:分析农场位置

Ask Claude: "Analyze the farming potential for coordinates 42.3601, -71.0589"

Claude will use the analyze_farm_location tool and provide:
- Soil analysis
- Weather conditions
- Crop recommendations with predicted yields
- Market prices
- Economic analysis showing expected profits

示例2:获取市场洞察

Ask Claude: "What are the current prices for corn and soybeans in Iowa?"

Claude will use get_market_data with location context to provide:
- Current spot prices
- Futures prices
- Price trends
- Regional adjustments

示例3:与农业顾问聊天

Ask Claude: "What are the best practices for improving soil health in sandy soils?"

Claude will use chat_with_agricultural_advisor to provide:
- Evidence-based recommendations
- Source citations from agricultural research
- Practical implementation steps

示例4:全面农场规划

Ask Claude: "I'm at 41.8781, -87.6298 and want to maximize profit.
What crops should I plant and what's the expected return?"

Claude will:
1. Use analyze_farm_location to get comprehensive data
2. Use chat_with_agricultural_advisor for strategic advice
3. Synthesize results into actionable recommendations

建筑学

┌─────────────────┐
│  Claude Desktop │
└────────┬────────┘
         │ MCP Protocol
         │
┌────────▼────────┐
│  Plantos MCP    │
│     Server      │
└────────┬────────┘
         │ HTTP/REST
         │
┌────────▼────────┐
│  Plantos API    │
│   (FastAPI)     │
└────────┬────────┘
         │
    ┌────┴────┬──────────┬───────────┐
    │         │          │           │
┌───▼───┐ ┌──▼──┐  ┌────▼────┐ ┌───▼───┐
│ SSURGO│ │NOAA │  │  USDA   │ │  ML   │
│  Soil │ │ API │  │  MARS   │ │ Model │
└───────┘ └─────┘  └─────────┘ └───────┘

发展

项目结构

mcp-server/
├── src/
│   └── plantos_mcp_server.py   # Main MCP server implementation
├── pyproject.toml               # Python project configuration
├── requirements.txt             # Python dependencies
├── .env.example                 # Environment variables template
├── claude_desktop_config.json   # Claude Desktop config example
└── README.md                    # This file

测试

  1. 启动您的Plantos API:
cd farming-advisor-api
python run.py
  1. 运行MCP服务器:
cd mcp-server
python src/plantos_mcp_server.py
  1. 在Claude桌面版上的测试:
    • 在 claude_desktop_config.json 中添加配置
    • 重启Claude桌面版
    • 试着让克劳德使用Plantos工具

调试

启用调试日志记录:

export MCP_DEBUG=1
python src/plantos_mcp_server.py

检查Claude Desktop日志:

  • macOS: ~/Library/Logs/Claude/mcp*.log
  • Windows: %APPDATA%\Claude\Logs\mcp*.log

安全

  • 将API密钥安全地存储在环境变量中
  • 使用HTTPS来保护生产环境的API端点
  • 在API端实现速率限制
  • 永远不要将 .env 文件提交到版本控制系统中

故障排除

“连接被拒绝”错误

  • 确保Plantos API在配置的URL上运行
  • 请检查您的配置中的PLANTOS_API_URL
  • 验证防火墙设置

“身份验证失败”错误

  • 验证PLANTOS_API_KEY是否正确
  • 检查API密钥是否在Plantos数据库中处于激活状态
  • 确保API密钥具有适当的权限

工具未出现在Claude桌面版中

  • 验证 claude_desktop_config.json 文件的语法
  • 检查文件路径是否为绝对路径,而非相对路径
  • 完全重启Claude桌面版
  • 检查 Claude Desktop 的日志以查找错误

“无数据可用”回复

  • 验证位置坐标是否有效
  • 检查Plantos API是否包含该地区的数据
  • 尝试一个不同的地点(例如,爱荷华州的农田)

演出

  • 工具调用通常在2-5秒内完成
  • 由NOAA API缓存的天气数据
  • 市场数据每15分钟更新一次
  • 支持并发工具调用

局限性

  • 天气数据仅适用于美国地点(受NOAA限制)
  • 土壤数据覆盖范围仅限于SSURGO数据库区域
  • 市场数据可能会有轻微延迟(约15分钟)
  • RAG聊天需要OpenAI API密钥或配置的LLM

未来的改进/增强

  • [ ] 添加实时天气警报
  • [ ] 支持国际地点
  • [ ] 添加字段边界分析
  • [ ] 实施作物轮作计划
  • [ ] 添加病虫害预测功能
  • [ ] 支持多年规划
  • [ ] 添加灌溉优化功能

支持

对于问题或疑问:

  • API问题:检查farming-advisor-api日志
  • MCP问题:检查Claude Desktop日志
  • 文档:请参阅Plantos主README文件

许可证

与Plantos项目使用相同的许可证。

功劳;学分;资历

基于:

  • 模型上下文协议 由Anthropic开发
  • Plantos API
  • SSURGO土壤数据库(美国农业部自然资源保护局)
  • NOAA Weather.gov API
  • USDA MARS商品数据