# Magpie — USDA Agricultural Data for AI Agents (remote · ag.morningbrief.link)

USDA farm data for AI agents: prices, WASDE, crop conditions, trade. 26 tools, free, no key.

- Trust score: 67/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-23

## Components

- remote · `ag.morningbrief.link`: 67/100 (this document), [markdown](https://verifymcp.io/servers/link-morningbrief-magpie/ag.md), [page](https://verifymcp.io/servers/link-morningbrief-magpie/ag)

## Channel facts

- Endpoint: `https://ag.morningbrief.link/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-23.

- **Endpoint Security**: 69/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 404, which proves neither a plaintext path nor enforcement.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4872 tokens (~162/item across 30 items; 30 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 10/100
  - Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 30 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 30 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

## Install

### How do I install the Magpie — USDA Agricultural Data for AI Agents MCP server?

Magpie — USDA Agricultural Data for AI Agents is a hosted endpoint at https://ag.morningbrief.link/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http link-morningbrief-magpie 'https://ag.morningbrief.link/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "link-morningbrief-magpie": {
      "url": "https://ag.morningbrief.link/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "link-morningbrief-magpie": {
      "type": "http",
      "url": "https://ag.morningbrief.link/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.link-morningbrief-magpie]
url = "https://ag.morningbrief.link/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "link-morningbrief-magpie": {
      "type": "remote",
      "url": "https://ag.morningbrief.link/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add link-morningbrief-magpie --url 'https://ag.morningbrief.link/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  link-morningbrief-magpie:
    url: "https://ag.morningbrief.link/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "link-morningbrief-magpie": {
      "Transport": "http",
      "Url": "https://ag.morningbrief.link/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add link-morningbrief-magpie -t streamable-http -u 'https://ag.morningbrief.link/mcp'
```

### Other

```json
{
  "mcpServers": {
    "link-morningbrief-magpie": {
      "type": "http",
      "url": "https://ag.morningbrief.link/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-22 (score 67, +10)

- [security improvement] Authorization: unverified → partial
- [security] Tool “get_crop_stats” rewrote its description, which is the text the model reads
- [security] Tool “compare_contracts_vs_shipments” rewrote its description, which is the text the model reads
- [security] Tool “get_crop_condition” rewrote its description, which is the text the model reads
- [security] Tool “get_crop_progress” rewrote its description, which is the text the model reads
- [security] Tool “get_dairy_price” rewrote its description, which is the text the model reads
- [security] Tool “get_export_sales” rewrote its description, which is the text the model reads
- [security] Tool “get_export_sales_history” rewrote its description, which is the text the model reads
- [security] Tool “get_fertilizer_history” rewrote its description, which is the text the model reads
- [security] Tool “get_fertilizer_price” rewrote its description, which is the text the model reads
- [security] Tool “get_forecast” rewrote its description, which is the text the model reads
- [security] Tool “get_grain_history” rewrote its description, which is the text the model reads
- [security] Tool “get_grain_price” rewrote its description, which is the text the model reads
- [security] Tool “get_livestock_history” rewrote its description, which is the text the model reads
- [security] Tool “get_livestock_price” rewrote its description, which is the text the model reads
- [security] Tool “get_spreads” rewrote its description, which is the text the model reads
- [security] Tool “get_trade_flows” rewrote its description, which is the text the model reads
- [security] Tool “get_wasde_history” rewrote its description, which is the text the model reads
- [security] Tool “get_wasde_projection” rewrote its description, which is the text the model reads
- [security] Tool “get_weather” rewrote its description, which is the text the model reads
- [security] Tool “list_dairy_products” rewrote its description, which is the text the model reads
- [security] Tool “list_esr_commodities” rewrote its description, which is the text the model reads
- [security] Tool “list_fertilizer_products” rewrote its description, which is the text the model reads
- [security] Tool “list_gats_commodities” rewrote its description, which is the text the model reads
- [security] Tool “list_grain_products” rewrote its description, which is the text the model reads
- [security] Tool “list_livestock_products” rewrote its description, which is the text the model reads
- [security] Tool “list_wasde_commodities” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: pass → fail
- [functional improvement] Tool coverage: 76% → 100%
- [functional] Schema quality: good → excellent
- [functional] New tool “get_crop_condition_history”
- [functional] New tool “get_crop_progress_history”
- [functional] New tool “get_dairy_history”
- [functional] New tool “get_weather_history”
- [cosmetic] “get_crop_progress” reworded the description of “commodity”
- [cosmetic] “get_crop_progress” reworded the description of “geography”
- [cosmetic] “get_crop_stats” reworded the description of “commodity”
- [cosmetic] “compare_contracts_vs_shipments” reworded the description of “commodity”
- [cosmetic] “compare_contracts_vs_shipments” reworded the description of “partner”
- [cosmetic] “get_crop_condition” reworded the description of “commodity”
- [cosmetic] “get_crop_condition” reworded the description of “geography”
- [cosmetic] “get_crop_stats” reworded the description of “geography”
- [cosmetic] “get_crop_stats” reworded the description of “stat”
- [cosmetic] “get_dairy_price” reworded the description of “geography”
- [cosmetic] “get_dairy_price” reworded the description of “product”
- [cosmetic] “get_export_sales” reworded the description of “commodity”
- [cosmetic] “get_export_sales” reworded the description of “country”
- [cosmetic] “get_export_sales_history” reworded the description of “commodity”
- [cosmetic] “get_export_sales_history” reworded the description of “country”
- [cosmetic] “get_export_sales_history” reworded the description of “weeks”
- [cosmetic] “get_fertilizer_history” reworded the description of “periods”
- [cosmetic] “get_fertilizer_history” reworded the description of “product”
- [cosmetic] “get_forecast” reworded the description of “location”
- [cosmetic] “get_grain_history” reworded the description of “geography”
- [cosmetic] “get_grain_history” reworded the description of “periods”
- [cosmetic] “get_grain_history” reworded the description of “product”
- [cosmetic] “get_grain_price” reworded the description of “geography”
- [cosmetic] “get_livestock_history” reworded the description of “geography”
- [cosmetic] “get_livestock_history” reworded the description of “periods”
- [cosmetic] “get_livestock_history” reworded the description of “product”
- [cosmetic] “get_livestock_price” reworded the description of “geography”
- [cosmetic] “get_spreads” reworded the description of “geography”
- [cosmetic] “get_trade_flows” reworded the description of “commodity”
- [cosmetic] “get_trade_flows” reworded the description of “months”
- [cosmetic] “get_trade_flows” reworded the description of “partner”
- [cosmetic] “get_wasde_history” reworded the description of “attribute”
- [cosmetic] “get_wasde_history” reworded the description of “commodity”
- [cosmetic] “get_wasde_history” reworded the description of “country”
- [cosmetic] “get_wasde_projection” reworded the description of “country”
- [cosmetic] “get_wasde_projection” reworded the description of “market_year”
- [cosmetic] “get_weather” reworded the description of “location”

### 2026-10-21 (score 57, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-20 (score 56)

First indexed and scored.

## MCP tools (30)

### `get_fertilizer_price` (~153 tokens)

Latest price for one fertilizer product from USDA MARS production cost reports (Illinois-led regional coverage) — the same series get_fertilizer_history extends over time. Use for a current input-cost quote; use get_spreads instead to relate fertilizer cost to corn or cattle prices. Read-only lookup of stored reports; no API key. The reports publish twice a month and are fetched on the 1st and 15th, so the latest price can be up to about two weeks old; returns the price, its unit (typically USD per ton), and the change versus the prior report.

Input parameters:

- `product` (string, required): Product slug (e.g. anhydrous_ammonia, urea, dap)

### `get_fertilizer_history` (~149 tokens)

Price history for one fertilizer product across report periods, from the same twice-monthly USDA MARS production cost reports behind get_fertilizer_price. Use for input-cost trends; use get_fertilizer_price instead when only the latest quote matters. Read-only lookup of stored reports; no API key. Returns up to `periods` most recent reports, oldest first (default 12, max 52 — roughly two years of twice-monthly reports).

Input parameters:

- `periods` (number): Number of most recent report periods to return (default 12, max 52)
- `product` (string, required): Product slug (e.g. anhydrous_ammonia, urea, dap)

### `list_fertilizer_products` (~106 tokens)

Lists the fertilizer product slugs this API tracks (anhydrous ammonia, urea, DAP, MAP, potash, liquid N 28/32, ATS, farm diesel, biodiesel) with display labels. Use to discover valid `product` values before calling get_fertilizer_price or get_fertilizer_history. Read-only; no API key. The list is the configured catalog across the tracked MARS production cost reports, not a live availability check.

### `get_grain_price` (~165 tokens)

Latest cash grain price for one commodity in one state, from USDA MARS daily market reports — the same series get_grain_history extends over time. Use for a current quote; use get_grain_history instead for trends across days. Read-only lookup of stored reports; no API key. Returns the most recent report's price with its unit (USD per bushel in most markets) and market location; a commodity/state pair with no report returns a no-data error rather than a stale price.

Input parameters:

- `geography` (string): State/region code from a tracked MARS report (e.g. IL, IA, TX, PNW, GULF). Default: IL
- `product` (string, required): Grain slug (e.g. corn, soybeans, wheat)

### `get_grain_history` (~184 tokens)

Daily cash price history for one grain commodity in one state, from the same USDA MARS daily reports behind get_grain_price. Use for trends or day-over-day comparison; use get_grain_price instead when only the latest quote matters. Read-only lookup of stored reports; no API key. Returns up to `periods` most recent daily report rows, oldest first; `periods` counts report rows, not calendar days (default 30, max 365).

Input parameters:

- `geography` (string): State/region code from a tracked MARS report (e.g. IL, IA, TX, PNW, GULF). Default: IL
- `periods` (number): Number of most recent report rows to return (default 30, max 365)
- `product` (string, required): Grain slug (e.g. corn, soybeans, wheat)

### `list_grain_products` (~96 tokens)

Lists the grain commodity slugs this API tracks (corn, soybeans, wheat, sorghum, oats, barley, rice) with display labels. Use to discover valid `product` values before calling get_grain_price or get_grain_history. Read-only; no API key. The list is the configured MARS catalog, not a live availability check — a listed product can still have no report for a given state.

### `get_livestock_price` (~180 tokens)

Latest price for one livestock category in one region, from USDA MARS direct-trade and auction reports — the same series get_livestock_history extends over time. Use for a current quote; use get_livestock_history instead for trends. Read-only lookup of stored reports; no API key. Returns the most recent report's price and its unit (typically USD per cwt); direct-trade reports can skip weeks when no trades occur, and a category/region pair with no report returns a no-data error rather than a stale price.

Input parameters:

- `geography` (string): Region or state code (e.g. IA for Iowa direct trade, ECB for Eastern Cornbelt, or a state auction code). Default: IA
- `product` (string, required): Livestock slug (e.g. fed_cattle, feeder_cattle, hogs)

### `get_livestock_history` (~180 tokens)

Price history for one livestock category in one region, from the same USDA MARS reports behind get_livestock_price (daily direct-trade reports plus weekly auction summaries). Use for trends; use get_livestock_price instead when only the latest quote matters. Read-only lookup of stored reports; no API key. Returns up to `periods` most recent report rows, oldest first; `periods` counts report rows, not calendar days (default 30, max 365).

Input parameters:

- `geography` (string): Region or state code (e.g. IA, ECB, KS). Default: IA
- `periods` (number): Number of most recent report rows to return (default 30, max 365)
- `product` (string, required): Livestock slug (e.g. fed_cattle, feeder_cattle, hogs)

### `list_livestock_products` (~98 tokens)

Lists the livestock category slugs this API tracks (fed_cattle, feeder_cattle, cows, hogs, sheep) with display labels. Use to discover valid `product` values before calling get_livestock_price or get_livestock_history. Read-only; no API key. The list is the configured catalog, not a live availability check — some categories trade sporadically and can have no recent report in a region.

### `get_dairy_price` (~172 tokens)

Latest price for one dairy product, from USDA MARS weekly dairy reports — the same series get_dairy_history extends over time. Use for a current quote; use get_dairy_history instead for the weekly trend. Read-only lookup of stored reports; no API key. Geography defaults to US-Central (cheese reports are national and use geography 'US'). Butter is deliberately withheld: USDA publishes only price differentials for butter, no US base price, so butter returns a withheld notice instead of a misleading value.

Input parameters:

- `geography` (string): Report region (US-Central, US-East, US-West; cheese uses US). Default: US-Central
- `product` (string, required): Dairy product (cheese, butter, dry_whey, fluid_milk). Butter prices are withheld — see description

### `get_dairy_history` (~203 tokens)

Weekly price history for one dairy product, from the same USDA MARS weekly dairy reports behind get_dairy_price. Use for trends across report weeks; use get_dairy_price instead when only the latest quote matters. Read-only lookup of stored reports; no API key. Returns up to `periods` most recent report rows, oldest first (default 30, max 365); geography defaults to US-Central and cheese reports use geography 'US'. Butter returns a withheld notice — USDA publishes only price differentials for butter, no US base price.

Input parameters:

- `geography` (string): Report region (US-Central, US-East, US-West; cheese uses US). Default: US-Central
- `periods` (number): Number of most recent report rows to return (default 30, max 365)
- `product` (string, required): Dairy product (cheese, butter, dry_whey, fluid_milk). Butter prices are withheld — see description

### `list_dairy_products` (~88 tokens)

Lists the dairy product slugs this API tracks (cheese, butter, dry_whey, fluid_milk) with display labels. Use to discover valid `product` values before calling get_dairy_price or get_dairy_history. Read-only; no API key. Butter is listed for completeness but its price is withheld in the price tools — USDA reports no US base price for butter.

### `get_crop_stats` (~223 tokens)

Annual NASS survey statistics — yield, production, planted or harvested area — for a commodity at national or state level, from USDA NASS QuickStats. These are survey estimates, not market prices. Use for production fundamentals; use get_crop_condition or get_crop_progress instead for in-season weekly crop status. Read-only lookup of stored statistics; no API key. Returns every stored period (year) for the requested statistic, most recent first; the stored copy refreshes weekly. Commodity, statistic, and geography are case-insensitive and default to CORN, YIELD, and US.

Input parameters:

- `commodity` (string): Commodity (CORN, SOYBEANS, WHEAT, COTTON, SORGHUM, OATS, BARLEY, RICE). Default: CORN
- `geography` (string): US for national, or state code (IA, IL, etc.). Default: US
- `stat` (string): Statistic type (YIELD, PRODUCTION, AREA PLANTED, AREA HARVESTED). Default: YIELD

### `get_crop_condition` (~203 tokens)

Most recent weekly NASS crop condition ratings for corn, soybeans, or wheat — the share of the crop rated excellent, good, fair, poor, and very poor, plus a combined good+excellent percentage — from USDA NASS QuickStats. Use for current crop health; use get_crop_condition_history instead for week-by-week change across the season, and get_crop_progress for growth-stage pace. Read-only lookup of stored statistics; no API key. Ratings are published weekly in season, but the stored copy refreshes weekly, so the returned `period` (e.g. 2026-W30) is the freshest stored week, not necessarily the current one.

Input parameters:

- `commodity` (string): Commodity (CORN, SOYBEANS, WHEAT). Default: CORN
- `geography` (string): US for national, or state code (IA, IL, etc.); state coverage is the major corn-belt states. Default: US

### `get_crop_progress` (~199 tokens)

Most recent weekly NASS crop progress for corn, soybeans, or wheat — the share of the crop at each growth stage (planted, emerged, silking, harvested, and similar; the stages present vary by commodity) — from USDA NASS QuickStats. Use for current season pace; use get_crop_progress_history instead for week-by-week pace across the season, and get_crop_condition for health ratings. Read-only lookup of stored statistics; no API key. Progress is published weekly in season, but the stored copy refreshes weekly; the returned `period` (e.g. 2026-W30) is the freshest stored week.

Input parameters:

- `commodity` (string): Commodity (CORN, SOYBEANS, WHEAT). Default: CORN
- `geography` (string): US for national, or state code (IA, IL, etc.); state coverage is the major corn-belt states. Default: US

### `get_crop_condition_history` (~221 tokens)

Week-by-week NASS crop condition ratings for corn, soybeans, or wheat across the growing season — each week's excellent/good/fair/poor/very poor shares plus a combined good+excellent percentage — from USDA NASS QuickStats. Use to track crop health trends or compare weeks within the season; use get_crop_condition instead when only the latest week matters. Read-only lookup of stored statistics; no API key. Returns up to `weeks` most recent stored weeks, oldest first (default 12, max 52); coverage is the current season, national plus major corn-belt states, and the stored copy refreshes weekly.

Input parameters:

- `commodity` (string): Commodity (CORN, SOYBEANS, WHEAT). Default: CORN
- `geography` (string): US for national, or state code (IA, IL, etc.); state coverage is the major corn-belt states. Default: US
- `weeks` (number): Number of most recent weeks to return (default 12, max 52)

### `get_crop_progress_history` (~234 tokens)

Week-by-week NASS crop progress for corn, soybeans, or wheat across the growing season — each week's share of the crop at each growth stage (planted, emerged, silking, harvested, and similar) — from USDA NASS QuickStats. Use to track season pace or compare against earlier weeks; use get_crop_progress instead when only the latest week matters. Read-only lookup of stored statistics; no API key. Returns up to `weeks` most recent stored weeks, oldest first (default 12, max 52); the stages present vary by commodity and point in the season. Coverage is the current season, national plus major corn-belt states, and the stored copy refreshes weekly.

Input parameters:

- `commodity` (string): Commodity (CORN, SOYBEANS, WHEAT). Default: CORN
- `geography` (string): US for national, or state code (IA, IL, etc.); state coverage is the major corn-belt states. Default: US
- `weeks` (number): Number of most recent weeks to return (default 12, max 52)

### `get_weather` (~131 tokens)

Current observed weather conditions for an agricultural region — temperature, humidity, wind, and sky conditions from the nearest NOAA National Weather Service station. Use for right-now conditions; use get_forecast instead for the outlook ahead, and get_weather_history for what the past days actually delivered. Live proxy to NOAA — nothing is stored, so values are as of the station's latest observation; no API key. An unknown location key or a NOAA outage returns a source-unavailable error.

Input parameters:

- `location` (string): Location key (IL-central, IA-central, NE-central, IN-central, KS-central). Default: IL-central

### `get_forecast` (~139 tokens)

NOAA forecast for an agricultural region — the next several day/night periods with temperature, wind speed and direction, and short and detailed forecast text, from the National Weather Service. Use for the outlook ahead; use get_weather instead for current observed conditions, and get_weather_history for recent past weather. Live proxy to NOAA — nothing is stored; this is the latest NWS gridpoint forecast for the region's coordinates; no API key. An unknown location key or a NOAA outage returns a source-unavailable error.

Input parameters:

- `location` (string): Location key (IL-central, IA-central, NE-central, IN-central, KS-central). Default: IL-central

### `get_weather_history` (~179 tokens)

Recent past weather for an agricultural region, summarized by day from NOAA station observations: daily high and low temperature (°F), total precipitation (inches), and the number of observations behind each day. Use for what weather actually occurred over the past days; use get_weather instead for current conditions and get_forecast for the outlook. Live proxy to NOAA — nothing is stored; no API key. `days` spans 1–30 (default 7). Precipitation is null for a day when the station reported no precipitation values — never silently zero — and days with no observations are omitted.

Input parameters:

- `days` (number): Number of past days to summarize (default 7, max 30)
- `location` (string): Location key (IL-central, IA-central, NE-central, IN-central, KS-central). Default: IL-central

### `get_spreads` (~185 tokens)

Derived input-to-output price spreads computed from the latest stored Magpie prices: corn-to-nitrogen cost broken down per fertilizer product (bushels of corn per ton of product and per pound of actual N), the soybean-to-corn price ratio, and the feeder-to-fed cattle spread. Use for planting and feeding economics; use the raw price tools (get_grain_price, get_fertilizer_price, get_livestock_price) instead for the quotes behind a spread. Read-only; no API key. These are Magpie calculations over stored USDA MARS prices, not USDA-published figures; a spread is omitted when either side has no stored price. Geography defaults to IL and applies to both sides of each spread.

Input parameters:

- `geography` (string): State/region code used for both sides of the spreads (e.g. IL, IA). Default: IL

### `get_wasde_projection` (~218 tokens)

Latest USDA WASDE supply/demand projections for one commodity — beginning stocks, production, imports, exports, domestic consumption, and ending stocks — from the FAS PSD database behind the monthly WASDE report. Use for the current balance-sheet outlook; use get_wasde_history instead to see how a single figure has been revised across reports. Read-only lookup of stored projections; no API key. Returns the newest stored report's values for the requested marketing year (default: the current marketing year, where e.g. 2026 means the 2025/26 season) and country (default WORLD aggregate; US, BR, and AR are also tracked).

Input parameters:

- `commodity` (string, required): Commodity slug (e.g. corn, wheat, soybeans, rice, cotton)
- `country` (string): Country code (WORLD, US, BR, AR). Default: WORLD aggregate
- `market_year` (number): Marketing year (e.g. 2026 = 2025/26 season). Default: current marketing year

### `get_wasde_history` (~179 tokens)

Revision history of one WASDE projection figure (default ending_stocks) across monthly reports — how the estimate for a commodity and marketing year moved as successive WASDE reports landed. Use to study estimate revisions; use get_wasde_projection instead for the full current balance sheet. Read-only lookup of stored projections; no API key. Returns up to 24 monthly report values, oldest first, each with its report date and unit, for the requested commodity, attribute, and country (default WORLD).

Input parameters:

- `attribute` (string): Projection attribute (beginning_stocks, production, imports, exports, domestic_consumption, ending_stocks)
- `commodity` (string, required): Commodity slug (e.g. corn, wheat, soybeans)
- `country` (string): Country code (WORLD, US, BR, AR). Default: WORLD aggregate

### `list_wasde_commodities` (~79 tokens)

Lists the commodities tracked in WASDE projections (corn, wheat, soybeans, soybean meal, soybean oil, rice, barley, cotton) with their FAS PSD commodity codes. Use to discover valid `commodity` slugs before calling get_wasde_projection or get_wasde_history. Read-only; no API key.

### `get_export_sales` (~173 tokens)

Latest week of USDA export sales for one commodity from the FAS Export Sales Reporting (ESR) system — sales contracted by exporters, not yet necessarily shipped. Use for current foreign demand; use get_export_sales_history instead for the weekly trend, and get_trade_flows for actual shipped volumes. Read-only lookup of stored reports; no API key. ESR reports weekly (released Thursdays); returns the most recent stored week's weekly exports, outstanding sales, net sales for the current marketing year, and total commitments per destination country, each row with its reported unit. Omit `country` to include all destinations.

Input parameters:

- `commodity` (string, required): Commodity slug (see list_esr_commodities)
- `country` (string): GENC country code (e.g. CHN, MEX) or omit for all destinations

### `get_export_sales_history` (~183 tokens)

Weekly export sales time series for one commodity, and optionally one destination country, from the same FAS ESR weekly reports behind get_export_sales. Use for demand trends across weeks; use get_export_sales instead when only the latest week matters, and compare_contracts_vs_shipments to set contracted sales against actual shipments. Read-only lookup of stored reports; no API key. Returns up to `weeks` most recent weeks, oldest first (default 12, max 52); without a `country`, each week covers all destinations combined as stored.

Input parameters:

- `commodity` (string, required): Commodity slug (see list_esr_commodities)
- `country` (string): GENC country code (e.g. CHN, MEX) or omit for all destinations
- `weeks` (number): Number of most recent weeks to return (default 12, max 52)

### `list_esr_commodities` (~95 tokens)

Lists the commodities tracked in USDA export sales reporting (wheat, barley, corn, sorghum, soybeans, soybean meal, soybean oil, cotton, rice) with their FAS commodity codes. Use to discover valid `commodity` slugs before calling get_export_sales or get_export_sales_history. Read-only; no API key. Slugs map to FAS 'all' aggregate commodity codes where available.

### `get_trade_flows` (~206 tokens)

Monthly US agricultural export shipments by destination, from USDA GATS (Census trade data) — quantities and values actually shipped, not sales contracted. Use for realized trade volumes; use get_export_sales instead for contracted-but-unshipped demand, and compare_contracts_vs_shipments for the sold-versus-shipped gap. Read-only lookup of stored Census data; no API key. Coverage is a rolling 24 months, refreshed monthly; quantities are in metric tons with values in USD. Some commodities are withheld when GATS unit inconsistencies fail a dollars-per-ton sanity check — a withheld result says so explicitly instead of returning bad numbers.

Input parameters:

- `commodity` (string, required): Commodity slug (see list_gats_commodities)
- `months` (number): Number of months of flows to return (default 12, max 24)
- `partner` (string): Partner country code (2-letter ISO/GENC, e.g. MX, CN) or omit for all partners

### `compare_contracts_vs_shipments` (~161 tokens)

Derived comparison of ESR contracted export sales against GATS actual shipments for one commodity: total contracted, total shipped, and the gap in metric tons — a positive gap means sold but not yet shipped. Use to gauge the unshipped export backlog; use get_export_sales or get_trade_flows instead for the underlying weekly or monthly detail. Read-only; no API key. This is a computed aggregate across both stored datasets over all stored periods, not a USDA-published figure; totals are rounded to whole tons.

Input parameters:

- `commodity` (string, required): Commodity slug (see list_gats_commodities)
- `partner` (string): Partner country code (2-letter ISO/GENC, e.g. MX, CN) or omit for all partners

### `list_gats_commodities` (~90 tokens)

Lists the commodities tracked in GATS trade flows (matched to Census data by HS chapter) with display labels. Use to discover valid `commodity` slugs before calling get_trade_flows or compare_contracts_vs_shipments. Read-only; no API key. The list is the configured catalog — individual commodities can still be withheld in get_trade_flows when their source data fails sanity checks.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/link-morningbrief-magpie/ag#diagnostics

## Score history

- 2026-10-23: 67
- 2026-10-22: 67
- 2026-10-21: 57
- 2026-10-20: 56

## Common questions

### What is the Magpie — USDA Agricultural Data for AI Agents MCP server?

Magpie — USDA Agricultural Data for AI Agents is an MCP server listed in the public MCP registry as link.morningbrief/magpie. USDA farm data for AI agents: prices, WASDE, crop conditions, trade. 26 tools, free, no key. This page covers its hosted endpoint (https://ag.morningbrief.link/mcp).

### Is the Magpie — USDA Agricultural Data for AI Agents MCP server safe to use?

Magpie — USDA Agricultural Data for AI Agents scores 67 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Magpie — USDA Agricultural Data for AI Agents MCP server expose?

Magpie — USDA Agricultural Data for AI Agents exposes 30 tools: get_fertilizer_price, get_fertilizer_history, list_fertilizer_products, get_grain_price, get_grain_history, and 25 more. Their descriptions and schemas cost roughly 4,872 tokens of context every time the server is loaded.

### Does the Magpie — USDA Agricultural Data for AI Agents MCP server require authentication?

No. We connected to Magpie — USDA Agricultural Data for AI Agents without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Magpie — USDA Agricultural Data for AI Agents MCP server still maintained?

Magpie — USDA Agricultural Data for AI Agents is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://ag.morningbrief.link/mcp
- Website: https://morningbrief.link/
- Changelog RSS feed: https://verifymcp.io/servers/link-morningbrief-magpie/ag.xml
- Changelog JSON feed: https://verifymcp.io/servers/link-morningbrief-magpie/ag.json
- HTML version of this page: https://verifymcp.io/servers/link-morningbrief-magpie/ag
