使用说明
约翰迪尔运营中心MCP服务器
托管在Cloudflare Workers上的远程MCP服务器,连接到John Deere运营中心。通过任何兼容MCP的客户端(Claude Desktop、Cursor等)浏览组织、现场、现场操作、设备、工作计划等。
建筑
服务器作为具有持久对象的Cloudflare Worker运行(McpAgent)提供有状态的MCP会话。身份验证使用 双OAuth代理 图案:
- 下游: Worker是MCP客户端的OAuth服务器
- 上游: Worker是John Deere的OAuth客户端
这意味着身份验证发生在传输层,不需要手动调用身份验证工具。
设置
先决条件
- A. Cloudflare帐户 (免费版作品)
- 注册了应用程序的John Deere开发人员帐户 developer.deere.com
- Node.js 18+
快速设置(推荐)
git clone <repo-url>
cd john-deere-ops-center
npm run setup
交互式设置脚本(scripts/setup.mjs)将带你走过每一步:
- 安装依赖项 --跑步
npm install - Cloudflare登录 --跑步
wrangler login在浏览器中 - 创建KV命名空间 --创建
OAUTH_KV命名空间并将其ID修补到wrangler.jsonc自动地 - 输入凭据 --John Deere的提示 应用标识符 (
JD_CLIENT_ID)以及 秘密 (JD_CLIENT_SECRET),然后将它们作为Cloudflare机密推送,并自动生成COOKIE_ENCRYPTION_KEY - 部署 --跑步
wrangler deploy并打印您的Worker URL
在设置结束时,脚本会打印:
MCP endpoint: https://<worker>.<subdomain>.workers.dev/mcp
Redirect URI: https://<worker>.<subdomain>.workers.dev/callback
注册重定向URI 在 developer.deere.com 在...之下 我的应用→ 你的应用→ 重定向URI 在尝试进行身份验证之前。
首次登录: 登录John Deere后,系统将提示您将运营中心组织连接到应用程序。这是一个必需的一次性步骤——服务器会自动检测到它并将您重定向到
connections.deere.com以完成选择。看docs/oauth2-flow.md了解详情。
手动设置
如果你喜欢自己跑每一步:
npm install
npx wrangler login
npx wrangler kv namespace create OAUTH_KV # paste the id into wrangler.jsonc
npx wrangler secret put JD_CLIENT_ID
npx wrangler secret put JD_CLIENT_SECRET
npx wrangler secret put COOKIE_ENCRYPTION_KEY
npm run deploy
在以下网址注册您的申请 developer.deere.com 并添加 https://<worker>.<subdomain>.workers.dev/callback 作为重定向URI。
对于本地开发,请复制 .dev.vars.example 到 .dev.vars 并填写数值。
连接MCP客户端
添加到MCP客户端配置(例如Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"john-deere": {
"command": "npx",
"args": ["mcp-remote", "https://<worker>.<subdomain>.workers.dev/mcp"]
}
}
}
工具
组织与领域
| 工具 | 说明 |
|---|---|
jd_list_organizations |
列出所有可访问的组织 |
jd_list_fields |
列出组织的所有字段 |
jd_get_field |
获取字段详细信息,包括边界 |
jd_list_field_operations |
列出田地的种植、收获和施用操作 |
工作计划
| 工具 | 说明 |
|---|---|
jd_list_work_plans |
列出组织的工作计划 |
jd_get_work_plan |
通过ERID获取单一工作计划 |
jd_create_work_plan |
制定有计划的工作计划 |
设备和机器健康
| 工具 | 说明 |
|---|---|
jd_list_equipment |
列出组织的设备 |
jd_get_equipment |
按ID获取设备详细信息 |
jd_get_machine_alerts |
获取机器诊断和维护警报 |
jd_get_machine_engine_hours |
获取发动机小时读数 |
jd_get_machine_hours_of_operation |
获取发动机状态和运行历史记录 |
jd_get_machine_location_history |
获取位置历史记录或最后已知位置 |
jd_get_machine_device_state_reports |
获取终端和连接诊断 |
参考数据
| 工具 | 说明 |
|---|---|
jd_list_products |
列出工作计划中使用的产品(化学品、肥料、品种等) |
jd_list_operators |
列出可用于工作计划分配的操作员 |
jd_list_guidance_lines |
列出字段的指导线 |
jd_get_guidance_line |
获取特定的指导方针 |
命令
| 命令 | 描述 |
|---|---|
/jd-fields [org] |
浏览组织中的字段 |
/jd-ops [field] |
查看现场操作数据 |
/jd-equipment [org] |
浏览设备和机器运行状况 |
/jd-work-plans [org] |
查看和管理工作计划 |
/jd-machine-health [machine] |
检查机器警报和工作时间 |
/jd-guidance-lines [field] |
查看字段的指导线 |
本地开发
cp .dev.vars.example .dev.vars
# Fill in JD_CLIENT_ID, JD_CLIENT_SECRET, COOKIE_ENCRYPTION_KEY
npm run dev
使用MCP检查员进行测试:
npx @modelcontextprotocol/inspector@latest
连接到 http://localhost:8787/mcp.
传输类型:流式HTTP 连接类型:直接
环境
这是针对 约翰迪尔沙盒 (sandboxapi.deere.com).沙盒限制:
- 最多5个互联组织
- 每月最多150000次API调用
- 沙盒最长持续时间为18个月
要获得生产访问权限,请通过John Deere开发人员门户进行申请。
所需OAuth范围
在OAuth流程中会自动请求以下作用域:
| 范围 | 目的 |
|---|---|
ag1 |
查看字段、农场和客户端 |
ag2 |
分析生产数据 |
ag3 |
管理位置和生产数据 |
eq1 |
查看设备 |
eq2 |
查看详细的机器测量值 |
org1 |
查看员工、操作员和合作伙伴 |
org2 |
修改员工、操作员和合作伙伴 |
work1 |
查看工作和裁剪计划 |
work2 |
创建和管理工作和作物计划 |
files |
文件API访问 |
offline_access |
刷新令牌(防止每12小时重新验证一次) |