John Deere Operations Center MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@John Deere Operations Center MCP Serverlist the fields for the Smith Farms organization"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
John Deere Operations Center MCP Server
A remote MCP server hosted on Cloudflare Workers that connects to John Deere Operations Center. Browse organizations, fields, field operations, equipment, work plans, and more via any MCP-compatible client (Claude Desktop, Cursor, etc.).
Architecture
The server runs as a Cloudflare Worker with a Durable Object (McpAgent) providing stateful MCP sessions. Authentication uses a double OAuth proxy pattern:
Downstream: The Worker is an OAuth server to MCP clients
Upstream: The Worker is an OAuth client to John Deere
This means authentication happens at the transport layer — no manual auth tool call is needed.
Setup
Prerequisites
A Cloudflare account (free tier works)
A John Deere developer account with an application registered at developer.deere.com
Node.js 18+
Quick setup (recommended)
git clone <repo-url>
cd john-deere-ops-center
npm run setupThe interactive setup script (scripts/setup.mjs) will walk you through every step:
Install dependencies — runs
npm installCloudflare login — runs
wrangler loginin your browserCreate KV namespace — creates the
OAUTH_KVnamespace and patches its ID intowrangler.jsoncautomaticallyEnter credentials — prompts for your John Deere Application ID (
JD_CLIENT_ID) and Secret (JD_CLIENT_SECRET), then pushes them as Cloudflare secrets along with an auto-generatedCOOKIE_ENCRYPTION_KEYDeploy — runs
wrangler deployand prints your Worker URL
At the end of setup, the script prints:
MCP endpoint: https://<worker>.<subdomain>.workers.dev/mcp
Redirect URI: https://<worker>.<subdomain>.workers.dev/callbackRegister the redirect URI at developer.deere.com under My Applications → your app → Redirect URIs before attempting to authenticate.
First login: After signing in with John Deere, you will be prompted to connect your Operations Center organization to the application. This is a required one-time step — the server detects it automatically and redirects you to
connections.deere.comto complete the selection. Seedocs/oauth2-flow.mdfor details.
Manual setup
If you prefer to run each step yourself:
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 deployRegister your application at developer.deere.com and add https://<worker>.<subdomain>.workers.dev/callback as a redirect URI.
For local development, copy .dev.vars.example to .dev.vars and fill in the values.
Connect an MCP Client
Add to your MCP client config (e.g. Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"john-deere": {
"command": "npx",
"args": ["mcp-remote", "https://<worker>.<subdomain>.workers.dev/mcp"]
}
}
}Tools
Organizations & Fields
Tool | Description |
| List all accessible organizations |
| List all fields for an organization |
| Get field details including boundaries |
| List planting, harvest, and application operations for a field |
Work Plans
Tool | Description |
| List work plans for an organization |
| Get a single work plan by ERID |
| Create a planned work plan |
Equipment & Machine Health
Tool | Description |
| List equipment for an organization |
| Get equipment details by ID |
| Get machine diagnostic and maintenance alerts |
| Get engine hour readings |
| Get engine state and operation history |
| Get location history or last known position |
| Get terminal and connectivity diagnostics |
Reference Data
Tool | Description |
| List products (chemicals, fertilizers, varieties, etc.) for use in work plans |
| List operators available for work plan assignment |
| List guidance lines for a field |
| Get a specific guidance line |
Commands
Command | Description |
| Browse fields in an organization |
| View field operations data |
| Browse equipment and machine health |
| View and manage work plans |
| Check machine alerts and hours |
| View guidance lines for a field |
Local Development
cp .dev.vars.example .dev.vars
# Fill in JD_CLIENT_ID, JD_CLIENT_SECRET, COOKIE_ENCRYPTION_KEY
npm run devTest with the MCP Inspector:
npx @modelcontextprotocol/inspector@latestConnect to http://localhost:8787/mcp.
Transport Type: Streamable HTTP Connection Type: Direct
Environment
This targets the John Deere Sandbox (sandboxapi.deere.com). Sandbox limits:
Max 5 connected organizations
Max 150,000 API calls/month
18-month maximum sandbox duration
For production access, apply through the John Deere developer portal.
Required OAuth Scopes
The following scopes are requested automatically during the OAuth flow:
Scope | Purpose |
| View fields, farms, and clients |
| Analyze production data |
| Manage locations and production data |
| View equipment |
| View detailed machine measurements |
| View staff, operators, and partners |
| Modify staff, operators, and partners |
| View work and crop plans |
| Create and manage work and crop plans |
| Files API access |
| Refresh token (prevents re-authentication every 12 hours) |
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/CoreyFransen08/john-deere-ops-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server