Skip to main content
Glama

Farmland — USDA Land Values & Cash Rents for AI Agents

get_land_values

Read-onlyIdempotent

Average farmland values in dollars per acre by state, from the USDA NASS annual Land Values survey — each row is one state, year, and land category (farm_real_estate for the headline farm-real-estate value including buildings, cropland, or pasture) with its per-acre value (USD/acre). Use for what farmland is worth; use get_cash_rents instead for what it costs to rent, and list_coverage to confirm which states and years are stored before querying. Read-only lookup of stored survey data; no API key. The survey is annual and the stored copy refreshes once a year after the August NASS release — the latest stored year is 2026. state takes a two-letter code (case-insensitive) and year a single survey year; land values are state-level, so county fields are empty and a county filter normally matches nothing. Returns up to limit rows (default 1000), newest year first; a filter combination with no stored rows returns a no-data result rather than an empty list.

Input Schema

NameRequiredDescriptionDefault
yearNoSurvey year as an integer, e.g. 2026 (currently the only stored year — see list_coverage)
limitNoMax rows to return (default 1000, max 1000)
stateNoTwo-letter state code, e.g. 'IA' (case-insensitive; stored uppercase)
countyNoCounty name as stored (uppercase, e.g. 'HANCOCK'). Accepted for parity with the REST endpoint and get_cash_rents, but land values are state-level rows with no county, so this normally matches nothing

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent safety, and the description adds substantial context beyond them: no API key, annual refresh after the August NASS release, latest stored year is 2026, state-level rows mean county filters match nothing, newest-year-first ordering, and a no-data result instead of an empty list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph that front-loads what the tool returns and then the disambiguation, with no filler sentences. It is on the long side but each clause carries distinct information (grain, units, alternatives, cadence, parameter quirks).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still tells the agent the row shape, units, default/max limit, ordering, and the no-data behavior, so an agent can both select and invoke this correctly without further probing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds real meaning by clarifying that `state` is case-insensitive two-letter and `year` is a single survey year, and by flagging that `county` normally matches nothing despite being accepted for parity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Average farmland values in dollars per acre by state, from the USDA NASS annual Land Values survey') and defines the row grain (state, year, land category) with per-acre units. It is unmistakable next to get_cash_rents and list_coverage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: 'Use for what farmland is worth; use get_cash_rents instead for what it costs to rent, and list_coverage to confirm which states and years are stored before querying.' Both alternatives and their selecting conditions are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources