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.
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.
Tool Definition Quality
Average 4.2/5 across 11 of 11 tools scored. Lowest: 3.6/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.
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.
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.
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 toolscalendar.getRelease CalendarARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| events | Yes | Upcoming / recurring release events |
Tool Definition Quality
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.
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.
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.
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.
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.
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 InstrumentsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| instruments | Yes | Instrument registry rows |
Tool Definition Quality
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.
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.
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.
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.
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.
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 PackARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sector | Yes | Sector for the decision pack. Use all to bundle every sector. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | Deterministic method identifier |
| sector | No | Present for single-sector packs |
| sectors | No | Present when sector=all |
| signals | No | Directional signals with rationale |
| snapshot | No | |
| disclaimer | No | Non-advice / methodology disclaimer |
| generated_at | Yes | ISO timestamp when the pack was generated |
| model_version | No | Always null for rule-based packs; reserved field |
Tool Definition Quality
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.
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.
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.
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.
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.
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 FundamentalsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | Fundamentals report kind. Example: wasde for World Agricultural Supply and Demand Estimates. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Document id |
| kind | Yes | Report kind echoed from the request |
| as_of | Yes | Report as-of date |
| payload | Yes | Kind-specific payload (quality, note, license_tag, freshness_class, and report fields) |
| observed_at | Yes | ISO timestamp when retrieved |
Tool Definition Quality
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.
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.
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.
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.
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.
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 RateARead-onlyIdempotentInspect
Return the latest FX rate observation for a pair or FRED FX series. Useful alongside commodity prices when converting cash values across currencies.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | FX pair or series id. Example: EURUSD, USDCNY, DTWEXBGS. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Stable observation id |
| name | Yes | Human-readable instrument name |
| unit | Yes | Unit of measure |
| as_of | Yes | As-of date for the observation |
| value | Yes | Observed numeric value |
| inputs | No | Input series ids when derived |
| source | Yes | Primary source provenance |
| derived | Yes | True when value is derived |
| formula | No | Derivation formula when derived |
| quality | Yes | Data quality label |
| raw_hash | No | Hash of raw source payload |
| series_id | Yes | Underlying series id |
| instrument | Yes | Instrument code, e.g. CL |
| provenance | Yes | Retrieval / cache provenance |
| license_tag | Yes | License / redistribution tag |
| observed_at | Yes | ISO timestamp when observed |
| freshness_class | Yes | Freshness class for the series |
Tool Definition Quality
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.
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.
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.
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.
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.
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 InventoryARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| series | No | Optional EIA inventory series key. Omit to return all latest inventory rows. Example: crude_stocks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | All latest inventory points when series is omitted |
| vs_5y | No | Deviation vs five-year average when series is provided |
| latest | No | Latest point when a series key is provided |
| wow_change | No | Week-over-week change when series is provided |
| surprise_label | No | Surprise classification when series is provided |
Tool Definition Quality
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.
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.
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.
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.
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.
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 PositioningARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Instrument code from catalog.list. Example: CL, NG, GC, ZC. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | COT row id |
| mm_net | Yes | Managed-money net contracts |
| mm_long | Yes | Managed-money long contracts |
| mm_short | Yes | Managed-money short contracts |
| instrument | Yes | Instrument code |
| source_url | Yes | CFTC source URL |
| observed_at | Yes | ISO timestamp when observed |
| report_date | Yes | CFTC report date |
| mm_net_change | Yes | Week-over-week change in managed-money net |
| commodity_name | Yes | CFTC commodity name |
Tool Definition Quality
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.
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.
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.
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.
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.
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 HistoryARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Instrument code from catalog.list. Example: CL, GC, ZC. | |
| limit | No | Number of historical points to return. Max 500, default 60. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | Historical observations, newest first or as stored |
| count | Yes | Number of points returned |
| series_id | Yes | Underlying series id |
| instrument | Yes | Instrument code |
Tool Definition Quality
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.
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.
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.
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.
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.
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 PriceARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Instrument code from catalog.list. Example: CL, GC, ZC. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Stable observation id |
| name | Yes | Human-readable instrument name |
| unit | Yes | Unit of measure |
| as_of | Yes | As-of date for the observation |
| value | Yes | Observed numeric value |
| inputs | No | Input series ids when derived |
| source | Yes | Primary source provenance |
| derived | Yes | True when value is derived |
| formula | No | Derivation formula when derived |
| quality | Yes | Data quality label |
| raw_hash | No | Hash of raw source payload |
| series_id | Yes | Underlying series id |
| instrument | Yes | Instrument code, e.g. CL |
| provenance | Yes | Retrieval / cache provenance |
| license_tag | Yes | License / redistribution tag |
| observed_at | Yes | ISO timestamp when observed |
| freshness_class | Yes | Freshness class for the series |
Tool Definition Quality
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.
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.
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.
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.
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.
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 SnapshotARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sector | Yes | Sector to snapshot. Use all to receive energy, metals, and ags together. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cot | No | COT rows when relevant |
| as_of | Yes | Snapshot as-of timestamp |
| crush | No | |
| wasde | No | WASDE payload when relevant |
| prices | No | Latest prices for the sector |
| sector | No | Present for single-sector responses |
| sectors | No | Present when sector=all |
| crack_321 | No | |
| inventory | No | Inventory rows when relevant |
| export_sales | No | Export sales when relevant |
| crop_progress | No | Crop progress when relevant |
| freshness_note | No | Freshness summary |
Tool Definition Quality
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.
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.
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.
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.
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.
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 SpreadARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Optional root symbol for calendar spreads. Example: CL. Ignored for crack/crush/basis. | |
| type | Yes | Spread type to compute. Example: crack for 3-2-1 gasoline/distillate crack. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Stable observation id |
| name | No | Human-readable instrument name |
| note | No | Explanation when unavailable or partially degraded |
| root | No | Calendar root when type=calendar |
| unit | No | Unit of measure |
| as_of | No | As-of date for the observation |
| value | No | Observed numeric value |
| inputs | No | Input series ids when derived |
| source | No | Primary source provenance |
| derived | No | True when value is derived |
| formula | No | Derivation formula when derived |
| quality | No | Data quality label |
| raw_hash | No | Hash of raw source payload |
| available | No | False when the spread cannot be computed |
| series_id | No | Underlying series id |
| instrument | No | Instrument code, e.g. CL |
| provenance | No | Retrieval / cache provenance |
| license_tag | No | License / redistribution tag |
| observed_at | No | ISO timestamp when observed |
| legs_quality | No | Per-leg quality when inputs are mixed |
| freshness_class | No | Freshness class for the series |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityBmaintenanceUSDA nutrition API optimized for AI agents. x402 + USDC on Base41MIT
- Flicense-qualityDmaintenance56 pay-per-call MCP endpoints for AI agents. Market signals, macro economics, crypto/DeFi, geopolitical intelligence, SEC filings, GitHub velocity, sanctions screening. USDC on Base Mainnet via x402.
- Alicense-qualityCmaintenanceProvides real-time crypto market data for AI agents, including derivatives, liquidations, options, macro, and market regime detection, with pay-per-call via x402 micropayments on Base.58MIT
- AlicenseBqualityBmaintenance38 AI data tools for Claude and any MCP-compatible agent — crypto, DeFi, equities, commodities, energy, real estate, government intelligence, security audits, and more.45MIT