Primary Source Commodities

Primary-source commodities for agents — EIA inventories, FRED cash, CFTC COT, USDA fundies, USGS minerals, derived crack/crush via x402 USDC on Base.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Catalog.List: 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. Fr
  • Price.Latest: 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 proven
  • Inventory.Get: 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 fo

What data it sees

Do you need an account

No: the server works without sign-in

Primary-source commodities for agents — EIA inventories, FRED cash, CFTC COT, USDA fundies, USGS minerals, derived crack/crush via x402 USDC on Base.

How to connect

How to connect Primary Source Commodities to Claude

The server address to paste into Claude settings:

https://commodities-sh.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Primary Source Commodities to ChatGPT

The server address to paste into ChatGPT settings:

https://commodities-sh.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Primary Source Commodities to Cursor

The server address to paste into Cursor settings:

https://commodities-sh.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (11)

Raw names from tools/list. Only developers need these.

catalog.listList 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.
price.latestReturn 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.
inventory.getFetch 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.
positioning.getReturn 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.
spread.getCompute 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.
price.historyReturn 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.
fx.latestReturn the latest FX rate observation for a pair or FRED FX series. Useful alongside commodity prices when converting cash values across currencies.
fundamentals.getFetch a fundamentals document: USDA WASDE, crop progress, export sales, or USGS mineral summaries. Choose kind based on the ags/metals question you are answering.
snapshot.getBuild 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.
calendar.getList 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.
decision.getBuild 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.