MCP server · public beta
Give your agent satellite data.
Connect Claude, ChatGPT, Cursor or any MCP client. Your agent can generate a field report, read the indices and set a threshold alert, with the same scene and provenance as the app.
claude mcp add agroreports \
--transport http https://mcp.agroreports.org/mcp > Pull the vineyard report for the Champagne parcel.
→ generate_report({
geometry: "fld_champagne_07",
reportType: "vineyard-performance",
lang: "en"
})
→ get_report({ id: "rep_champagne_07" })
Report ready: Vineyard Performance for Champagne,
Côte des Blancs. NDMI 0.18 is below the 0.20 trigger;
irrigate the south rows. NDVI 0.68, NDRE 0.41.
PDF and CSV ready · Sentinel-2 L2A · 2026-09-12 Reports first
Reports, alerts and the data underneath.
Twelve tools. The agent can generate the report, set the threshold that watches it, and read the field data underneath.
Reports
| Tool | What it answers | Input |
|---|---|---|
| list_report_types | The eight report types | No input |
| generate_report | Start the report | Polygon, type |
| get_report | Poll it and read the result | Report id |
Alerts
| Tool | What it answers | Input |
|---|---|---|
| create_alert | Set a threshold on a field | Field, index, condition, window |
| list_alerts | List rules and status | No input |
| update_alert | Change threshold, window or channels | Alert id, fields |
| get_alert_events | Read triggered events | Alert id or field |
Field data underneath
| Tool | What it answers | Input |
|---|---|---|
| list_indices | What the eight indices mean | No input |
| get_indices | Current values for a field | Polygon, indices |
| get_index_timeseries | History over 1–10 years | Polygon, date range |
| compute_burn_severity | dNBR and USGS class | Polygon, fire date |
| find_location | Place name to bounding box | Query or lat/lon |
Reports are async: generate_report → get_report. Alerts: create_alert → get_alert_events. The same rules on the app, API and MCP.
The transcript
Ask. Read. Forward.
No prompt engineering. The agent asks for the report, generates it, polls it and returns the written report with its source.
Claude · #agronomy
connectedReport ready: Vineyard Performance for Champagne, France. NDMI 0.18 is below the 0.20 trigger; irrigate the south rows. NDVI 0.68, NDRE 0.41.
PDF and CSV ready · Sentinel-2 L2A · 2026-09-12 · 99% valid px
Auth and limits
OAuth, with one shared quota.
MCP is a transport, not a separate product. It authenticates with OAuth 2.1, and the grant shares the same quota as REST.
- Transport
- Streamable HTTP, stateless
- Auth
- OAuth 2.1 + PKCE
- Quota
- Shared with the API
- Area
- 200 ha per query
- Reports
- Async; poll with get_report
- No third-party delivery
The MCP server holds no upstream-processing or model credentials. It calls the same API, so formulas, caching and limits stay in one place.
MCP questions
Before you connect.
How does MCP authenticate?
OAuth 2.1 with PKCE. Authorise the client once, and the grant shares the same quota as REST.
Does it work in ChatGPT?
Yes, through a connector that supports streamable HTTP. Claude, Cursor and Codex work directly with the setup above.
Can it generate a report?
Yes. The agent calls generate_report, polls it with get_report, and gets the written report with PDF and CSV links. All eight report types are available.
Can it email a report?
No. The MCP server deliberately has no email path, so a public agent cannot email third parties. It returns a link you can share.
What data can it see?
The same report and field data as the API: the eight report types, indices, history, burn severity and weather. No raw imagery and no arbitrary geospatial code.
Is it free?
It is included with API access. The app is free; the API has a free tier and usage pricing after.
Start here
Your field has a report. Read it.
One field report for the grower, the builder and the agent. The report comes first; the API and MCP are how it travels.
Free report · 5 languages · API and MCP in public beta