oilpriceapi-mcp 1.1.1 → 1.2.0

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
@@ -112,6 +112,24 @@ Add to `~/.codeium/windsurf/mcp_config.json`:
112
112
  }
113
113
  ```
114
114
 
115
+ ### Cody (VS Code)
116
+
117
+ Add to `.vscode/cody.json` in your project root:
118
+
119
+ ```json
120
+ {
121
+ "mcpServers": {
122
+ "oilpriceapi": {
123
+ "command": "npx",
124
+ "args": ["-y", "oilpriceapi-mcp"],
125
+ "env": {
126
+ "OILPRICEAPI_KEY": "your-api-key-here"
127
+ }
128
+ }
129
+ }
130
+ }
131
+ ```
132
+
115
133
  ### Global Install
116
134
 
117
135
  ```bash
@@ -120,7 +138,7 @@ npm install -g oilpriceapi-mcp
120
138
 
121
139
  ## Getting an API Key
122
140
 
123
- 1. Sign up at [oilpriceapi.com](https://oilpriceapi.com)
141
+ 1. Sign up at [oilpriceapi.com/signup](https://www.oilpriceapi.com/signup?utm_source=npm&utm_medium=mcp&utm_campaign=readme)
124
142
  2. Get your API key from the dashboard
125
143
  3. Add it to your MCP config as shown above
126
144
 
@@ -205,7 +223,7 @@ Pre-built analyst templates:
205
223
 
206
224
  ### Other
207
225
 
208
- - Gold, EU Carbon Allowances, EUR/USD, GBP/USD
226
+ - Gold, EU Carbon Allowances, UK Carbon Allowances, EUR/USD, GBP/USD
209
227
 
210
228
  ## Natural Language Support
211
229
 
@@ -217,6 +235,9 @@ Pre-built analyst templates:
217
235
  | "european gas", "ttf" | DUTCH_TTF_EUR |
218
236
  | "diesel" | DIESEL_USD |
219
237
  | "gold" | GOLD_USD |
238
+ | "lbma gold am fix" | GOLD_AM_USD |
239
+ | "lbma gold pm fix" | GOLD_PM_USD |
240
+ | "lbma silver fix" | SILVER_FIX_USD |
220
241
 
221
242
  ## Development
222
243
 
@@ -232,6 +253,14 @@ MIT
232
253
 
233
254
  ## Links
234
255
 
235
- - [OilPriceAPI](https://oilpriceapi.com)
256
+ - [OilPriceAPI](https://www.oilpriceapi.com)
236
257
  - [API Documentation](https://docs.oilpriceapi.com)
258
+ - [Pricing](https://www.oilpriceapi.com/pricing?utm_source=npm&utm_medium=mcp&utm_campaign=pricing)
237
259
  - [MCP Protocol](https://modelcontextprotocol.io)
260
+
261
+ ## Also Available As
262
+
263
+ - **[Python SDK](https://pypi.org/project/oilpriceapi/)** - Python client with Pandas integration
264
+ - **[Node.js SDK](https://www.npmjs.com/package/oilpriceapi)** - TypeScript/JavaScript SDK
265
+ - **[Go SDK](https://github.com/OilpriceAPI/oilpriceapi-go)** - Idiomatic Go client
266
+ - **[OpenBB Integration](https://pypi.org/project/openbb-oilpriceapi/)** - OpenBB Platform provider
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,347 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
2
+ import { resolveCommodityCode, formatPrice, makeApiRequest, COMMODITY_ALIASES, COMMODITY_INFO, } from "../index.js";
3
+ // ---------------------------------------------------------------------------
4
+ // resolveCommodityCode
5
+ // ---------------------------------------------------------------------------
6
+ describe("resolveCommodityCode", () => {
7
+ it("resolves 'brent' alias to BRENT_CRUDE_USD", () => {
8
+ expect(resolveCommodityCode("brent")).toBe("BRENT_CRUDE_USD");
9
+ });
10
+ it("resolves 'brent crude' alias to BRENT_CRUDE_USD", () => {
11
+ expect(resolveCommodityCode("brent crude")).toBe("BRENT_CRUDE_USD");
12
+ });
13
+ it("resolves 'natural gas' alias to NATURAL_GAS_USD", () => {
14
+ expect(resolveCommodityCode("natural gas")).toBe("NATURAL_GAS_USD");
15
+ });
16
+ it("resolves 'wti' alias to WTI_USD", () => {
17
+ expect(resolveCommodityCode("wti")).toBe("WTI_USD");
18
+ });
19
+ it("passes through a valid commodity code unchanged (WTI_USD)", () => {
20
+ expect(resolveCommodityCode("WTI_USD")).toBe("WTI_USD");
21
+ });
22
+ it("passes through a valid commodity code regardless of case (wti_usd)", () => {
23
+ expect(resolveCommodityCode("wti_usd")).toBe("WTI_USD");
24
+ });
25
+ it("passes through BRENT_CRUDE_USD unchanged", () => {
26
+ expect(resolveCommodityCode("BRENT_CRUDE_USD")).toBe("BRENT_CRUDE_USD");
27
+ });
28
+ it("defaults to BRENT_CRUDE_USD for unknown input", () => {
29
+ expect(resolveCommodityCode("unknown_commodity_xyz")).toBe("BRENT_CRUDE_USD");
30
+ });
31
+ it("defaults to BRENT_CRUDE_USD for garbage input", () => {
32
+ expect(resolveCommodityCode("!!!")).toBe("BRENT_CRUDE_USD");
33
+ });
34
+ it("resolves case-insensitive alias ('BRENT')", () => {
35
+ expect(resolveCommodityCode("BRENT")).toBe("BRENT_CRUDE_USD");
36
+ });
37
+ it("resolves 'ttf' alias to DUTCH_TTF_EUR", () => {
38
+ expect(resolveCommodityCode("ttf")).toBe("DUTCH_TTF_EUR");
39
+ });
40
+ it("resolves 'gold' alias to GOLD_USD", () => {
41
+ expect(resolveCommodityCode("gold")).toBe("GOLD_USD");
42
+ });
43
+ it("resolves 'carbon' alias to EU_CARBON_EUR", () => {
44
+ expect(resolveCommodityCode("carbon")).toBe("EU_CARBON_EUR");
45
+ });
46
+ });
47
+ // ---------------------------------------------------------------------------
48
+ // formatPrice
49
+ // ---------------------------------------------------------------------------
50
+ describe("formatPrice", () => {
51
+ it("formats a USD price with all fields", () => {
52
+ const data = {
53
+ code: "BRENT_CRUDE_USD",
54
+ price: 85.42,
55
+ currency: "USD",
56
+ change_24h: 1.23,
57
+ change_24h_percent: 1.46,
58
+ updated_at: "2024-01-15T10:30:00Z",
59
+ };
60
+ const result = formatPrice(data);
61
+ expect(result).toContain("Brent Crude Oil");
62
+ expect(result).toContain("$85.42");
63
+ expect(result).toContain("barrel");
64
+ expect(result).toContain("+$1.23");
65
+ expect(result).toContain("+1.46%");
66
+ expect(result).toContain("Updated:");
67
+ });
68
+ it("formats a price with missing change fields", () => {
69
+ const data = {
70
+ code: "WTI_USD",
71
+ price: 80.0,
72
+ currency: "USD",
73
+ };
74
+ const result = formatPrice(data);
75
+ expect(result).toContain("WTI Crude Oil");
76
+ expect(result).toContain("$80.00");
77
+ // No change line when fields are missing
78
+ expect(result).not.toContain("24h Change");
79
+ // No updated line when timestamp missing
80
+ expect(result).not.toContain("Updated:");
81
+ });
82
+ it("formats negative 24h change correctly", () => {
83
+ const data = {
84
+ code: "BRENT_CRUDE_USD",
85
+ price: 83.0,
86
+ currency: "USD",
87
+ change_24h: -2.5,
88
+ change_24h_percent: -2.93,
89
+ };
90
+ const result = formatPrice(data);
91
+ expect(result).toContain("-$2.50");
92
+ expect(result).toContain("-2.93%");
93
+ // No + prefix on negative change
94
+ expect(result).not.toMatch(/\+\$-/);
95
+ });
96
+ it("formats EUR currency with € symbol", () => {
97
+ const data = {
98
+ code: "EU_CARBON_EUR",
99
+ price: 62.5,
100
+ currency: "EUR",
101
+ };
102
+ const result = formatPrice(data);
103
+ expect(result).toContain("€62.50");
104
+ expect(result).not.toContain("$62.50");
105
+ });
106
+ it("formats GBP currency with £ symbol", () => {
107
+ const data = {
108
+ code: "NATURAL_GAS_GBP",
109
+ price: 75.3,
110
+ currency: "GBP",
111
+ };
112
+ const result = formatPrice(data);
113
+ expect(result).toContain("£75.30");
114
+ expect(result).not.toContain("$75.30");
115
+ });
116
+ it("formats GBp (pence) currency with £ symbol", () => {
117
+ const data = {
118
+ code: "NATURAL_GAS_GBP",
119
+ price: 80.0,
120
+ currency: "GBp",
121
+ };
122
+ const result = formatPrice(data);
123
+ expect(result).toContain("£80.00");
124
+ });
125
+ it("uses created_at as fallback timestamp when updated_at is absent", () => {
126
+ const data = {
127
+ code: "BRENT_CRUDE_USD",
128
+ price: 85.0,
129
+ currency: "USD",
130
+ created_at: "2024-03-01T08:00:00Z",
131
+ };
132
+ const result = formatPrice(data);
133
+ expect(result).toContain("Updated:");
134
+ });
135
+ it("handles unknown code gracefully (falls back to code as name)", () => {
136
+ const data = {
137
+ code: "SOME_UNKNOWN_CODE",
138
+ price: 100.0,
139
+ currency: "USD",
140
+ };
141
+ const result = formatPrice(data);
142
+ expect(result).toContain("SOME_UNKNOWN_CODE");
143
+ expect(result).toContain("$100.00");
144
+ });
145
+ });
146
+ // ---------------------------------------------------------------------------
147
+ // makeApiRequest — basic success/failure (no retries, no delays)
148
+ // ---------------------------------------------------------------------------
149
+ describe("makeApiRequest - basic", () => {
150
+ beforeEach(() => {
151
+ vi.clearAllMocks();
152
+ });
153
+ it("returns parsed data on a successful 200 response", async () => {
154
+ const mockPayload = { status: "success", data: { price: 85.42 } };
155
+ const mockFetch = vi.fn().mockResolvedValue({
156
+ ok: true,
157
+ status: 200,
158
+ json: async () => mockPayload,
159
+ headers: { get: () => null },
160
+ });
161
+ const result = await makeApiRequest("/v1/prices/latest?by_code=BRENT_CRUDE_USD", mockFetch);
162
+ expect(result).toEqual(mockPayload);
163
+ expect(mockFetch).toHaveBeenCalledTimes(1);
164
+ });
165
+ it("returns null on 401 without retrying", async () => {
166
+ const mockFetch = vi.fn().mockResolvedValue({
167
+ ok: false,
168
+ status: 401,
169
+ statusText: "Unauthorized",
170
+ headers: { get: () => null },
171
+ });
172
+ const result = await makeApiRequest("/v1/prices/latest", mockFetch);
173
+ expect(result).toBeNull();
174
+ // 401 is non-retryable — only one call
175
+ expect(mockFetch).toHaveBeenCalledTimes(1);
176
+ });
177
+ });
178
+ // ---------------------------------------------------------------------------
179
+ // makeApiRequest — retry behaviour (fake timers to avoid slow waits)
180
+ // ---------------------------------------------------------------------------
181
+ describe("makeApiRequest - retry behaviour", () => {
182
+ beforeEach(() => {
183
+ vi.clearAllMocks();
184
+ vi.useFakeTimers();
185
+ });
186
+ afterEach(() => {
187
+ vi.useRealTimers();
188
+ });
189
+ /**
190
+ * Helper: run makeApiRequest while advancing fake timers so setTimeout
191
+ * callbacks fire immediately without real wall-clock delays.
192
+ */
193
+ async function runWithFakeTimers(endpoint, mockFetch) {
194
+ const promise = makeApiRequest(endpoint, mockFetch);
195
+ // Advance time enough to cover all backoff delays (2^0 + 2^1 + 2^2 = 7s)
196
+ await vi.runAllTimersAsync();
197
+ return promise;
198
+ }
199
+ it("returns null on 429 after exhausting all retries", async () => {
200
+ const mockFetch = vi.fn().mockResolvedValue({
201
+ ok: false,
202
+ status: 429,
203
+ statusText: "Too Many Requests",
204
+ headers: { get: () => null },
205
+ });
206
+ const result = await runWithFakeTimers("/v1/prices/latest", mockFetch);
207
+ expect(result).toBeNull();
208
+ // attempt 0,1,2,3 = 4 total calls
209
+ expect(mockFetch).toHaveBeenCalledTimes(4);
210
+ });
211
+ it("returns null on network error after exhausting all retries", async () => {
212
+ const mockFetch = vi
213
+ .fn()
214
+ .mockRejectedValue(new Error("Network connection refused"));
215
+ const result = await runWithFakeTimers("/v1/prices/latest", mockFetch);
216
+ expect(result).toBeNull();
217
+ // 4 total attempts
218
+ expect(mockFetch).toHaveBeenCalledTimes(4);
219
+ });
220
+ it("succeeds on second attempt after initial 429", async () => {
221
+ const mockPayload = { status: "success", data: { price: 82.0 } };
222
+ const mockFetch = vi
223
+ .fn()
224
+ .mockResolvedValueOnce({
225
+ ok: false,
226
+ status: 429,
227
+ statusText: "Too Many Requests",
228
+ headers: { get: () => null },
229
+ })
230
+ .mockResolvedValueOnce({
231
+ ok: true,
232
+ status: 200,
233
+ json: async () => mockPayload,
234
+ headers: { get: () => null },
235
+ });
236
+ const result = await runWithFakeTimers("/v1/prices/latest", mockFetch);
237
+ expect(result).toEqual(mockPayload);
238
+ expect(mockFetch).toHaveBeenCalledTimes(2);
239
+ });
240
+ it("succeeds after two 500 errors then a 200", async () => {
241
+ const mockPayload = { status: "success", data: { price: 79.0 } };
242
+ const mockFetch = vi
243
+ .fn()
244
+ .mockResolvedValueOnce({
245
+ ok: false,
246
+ status: 500,
247
+ statusText: "Internal Server Error",
248
+ headers: { get: () => null },
249
+ })
250
+ .mockResolvedValueOnce({
251
+ ok: false,
252
+ status: 500,
253
+ statusText: "Internal Server Error",
254
+ headers: { get: () => null },
255
+ })
256
+ .mockResolvedValueOnce({
257
+ ok: true,
258
+ status: 200,
259
+ json: async () => mockPayload,
260
+ headers: { get: () => null },
261
+ });
262
+ const result = await runWithFakeTimers("/v1/prices/latest", mockFetch);
263
+ expect(result).toEqual(mockPayload);
264
+ expect(mockFetch).toHaveBeenCalledTimes(3);
265
+ });
266
+ it("respects Retry-After header on 429", async () => {
267
+ const mockPayload = { status: "success", data: { price: 80.0 } };
268
+ const mockFetch = vi
269
+ .fn()
270
+ .mockResolvedValueOnce({
271
+ ok: false,
272
+ status: 429,
273
+ statusText: "Too Many Requests",
274
+ headers: {
275
+ get: (name) => (name === "Retry-After" ? "5" : null),
276
+ },
277
+ })
278
+ .mockResolvedValueOnce({
279
+ ok: true,
280
+ status: 200,
281
+ json: async () => mockPayload,
282
+ headers: { get: () => null },
283
+ });
284
+ const result = await runWithFakeTimers("/v1/prices/latest", mockFetch);
285
+ expect(result).toEqual(mockPayload);
286
+ expect(mockFetch).toHaveBeenCalledTimes(2);
287
+ });
288
+ it("returns null when all retries are exhausted on 500", async () => {
289
+ const mockFetch = vi.fn().mockResolvedValue({
290
+ ok: false,
291
+ status: 500,
292
+ statusText: "Internal Server Error",
293
+ headers: { get: () => null },
294
+ });
295
+ const result = await runWithFakeTimers("/v1/prices/latest", mockFetch);
296
+ expect(result).toBeNull();
297
+ expect(mockFetch).toHaveBeenCalledTimes(4);
298
+ });
299
+ });
300
+ // ---------------------------------------------------------------------------
301
+ // COMMODITY_ALIASES and COMMODITY_INFO shape checks
302
+ // ---------------------------------------------------------------------------
303
+ describe("COMMODITY_ALIASES", () => {
304
+ it("has entries for major crude oil aliases", () => {
305
+ expect(COMMODITY_ALIASES["brent"]).toBe("BRENT_CRUDE_USD");
306
+ expect(COMMODITY_ALIASES["wti"]).toBe("WTI_USD");
307
+ expect(COMMODITY_ALIASES["urals"]).toBe("URALS_CRUDE_USD");
308
+ expect(COMMODITY_ALIASES["dubai"]).toBe("DUBAI_CRUDE_USD");
309
+ });
310
+ it("has entries for gas aliases", () => {
311
+ expect(COMMODITY_ALIASES["natural gas"]).toBe("NATURAL_GAS_USD");
312
+ expect(COMMODITY_ALIASES["ttf"]).toBe("DUTCH_TTF_EUR");
313
+ expect(COMMODITY_ALIASES["uk gas"]).toBe("NATURAL_GAS_GBP");
314
+ });
315
+ it("has entries for refined product aliases", () => {
316
+ expect(COMMODITY_ALIASES["diesel"]).toBe("DIESEL_USD");
317
+ expect(COMMODITY_ALIASES["gasoline"]).toBe("GASOLINE_USD");
318
+ expect(COMMODITY_ALIASES["jet fuel"]).toBe("JET_FUEL_USD");
319
+ });
320
+ });
321
+ describe("COMMODITY_INFO", () => {
322
+ it("provides name and unit for BRENT_CRUDE_USD", () => {
323
+ const info = COMMODITY_INFO["BRENT_CRUDE_USD"];
324
+ expect(info).toBeDefined();
325
+ expect(info.name).toBe("Brent Crude Oil");
326
+ expect(info.unit).toBe("barrel");
327
+ });
328
+ it("provides name and unit for DUTCH_TTF_EUR", () => {
329
+ const info = COMMODITY_INFO["DUTCH_TTF_EUR"];
330
+ expect(info).toBeDefined();
331
+ expect(info.name).toBe("European Natural Gas (TTF)");
332
+ expect(info.unit).toBe("MWh");
333
+ });
334
+ it("provides name and unit for EU_CARBON_EUR", () => {
335
+ const info = COMMODITY_INFO["EU_CARBON_EUR"];
336
+ expect(info).toBeDefined();
337
+ expect(info.name).toBe("EU Carbon Allowances");
338
+ expect(info.unit).toBe("metric ton CO2");
339
+ });
340
+ it("provides name and unit for GOLD_USD", () => {
341
+ const info = COMMODITY_INFO["GOLD_USD"];
342
+ expect(info).toBeDefined();
343
+ expect(info.name).toBe("Gold");
344
+ expect(info.unit).toBe("troy oz");
345
+ });
346
+ });
347
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -8,5 +8,39 @@
8
8
  * @see https://oilpriceapi.com
9
9
  * @see https://modelcontextprotocol.io
10
10
  */
11
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
12
+ export declare const USER_AGENT = "oilpriceapi-mcp/1.2.0";
13
+ export declare const COMMODITY_ALIASES: Record<string, string>;
14
+ export declare const COMMODITY_INFO: Record<string, {
15
+ name: string;
16
+ unit: string;
17
+ }>;
18
+ export declare const COMMODITY_CODES: readonly ["BRENT_CRUDE_USD", "WTI_USD", "URALS_CRUDE_USD", "DUBAI_CRUDE_USD", "NATURAL_GAS_USD", "NATURAL_GAS_GBP", "DUTCH_TTF_EUR", "COAL_USD", "NEWCASTLE_COAL_USD", "DIESEL_USD", "GASOLINE_USD", "GASOLINE_RBOB_USD", "JET_FUEL_USD", "HEATING_OIL_USD", "GOLD_USD", "GOLD_AM_USD", "GOLD_AM_GBP", "GOLD_AM_EUR", "GOLD_PM_USD", "GOLD_PM_GBP", "GOLD_PM_EUR", "SILVER_FIX_USD", "SILVER_FIX_GBP", "SILVER_FIX_EUR", "EU_CARBON_EUR", "EUR_USD", "GBP_USD"];
19
+ interface PriceData {
20
+ code: string;
21
+ price: number;
22
+ currency: string;
23
+ created_at?: string;
24
+ updated_at?: string;
25
+ change_24h?: number;
26
+ change_24h_percent?: number;
27
+ }
28
+ export interface ApiResponse<T> {
29
+ status: string;
30
+ data: T;
31
+ }
32
+ /**
33
+ * Resolve a natural language commodity name to its API code
34
+ */
35
+ export declare function resolveCommodityCode(input: string): string;
36
+ /**
37
+ * Format a price for display
38
+ */
39
+ export declare function formatPrice(data: PriceData): string;
40
+ /**
41
+ * Make API request to OilPriceAPI with retry and exponential backoff
42
+ */
43
+ export declare function makeApiRequest<T>(endpoint: string, fetchFn?: typeof fetch): Promise<T | null>;
44
+ export declare function createSandboxServer(): McpServer;
11
45
  export {};
12
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,eAAO,MAAM,UAAU,0BAA0B,CAAC;AAMlD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6EpD,CAAC;AAGF,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;AAGX,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;AAgED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2B1D;AAED;;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,CA4DnB;AA6yBD,wBAAgB,mBAAmB,cAElC"}
package/build/index.js CHANGED
@@ -13,11 +13,11 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
13
13
  import { z } from "zod";
14
14
  // API Configuration
15
15
  const API_BASE = "https://api.oilpriceapi.com";
16
- const USER_AGENT = "oilpriceapi-mcp/1.0.0";
16
+ export const USER_AGENT = "oilpriceapi-mcp/1.2.0";
17
17
  // Get API key from environment
18
18
  const API_KEY = process.env.OILPRICEAPI_KEY || process.env.OIL_PRICE_API_KEY;
19
19
  // Natural language to commodity code mapping
20
- const COMMODITY_ALIASES = {
20
+ export const COMMODITY_ALIASES = {
21
21
  // Crude Oil
22
22
  brent: "BRENT_CRUDE_USD",
23
23
  "brent oil": "BRENT_CRUDE_USD",
@@ -70,6 +70,18 @@ const COMMODITY_ALIASES = {
70
70
  "heating oil": "HEATING_OIL_USD",
71
71
  // Other
72
72
  gold: "GOLD_USD",
73
+ "gold am fix": "GOLD_AM_USD",
74
+ "lbma gold am": "GOLD_AM_USD",
75
+ "gold am fix gbp": "GOLD_AM_GBP",
76
+ "gold am fix eur": "GOLD_AM_EUR",
77
+ "gold pm fix": "GOLD_PM_USD",
78
+ "lbma gold pm": "GOLD_PM_USD",
79
+ "gold pm fix gbp": "GOLD_PM_GBP",
80
+ "gold pm fix eur": "GOLD_PM_EUR",
81
+ "silver fix": "SILVER_FIX_USD",
82
+ "lbma silver": "SILVER_FIX_USD",
83
+ "silver fix gbp": "SILVER_FIX_GBP",
84
+ "silver fix eur": "SILVER_FIX_EUR",
73
85
  carbon: "EU_CARBON_EUR",
74
86
  "eu carbon": "EU_CARBON_EUR",
75
87
  "carbon credits": "EU_CARBON_EUR",
@@ -80,7 +92,7 @@ const COMMODITY_ALIASES = {
80
92
  sterling: "GBP_USD",
81
93
  };
82
94
  // Commodity metadata for formatting
83
- const COMMODITY_INFO = {
95
+ export const COMMODITY_INFO = {
84
96
  BRENT_CRUDE_USD: { name: "Brent Crude Oil", unit: "barrel" },
85
97
  WTI_USD: { name: "WTI Crude Oil", unit: "barrel" },
86
98
  URALS_CRUDE_USD: { name: "Urals Crude Oil", unit: "barrel" },
@@ -96,12 +108,21 @@ const COMMODITY_INFO = {
96
108
  JET_FUEL_USD: { name: "Jet Fuel", unit: "gallon" },
97
109
  HEATING_OIL_USD: { name: "Heating Oil", unit: "gallon" },
98
110
  GOLD_USD: { name: "Gold", unit: "troy oz" },
111
+ GOLD_AM_USD: { name: "LBMA Gold AM Fix", unit: "troy oz" },
112
+ GOLD_AM_GBP: { name: "LBMA Gold AM Fix (GBP)", unit: "troy oz" },
113
+ GOLD_AM_EUR: { name: "LBMA Gold AM Fix (EUR)", unit: "troy oz" },
114
+ GOLD_PM_USD: { name: "LBMA Gold PM Fix", unit: "troy oz" },
115
+ GOLD_PM_GBP: { name: "LBMA Gold PM Fix (GBP)", unit: "troy oz" },
116
+ GOLD_PM_EUR: { name: "LBMA Gold PM Fix (EUR)", unit: "troy oz" },
117
+ SILVER_FIX_USD: { name: "LBMA Silver Fix", unit: "troy oz" },
118
+ SILVER_FIX_GBP: { name: "LBMA Silver Fix (GBP)", unit: "troy oz" },
119
+ SILVER_FIX_EUR: { name: "LBMA Silver Fix (EUR)", unit: "troy oz" },
99
120
  EU_CARBON_EUR: { name: "EU Carbon Allowances", unit: "metric ton CO2" },
100
121
  EUR_USD: { name: "Euro to USD", unit: "rate" },
101
122
  GBP_USD: { name: "British Pound to USD", unit: "rate" },
102
123
  };
103
124
  // Available commodity codes
104
- const COMMODITY_CODES = [
125
+ export const COMMODITY_CODES = [
105
126
  "BRENT_CRUDE_USD",
106
127
  "WTI_USD",
107
128
  "URALS_CRUDE_USD",
@@ -117,6 +138,15 @@ const COMMODITY_CODES = [
117
138
  "JET_FUEL_USD",
118
139
  "HEATING_OIL_USD",
119
140
  "GOLD_USD",
141
+ "GOLD_AM_USD",
142
+ "GOLD_AM_GBP",
143
+ "GOLD_AM_EUR",
144
+ "GOLD_PM_USD",
145
+ "GOLD_PM_GBP",
146
+ "GOLD_PM_EUR",
147
+ "SILVER_FIX_USD",
148
+ "SILVER_FIX_GBP",
149
+ "SILVER_FIX_EUR",
120
150
  "EU_CARBON_EUR",
121
151
  "EUR_USD",
122
152
  "GBP_USD",
@@ -124,12 +154,12 @@ const COMMODITY_CODES = [
124
154
  // Create server instance
125
155
  const server = new McpServer({
126
156
  name: "oilpriceapi",
127
- version: "1.0.0",
157
+ version: "1.2.0",
128
158
  });
129
159
  /**
130
160
  * Resolve a natural language commodity name to its API code
131
161
  */
132
- function resolveCommodityCode(input) {
162
+ export function resolveCommodityCode(input) {
133
163
  const normalized = input.toLowerCase().trim();
134
164
  // Check if it's already a valid code
135
165
  if (COMMODITY_CODES.includes(normalized.toUpperCase())) {
@@ -152,7 +182,7 @@ function resolveCommodityCode(input) {
152
182
  /**
153
183
  * Format a price for display
154
184
  */
155
- function formatPrice(data) {
185
+ export function formatPrice(data) {
156
186
  const info = COMMODITY_INFO[data.code] || { name: data.code, unit: "unit" };
157
187
  const currencySymbol = data.currency === "EUR"
158
188
  ? "€"
@@ -161,8 +191,10 @@ function formatPrice(data) {
161
191
  : "$";
162
192
  let result = `**${info.name}**: ${currencySymbol}${data.price.toFixed(2)}/${info.unit}`;
163
193
  if (data.change_24h !== undefined && data.change_24h_percent !== undefined) {
164
- const sign = data.change_24h >= 0 ? "+" : "";
165
- result += `\n- 24h Change: ${sign}${currencySymbol}${data.change_24h.toFixed(2)} (${sign}${data.change_24h_percent.toFixed(2)}%)`;
194
+ const sign = data.change_24h >= 0 ? "+" : "-";
195
+ const absChange = Math.abs(data.change_24h).toFixed(2);
196
+ const absPct = Math.abs(data.change_24h_percent).toFixed(2);
197
+ result += `\n- 24h Change: ${sign}${currencySymbol}${absChange} (${sign}${absPct}%)`;
166
198
  }
167
199
  const timestamp = data.updated_at || data.created_at;
168
200
  if (timestamp) {
@@ -176,9 +208,9 @@ function formatPrice(data) {
176
208
  return result;
177
209
  }
178
210
  /**
179
- * Make API request to OilPriceAPI
211
+ * Make API request to OilPriceAPI with retry and exponential backoff
180
212
  */
181
- async function makeApiRequest(endpoint) {
213
+ export async function makeApiRequest(endpoint, fetchFn = fetch) {
182
214
  const headers = {
183
215
  "User-Agent": USER_AGENT,
184
216
  Accept: "application/json",
@@ -186,20 +218,42 @@ async function makeApiRequest(endpoint) {
186
218
  if (API_KEY) {
187
219
  headers["Authorization"] = `Bearer ${API_KEY}`;
188
220
  }
189
- try {
190
- const response = await fetch(`${API_BASE}${endpoint}`, { headers });
191
- if (!response.ok) {
221
+ const maxRetries = 3;
222
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
223
+ try {
224
+ const response = await fetchFn(`${API_BASE}${endpoint}`, { headers });
225
+ if (response.ok) {
226
+ return (await response.json());
227
+ }
192
228
  if (response.status === 401) {
193
229
  console.error("Authentication failed. Check OILPRICEAPI_KEY environment variable.");
230
+ return null;
231
+ }
232
+ // Retry on 429 and 5xx
233
+ if ((response.status === 429 || response.status >= 500) &&
234
+ attempt < maxRetries) {
235
+ const retryAfter = response.headers.get("Retry-After");
236
+ const delay = retryAfter
237
+ ? Math.min(parseInt(retryAfter, 10), 60) * 1000
238
+ : Math.pow(2, attempt) * 1000;
239
+ await new Promise((resolve) => setTimeout(resolve, delay));
240
+ continue;
194
241
  }
195
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
242
+ // Non-retryable HTTP error (403, 404, etc.) — return null immediately
243
+ console.error(`HTTP ${response.status}: ${response.statusText} for ${endpoint}`);
244
+ return null;
245
+ }
246
+ catch (error) {
247
+ if (attempt === maxRetries) {
248
+ console.error(`API request failed after ${maxRetries + 1} attempts: ${endpoint}`, error);
249
+ return null;
250
+ }
251
+ // Network error - retry with backoff
252
+ const delay = Math.pow(2, attempt) * 1000;
253
+ await new Promise((resolve) => setTimeout(resolve, delay));
196
254
  }
197
- return (await response.json());
198
- }
199
- catch (error) {
200
- console.error(`API request failed: ${endpoint}`, error);
201
- return null;
202
255
  }
256
+ return null;
203
257
  }
204
258
  // Register Tools
205
259
  /**
@@ -423,8 +477,19 @@ server.tool("list_commodities", "List all available commodities that can be quer
423
477
  sections.push("- `JET_FUEL_USD` - Jet Fuel");
424
478
  sections.push("- `HEATING_OIL_USD` - Heating Oil");
425
479
  sections.push("");
426
- sections.push("## Other");
480
+ sections.push("## Precious Metals");
427
481
  sections.push("- `GOLD_USD` - Gold");
482
+ sections.push("- `GOLD_AM_USD` - LBMA Gold AM Fix (USD)");
483
+ sections.push("- `GOLD_AM_GBP` - LBMA Gold AM Fix (GBP)");
484
+ sections.push("- `GOLD_AM_EUR` - LBMA Gold AM Fix (EUR)");
485
+ sections.push("- `GOLD_PM_USD` - LBMA Gold PM Fix (USD)");
486
+ sections.push("- `GOLD_PM_GBP` - LBMA Gold PM Fix (GBP)");
487
+ sections.push("- `GOLD_PM_EUR` - LBMA Gold PM Fix (EUR)");
488
+ sections.push("- `SILVER_FIX_USD` - LBMA Silver Fix (USD)");
489
+ sections.push("- `SILVER_FIX_GBP` - LBMA Silver Fix (GBP)");
490
+ sections.push("- `SILVER_FIX_EUR` - LBMA Silver Fix (EUR)");
491
+ sections.push("");
492
+ sections.push("## Other");
428
493
  sections.push("- `EU_CARBON_EUR` - EU Carbon Allowances");
429
494
  sections.push("- `EUR_USD` - Euro to USD");
430
495
  sections.push("- `GBP_USD` - British Pound to USD");
@@ -439,6 +504,226 @@ server.tool("list_commodities", "List all available commodities that can be quer
439
504
  ],
440
505
  };
441
506
  });
507
+ /**
508
+ * Get historical price data for a commodity
509
+ */
510
+ server.tool("get_historical_prices", "Get historical price data for a commodity over a time period (past day, week, month, or year).", {
511
+ commodity: z.string().describe("Commodity name or code"),
512
+ period: z
513
+ .enum(["day", "week", "month", "year"])
514
+ .default("month")
515
+ .describe("Time period"),
516
+ }, async ({ commodity, period }) => {
517
+ const code = resolveCommodityCode(commodity);
518
+ const response = await makeApiRequest(`/v1/prices/past_${period}?by_code=${code}`);
519
+ if (!response ||
520
+ response.status !== "success" ||
521
+ !response.data.prices?.length) {
522
+ return {
523
+ content: [
524
+ {
525
+ type: "text",
526
+ text: `No historical data found for ${commodity} over the past ${period}.`,
527
+ },
528
+ ],
529
+ };
530
+ }
531
+ const info = COMMODITY_INFO[code] || { name: code, unit: "unit" };
532
+ // Derive currency symbol from commodity code (same logic as formatPrice)
533
+ const currencyFromCode = code.endsWith("_EUR")
534
+ ? "EUR"
535
+ : code.endsWith("_GBP") || code.endsWith("_GBp")
536
+ ? "GBP"
537
+ : "USD";
538
+ const historicalCurrencySymbol = currencyFromCode === "EUR" ? "€" : currencyFromCode === "GBP" ? "£" : "$";
539
+ const prices = response.data.prices;
540
+ const latest = prices[0];
541
+ const oldest = prices[prices.length - 1];
542
+ const high = Math.max(...prices.map((p) => p.price));
543
+ const low = Math.min(...prices.map((p) => p.price));
544
+ const avg = prices.reduce((sum, p) => sum + p.price, 0) / prices.length;
545
+ const change = latest.price - oldest.price;
546
+ const changePct = (change / oldest.price) * 100;
547
+ const sections = [
548
+ `# ${info.name} - Past ${period.charAt(0).toUpperCase() + period.slice(1)} Historical Data\n`,
549
+ `- **Latest**: ${historicalCurrencySymbol}${latest.price.toFixed(2)}/${info.unit}`,
550
+ `- **High**: ${historicalCurrencySymbol}${high.toFixed(2)}`,
551
+ `- **Low**: ${historicalCurrencySymbol}${low.toFixed(2)}`,
552
+ `- **Average**: ${historicalCurrencySymbol}${avg.toFixed(2)}`,
553
+ `- **Change**: ${change >= 0 ? "+" : ""}${historicalCurrencySymbol}${change.toFixed(2)} (${change >= 0 ? "+" : ""}${changePct.toFixed(1)}%)`,
554
+ `- **Data Points**: ${prices.length}`,
555
+ `\n_Data from [OilPriceAPI](https://oilpriceapi.com)_`,
556
+ ];
557
+ return { content: [{ type: "text", text: sections.join("\n") }] };
558
+ });
559
+ /**
560
+ * Get the latest futures contract price
561
+ */
562
+ server.tool("get_futures_price", "Get the latest futures contract price for a commodity (Brent BZ or WTI CL).", {
563
+ contract: z
564
+ .enum(["BZ", "CL"])
565
+ .default("BZ")
566
+ .describe("Futures contract (BZ=Brent, CL=WTI)"),
567
+ }, async ({ contract }) => {
568
+ const response = await makeApiRequest(`/v1/futures/latest?contract=${contract}`);
569
+ if (!response ||
570
+ response.status !== "success" ||
571
+ !response.data.contracts?.length) {
572
+ return {
573
+ content: [
574
+ {
575
+ type: "text",
576
+ text: `No futures data available for contract ${contract}.`,
577
+ },
578
+ ],
579
+ };
580
+ }
581
+ const contractName = contract === "BZ" ? "Brent Crude" : "WTI Crude";
582
+ const front = response.data.contracts[0];
583
+ let text = `# ${contractName} Futures (${contract})\n\n`;
584
+ text += `**Front Month (${front.month})**: $${front.price.toFixed(2)}`;
585
+ if (front.change !== undefined) {
586
+ text += ` (${front.change >= 0 ? "+" : ""}$${front.change.toFixed(2)})`;
587
+ }
588
+ text += `\n\n_Data from [OilPriceAPI](https://oilpriceapi.com)_`;
589
+ return { content: [{ type: "text", text }] };
590
+ });
591
+ /**
592
+ * Get the full futures forward curve
593
+ */
594
+ server.tool("get_futures_curve", "Get the full futures forward curve showing prices across contract months.", {
595
+ contract: z
596
+ .enum(["BZ", "CL"])
597
+ .default("BZ")
598
+ .describe("Futures contract (BZ=Brent, CL=WTI)"),
599
+ }, async ({ contract }) => {
600
+ const response = await makeApiRequest(`/v1/futures/curve?contract=${contract}`);
601
+ if (!response ||
602
+ response.status !== "success" ||
603
+ !response.data.contracts?.length) {
604
+ return {
605
+ content: [
606
+ {
607
+ type: "text",
608
+ text: `No futures curve data available for contract ${contract}.`,
609
+ },
610
+ ],
611
+ };
612
+ }
613
+ const contractName = contract === "BZ" ? "Brent Crude" : "WTI Crude";
614
+ const contracts = response.data.contracts;
615
+ let text = `# ${contractName} Futures Curve (${contract})\n\n`;
616
+ text += `| Month | Price | Change |\n|-------|-------|--------|\n`;
617
+ for (const c of contracts) {
618
+ const changeStr = c.change !== undefined
619
+ ? `${c.change >= 0 ? "+" : ""}$${c.change.toFixed(2)}`
620
+ : "N/A";
621
+ text += `| ${c.month} | $${c.price.toFixed(2)} | ${changeStr} |\n`;
622
+ }
623
+ const front = contracts[0].price;
624
+ const back = contracts[contracts.length - 1].price;
625
+ const structure = front > back ? "backwardation" : "contango";
626
+ text += `\n**Market Structure**: ${structure} (front $${front.toFixed(2)} vs back $${back.toFixed(2)})`;
627
+ text += `\n\n_Data from [OilPriceAPI](https://oilpriceapi.com)_`;
628
+ return { content: [{ type: "text", text }] };
629
+ });
630
+ /**
631
+ * Get marine fuel (bunker) prices
632
+ */
633
+ server.tool("get_marine_fuel_prices", "Get latest marine fuel (bunker) prices across major ports. Includes VLSFO, MGO, and IFO380.", {
634
+ port: z
635
+ .string()
636
+ .optional()
637
+ .describe("Filter by port name (e.g., 'SINGAPORE', 'ROTTERDAM')"),
638
+ fuel_type: z
639
+ .string()
640
+ .optional()
641
+ .describe("Filter by fuel type (VLSFO, MGO, IFO380)"),
642
+ }, async ({ port, fuel_type }) => {
643
+ let endpoint = "/v1/marine-fuels/latest";
644
+ const params = [];
645
+ if (port)
646
+ params.push(`port=${encodeURIComponent(port)}`);
647
+ if (fuel_type)
648
+ params.push(`fuel_type=${encodeURIComponent(fuel_type)}`);
649
+ if (params.length)
650
+ endpoint += `?${params.join("&")}`;
651
+ const response = await makeApiRequest(endpoint);
652
+ if (!response ||
653
+ response.status !== "success" ||
654
+ !response.data.prices?.length) {
655
+ return {
656
+ content: [
657
+ { type: "text", text: "No marine fuel price data available." },
658
+ ],
659
+ };
660
+ }
661
+ const prices = response.data.prices;
662
+ let text = "# Marine Fuel Prices\n\n";
663
+ text += `| Port | Fuel Type | Price | Currency | Unit |\n`;
664
+ text += `|------|-----------|-------|----------|------|\n`;
665
+ for (const p of prices) {
666
+ text += `| ${p.port} | ${p.fuel_type} | ${p.price.toFixed(2)} | ${p.currency} | ${p.unit} |\n`;
667
+ }
668
+ text += `\n_${prices.length} prices | Data from [OilPriceAPI](https://oilpriceapi.com)_`;
669
+ return { content: [{ type: "text", text }] };
670
+ });
671
+ /**
672
+ * Get the latest oil and gas rig count data
673
+ */
674
+ server.tool("get_rig_counts", "Get the latest oil and gas rig count data (Baker Hughes).", {}, async () => {
675
+ const response = await makeApiRequest("/v1/rig-counts/latest");
676
+ if (!response || response.status !== "success") {
677
+ return {
678
+ content: [{ type: "text", text: "Rig count data not available." }],
679
+ };
680
+ }
681
+ const data = response.data;
682
+ let text = `# Rig Count Data\n\n`;
683
+ text += `- **Oil Rigs**: ${data.oil}\n`;
684
+ text += `- **Gas Rigs**: ${data.gas}\n`;
685
+ text += `- **Total**: ${data.total}\n`;
686
+ if (data.change_from_prior_week !== undefined) {
687
+ const sign = data.change_from_prior_week >= 0 ? "+" : "";
688
+ text += `- **Change from Prior Week**: ${sign}${data.change_from_prior_week}\n`;
689
+ }
690
+ text += `- **Date**: ${data.date}\n`;
691
+ text += `\n_Data from [OilPriceAPI](https://oilpriceapi.com)_`;
692
+ return { content: [{ type: "text", text }] };
693
+ });
694
+ /**
695
+ * Get drilling intelligence data
696
+ */
697
+ server.tool("get_drilling_intelligence", "Get drilling intelligence data including active wells, permits, and completions.", {}, async () => {
698
+ const response = await makeApiRequest("/v1/drilling/latest");
699
+ if (!response || response.status !== "success") {
700
+ return {
701
+ content: [
702
+ {
703
+ type: "text",
704
+ text: "Drilling intelligence data not available.",
705
+ },
706
+ ],
707
+ };
708
+ }
709
+ const data = response.data;
710
+ let text = `# Drilling Intelligence\n\n`;
711
+ text += `- **Total Wells**: ${data.total_wells.toLocaleString()}\n`;
712
+ text += `- **Active Rigs**: ${data.active_rigs.toLocaleString()}\n`;
713
+ if (data.permits_issued !== undefined)
714
+ text += `- **Permits Issued**: ${data.permits_issued.toLocaleString()}\n`;
715
+ if (data.completions !== undefined)
716
+ text += `- **Completions**: ${data.completions.toLocaleString()}\n`;
717
+ text += `- **Date**: ${data.date}\n`;
718
+ if (data.region_breakdown?.length) {
719
+ text += `\n## By Region\n`;
720
+ for (const r of data.region_breakdown) {
721
+ text += `- **${r.region}**: ${r.count}\n`;
722
+ }
723
+ }
724
+ text += `\n_Data from [OilPriceAPI](https://oilpriceapi.com)_`;
725
+ return { content: [{ type: "text", text }] };
726
+ });
442
727
  // Register Resources — subscribable price snapshots
443
728
  server.resource("price-brent", "price://brent", {
444
729
  description: "Current Brent Crude oil price (global benchmark)",
@@ -549,6 +834,10 @@ server.prompt("commodity-report", "Detailed report on a specific commodity", {
549
834
  },
550
835
  ],
551
836
  }));
837
+ // Smithery sandbox export for server scanning
838
+ export function createSandboxServer() {
839
+ return server;
840
+ }
552
841
  // Main entry point
553
842
  async function main() {
554
843
  // Check for API key
@@ -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": "1.1.1",
3
+ "version": "1.2.0",
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",