oilpriceapi-mcp 2.0.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  ## Features
9
9
 
10
- - **14 Tools** — spot prices, history, futures, marine fuels, rig counts, diesel by state, storage, OPEC production, forecasts
10
+ - **21 Tools** — 17 read tools (spot prices, history, futures, marine fuels, rig counts, diesel by state, storage, OPEC production, forecasts, EIA oil inventories, well permits, refining spreads) plus 4 authenticated price-alert tools (create/list/delete persistent alerts + trigger activity)
11
11
  - **5 Resources** — subscribable price snapshots for Brent, WTI, Natural Gas, Diesel, and all commodities
12
12
  - **6 Prompts** — pre-built analyst templates (daily briefing, spread analysis, gas markets, commodity report, diesel costs, supply analysis)
13
13
  - **Natural language** — ask for "brent oil" or "natural gas", not codes
@@ -130,22 +130,36 @@ npm install -g oilpriceapi-mcp
130
130
 
131
131
  All tools are prefixed with `opa_` to avoid name collisions when multiple MCP servers are loaded.
132
132
 
133
- | Tool | Description |
134
- | ------------------------- | ---------------------------------------------------------------- |
135
- | `opa_get_price` | Current spot price for a single commodity |
136
- | `opa_market_overview` | All commodity prices in one call, grouped by category |
137
- | `opa_compare_prices` | Side-by-side comparison of 2-5 commodities with spread |
138
- | `opa_list_commodities` | Full commodity catalog (fetched live from API) |
139
- | `opa_get_history` | Historical prices with high/low/avg/change (day/week/month/year) |
140
- | `opa_get_futures` | Front-month futures price (Brent BZ or WTI CL) |
141
- | `opa_get_futures_curve` | Full forward curve with contango/backwardation analysis |
142
- | `opa_get_marine_fuels` | Bunker fuel prices by port and fuel type (VLSFO/MGO/IFO380) |
143
- | `opa_get_rig_counts` | Baker Hughes US rig count with week-over-week change |
144
- | `opa_get_drilling` | Drilling intelligence: wells, permits, completions by region |
145
- | `opa_get_diesel_by_state` | AAA retail diesel price for any US state (50 states + DC) |
146
- | `opa_get_storage` | Cushing and SPR oil storage/inventory levels |
147
- | `opa_get_opec_production` | OPEC country-level production data |
148
- | `opa_get_forecasts` | EIA STEO energy price forecasts |
133
+ | Tool | Description |
134
+ | ------------------------- | ----------------------------------------------------------------- |
135
+ | `opa_get_price` | Current spot price for a single commodity |
136
+ | `opa_market_overview` | All commodity prices in one call, grouped by category |
137
+ | `opa_compare_prices` | Side-by-side comparison of 2-5 commodities with spread |
138
+ | `opa_list_commodities` | Full commodity catalog (fetched live from API) |
139
+ | `opa_get_history` | Historical prices with high/low/avg/change (day/week/month/year) |
140
+ | `opa_get_futures` | Front-month futures (Brent BZ, WTI CL, ICE Gasoil, TTF, JKM, EUA) |
141
+ | `opa_get_futures_curve` | Full forward curve with contango/backwardation analysis |
142
+ | `opa_get_marine_fuels` | Bunker fuel prices by port and fuel type (VLSFO/MGO/IFO380) |
143
+ | `opa_get_rig_counts` | Baker Hughes US rig count with week-over-week change |
144
+ | `opa_get_drilling` | Drilling intelligence: wells, permits, completions by region |
145
+ | `opa_get_diesel_by_state` | AAA retail diesel price for any US state (50 states + DC) |
146
+ | `opa_get_storage` | Cushing and SPR oil storage/inventory levels |
147
+ | `opa_get_opec_production` | OPEC country-level production data |
148
+ | `opa_get_forecasts` | EIA STEO energy price forecasts |
149
+ | `opa_get_oil_inventories` | EIA weekly petroleum stocks (latest/summary/by_product) |
150
+ | `opa_get_well_permits` | US well drilling permits (latest/by_state/by_operator) |
151
+ | `opa_get_spread` | Refining/trading spreads (crack, basis, margin) |
152
+
153
+ ### Price Alert Tools (authenticated)
154
+
155
+ These tools create and manage **persistent** price alerts tied to your OilPriceAPI account, so they **require an API key** (`OILPRICEAPI_KEY`). The alert engine continuously watches live prices and notifies you (by email, plus webhook if you provide one) when a condition is met.
156
+
157
+ | Tool | Description |
158
+ | ------------------------ | ---------------------------------------------------------------------------- |
159
+ | `opa_create_price_alert` | Create a persistent alert (commodity, operator, threshold, optional webhook) |
160
+ | `opa_list_price_alerts` | List all alerts on the account |
161
+ | `opa_delete_price_alert` | Permanently delete an alert by id |
162
+ | `opa_get_alert_triggers` | Recent alert trigger activity (optionally filtered by `since`) |
149
163
 
150
164
  ## Example Questions
151
165
 
@@ -160,6 +174,10 @@ All tools are prefixed with `opa_` to avoid name collisions when multiple MCP se
160
174
  "What are OPEC production levels?"
161
175
  "What are bunker fuel prices in Singapore?"
162
176
  "Show me Cushing storage levels"
177
+ "What were the latest EIA crude oil inventories?"
178
+ "How many well permits were issued in Texas?"
179
+ "What's the current 3-2-1 crack spread?"
180
+ "Show me the ICE Gasoil futures curve"
163
181
  ```
164
182
 
165
183
  ## Resources
package/build/index.d.ts CHANGED
@@ -1,15 +1,24 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * OilPriceAPI MCP Server v2.0.0
3
+ * OilPriceAPI MCP Server v2.2.1
4
4
  *
5
5
  * The energy commodity MCP server. Real-time oil, gas, and commodity prices
6
6
  * for Claude, Cursor, VS Code, and any MCP-compatible client.
7
7
  *
8
+ * 17 read-only tools (opa_ prefixed): prices, history, futures, marine fuels,
9
+ * rig counts, drilling, diesel-by-state, storage, OPEC production, forecasts,
10
+ * EIA oil inventories, well permits, refining spreads.
11
+ *
12
+ * 4 authenticated price-alert tools (opa_*_price_alert / opa_get_alert_triggers):
13
+ * create/list/delete persistent price alerts tied to the user's account and read
14
+ * recent trigger activity. These wrap the existing /v1/alerts engine and REQUIRE
15
+ * an API key (OILPRICEAPI_KEY).
16
+ *
8
17
  * @see https://oilpriceapi.com
9
18
  * @see https://modelcontextprotocol.io
10
19
  */
11
20
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
12
- export declare const USER_AGENT = "oilpriceapi-mcp/2.0.0";
21
+ export declare const USER_AGENT = "oilpriceapi-mcp/2.2.1";
13
22
  export declare const COMMODITY_ALIASES: Record<string, string>;
14
23
  export declare const COMMODITY_INFO: Record<string, {
15
24
  name: string;
@@ -29,6 +38,9 @@ export interface ApiResponse<T> {
29
38
  status: string;
30
39
  data: T;
31
40
  }
41
+ export declare const FUTURES_CONTRACTS: readonly ["BZ", "CL", "ice-brent", "ice-wti", "G", "QS", "ice-gasoil", "NG", "natural-gas", "TTF", "ttf-gas", "JKM", "lng-jkm", "EUA", "eua-carbon", "UKA", "uk-carbon"];
42
+ export declare const FUTURES_CONTRACT_SLUGS: Record<(typeof FUTURES_CONTRACTS)[number], string>;
43
+ export declare const FUTURES_CONTRACT_NAMES: Record<(typeof FUTURES_CONTRACTS)[number], string>;
32
44
  /**
33
45
  * Resolve a natural language commodity name to its API code.
34
46
  * Returns null if no match found — callers should return an actionable error.
@@ -42,6 +54,21 @@ export declare function formatPrice(data: PriceData): string;
42
54
  * Make API request to OilPriceAPI with retry and exponential backoff
43
55
  */
44
56
  export declare function makeApiRequest<T>(endpoint: string, fetchFn?: typeof fetch): Promise<T | null>;
57
+ export interface AuthRequestResult {
58
+ ok: boolean;
59
+ status: number;
60
+ body: unknown;
61
+ }
62
+ /**
63
+ * Make an authenticated request to a stateful endpoint. Requires API_KEY.
64
+ * Returns { ok, status, body }; callers decide how to render success/error.
65
+ * Returns status 0 on a network/transport failure.
66
+ */
67
+ export declare function makeAuthRequest(endpoint: string, options?: {
68
+ method?: string;
69
+ body?: unknown;
70
+ }, fetchFn?: typeof fetch): Promise<AuthRequestResult>;
71
+ export declare const ALERT_OPERATORS: readonly ["greater_than", "less_than", "equals", "greater_than_or_equal", "less_than_or_equal"];
45
72
  /**
46
73
  * Resolve a US state name or abbreviation to a 2-letter code.
47
74
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,eAAO,MAAM,UAAU,0BAA0B,CAAC;AASlD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6EpD,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA4BzE,CAAC;AAGF,eAAO,MAAM,eAAe,icA4BlB,CAAC;AA6DX,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;CACT;AAuED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA2BjE;AAyED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CA6BnD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA0DnB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe7D;AA6+BD,wBAAgB,mBAAmB,cAElC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,eAAO,MAAM,UAAU,0BAA0B,CAAC;AASlD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6EpD,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA4BzE,CAAC;AAGF,eAAO,MAAM,eAAe,icA4BlB,CAAC;AA6DX,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;CACT;AA8DD,eAAO,MAAM,iBAAiB,0KAwBpB,CAAC;AAGX,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,EAClC,MAAM,CAmBP,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,EAClC,MAAM,CAmBP,CAAC;AA+CF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA2BjE;AAyED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CA6BnD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA0DnB;AAgBD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,EACjD,OAAO,GAAE,OAAO,KAAa,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAmC5B;AAyCD,eAAO,MAAM,eAAe,iGAMlB,CAAC;AAEX;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe7D;AA83CD,wBAAgB,mBAAmB,cAElC"}
package/build/index.js CHANGED
@@ -1,10 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * OilPriceAPI MCP Server v2.0.0
3
+ * OilPriceAPI MCP Server v2.2.1
4
4
  *
5
5
  * The energy commodity MCP server. Real-time oil, gas, and commodity prices
6
6
  * for Claude, Cursor, VS Code, and any MCP-compatible client.
7
7
  *
8
+ * 17 read-only tools (opa_ prefixed): prices, history, futures, marine fuels,
9
+ * rig counts, drilling, diesel-by-state, storage, OPEC production, forecasts,
10
+ * EIA oil inventories, well permits, refining spreads.
11
+ *
12
+ * 4 authenticated price-alert tools (opa_*_price_alert / opa_get_alert_triggers):
13
+ * create/list/delete persistent price alerts tied to the user's account and read
14
+ * recent trigger activity. These wrap the existing /v1/alerts engine and REQUIRE
15
+ * an API key (OILPRICEAPI_KEY).
16
+ *
8
17
  * @see https://oilpriceapi.com
9
18
  * @see https://modelcontextprotocol.io
10
19
  */
@@ -13,7 +22,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
13
22
  import { z } from "zod";
14
23
  // API Configuration
15
24
  const API_BASE = process.env.OILPRICEAPI_BASE_URL || "https://api.oilpriceapi.com";
16
- export const USER_AGENT = "oilpriceapi-mcp/2.0.0";
25
+ export const USER_AGENT = "oilpriceapi-mcp/2.2.1";
17
26
  // Get API key from environment
18
27
  const API_KEY = process.env.OILPRICEAPI_KEY || process.env.OIL_PRICE_API_KEY;
19
28
  // ---------------------------------------------------------------------------
@@ -209,12 +218,80 @@ const US_STATES = {
209
218
  wyoming: "WY",
210
219
  "district of columbia": "DC",
211
220
  };
221
+ // Supported futures contracts (used by opa_get_futures + opa_get_futures_curve).
222
+ // Accepts both legacy codes (BZ/CL) and friendly API slug names. Each maps to a
223
+ // canonical API slug used to build /v1/futures/{slug} and /v1/futures/{slug}/curve.
224
+ // There is NO generic ?contract= route — paths are per-commodity slugs.
225
+ export const FUTURES_CONTRACTS = [
226
+ // Crude
227
+ "BZ",
228
+ "CL",
229
+ "ice-brent",
230
+ "ice-wti",
231
+ // Gasoil
232
+ "G",
233
+ "QS",
234
+ "ice-gasoil",
235
+ // Natural gas
236
+ "NG",
237
+ "natural-gas",
238
+ // TTF gas
239
+ "TTF",
240
+ "ttf-gas",
241
+ // LNG JKM
242
+ "JKM",
243
+ "lng-jkm",
244
+ // Carbon
245
+ "EUA",
246
+ "eua-carbon",
247
+ "UKA",
248
+ "uk-carbon",
249
+ ];
250
+ // Map every accepted contract code/alias to its canonical API slug.
251
+ export const FUTURES_CONTRACT_SLUGS = {
252
+ BZ: "ice-brent",
253
+ CL: "ice-wti",
254
+ "ice-brent": "ice-brent",
255
+ "ice-wti": "ice-wti",
256
+ G: "ice-gasoil",
257
+ QS: "ice-gasoil",
258
+ "ice-gasoil": "ice-gasoil",
259
+ NG: "natural-gas",
260
+ "natural-gas": "natural-gas",
261
+ TTF: "ttf-gas",
262
+ "ttf-gas": "ttf-gas",
263
+ JKM: "lng-jkm",
264
+ "lng-jkm": "lng-jkm",
265
+ EUA: "eua-carbon",
266
+ "eua-carbon": "eua-carbon",
267
+ UKA: "uk-carbon",
268
+ "uk-carbon": "uk-carbon",
269
+ };
270
+ export const FUTURES_CONTRACT_NAMES = {
271
+ BZ: "Brent Crude",
272
+ CL: "WTI Crude",
273
+ "ice-brent": "ICE Brent Crude",
274
+ "ice-wti": "ICE WTI Crude",
275
+ G: "ICE Gasoil",
276
+ QS: "ICE Gasoil",
277
+ "ice-gasoil": "ICE Gasoil",
278
+ NG: "Natural Gas",
279
+ "natural-gas": "Natural Gas",
280
+ TTF: "European TTF Natural Gas",
281
+ "ttf-gas": "European TTF Natural Gas",
282
+ JKM: "LNG JKM (Asia)",
283
+ "lng-jkm": "LNG JKM (Asia)",
284
+ EUA: "EU Carbon Allowance (EUA)",
285
+ "eua-carbon": "EU Carbon Allowance (EUA)",
286
+ UKA: "UK Carbon Allowance (UKA)",
287
+ "uk-carbon": "UK Carbon Allowance (UKA)",
288
+ };
212
289
  // ---------------------------------------------------------------------------
213
290
  // Create server instance
214
291
  // ---------------------------------------------------------------------------
215
292
  const server = new McpServer({
216
293
  name: "oilpriceapi",
217
- version: "2.0.0",
294
+ version: "2.2.1",
218
295
  });
219
296
  // ---------------------------------------------------------------------------
220
297
  // Helpers
@@ -381,6 +458,90 @@ export async function makeApiRequest(endpoint, fetchFn = fetch) {
381
458
  }
382
459
  return null;
383
460
  }
461
+ /**
462
+ * Make an authenticated request to a stateful endpoint. Requires API_KEY.
463
+ * Returns { ok, status, body }; callers decide how to render success/error.
464
+ * Returns status 0 on a network/transport failure.
465
+ */
466
+ export async function makeAuthRequest(endpoint, options = {}, fetchFn = fetch) {
467
+ const { method = "GET", body } = options;
468
+ const headers = {
469
+ "User-Agent": USER_AGENT,
470
+ Accept: "application/json",
471
+ // The API accepts the customer API key as a bearer token.
472
+ Authorization: `Bearer ${API_KEY}`,
473
+ };
474
+ if (body !== undefined) {
475
+ headers["Content-Type"] = "application/json";
476
+ }
477
+ try {
478
+ const response = await fetchFn(`${API_BASE}${endpoint}`, {
479
+ method,
480
+ headers,
481
+ body: body !== undefined ? JSON.stringify(body) : undefined,
482
+ });
483
+ let parsed = null;
484
+ const text = await response.text();
485
+ if (text) {
486
+ try {
487
+ parsed = JSON.parse(text);
488
+ }
489
+ catch {
490
+ parsed = text;
491
+ }
492
+ }
493
+ return { ok: response.ok, status: response.status, body: parsed };
494
+ }
495
+ catch (error) {
496
+ console.error(`Authenticated request failed: ${method} ${endpoint}`, error);
497
+ return { ok: false, status: 0, body: null };
498
+ }
499
+ }
500
+ /**
501
+ * Standard guard for alert tools: returns an actionable error result when no
502
+ * API key is configured, otherwise null.
503
+ */
504
+ function requireApiKey() {
505
+ if (!API_KEY) {
506
+ return errorResult("Price alerts require an OilPriceAPI key. These tools create and manage " +
507
+ "persistent alerts tied to your account, so the server must be configured " +
508
+ "with one. Set the OILPRICEAPI_KEY environment variable for this MCP " +
509
+ "server (get a free key at https://oilpriceapi.com/signup), then retry.");
510
+ }
511
+ return null;
512
+ }
513
+ /**
514
+ * Map an authenticated-request failure to a clear, agent-readable error.
515
+ */
516
+ function alertHttpError(result, action) {
517
+ if (result.status === 0) {
518
+ return `Could not ${action} — the OilPriceAPI service was unreachable. Try again in a moment.`;
519
+ }
520
+ if (result.status === 401) {
521
+ return `Could not ${action}: authentication failed (401). The configured OILPRICEAPI_KEY is missing or invalid. Set a valid key (https://oilpriceapi.com/signup) and retry.`;
522
+ }
523
+ // Surface the API's own error/validation message when present.
524
+ const body = result.body;
525
+ let detail = "";
526
+ if (body && typeof body === "object") {
527
+ const obj = body;
528
+ if (typeof obj.message === "string")
529
+ detail = obj.message;
530
+ else if (typeof obj.error === "string")
531
+ detail = obj.error;
532
+ else if (obj.errors)
533
+ detail = JSON.stringify(obj.errors);
534
+ }
535
+ return `Could not ${action} (HTTP ${result.status})${detail ? `: ${detail}` : "."}`;
536
+ }
537
+ // Operators accepted by the /v1/alerts engine (PriceAlert::VALID_OPERATORS).
538
+ export const ALERT_OPERATORS = [
539
+ "greater_than",
540
+ "less_than",
541
+ "equals",
542
+ "greater_than_or_equal",
543
+ "less_than_or_equal",
544
+ ];
384
545
  /**
385
546
  * Resolve a US state name or abbreviation to a 2-letter code.
386
547
  */
@@ -399,7 +560,8 @@ export function resolveStateCode(input) {
399
560
  return US_STATES[normalized] ?? null;
400
561
  }
401
562
  // =========================================================================
402
- // TOOLS (14 total — opa_ prefixed to avoid collisions)
563
+ // READ TOOLS (17 — opa_ prefixed to avoid collisions). Plus 4 authenticated
564
+ // price-alert tools further below, for 21 tools total.
403
565
  // =========================================================================
404
566
  server.tool("opa_get_price", "Get the current real-time spot price of an energy commodity. Use when the user asks about a single commodity's current price. Accepts natural language ('brent oil', 'diesel') or API codes ('WTI_USD'). Returns price, currency, 24h change, and timestamp. For multiple commodities at once, use opa_market_overview. For price trends, use opa_get_history.", {
405
567
  commodity: z
@@ -670,53 +832,54 @@ server.tool("opa_get_history", "Get historical price data for a commodity over a
670
832
  ];
671
833
  return textResult(sections.join("\n"));
672
834
  });
673
- server.tool("opa_get_futures", "Get the latest front-month futures contract price for crude oil. Use when the user asks about futures, forward prices, or contract prices. Supports Brent (BZ) and WTI (CL) futures. For the full forward curve across all contract months, use opa_get_futures_curve instead.", {
835
+ server.tool("opa_get_futures", "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.", {
674
836
  contract: z
675
- .enum(["BZ", "CL"])
837
+ .enum(FUTURES_CONTRACTS)
676
838
  .default("BZ")
677
- .describe("Futures contract: BZ = Brent crude, CL = WTI crude (default: BZ)"),
839
+ .describe("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 (JKM) = LNG JKM (Asia), eua-carbon (EUA) = EU carbon allowance, uk-carbon (UKA) = UK carbon allowance (default: BZ)"),
678
840
  }, async ({ contract }) => {
679
- const response = await makeApiRequest(`/v1/futures/latest?contract=${contract}`);
680
- if (!response ||
681
- response.status !== "success" ||
682
- !response.data.contracts?.length) {
683
- return errorResult(`No futures data available for ${contract === "BZ" ? "Brent" : "WTI"} (${contract}). Futures data requires a paid plan.`);
841
+ const slug = FUTURES_CONTRACT_SLUGS[contract];
842
+ // Latest = GET /v1/futures/{slug} (no /latest, no ?contract= query param).
843
+ const response = await makeApiRequest(`/v1/futures/${slug}`);
844
+ if (!response || !response.contracts?.length) {
845
+ return errorResult(`No futures data available for ${FUTURES_CONTRACT_NAMES[contract]} (${contract}). Futures data requires a paid plan.`);
684
846
  }
685
- const contractName = contract === "BZ" ? "Brent Crude" : "WTI Crude";
686
- const front = response.data.contracts[0];
847
+ const contractName = FUTURES_CONTRACT_NAMES[contract];
848
+ const front = response.front_month ?? response.contracts[0];
687
849
  let text = `# ${contractName} Futures (${contract})\n\n`;
688
- text += `**Front Month (${front.month})**: $${front.price.toFixed(2)}`;
689
- if (front.change !== undefined) {
690
- text += ` (${front.change >= 0 ? "+" : ""}$${front.change.toFixed(2)})`;
850
+ text += `**Front Month (${front.contract_month})**: $${front.last_price.toFixed(2)}`;
851
+ if (front.change_percent !== undefined && front.change_percent !== null) {
852
+ text += ` (${front.change_percent >= 0 ? "+" : ""}${front.change_percent.toFixed(2)}%)`;
853
+ }
854
+ if (response.source) {
855
+ text += `\n\n_Source: ${response.source}_`;
691
856
  }
692
857
  text += `\n\n_Data from [OilPriceAPI](https://oilpriceapi.com)_`;
693
858
  return textResult(text);
694
859
  });
695
- server.tool("opa_get_futures_curve", "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. Returns a table of contract months with prices and changes, plus market structure analysis.", {
860
+ server.tool("opa_get_futures_curve", "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.", {
696
861
  contract: z
697
- .enum(["BZ", "CL"])
862
+ .enum(FUTURES_CONTRACTS)
698
863
  .default("BZ")
699
- .describe("Futures contract: BZ = Brent crude, CL = WTI crude (default: BZ)"),
864
+ .describe("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 (JKM) = LNG JKM (Asia), eua-carbon (EUA) = EU carbon allowance, uk-carbon (UKA) = UK carbon allowance (default: BZ)"),
700
865
  }, async ({ contract }) => {
701
- const response = await makeApiRequest(`/v1/futures/curve?contract=${contract}`);
702
- if (!response ||
703
- response.status !== "success" ||
704
- !response.data.contracts?.length) {
705
- return errorResult(`No futures curve data available for ${contract === "BZ" ? "Brent" : "WTI"} (${contract}). Futures data requires a paid plan.`);
866
+ const slug = FUTURES_CONTRACT_SLUGS[contract];
867
+ // Curve = GET /v1/futures/{slug}/curve (no generic ?contract= route).
868
+ const response = await makeApiRequest(`/v1/futures/${slug}/curve`);
869
+ if (!response || !response.contracts?.length) {
870
+ return errorResult(`No futures curve data available for ${FUTURES_CONTRACT_NAMES[contract]} (${contract}). Futures data requires a paid plan.`);
706
871
  }
707
- const contractName = contract === "BZ" ? "Brent Crude" : "WTI Crude";
708
- const contracts = response.data.contracts;
872
+ const contractName = FUTURES_CONTRACT_NAMES[contract];
873
+ const contracts = response.contracts;
709
874
  let text = `# ${contractName} Futures Curve (${contract})\n\n`;
710
- text += `| Month | Price | Change |\n|-------|-------|--------|\n`;
875
+ text += `| Month | Settlement |\n|-------|------------|\n`;
711
876
  for (const c of contracts) {
712
- const changeStr = c.change !== undefined
713
- ? `${c.change >= 0 ? "+" : ""}$${c.change.toFixed(2)}`
714
- : "N/A";
715
- text += `| ${c.month} | $${c.price.toFixed(2)} | ${changeStr} |\n`;
716
- }
717
- const front = contracts[0].price;
718
- const back = contracts[contracts.length - 1].price;
719
- const structure = front > back ? "backwardation" : "contango";
877
+ text += `| ${c.contract_month} | $${c.settlement_price.toFixed(2)} |\n`;
878
+ }
879
+ const front = contracts[0].settlement_price;
880
+ const back = contracts[contracts.length - 1].settlement_price;
881
+ // Prefer the API's own curve classification when present.
882
+ const structure = response.curve_type ?? (front > back ? "backwardation" : "contango");
720
883
  text += `\n**Market Structure**: ${structure} (front $${front.toFixed(2)} vs back $${back.toFixed(2)})`;
721
884
  text += `\n\n_Data from [OilPriceAPI](https://oilpriceapi.com)_`;
722
885
  return textResult(text);
@@ -879,6 +1042,257 @@ server.tool("opa_get_forecasts", "Get energy price forecasts from EIA Short-Term
879
1042
  "\n_Source: EIA STEO | Data from [OilPriceAPI](https://oilpriceapi.com)_";
880
1043
  return textResult(text);
881
1044
  });
1045
+ // ---------------------------------------------------------------------------
1046
+ // NEW TOOLS — Sprint 4 (EIA inventories, well permits, refining spreads)
1047
+ // ---------------------------------------------------------------------------
1048
+ server.tool("opa_get_oil_inventories", "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.", {
1049
+ view: z
1050
+ .enum(["latest", "summary", "by_product"])
1051
+ .default("latest")
1052
+ .describe("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."),
1053
+ }, async ({ view }) => {
1054
+ const endpointByView = {
1055
+ latest: "/v1/ei/oil_inventories/latest",
1056
+ summary: "/v1/ei/oil_inventories/summary",
1057
+ by_product: "/v1/ei/oil_inventories/by_product",
1058
+ };
1059
+ const response = await makeApiRequest(endpointByView[view]);
1060
+ if (!response || response.status !== "success") {
1061
+ return errorResult("EIA oil inventory data not available. This requires a paid plan with energy intelligence access.");
1062
+ }
1063
+ let text = `# EIA Weekly Oil Inventories (${view})\n\n`;
1064
+ text += "```json\n" + JSON.stringify(response.data, null, 2) + "\n```\n";
1065
+ text +=
1066
+ "\n_Source: EIA Weekly Petroleum Status Report | Data from [OilPriceAPI](https://oilpriceapi.com)_";
1067
+ return textResult(text);
1068
+ });
1069
+ server.tool("opa_get_well_permits", "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.", {
1070
+ view: z
1071
+ .enum(["latest", "by_state", "by_operator"])
1072
+ .default("latest")
1073
+ .describe("Which view to return: latest (most recent permits), by_state (counts aggregated per state), or by_operator (counts aggregated per operator). Default: latest."),
1074
+ state: z
1075
+ .string()
1076
+ .optional()
1077
+ .describe("Optional US state name or 2-letter code to filter permits (e.g., 'Texas', 'TX'). Applies to the latest and by_state views."),
1078
+ }, async ({ view, state }) => {
1079
+ const pathByView = {
1080
+ latest: "/v1/ei/well-permits/latest",
1081
+ by_state: "/v1/ei/well-permits/by-state",
1082
+ by_operator: "/v1/ei/well-permits/by-operator",
1083
+ };
1084
+ let endpoint = pathByView[view];
1085
+ if (state) {
1086
+ const stateCode = resolveStateCode(state);
1087
+ if (!stateCode) {
1088
+ return errorResult(`'${state}' is not a recognized US state. Use a full state name (e.g., 'Texas') or 2-letter code (e.g., 'TX').`);
1089
+ }
1090
+ endpoint += `?state=${stateCode}`;
1091
+ }
1092
+ const response = await makeApiRequest(endpoint);
1093
+ if (!response || response.status !== "success") {
1094
+ return errorResult("Well permit data not available. This requires a paid plan with energy intelligence access.");
1095
+ }
1096
+ let text = `# US Well Permits (${view})\n\n`;
1097
+ text += "```json\n" + JSON.stringify(response.data, null, 2) + "\n```\n";
1098
+ text += "\n_Data from [OilPriceAPI](https://oilpriceapi.com)_";
1099
+ return textResult(text);
1100
+ });
1101
+ server.tool("opa_get_spread", "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.", {
1102
+ type: z
1103
+ .enum(["crack", "basis", "margin"])
1104
+ .describe("Spread type: crack (refining crack spread, e.g. 3-2-1), basis (regional/grade price differential), or margin (blending/transport margin)."),
1105
+ }, async ({ type }) => {
1106
+ const response = await makeApiRequest(`/v1/spreads/${type}`);
1107
+ if (!response || response.status !== "success") {
1108
+ return errorResult(`${type.charAt(0).toUpperCase() + type.slice(1)} spread data not available. This requires a paid plan with energy intelligence access.`);
1109
+ }
1110
+ let text = `# ${type.charAt(0).toUpperCase() + type.slice(1)} Spread\n\n`;
1111
+ text += "```json\n" + JSON.stringify(response.data, null, 2) + "\n```\n";
1112
+ text += "\n_Data from [OilPriceAPI](https://oilpriceapi.com)_";
1113
+ return textResult(text);
1114
+ });
1115
+ function formatAlertLine(a) {
1116
+ const label = a.summary ||
1117
+ a.condition ||
1118
+ `${a.commodity_code} ${a.condition_operator} ${a.condition_value}`;
1119
+ const status = a.enabled === false ? "disabled" : "enabled";
1120
+ const triggers = typeof a.trigger_count === "number" ? `, ${a.trigger_count} triggers` : "";
1121
+ const last = a.last_triggered_at
1122
+ ? `, last triggered ${a.last_triggered_at}`
1123
+ : "";
1124
+ return `- **${a.name || label}** (id: \`${a.id}\`) — ${label} [${status}${triggers}${last}]`;
1125
+ }
1126
+ server.tool("opa_create_price_alert", "Create a PERSISTENT price alert tied to the user's OilPriceAPI account. " +
1127
+ "The alert engine continuously watches live prices and notifies the user (by " +
1128
+ "email, plus webhook if a URL is given) when the commodity price crosses the " +
1129
+ "threshold. Use when the user asks to be alerted/notified when a price goes " +
1130
+ "above or below a level (e.g. 'tell me when Brent drops below $70'). " +
1131
+ "REQUIRES an API key (OILPRICEAPI_KEY) — this writes to the user's account. " +
1132
+ "Alerts persist until deleted; manage them with opa_list_price_alerts and " +
1133
+ "opa_delete_price_alert.", {
1134
+ commodity: z
1135
+ .string()
1136
+ .describe("Commodity name or code to watch (e.g., 'brent', 'natural gas', 'WTI_USD')."),
1137
+ operator: z
1138
+ .enum(ALERT_OPERATORS)
1139
+ .describe("Threshold comparison: greater_than, less_than, equals, greater_than_or_equal, or less_than_or_equal. The alert fires when (current price) <operator> (threshold)."),
1140
+ threshold: z
1141
+ .number()
1142
+ .positive()
1143
+ .describe("The price threshold to compare against, in the commodity's native currency (e.g., 70 for $70/barrel)."),
1144
+ name: z
1145
+ .string()
1146
+ .optional()
1147
+ .describe("Optional human-readable label for the alert. If omitted, a descriptive name is generated."),
1148
+ notify: z
1149
+ .string()
1150
+ .url()
1151
+ .optional()
1152
+ .describe("Optional HTTPS webhook URL to POST to when the alert triggers (in addition to email). Must start with https://."),
1153
+ }, async ({ commodity, operator, threshold, name, notify }) => {
1154
+ const keyErr = requireApiKey();
1155
+ if (keyErr)
1156
+ return keyErr;
1157
+ const resolved = resolveOrError(commodity);
1158
+ if ("error" in resolved)
1159
+ return resolved.error;
1160
+ const operatorText = {
1161
+ greater_than: ">",
1162
+ less_than: "<",
1163
+ equals: "=",
1164
+ greater_than_or_equal: ">=",
1165
+ less_than_or_equal: "<=",
1166
+ };
1167
+ const defaultName = `${resolved.code} ${operatorText[operator]} ${threshold}`;
1168
+ const alert = {
1169
+ name: name || defaultName,
1170
+ commodity_code: resolved.code,
1171
+ condition_operator: operator,
1172
+ condition_value: threshold,
1173
+ // Attribution: stamp the alert as MCP-created via the alert's metadata
1174
+ // (the API permits a free-form metadata object on price alerts).
1175
+ metadata: { source: "mcp" },
1176
+ };
1177
+ if (notify)
1178
+ alert.webhook_url = notify;
1179
+ const result = await makeAuthRequest("/v1/alerts", {
1180
+ method: "POST",
1181
+ body: { price_alert: alert },
1182
+ });
1183
+ if (!result.ok) {
1184
+ return errorResult(alertHttpError(result, "create the price alert"));
1185
+ }
1186
+ const created = result.body;
1187
+ let text = "# Price Alert Created\n\n";
1188
+ text += formatAlertLine(created);
1189
+ text +=
1190
+ "\n\nThis alert is now active on the user's account and will notify them when the condition is met. " +
1191
+ "Use `opa_list_price_alerts` to see all alerts or `opa_delete_price_alert` to remove it.";
1192
+ text += `\n\n_Data from [OilPriceAPI](https://oilpriceapi.com)_`;
1193
+ return textResult(text);
1194
+ });
1195
+ server.tool("opa_list_price_alerts", "List all PERSISTENT price alerts on the user's OilPriceAPI account. Use when " +
1196
+ "the user asks what alerts they have set up, or to find an alert's id before " +
1197
+ "deleting it. REQUIRES an API key (OILPRICEAPI_KEY) — alerts are account-scoped. " +
1198
+ "No parameters needed.", {}, async () => {
1199
+ const keyErr = requireApiKey();
1200
+ if (keyErr)
1201
+ return keyErr;
1202
+ const result = await makeAuthRequest("/v1/alerts");
1203
+ if (!result.ok) {
1204
+ return errorResult(alertHttpError(result, "list price alerts"));
1205
+ }
1206
+ const alerts = Array.isArray(result.body)
1207
+ ? result.body
1208
+ : [];
1209
+ if (alerts.length === 0) {
1210
+ return textResult("No price alerts are set up on this account yet. Use `opa_create_price_alert` to create one.");
1211
+ }
1212
+ const sections = [`# Price Alerts (${alerts.length})\n`];
1213
+ for (const a of alerts)
1214
+ sections.push(formatAlertLine(a));
1215
+ sections.push(`\n_Data from [OilPriceAPI](https://oilpriceapi.com)_`);
1216
+ return textResult(sections.join("\n"));
1217
+ });
1218
+ server.tool("opa_delete_price_alert", "Permanently delete a price alert from the user's OilPriceAPI account by id. " +
1219
+ "Use when the user wants to remove/cancel/stop an existing alert. Get the id " +
1220
+ "from opa_list_price_alerts first. This permanently removes the alert from the " +
1221
+ "user's account. REQUIRES an API key (OILPRICEAPI_KEY).", {
1222
+ id: z
1223
+ .string()
1224
+ .describe("The id of the alert to delete (a UUID, as returned by opa_list_price_alerts or opa_create_price_alert)."),
1225
+ }, async ({ id }) => {
1226
+ const keyErr = requireApiKey();
1227
+ if (keyErr)
1228
+ return keyErr;
1229
+ const result = await makeAuthRequest(`/v1/alerts/${encodeURIComponent(id)}`, { method: "DELETE" });
1230
+ if (result.status === 404) {
1231
+ return errorResult(`No alert found with id \`${id}\` on this account. Use opa_list_price_alerts to see valid ids.`);
1232
+ }
1233
+ if (!result.ok) {
1234
+ return errorResult(alertHttpError(result, "delete the price alert"));
1235
+ }
1236
+ return textResult(`Price alert \`${id}\` was permanently deleted from the user's account.`);
1237
+ });
1238
+ server.tool("opa_get_alert_triggers", "Get recent trigger activity for the user's price alerts — which alerts have " +
1239
+ "fired, how many times, and when they last triggered. Use when the user asks " +
1240
+ "whether any alerts have gone off or about recent alert activity. REQUIRES an " +
1241
+ "API key (OILPRICEAPI_KEY). Note: the API tracks trigger history as per-alert " +
1242
+ "counters (trigger_count / last_triggered_at) rather than a separate event " +
1243
+ "feed, so this returns alerts that have triggered.", {
1244
+ since: z
1245
+ .string()
1246
+ .optional()
1247
+ .describe("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."),
1248
+ }, async ({ since }) => {
1249
+ const keyErr = requireApiKey();
1250
+ if (keyErr)
1251
+ return keyErr;
1252
+ let sinceTime = null;
1253
+ if (since) {
1254
+ const parsed = Date.parse(since);
1255
+ if (Number.isNaN(parsed)) {
1256
+ return errorResult(`'${since}' is not a valid date. Use an ISO 8601 date like '2026-06-01' or '2026-06-01T00:00:00Z'.`);
1257
+ }
1258
+ sinceTime = parsed;
1259
+ }
1260
+ const result = await makeAuthRequest("/v1/alerts");
1261
+ if (!result.ok) {
1262
+ return errorResult(alertHttpError(result, "fetch alert triggers"));
1263
+ }
1264
+ const alerts = Array.isArray(result.body)
1265
+ ? result.body
1266
+ : [];
1267
+ let triggered = alerts.filter((a) => typeof a.trigger_count === "number" && a.trigger_count > 0);
1268
+ if (sinceTime !== null) {
1269
+ triggered = triggered.filter((a) => {
1270
+ if (!a.last_triggered_at)
1271
+ return false;
1272
+ const t = Date.parse(a.last_triggered_at);
1273
+ return !Number.isNaN(t) && t >= sinceTime;
1274
+ });
1275
+ }
1276
+ if (triggered.length === 0) {
1277
+ return textResult(since
1278
+ ? `No price alerts have triggered since ${since}.`
1279
+ : "No price alerts have triggered yet.");
1280
+ }
1281
+ triggered.sort((a, b) => {
1282
+ const ta = a.last_triggered_at ? Date.parse(a.last_triggered_at) : 0;
1283
+ const tb = b.last_triggered_at ? Date.parse(b.last_triggered_at) : 0;
1284
+ return tb - ta;
1285
+ });
1286
+ const sections = [`# Recent Alert Triggers (${triggered.length})\n`];
1287
+ for (const a of triggered) {
1288
+ const label = a.summary ||
1289
+ a.condition ||
1290
+ `${a.commodity_code} ${a.condition_operator} ${a.condition_value}`;
1291
+ sections.push(`- **${a.name || label}** (id: \`${a.id}\`) — ${a.trigger_count} trigger(s), last at ${a.last_triggered_at}`);
1292
+ }
1293
+ sections.push(`\n_Data from [OilPriceAPI](https://oilpriceapi.com)_`);
1294
+ return textResult(sections.join("\n"));
1295
+ });
882
1296
  // =========================================================================
883
1297
  // RESOURCES — subscribable price snapshots + dynamic template
884
1298
  // =========================================================================
@@ -1041,7 +1455,7 @@ async function main() {
1041
1455
  }
1042
1456
  const transport = new StdioServerTransport();
1043
1457
  await server.connect(transport);
1044
- console.error("OilPriceAPI MCP Server v2.0.0 running on stdio");
1458
+ console.error("OilPriceAPI MCP Server v2.2.1 running on stdio");
1045
1459
  }
1046
1460
  main().catch((error) => {
1047
1461
  console.error("Fatal error:", error);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oilpriceapi-mcp",
3
- "version": "2.0.0",
3
+ "version": "2.2.1",
4
4
  "mcpName": "io.github.OilpriceAPI/mcp-server",
5
5
  "description": "The energy commodity MCP server. Real-time oil, gas, and commodity prices for Claude, Cursor, and any MCP client.",
6
6
  "type": "module",
@@ -13,6 +13,7 @@
13
13
  "dev": "tsc --watch",
14
14
  "start": "node build/index.js",
15
15
  "test": "vitest run",
16
+ "test:live": "node scripts/live-smoke.mjs",
16
17
  "prepublishOnly": "npm run build"
17
18
  },
18
19
  "files": [