Skip to main content
Glama
crop-prices

crop-prices

by RootedInData

get_price_history

Retrieve a crop's price time series with a summary of start, end, low, high, and percent change. Use it to track price trends or check state-level farm prices by commodity, years, and source.

Instructions

Get a price time series for one crop, plus a summary (start, end, low, high, % change).

Use for trends ("how have corn prices changed since 2022?") and for state-level farm prices ("what are Iowa farmers getting for soybeans?").

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": {
      "commodity": "<commodity>"
    },
    "name": "get_price_history"
  }
}

Input Schema

NameRequiredDescriptionDefault
stateNoTwo-letter US state code (e.g. "IL") for state farm prices. NASS only.
yearsNoHow many years back to go.
sourceNoauto = USDA farm price if available, else global price, else futures.auto
commodityYesCrop name or alias.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose the return shape (a series plus summary statistics), which is useful, but says nothing about data availability, source fallback ordering, latency, or limits on historical coverage.

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

Conciseness5/5

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

Two tight sentences: the capability and its output are front-loaded, then the use cases follow. No filler or redundancy.

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?

There is no output schema, but the description compensates by summarizing exactly what comes back, and the parameter surface is fully documented in the schema. Missing only behavioral context around data sourcing and availability.

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 coverage is 100%, so the schema already documents all four parameters including the source enum fallback chain. The description adds only a light gloss: 'one crop' confirms commodity is singular, and the state example reinforces that state implies NASS farm prices.

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?

States a specific verb and resource ('Get a price time series for one crop') and even enumerates the summary it returns (start, end, low, high, % change). The 'time series' framing implicitly separates it from a current-price tool, but no sibling is named 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?

Gives two concrete usage contexts with example questions: trend analysis over time and state-level farm prices. It stops short of stating when not to use it or naming alternatives such as get_current_price or compare_commodities.

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