Skip to main content
Leaf provides a Model Context Protocol (MCP) server that lets you interact with the Leaf API directly from Cursor. You can list users, query fields, pull operations, check weather data, and browse API documentation without leaving your editor.

Before you start

  • A Leaf account with API credentials.
  • Cursor IDE installed (version 0.40+ with MCP support).
  • A valid Leaf API token. Get one by authenticating:
curl -X POST "https://api.withleaf.io/api/authenticate" \
  -H "Content-Type: application/json" \
  -d '{"username": "your-email@example.com", "password": "your-password"}'
Save the id_token from the response.

Step 1: Add the MCP server to Cursor

Open Cursor Settings (Cmd+, on Mac, Ctrl+, on Windows/Linux) and navigate to MCP Servers. Click Add new MCP Server and configure it:
  • Name: leaf-mcp
  • Type: HTTP
  • URL: https://mcp.withleaf.io/mcp
Under Headers, add:
LEAF_TOKEN: your-leaf-api-token
Your Leaf token expires periodically. If you get authentication errors, generate a fresh token and update the header.

Step 2: Verify the connection

Open a new Cursor chat (Agent mode) and ask:
List the available Leaf API documentation
Cursor calls the get_docs_index tool and returns a list of all documentation topics available through the MCP server. If you see the index, the connection is working.

Step 3: List your Leaf users

Show me all Leaf users in my account
Cursor calls list_users and returns the paginated list of Leaf users under your API owner account. Each user has an id you’ll use in subsequent queries.

Step 4: Query fields for a user

List fields for Leaf user <leaf_user_id>
Replace <leaf_user_id> with an actual UUID from the previous step. Cursor calls list_fields and returns fields with their boundaries, providers, and metadata.

Step 5: Pull harvest operations

Show me harvested operations for Leaf user <leaf_user_id>
Cursor calls list_operations with operationType=harvested and returns the harvest operations. Each operation includes startTime, endTime, fieldId, and links to its summary and GeoJSON data. To dig into a specific operation:
Get the summary for operation <operation_id>
This calls get_operation_summary and returns aggregated stats like total area, average yield, and crop type.

Step 6: Explore additional tools

The MCP server exposes tools for the full Leaf API surface:
CategoryTools
Userslist_users
Fieldslist_fields, get_field, get_field_boundary
Operationslist_operations, get_operation, get_operation_summary, get_operation_units
Machine fileslist_files, get_file, get_file_summary, get_file_status, get_file_units
Batcheslist_batches, get_batch, get_batch_status
Weatherget_weather_forecast_field_daily, get_weather_historical_field_daily, and hourly/lat-lon variants
Billinglist_billing_contracts, get_contract_consumption
Configurationget_api_owner_configuration, get_leaf_user_configuration
Credentialsget_john_deere_credentials_events, get_climate_fieldview_credentials_events, get_cnhi_credentials_events
Documentationget_docs_index, get_leaf_doc
You can ask Cursor natural-language questions and it will pick the right tool. For example:
  • “What’s the weather forecast for field X?”
  • “Show me the processing status of file Y”
  • “Pull the API documentation for field operations”

What you built

You connected Leaf’s MCP server to Cursor and used it to query Leaf users, fields, and harvest operations through natural language. The MCP server gives you API access from your editor without writing HTTP requests, which is useful for exploration, debugging, and rapid prototyping. For the same workflow in Claude Code, see Connect Leaf’s MCP Server in Claude Code.
Last modified on March 19, 2026