io.github.OilpriceAPI/mcp-server
NPM · OILPRICEAPI-MCP · SCANNED AUG 3
Source-timestamped energy data and reviewed OilPriceAPI product facts for MCP clients.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to OilpriceAPI/mcp-server). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 14 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability83
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3634 tokens (~117/item across 31 items; 25 tools + 6 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · oilpriceapi-mcp
claude mcp add oilpriceapi-mcp-server -- npx -y oilpriceapi-mcp
codex mcp add oilpriceapi-mcp-server -- npx -y oilpriceapi-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"oilpriceapi-mcp-server": {
"type": "local",
"command": [
"npx",
"-y",
"oilpriceapi-mcp"
],
"enabled": true
}
}
} openclaw mcp add oilpriceapi-mcp-server --command npx --arg -y --arg oilpriceapi-mcp
mcp_servers:
oilpriceapi-mcp-server:
command: "npx"
args: ["-y", "oilpriceapi-mcp"] {
"mcpServers": {
"oilpriceapi-mcp-server": {
"command": "npx",
"args": [
"-y",
"oilpriceapi-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +55
- Install scripts: unverified → pass ▲ security
- Provenance: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- The attested source repository moved: OilpriceAPI/mcp-server security
- Schema quality: unverified → excellent ▲ functional
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Stability: unverified → 0.23 ▲ functional
- Licence: MIT functional
- 31 Jul 26 −26
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +28
- Tool coverage: unverified → 100 ▲ functional
- Schema quality: unverified → 100 ▲ functional
- 28 Jul 26 −28
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- 27 Jul 26 52
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- OilpriceAPI/mcp-server
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/OilpriceAPI/mcp-server/.github/workflows/publish.yml@refs/tags/v3.0.0
- Rekor log index:
- 2200872150
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:4a4fc3194461869e27cfcdb769a00b10250e8fe43ce5c02f9cb5ad54a278f806e1744ba723cb5faded2dd1260788dc64b489991337ebcf63fba7b42f2
- Discovery method:
- attestation_endpoint
Dependencies 95 packages
95 packages in the resolved dependency tree · 95 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
opa_compare_prices Compare Commodity Prices ~126
Compare current prices between 2-5 commodities side by side. Use when the user asks to compare commodities (e.g., 'Brent vs WTI', 'US gas vs EU gas'). Returns each commodity's price with 24h changes, plus the spread if comparing two same-currency commodities. Accepts natural language or codes.
| Name | Type | Req | Description |
|---|---|---|---|
| commodities | array | yes | List of 2-5 commodity names or codes to compare (e.g., ['brent', 'wti'] or ['NATURAL_GAS_USD', 'DUTCH_TTF_EUR']) |
No output schema declared.
No examples provided.
opa_get_alert_triggers Get Alert Triggers ~154
Get recent trigger activity for the user's price alerts — which alerts have fired, how many times, and when they last triggered. Use when the user asks whether any alerts have gone off or about recent alert activity. REQUIRES an API key (OILPRICEAPI_KEY). Note: the API tracks trigger history as per-alert counters (trigger_count / last_triggered_at) rather than a separate event feed, so this returns alerts that have triggered.
| Name | Type | Req | Description |
|---|---|---|---|
| since | string | — | Optional ISO 8601 date/time (e.g., '2026-06-01' or '2026-06-01T00:00:00Z'). Only alerts last triggered on or after this time are shown. |
No output schema declared.
No examples provided.
opa_get_diesel_by_state Get Diesel Price by State ~112
Get the current average retail diesel price for a US state. Use when the user asks about diesel prices in a specific state, diesel fuel costs by state, or state-level fuel prices. Accepts state names ('California') or 2-letter codes ('CA'). Returns the AAA-sourced state average diesel price. Covers all 50 states plus DC.
| Name | Type | Req | Description |
|---|---|---|---|
| state | string | yes | US state name or 2-letter code (e.g., 'California', 'CA', 'Texas', 'TX') |
No output schema declared.
No examples provided.
opa_get_drilling Get Drilling Activity ~84
Get a drilling activity snapshot: US, Canada, and international rig counts, frac spread count, well permits issued in the last 30 days (with a by-state breakdown), and DUC (drilled-uncompleted) well totals. Use when the user asks about drilling activity, rigs vs frac spreads, or upstream operations. Requires a paid plan with energy intelligence access.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
opa_get_forecasts Get Price Forecasts ~66
Get energy price forecasts from EIA Short-Term Energy Outlook (STEO) and other sources. Use when the user asks about price predictions, outlooks, or where oil/gas prices are heading. Returns forecast data for key commodities. Requires a paid plan with energy intelligence access.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
opa_get_fuel_surcharge Get Fuel Surcharge ~289
Get carrier-published fuel surcharge percentages for LTL freight and parcel carriers. Use when the user asks about current or historical fuel surcharge rates for carriers like ODFL, Saia, Estes, XPO, ABF, TForce, Averitt, Southeastern Freight, UPS, FedEx, or DHL. Auto mode treats UPS/FedEx/DHL as parcel carriers and other carrier slugs as LTL. Parcel history requires a service_level such as ground, air, or international_air_export.
| Name | Type | Req | Description |
|---|---|---|---|
| carrier | string | — | Optional carrier slug or common name. Examples: odfl, saia, estes, xpo, abf, tforce, averitt, southeastern-freight, ups, fedex, dhl. Omit to list current carriers. |
| history | boolean | — | When true, return historical surcharge rows instead of the latest rate. Parcel history requires service_level. |
| mode | string | — | Carrier mode: auto (UPS/FedEx/DHL route to parcel; others route to LTL), ltl, or parcel. Default: auto. |
| per_page | integer | — | History rows to return, from 1 to 100. Default: 12. |
| service_level | string | — | Parcel service level such as ground, air, international_air_export, international_air_import, or international_ground. Optional for latest; required for parcel history. |
No output schema declared.
No examples provided.
opa_get_futures Get Futures Price ~239
Get the latest front-month futures contract price for energy commodities. Use when the user asks about futures, forward prices, or contract prices. Supports crude oil (BZ/ice-brent = Brent, CL/ice-wti = WTI), ICE Gasoil (ice-gasoil), natural gas (natural-gas), European TTF gas (ttf-gas), LNG JKM (lng-jkm), EUA carbon (eua-carbon), and UK carbon (uk-carbon). For the full forward curve across all contract months, use opa_get_futures_curve instead.
| Name | Type | Req | Description |
|---|---|---|---|
| contract | string | — | Futures contract code or slug: BZ/ice-brent = Brent crude, CL/ice-wti = WTI crude, ice-gasoil (G/QS) = ICE Gasoil, natural-gas (NG) = Natural Gas, ttf-gas (TTF) = European TTF natural gas, lng-jkm (J… |
No output schema declared.
No examples provided.
opa_get_futures_curve Get Futures Curve ~243
Get the full futures forward curve showing prices across all contract months. Use when the user asks about the forward curve, contango/backwardation, or term structure. Supports crude oil (BZ/ice-brent = Brent, CL/ice-wti = WTI), ICE Gasoil (ice-gasoil), natural gas (natural-gas), European TTF gas (ttf-gas), LNG JKM (lng-jkm), EUA carbon (eua-carbon), and UK carbon (uk-carbon). Returns a table of contract months with settlement prices, plus market structure analysis.
| Name | Type | Req | Description |
|---|---|---|---|
| contract | string | — | Futures contract code or slug: BZ/ice-brent = Brent crude, CL/ice-wti = WTI crude, ice-gasoil (G/QS) = ICE Gasoil, natural-gas (NG) = Natural Gas, ttf-gas (TTF) = European TTF natural gas, lng-jkm (J… |
No output schema declared.
No examples provided.
opa_get_history Get Price History ~125
Get historical price data for a commodity over a time period. Use when the user asks about price trends, historical prices, or how a commodity has performed over time. Returns high, low, average, change, and data point count. Periods: day (24h), week (7d), month (30d), year (365d).
| Name | Type | Req | Description |
|---|---|---|---|
| commodity | string | yes | Commodity name or code (e.g., 'brent', 'WTI_USD') |
| period | string | — | Time period: day, week, month, or year (default: month) |
No output schema declared.
No examples provided.
opa_get_marine_fuels Get Marine Fuel Prices ~152
Get latest marine fuel (bunker) prices across major shipping ports. Use when the user asks about bunker fuel, marine fuel, VLSFO, MGO, IFO380, or shipping fuel costs. Can filter by port (e.g., SINGAPORE, ROTTERDAM, HOUSTON) and/or fuel type (VLSFO, MGO, IFO380). Returns a table of port prices.
| Name | Type | Req | Description |
|---|---|---|---|
| fuel_type | string | — | Filter by fuel type: VLSFO, MGO, or IFO380 |
| port | string | — | Filter by port name (e.g., 'SINGAPORE', 'ROTTERDAM', 'HOUSTON') |
No output schema declared.
No examples provided.
opa_get_market_brief Multi-Commodity Market Brief ~253
Get a multi-commodity market brief: latest spot prices, 24h changes, 1-month forecasts (for Brent/WTI/Natural Gas), and notable spreads — for several commodities in ONE call. Use when the user wants a market snapshot, morning brief, or an at-a-glance read across multiple commodities. Set `narrative: true` to also get a plain-English summary plus market context (active supply disruptions, key economic indicators). Accepts natural language ('brent', 'us gas') or API codes. REQUIRES an API key (OILPRICEAPI_KEY); counts as 1 request. Per-tier code limits apply (free: 3 codes). For a single price use opa_get_price; for ongoing recurring monitoring use opa_create_price_subscription.
| Name | Type | Req | Description |
|---|---|---|---|
| codes | array | yes | Commodity names or codes to include (e.g., ['brent', 'wti'] or ['BRENT_CRUDE_USD', 'NATURAL_GAS_USD']). Free tier allows up to 3. |
| narrative | boolean | — | If true, also include a plain-English summary + market context (disruptions, indicators). Default: false (structured data only). |
No output schema declared.
No examples provided.
opa_get_oil_inventories Get EIA Oil Inventories ~123
Get the latest EIA weekly petroleum inventory (stocks) data. Use when the user asks about oil inventories, crude stocks, weekly EIA stocks, inventory builds/draws, or product-level inventory levels. Returns the latest weekly figures; optionally a summary view or a breakdown by petroleum product. Requires a paid plan with energy intelligence access.
| Name | Type | Req | Description |
|---|---|---|---|
| view | string | — | Which view to return: latest (most recent weekly snapshot), summary (headline totals + week-over-week change), or by_product (breakdown per petroleum product). Default: latest. |
No output schema declared.
No examples provided.
opa_get_opec_production Get OPEC Production ~58
Get the latest OPEC oil production data. Use when the user asks about OPEC output, production quotas, supply cuts, or OPEC+ compliance. Returns country-level production figures. Requires a paid plan with energy intelligence access.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
opa_get_price Get Commodity Price ~125
Get the latest available, source-timestamped value for an energy commodity. Use when the user asks about a single commodity's latest price. Accepts natural language ('brent oil', 'diesel') or API codes ('WTI_USD'). Returns price, currency, available change fields, and timestamp. For multiple commodities at once, use opa_market_overview. For price trends, use opa_get_history.
| Name | Type | Req | Description |
|---|---|---|---|
| commodity | string | yes | Commodity name or code (e.g., 'brent oil', 'natural gas', 'WTI_USD', 'diesel') |
No output schema declared.
No examples provided.
opa_get_product_facts Get OilPriceAPI Product Facts ~83
Get the reviewed, versioned OilPriceAPI product contract for product scope, evaluation offer, pricing URL, freshness policy, catalog and entitlement wording, authentication, canonical first request, keyless demo, and data-rights boundaries. Use this instead of model memory or package prose for questions about OilPriceAPI itself. No API key or paid-data entitlement is required.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
opa_get_rig_counts Get US Rig Counts ~63
Get the latest US oil and gas rig count data (Baker Hughes). Use when the user asks about drilling activity, rig counts, or oil field operations. Returns oil rigs, gas rigs, total count, and week-over-week change. No parameters needed.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
opa_get_spread Get Refining & Trading Spreads ~120
Get refining and trading spreads: crack spreads (refining margin proxy), basis spreads (regional price differentials), and blending/transport margins. Use when the user asks about crack spreads, 3-2-1 crack, refining margins, basis differentials, or blend/transport margins. Requires a paid plan with energy intelligence access.
| Name | Type | Req | Description |
|---|---|---|---|
| type | string | yes | Spread type: crack (refining crack spread, e.g. 3-2-1), basis (regional/grade price differential), or margin (blending/transport margin). |
No output schema declared.
No examples provided.
opa_get_storage Get Oil Storage Levels ~94
Get oil storage and inventory levels for Cushing, Oklahoma (WTI delivery hub) and/or the US Strategic Petroleum Reserve (SPR). Use when the user asks about oil inventories, storage levels, Cushing stocks, or the SPR. Returns current inventory levels with changes.
| Name | Type | Req | Description |
|---|---|---|---|
| facility | string | — | Storage facility: cushing (WTI delivery hub), spr (Strategic Petroleum Reserve), or all (default: all) |
No output schema declared.
No examples provided.
opa_get_subscription_events Poll Subscription Events ~181
Poll for new subscription events — the recurring snapshots recorded by the user's watches. Use this to catch up on what changed since the last poll: pass the `since` cursor (the seq number) returned by the previous call to get only newer events. Events are POLLED, not pushed — there is no always-on connection, so call this periodically to stay current. Each event carries a price snapshot plus per-code deltas vs the prior snapshot. The returned `cursor` is what you pass as `since` next time. REQUIRES an API key (OILPRICEAPI_KEY). This poll does NOT count against the monthly request quota.
| Name | Type | Req | Description |
|---|---|---|---|
| since | integer | — | Cursor: only return events with a seq greater than this. Use the `cursor` from the previous call. Omit (or 0) to get the earliest available events. |
No output schema declared.
No examples provided.
opa_get_well_permits Get Well Permits ~145
Get the latest US oil & gas well drilling permit data. Use when the user asks about well permits, new drilling permits, permitting activity, or upstream permit trends. Returns the latest permits; optionally filtered/aggregated by state or by operator. Requires a paid plan with energy intelligence access.
| Name | Type | Req | Description |
|---|---|---|---|
| state | string | — | Optional US state name or 2-letter code to filter permits (e.g., 'Texas', 'TX'). Applies to the latest and by_state views. |
| view | string | — | Which view to return: latest (most recent permits), by_state (counts aggregated per state), or by_operator (counts aggregated per operator). Default: latest. |
No output schema declared.
No examples provided.
opa_get_well_production Get Well Production ~296
Get US oil & gas well production data (BETA coverage: monthly state-level production from EIA + selected state regulators, and well-level histories for selected states only — NOT complete US well-level production). Views: summary (national + top states), states (all reporting states, latest month), state (monthly history for one state), well (monthly history for one well by 14-digit API number), top_producers (highest-output wells, optionally by state), cycle_time (permit-to-production cycle time stats, optionally by state), cohorts (cycle times by spud quarter). Use when the user asks about oil/gas production volumes by state or well, top producing wells, or drill-to-production cycle times. Requires a paid plan with energy intelligence access.
| Name | Type | Req | Description |
|---|---|---|---|
| api_number | string | — | 14-digit API well number (e.g., '42329447130000'). Required for the well view. |
| state | string | — | US state name or 2-letter code (e.g., 'Texas', 'TX'). Required for the state view; optional filter for top_producers and cycle_time. |
| view | string | — | Which view to return: summary (national + top states), states (all reporting states), state (one state's monthly history — requires 'state'), well (one well's monthly history — requires 'api_number')… |
No output schema declared.
No examples provided.
opa_list_commodities List Available Commodities ~68
List all available commodities that can be queried for prices. Use when the user asks what commodities are available, what codes to use, or when another tool returns a 'commodity not recognized' error. Returns the full catalog fetched live from the API, grouped by category. No parameters needed.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
opa_list_price_alerts List Price Alerts ~73
List all PERSISTENT price alerts on the user's OilPriceAPI account. Use when the user asks what alerts they have set up, or to find an alert's id before deleting it. REQUIRES an API key (OILPRICEAPI_KEY) — alerts are account-scoped. No parameters needed.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
opa_list_subscriptions List Price Subscriptions ~78
List all PERSISTENT price subscriptions ('watches') on the user's OilPriceAPI account. Use when the user asks what they're monitoring, or to find a watch's id before deleting it. Each watch is a recurring, account-tied snapshot job. REQUIRES an API key (OILPRICEAPI_KEY). No parameters needed.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
opa_market_overview Energy Market Overview ~108
Get current prices for all tracked energy commodities in one call. Use when the user wants a broad market snapshot or asks about overall energy prices. Returns prices grouped by category (oil, gas, coal, refined products, metals, forex) with 24h changes. Supports filtering by category. For a single commodity, use opa_get_price instead.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Filter by commodity category (default: all). Options: oil, gas, coal, refined, metals, forex. |
No output schema declared.
No examples provided.