Skip to main content
Glama

usda_psd_list_commodities

Read-onlyIdempotent

List USDA PSD commodities with their commodity codes, optionally filtering by code or name via case-insensitive search.

Instructions

List PSD's commodities with their codes, the values commodity_code takes.

Answered from PSDData_GetCommodities as packaged with this version (reference/commodities.json), without an upstream call: 63 commodities when packaged, in upstream order, e.g. "0410000" Wheat, "0440000" Corn, "2222000" Oilseed, Soybean. meta.retrieved_at is when the package fetched the list (2026-10-28, UTC); meta.vintage is empty, as upstream gives the list no release identifier.

Args: search: Keep the commodities where this text occurs, ignoring case, in the code or the name, e.g. "wheat" (0410000 Wheat), "soybean" (meal, oil and oilseed, each also "(Local)"), "0440000" (Corn). Omit (None) for all.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "usda_psd_list_commodities"
  }
}

Input Schema

NameRequiredDescriptionDefault
searchNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations (which already declare read-only, idempotent, non-destructive), the description discloses that results come from a packaged reference file with no upstream call, the expected row count (63), ordering (upstream order), and the meaning of meta.retrieved_at and the empty meta.vintage. That is exactly the kind of provenance and freshness context annotations cannot express.

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 core purpose is front-loaded in the first sentence, and the remaining material (provenance, count, ordering, meta fields, search semantics) is relevant rather than filler. It is somewhat long for a one-parameter list tool, and the example-heavy parentheticals in the Args block could be trimmed, but nothing is misleading or wasted.

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?

There is no output schema, but the description compensates by describing the returned fields (code + name pairs), their order, the count, and the meta fields. Combined with full search semantics, an agent has everything needed to call this correctly and interpret the result.

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 must carry the single parameter, and it does so thoroughly: case-insensitive substring match, applied to either the code or the name, with worked examples ("wheat", "soybean", "0440000") and the explicit null/omit behavior. Little is left ambiguous about what search will do.

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 first sentence gives a specific verb and resource ("List PSD's commodities with their codes") and states the downstream use — these are the values commodity_code takes — which lets an agent distinguish it from data-fetching siblings like usda_psd_get_data. It does not explicitly name the nearest alternative (comtrade_list_commodities) or contrast scope with usda_psd_list_commodity_attributes, so it stops short of full sibling differentiation.

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?

Usage is implied rather than stated: the search parameter documentation shows how to look up a code from a name or vice versa, and "Omit (None) for all" tells the agent how to enumerate everything. There is no explicit when-to-use / when-not-to-use statement or routing to a sibling, so the agent must infer that this is the lookup step preceding get_data or get_time_series calls.

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