使用说明
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密钥
设置
- 安装依赖项:
cd mcp-server
pip install -r requirements.txt
- 配置环境:
cp .env.example .env
# Edit .env with your settings:
# PLANTOS_API_URL=http://localhost:8000
# PLANTOS_API_KEY=your-api-key-here
- 测试服务器:
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
测试
- 启动您的Plantos API:
cd farming-advisor-api
python run.py
- 运行MCP服务器:
cd mcp-server
python src/plantos_mcp_server.py
- 在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商品数据