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, and field operations data 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
1. Cloudflare Account & Wrangler CLI
Create a Cloudflare account (if you don’t have one):
Go to dash.cloudflare.com/sign-up and sign up.
Verify your email and complete account setup.
Install the Wrangler CLI (Cloudflare’s Workers CLI):
npm install -g wranglerOr use it via
npx(no global install):npx wrangler --versionLog in to Cloudflare from the terminal:
npx wrangler loginThis opens a browser to authenticate Wrangler with your Cloudflare account.
2. Register a John Deere Developer Application
Go to developer.deere.com and sign in.
Create a new application under My Applications.
Add your Worker's callback URL as a Redirect URI:
https://john-deere-mcp.<your-subdomain>.workers.dev/callbackCopy your Application ID (Client ID) and Secret (Client Secret).
3. Create the KV Namespace
npx wrangler kv namespace create OAUTH_KVCopy the output id into wrangler.jsonc under kv_namespaces.
4. Set Secrets
npx wrangler secret put JD_CLIENT_ID
npx wrangler secret put JD_CLIENT_SECRET
npx wrangler secret put COOKIE_ENCRYPTION_KEYFor local development, copy .dev.vars.example to .dev.vars and fill in the values.
5. Install & Deploy
npm install
npm run deploy6. Connect an MCP Client
Add to your client's MCP config (e.g. Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"john-deere": {
"command": "npx",
"args": ["mcp-remote", "https://john-deere-mcp.<your-subdomain>.workers.dev/mcp"]
}
}
}Tools
Tool | Description |
| Lists all accessible organizations |
| Lists fields for an organization |
| Gets field details including boundaries |
| Lists planting/harvest/application operations |
Commands
Command | Description |
| Browse fields in an organization |
| View field operations data |
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
ag1 ag2 ag3 eq1 eq2 org1 org2 files offline_access
These are requested automatically during the OAuth flow.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.