Skip to main content
Glama

usda_nass_list_param_values

Read-onlyIdempotent

Lists valid Quick Stats filter parameter values to build correct queries, serving packaged lists immediately and fetching other parameters live with a 24-hour cache.

Instructions

List every value a Quick Stats filter parameter can take, to form valid queries.

Nine lists are answered from data packaged with this version, with no upstream call (meta.endpoint is "get_param_values", the operation they were fetched from, and meta.retrieved_at the time they were fetched): source_desc, sector_desc, group_desc, agg_level_desc, freq_desc, state_alpha, statisticcat_desc, unit_desc, domain_desc. Every other parameter is fetched live and cached for 24 hours in this process, so a repeated lookup sends nothing; meta.retrieved_at is the time the cached answer was fetched.

Args: param: A Quick Stats column name, e.g. "statisticcat_desc" or "unit_desc" (packaged), or "commodity_desc", "short_desc", "county_name", "year" (fetched live). Definitions are in docs/upstream/param_define.md.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "param": "<param>"
    },
    "name": "usda_nass_list_param_values"
  }
}

Input Schema

NameRequiredDescriptionDefault
paramYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

The annotations already declare readOnly, idempotent, openWorld and non-destructive, and the description goes well beyond that. It discloses that nine named parameters come from packaged data with no upstream call, that every other parameter is fetched live and cached in-process for 24 hours, and that repeated lookups send nothing; it also explains the meta.endpoint and meta.retrieved_at fields for interpreting freshness.

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 document is front-loaded with the core action, then the packaged/live split, then the argument. The long parenthetical defining meta.endpoint and meta.retrieved_at is dense and slightly awkward, but it carries real information rather than filler.

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?

For a single-parameter lookup tool with no output schema, the description still covers where values come from, freshness semantics and the argument's syntax, which is most of what an agent needs. It never states the shape of the returned list, such as whether it is a list of strings, which leaves a small gap.

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

Parameters5/5

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

Schema description coverage is 0%, so the description has to carry the meaning of the single parameter, and it does: it calls `param` a Quick Stats column name and gives worked examples for both the packaged set (statisticcat_desc, unit_desc) and the live set (commodity_desc, short_desc, county_name, year). It also points to docs/upstream/param_define.md for column definitions, which is genuinely additive over the bare `{"type":"string"}` 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 opens with a specific verb and resource: it lists every value a Quick Stats filter parameter can take, scoped 'to form valid queries'. That is enough for an agent to tell it apart from data-returning siblings such as usda_nass_get_data, though it never names an alternative explicitly.

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

Usage Guidelines4/5

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

'To form valid queries' establishes the context of use clearly: it is a discovery step taken before building a Quick Stats query. It also explains the operational split that governs whether a call goes out to the network, which is a form of usage guidance. It stops short of stating explicit exclusions or naming a sibling alternative.

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