Skip to main content
Glama

get_commodity_historical

Read-onlyIdempotent

Daily OHLC price history for a commodity, covering the whole date range you ask for.

Chart-ready: while the range fits in one response, each row is the price feed's
own daily row — {symbol, date, open, high, low, close, volume, change,
changePercent, vwap} — newest first, ordered for direct plotting as a price history.

A range too long to return day by day is aggregated into coarser OHLC bars
rather than cut short. `interval` names which (weekly/monthly/quarterly/yearly),
each bar spans `date` to `endDate`, and a bar's high/low are that period's real
extremes. Aggregated bars carry the same fields except `vwap`, which the feed
defines per session only. Re-request a narrower from_date/to_date for daily rows.

`summary` always describes the FULL requested window, computed from the daily
data: its first and last close with dates, its high and low with dates, and the
trailing changes the window reaches back far enough to support. Base any
"starting price", "a year ago" or "period high/low" claim on `summary`, or on a
bar that is actually present.

`summary.windowHigh`/`windowLow` describe THIS window. A quote tool's
yearHigh/yearLow are the feed's trailing range, roughly the past 12-13
months — a different period — so label those as trailing-year figures. For the current level alone, call get_commodity_quote.

Args:
    symbol: Commodity symbol (e.g. 'GCUSD' for gold)
    from_date: Start date YYYY-MM-DD (optional)
    to_date: End date YYYY-MM-DD (optional)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
symbolYesCommodity symbol, e.g. 'GCUSD' (gold).
to_dateNo
from_dateNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "get_commodity_historicalOutput",
      -  "type": "object"
      -}New value: +null
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, yet the description adds substantial behavior beyond them: long ranges are aggregated into coarser bars instead of cut short, aggregated bars drop `vwap`, ordering is newest-first, and `summary` always reflects the full requested window with explicit warning against conflating its windowHigh/windowLow with a quote tool's trailing range.

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?

Core purpose and field list are front-loaded, and each paragraph covers a distinct concern (fields, aggregation, summary semantics, sibling routing). It is on the long side and re-enumerates fields, but nearly every sentence carries non-obvious information.

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 fully carries the return-value burden: it lists the exact row fields, the ordering, the aggregation variant and its field omissions, and the meaning of `summary`. Nothing an agent needs to interpret or call the tool correctly is missing.

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 only 33% (symbol is the sole documented param), so the description carries the load: it gives the date format (YYYY-MM-DD), explains that from_date/to_date scope the range, and describes how an overly long range is aggregated rather than truncated. It adds real meaning, though it also mentions an `interval` value that is not an actual parameter, which is mildly confusing.

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 — daily OHLC price history for a commodity — and immediately scopes it to the requested date range. It is clearly distinguishable from get_commodity_quote and the other *_historical siblings without opening any schema.

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?

Explicitly routes the agent: 'For the current level alone, call get_commodity_quote,' and tells it to 'Re-request a narrower from_date/to_date for daily rows' when aggregation kicks in. When-to-use, when-to-use-something-else, and the fallback action are all stated.

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