Skip to main content
Glama

CFTC Futures Positioning (COT)

GetCftcPositioning
Read-only

Retrieves Commitments of Traders positioning data for a futures contract, showing commercial and non-commercial contract counts over time from legacy futures-only COT reports.

Instructions

Get Commitments of Traders (COT) positioning data for a specific futures contract. Shows commercial and non-commercial positions over time. Values are contract counts from the legacy futures-only COT report (positions as of each Tuesday, published Friday). Use SearchCftcMarkets to find available market codes.

Input Schema

NameRequiredDescriptionDefault
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
startDateNoStart date in YYYY-MM-DD format (defaults to 1 year ago)
marketCodeYesCFTC market code, common contract name, or standard futures symbol (e.g., 067651, WTI, ES, Gold futures)
maxResultsNoMaximum number of reports to return (default: 52, max: 500). When the range holds more reports the newest are kept; rows are always listed oldest to newest.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, so safety is covered. The description adds meaningful data semantics beyond that: values are contract counts, sourced from the legacy futures-only COT report, with positions as of Tuesday and published Friday. This reporting-lag context is valuable for interpreting results, though it says nothing about pagination or rate limits.

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?

Four short sentences, each carrying distinct information (what it returns, what the values mean, source/cadence, and where to get market codes). The core purpose is front-loaded and there is no filler.

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 read-only tool with full schema coverage and no output schema, the description supplies the interpretive context (units, report source, publication cadence) an agent needs. The main omission is routing versus GetLatestCftcPositioning, which matters given the near-identical sibling name.

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%, so all four parameters (marketCode, startDate, endDate, maxResults) are already documented, including defaults, formats, and the newest-kept behavior. The description adds nothing parameter-specific, so the baseline 3 applies.

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 states a specific verb and resource: 'Get Commitments of Traders (COT) positioning data for a specific futures contract', and clarifies the value semantics (contract counts, commercial/non-commercial positions). However, it does not distinguish itself from the sibling GetLatestCftcPositioning, which an agent could easily confuse with this historical-range 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?

It gives one concrete prerequisite: 'Use SearchCftcMarkets to find available market codes', which is genuinely helpful. But it offers no guidance on when to choose this tool over GetLatestCftcPositioning or what happens when the requested market is unavailable.

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