Skip to main content
Glama

Nass Prices

nass_prices
Read-onlyIdempotent

Get prices received by US farmers for crops and livestock by commodity, state, and year. Track agricultural commodity price trends and market movements.

Input Schema

NameRequiredDescriptionDefault
yearNoYear or range (optional)
stateNoState name (optional, defaults to national)
_apiKeyYesNASS API key
commodityYesCommodity: "CORN", "SOYBEANS", "WHEAT", "CATTLE", "HOGS", "MILK", "CHICKENS"

Output Schema

NameRequiredDescriptionDefault
dataYesPrices received by farmers
countYesNumber of records returned
truncatedYesTrue if results exceed 200 records

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "_apiKey": "your-nass-api-key",
      -    "commodity": "CORN",
      -    "state": "ILLINOIS",
      -    "year": "2024"
      -  },
      -  {
      -    "_apiKey": "your-nass-api-key",
      -    "commodity": "CATTLE",
      -    "year": "2020:2025"
      -  }
      -]New value: +[
      +  {
      +    "commodity": "CORN",
      +    "state": "ILLINOIS",
      +    "year": "2024"
      +  },
      +  {
      +    "commodity": "CATTLE",
      +    "year": "2020:2025"
      +  }
      +]
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "count": {
      +      "description": "Number of records returned",
      +      "type": "integer"
      +    },
      +    "data": {
      +      "description": "Prices received by farmers",
      +      "items": {
      +        "properties": {
      +          "agg_level": {
      +            "description": "Aggregation level",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "commodity": {
      +            "description": "Commodity name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "county": {
      +            "description": "County name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "description": {
      +            "description": "Price statistic description",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "frequency": {
      +            "description": "Frequency",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "period": {
      +            "description": "Reference period",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "stat_category": {
      +            "description": "Always PRICE RECEIVED",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "state": {
      +            "description": "State name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "unit": {
      +            "description": "Price unit (e.g., $/BU, $/CWT)",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "value": {
      +            "description": "Price received by farmers",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "year": {
      +            "description": "Year",
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "truncated": {
      +      "description": "True if results exceed 200 records",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "count",
      +    "data",
      +    "truncated"
      +  ],
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "_apiKey": "your-nass-api-key",
      +    "commodity": "CORN",
      +    "state": "ILLINOIS",
      +    "year": "2024"
      +  },
      +  {
      +    "_apiKey": "your-nass-api-key",
      +    "commodity": "CATTLE",
      +    "year": "2020:2025"
      +  }
      +]
  4. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already cover read-only, idempotent, non-destructive behavior, so the description does not need to repeat those traits. It adds the useful scope of 'prices received by US farmers' but does not disclose behavioral details such as the national default when state is omitted, API key requirements, or how data is returned.

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?

The description is concise and front-loaded with the core action. The second sentence about tracking trends and market movements is slightly generic and does not add operational detail, but the overall length is appropriate.

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

Completeness4/5

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

Given the output schema exists and annotations cover safety, the description plus schema are sufficient for basic invocation. The main missing piece is explicit guidance on how this tool relates to the several other NASS sibling tools, which would make selection more robust.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters, including optional defaults and commodity values. The description reinforces the commodity/state/year dimensions but adds little semantic meaning beyond the structured schema.

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

Purpose4/5

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

The description clearly identifies the tool as retrieving prices received by US farmers for crops and livestock, scoped by commodity, state, and year. It distinguishes itself from NASS production/progress tools by emphasizing prices, but it does not explicitly differentiate itself from nearby siblings like nass_query or nass_livestock.

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

Usage Guidelines3/5

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

The intended use case is implied: use this tool when agricultural commodity price data is needed. However, there is no explicit guidance about when to prefer this over nass_query, nass_crop_production, or nass_livestock, and no exclusions or alternative routes are mentioned.

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.