Skip to main content
Glama

Primary Source Commodities

Server Details

Primary-source commodities data for AI agents — EIA, FRED, CFTC, USDA, USGS via x402 on Base.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 11 of 11 tools scored. Lowest: 3.6/5.

Server CoherenceA
Disambiguation5/5

Each tool has a distinct purpose: calendar.get for release dates, catalog.list for instrument discovery, price.latest and price.history for prices, inventory.get for inventory, positioning.get for CFTC data, fundamentals.get for reports, fx.latest for FX rates, snapshot.get for sector overview, spread.get for derived spreads, and decision.get for deterministic decisions. No overlapping functionality.

Naming Consistency5/5

All tools follow a consistent noun.verb pattern (e.g., calendar.get, catalog.list, price.latest, snapshot.get). The naming is predictable and makes the tool's purpose clear at a glance.

Tool Count5/5

With 11 tools, the server is well-scoped for a commodity data platform. Each tool covers a distinct aspect (calendar, catalog, prices, inventory, positioning, fundamentals, FX, snapshots, spreads, decisions) without unnecessary bloat.

Completeness4/5

The tool set covers core commodity data needs: price discovery (catalog, latest, history), fundamentals (WASDE, etc.), inventory (EIA), positioning (CFTC), spreads, FX conversion, and summaries. Minor gaps include limited price history (500 points) and no explicit support for options or shipping data, but the overall surface is strong.

Available Tools

11 tools
calendar.getRelease CalendarA
Read-onlyIdempotent
Inspect

List EIA, USDA, and CFTC release calendar entries with cadence, typical Eastern time, and next-hint notes. Free discovery tool — call before scheduling agents around inventory or WASDE prints.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
eventsYesUpcoming / recurring release events
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the tool's safety profile is clear. The description adds context by noting it is a 'free discovery tool' with 'next-hint notes,' but does not elaborate on any additional behavioral traits beyond what annotations provide.

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?

The description is two sentences, front-loaded with key agencies and data types, and no wasted words. It efficiently conveys the tool's function and value without redundancy.

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?

Given the existence of an output schema (not shown but referenced), the description appropriately describes the output contents (cadence, Eastern time, next-hint notes) and the tool's free nature. For a parameterless listing tool, this is fully complete and aligned with the schema.

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?

With zero parameters, schema coverage is 100%, so baseline is 4. The description does not need to explain parameters and correctly omits them, focusing instead on the tool's output and usage context.

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?

The description clearly states the tool lists release calendar entries from specific agencies (EIA, USDA, CFTC) and details the information provided (cadence, typical Eastern time, next-hint notes). It differentiates itself from sibling tools like inventory.get or fundamentals.get by focusing on calendar timing, making the purpose highly specific and actionable.

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?

The description advises to call before scheduling agents around inventory or WASDE prints, providing clear context when to use. It does not explicitly mention when not to use or compare to alternatives, but the guidance is direct and relevant for the intended use case.

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

catalog.listList InstrumentsA
Read-onlyIdempotent
Inspect

List every commodity instrument in the catalog with sector, unit, primary source, and freshness metadata. Call this first to discover valid codes before price.latest or inventory.get. Free discovery tool — no payment required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
instrumentsYesInstrument registry rows
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. Description adds extra transparency about being free and including freshness metadata. No contradiction.

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 sentences: first states purpose, second gives usage guidance. Front-loaded, no fluff.

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?

Tool has no parameters, output schema exists. Description covers purpose, output fields, usage context, and hints. Fully adequate for a zero-parameter discovery tool.

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?

Input schema has no parameters (0 params, 100% coverage). Description adds value by listing output fields (sector, unit, primary source, freshness), beyond schema. Baseline 4, elevated for helpful output info.

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?

Description clearly states 'List every commodity instrument in the catalog' with specific attributes (sector, unit, primary source, freshness). Distinguishes from siblings by advising to 'Call this first to discover valid codes before price.latest or inventory.get.'

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?

Explicit guidance on when to use: 'Call this first...before price.latest or inventory.get.' Also mentions it's a free discovery tool with no payment required, adding context.

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

decision.getDecision PackA
Read-onlyIdempotent
Inspect

Build a deterministic decision pack for energy, metals, ags, or all sectors. Returns method, signals with direction/rationale, an embedded snapshot, and a disclaimer — no ML model, rule-based only.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectorYesSector for the decision pack. Use all to bundle every sector.

Output Schema

ParametersJSON Schema
NameRequiredDescription
methodYesDeterministic method identifier
sectorNoPresent for single-sector packs
sectorsNoPresent when sector=all
signalsNoDirectional signals with rationale
snapshotNo
disclaimerNoNon-advice / methodology disclaimer
generated_atYesISO timestamp when the pack was generated
model_versionNoAlways null for rule-based packs; reserved field
Behavior4/5

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

Annotations already declare read-only and idempotent, and the description adds key behavioral context: 'no ML model, rule-based only' and lists return fields. No contradictions.

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?

A single sentence that efficiently covers purpose, scope, returns, and a key attribute. No wasted words.

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?

Given the simple input (1 param with enum) and presence of output schema, the description fully covers necessary context. No gaps identified.

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% and the description effectively repeats the enum values. No additional meaning is added beyond what the schema provides, so baseline score of 3 is appropriate.

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?

The description clearly states it builds a deterministic decision pack for specific sectors (energy, metals, ags, all), mentions return components, and distinguishes itself from sibling data retrieval tools by being a rule-based pack generation tool.

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?

While the purpose is clear, the description does not provide explicit guidance on when to use this tool versus alternatives or when not to use it. Usage is implied by the tool's nature.

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

fundamentals.getUSDA/USGS FundamentalsA
Read-onlyIdempotent
Inspect

Fetch a fundamentals document: USDA WASDE, crop progress, export sales, or USGS mineral summaries. Choose kind based on the ags/metals question you are answering.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesFundamentals report kind. Example: wasde for World Agricultural Supply and Demand Estimates.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesDocument id
kindYesReport kind echoed from the request
as_ofYesReport as-of date
payloadYesKind-specific payload (quality, note, license_tag, freshness_class, and report fields)
observed_atYesISO timestamp when retrieved
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is well-covered. The description adds the list of document kinds but does not disclose additional behavior such as data freshness, pagination, or authorization needs. With strong annotations, the description adds moderate value.

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?

The description is two sentences, front-loaded with the action and resource, and contains no redundant words. Every sentence is useful and earns its place.

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 one parameter, full schema coverage, an output schema, and explicit annotations, the description provides all needed context. It explains what the tool does and how to select the kind, making it fully complete for correct invocation.

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% and the 'kind' parameter already has a detailed enum description in the schema. The description adds the context 'based on the ags/metals question' but does not significantly augment what the schema provides. Baseline of 3 is appropriate.

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?

The description clearly states the verb 'Fetch' and the resource 'fundamentals document', naming specific document types (WASDE, crop progress, etc.). It distinguishes from siblings by listing unique document types not found in other tools.

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?

The description gives guidance on when to use the tool ('based on the ags/metals question'), but does not explicitly say when not to use it or mention alternatives. The sibling tools are different enough that context is clear, but no exclusions are stated.

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

fx.latestLatest FX RateA
Read-onlyIdempotent
Inspect

Return the latest FX rate observation for a pair or FRED FX series. Useful alongside commodity prices when converting cash values across currencies.

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYesFX pair or series id. Example: EURUSD, USDCNY, DTWEXBGS.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoStable observation id
nameYesHuman-readable instrument name
unitYesUnit of measure
as_ofYesAs-of date for the observation
valueYesObserved numeric value
inputsNoInput series ids when derived
sourceYesPrimary source provenance
derivedYesTrue when value is derived
formulaNoDerivation formula when derived
qualityYesData quality label
raw_hashNoHash of raw source payload
series_idYesUnderlying series id
instrumentYesInstrument code, e.g. CL
provenanceYesRetrieval / cache provenance
license_tagYesLicense / redistribution tag
observed_atYesISO timestamp when observed
freshness_classYesFreshness class for the series
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description adds limited behavioral context beyond stating it returns an observation. It does not contradict annotations and provides minor additional context about the resource type.

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 sentences, front-heavy with the core function, no unnecessary words. Every sentence adds value.

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 simple one-parameter tool with annotations and an output schema, the description is largely sufficient. It covers the main purpose and a use case, though it could clarify what 'latest' means (e.g., most recent available observation) without relying solely on the output schema.

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% for the single parameter 'pair', so the description does not need to add parameter semantics. The baseline of 3 applies as the description adds no extra meaning beyond the 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 states it returns the latest FX rate for a pair or FRED FX series, with a specific verb and resource. It mentions a use case alongside commodity prices, but does not explicitly differentiate from sibling tools like price.latest.

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 description suggests usage for converting cash values across currencies, but lacks explicit guidance on when to use this tool versus alternatives (e.g., price.latest) or when not to use it. No exclusions or alternatives are mentioned.

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

inventory.getEIA InventoryA
Read-onlyIdempotent
Inspect

Fetch EIA weekly petroleum inventory levels. Omit series to list all latest inventory points, or pass a series key to get week-over-week change, vs-5y deviation, and a surprise label for that series.

ParametersJSON Schema
NameRequiredDescriptionDefault
seriesNoOptional EIA inventory series key. Omit to return all latest inventory rows. Example: crude_stocks.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNoAll latest inventory points when series is omitted
vs_5yNoDeviation vs five-year average when series is provided
latestNoLatest point when a series key is provided
wow_changeNoWeek-over-week change when series is provided
surprise_labelNoSurprise classification when series is provided
Behavior4/5

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

Annotations already declare read-only and idempotent. Description adds that passing a series yields computed fields (change, deviation, surprise), which is beyond annotations. No contradiction.

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 sentences, front-loaded with core function, no filler. Every sentence adds value.

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?

Covers both usage modes adequately. Has output schema, so return values are handled. Lacks mention of errors or data freshness, but still complete for a simple tool.

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?

Single parameter 'series' has schema description. Description adds meaning by explaining behavior when omitted vs provided, and gives an example value, improving beyond schema alone.

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?

Description clearly states it fetches EIA weekly petroleum inventory levels and distinguishes two modes: omit series for all latest points, pass series for week-over-week change, vs-5y deviation, and surprise label. Specific verb and resource, distinguishable from siblings.

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?

Provides clear guidance on when to omit vs pass the series parameter. No explicit when-not-to-use or alternatives, but context is sufficient for an agent.

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

positioning.getCOT PositioningA
Read-onlyIdempotent
Inspect

Return the latest CFTC Commitments of Traders managed-money positioning for an instrument code. Includes long, short, net, and week-over-week net change with source URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesInstrument code from catalog.list. Example: CL, NG, GC, ZC.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesCOT row id
mm_netYesManaged-money net contracts
mm_longYesManaged-money long contracts
mm_shortYesManaged-money short contracts
instrumentYesInstrument code
source_urlYesCFTC source URL
observed_atYesISO timestamp when observed
report_dateYesCFTC report date
mm_net_changeYesWeek-over-week change in managed-money net
commodity_nameYesCFTC commodity name
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that it returns 'latest' data and includes source URL, providing useful context beyond annotations. No contradiction.

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 sentences, no filler, front-loaded with the core purpose. Every word adds value.

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?

Output schema exists, so return values are documented elsewhere. Tool is simple (one parameter, read-only, idempotent). Description covers all needed usage context.

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 100% for the single parameter 'code'. Description adds example values (CL, NG, GC, ZC) and source (catalog.list), which improves usability beyond the schema's basic description.

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?

Description clearly states the verb (return), resource (latest CFTC COT managed-money positioning for an instrument code), and specific data included (long, short, net, week-over-week net change with source URL). Distinguishes from siblings as a unique data retrieval tool.

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?

Description implies use when needing CFTC positioning data. No explicit when-not or alternatives, but context makes purpose clear. Could benefit from mentioning that this tool is for managed-money only, not all traders.

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

price.historyPrice HistoryA
Read-onlyIdempotent
Inspect

Return historical observations for an instrument code (up to 500 points). Use after price.latest when you need a short time series for the same code.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesInstrument code from catalog.list. Example: CL, GC, ZC.
limitNoNumber of historical points to return. Max 500, default 60.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesHistorical observations, newest first or as stored
countYesNumber of points returned
series_idYesUnderlying series id
instrumentYesInstrument code
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, making the safety profile clear. Description adds the 500-point limit as behavioral info, but otherwise does not disclose additional behavior (e.g., ordering, time range).

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 sentences, front-loaded with purpose, then usage guidance. Every word contributes meaning, no 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?

Simple tool with output schema; description covers core purpose and usage context. Lacks explanation of return format or error conditions, but output schema likely fills that gap.

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% with both parameters described in detail. Description repeats the limit info but does not add new semantics beyond the schema. Baseline of 3 is appropriate.

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?

Description clearly states 'Return historical observations for an instrument code (up to 500 points).' Verb is 'return', resource is 'historical observations', and scope is specified. Differentiates from sibling tools like 'price.latest' which returns a single point.

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?

Explicitly says 'Use after price.latest when you need a short time series for the same code.' Provides sequential context and a condition for use. Lacks explicit 'when not to use' but inference is clear from the sibling reference.

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

price.latestLatest PriceA
Read-onlyIdempotent
Inspect

Return the latest cash/fundies observation for one instrument code. Use catalog.list to discover codes such as CL, GC, or ZC. Response follows the shared observation contract with provenance and license tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesInstrument code from catalog.list. Example: CL, GC, ZC.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoStable observation id
nameYesHuman-readable instrument name
unitYesUnit of measure
as_ofYesAs-of date for the observation
valueYesObserved numeric value
inputsNoInput series ids when derived
sourceYesPrimary source provenance
derivedYesTrue when value is derived
formulaNoDerivation formula when derived
qualityYesData quality label
raw_hashNoHash of raw source payload
series_idYesUnderlying series id
instrumentYesInstrument code, e.g. CL
provenanceYesRetrieval / cache provenance
license_tagYesLicense / redistribution tag
observed_atYesISO timestamp when observed
freshness_classYesFreshness class for the series
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. Description adds that response follows a shared observation contract with provenance and license tags, providing useful context beyond annotations.

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 concise sentences, each with distinct purpose: stating functionality and guiding code discovery. No extraneous 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?

Tool is simple with one parameter, has output schema (not shown), and description covers all essential aspects: purpose, code sourcing, and response contract.

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 has 100% coverage of the single parameter. Description adds value by explaining the code comes from catalog.list and provides examples (CL, GC, ZC), aiding selection.

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?

Description clearly states it returns the latest observation for one instrument code, differentiating it from price.history (returns history) and catalog.list (discovers codes).

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?

Explicitly advises to use catalog.list to discover instrument codes, providing clear context for when to use this tool versus its sibling.

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

snapshot.getSector SnapshotA
Read-onlyIdempotent
Inspect

Build a sector snapshot bundling prices, inventories, spreads, and related fundies for energy, metals, ags, or all sectors. Prefer this over calling many single-observation tools when you need a full sector picture.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectorYesSector to snapshot. Use all to receive energy, metals, and ags together.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cotNoCOT rows when relevant
as_ofYesSnapshot as-of timestamp
crushNo
wasdeNoWASDE payload when relevant
pricesNoLatest prices for the sector
sectorNoPresent for single-sector responses
sectorsNoPresent when sector=all
crack_321No
inventoryNoInventory rows when relevant
export_salesNoExport sales when relevant
crop_progressNoCrop progress when relevant
freshness_noteNoFreshness summary
Behavior3/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds that it bundles multiple data types, which is useful but does not disclose other behavioral traits (e.g., latency, caching). The additional context is reasonable given the strong annotations.

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 sentences with no wasted words. The first sentence defines the tool, the second provides usage guidance. Information is front-loaded and efficiently delivered.

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?

Given the presence of an output schema, annotations fully covering safety, a single well-documented parameter, and sibling tools listed, the description provides sufficient context for an agent to select and invoke this tool correctly.

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%, with the 'sector' parameter fully described in the schema. The description repeats the schema info (sectors, use 'all'), adding no new semantics beyond what the schema already provides.

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?

The description clearly states the tool builds a sector snapshot bundling multiple data types (prices, inventories, etc.) for energy, metals, ags, or all. It also explicitly differentiates from single-observation siblings, making the purpose distinct.

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?

The description advises preferring this tool over multiple single-observation calls when needing a full sector picture. It provides clear context for when to use, though it does not explicitly state when not to use.

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

spread.getDerived SpreadA
Read-onlyIdempotent
Inspect

Compute a derived spread observation: 3-2-1 crack, soybean crush, WTI-Brent basis, or calendar (calendar requires licensed curve data and may return available=false). Prefer crack/crush/basis for live derived values with formula and inputs.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoOptional root symbol for calendar spreads. Example: CL. Ignored for crack/crush/basis.
typeYesSpread type to compute. Example: crack for 3-2-1 gasoline/distillate crack.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoStable observation id
nameNoHuman-readable instrument name
noteNoExplanation when unavailable or partially degraded
rootNoCalendar root when type=calendar
unitNoUnit of measure
as_ofNoAs-of date for the observation
valueNoObserved numeric value
inputsNoInput series ids when derived
sourceNoPrimary source provenance
derivedNoTrue when value is derived
formulaNoDerivation formula when derived
qualityNoData quality label
raw_hashNoHash of raw source payload
availableNoFalse when the spread cannot be computed
series_idNoUnderlying series id
instrumentNoInstrument code, e.g. CL
provenanceNoRetrieval / cache provenance
license_tagNoLicense / redistribution tag
observed_atNoISO timestamp when observed
legs_qualityNoPer-leg quality when inputs are mixed
freshness_classNoFreshness class for the series
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description's addition of 'calendar may return available=false' adds some behavioral context beyond the annotations.

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 sentences front-load the key purpose and limitation, with no redundant or filler text.

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?

The description is complete for a compute tool with two parameters and an output schema, covering types, licensing constraints, and usage preference.

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?

Input schema covers both parameters with full descriptions, so the description does not add parameter-level detail. The tool's overall purpose is clear, but parameter semantics are handled by the schema.

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?

The description uses a specific verb 'compute' and resource 'derived spread observation', lists concrete spread types (crack, crush, basis, calendar), and distinguishes from sibling tools by mentioning calendar's license requirement and recommending alternatives.

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?

The description provides clear context on when to use each spread type: calendar requires licensed data and may return available=false, while recommending crack/crush/basis for live values. It lacks explicit when-not-to-use alternatives but gives actionable guidance.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources