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 +32 -3
- package/build/__tests__/index.test.d.ts +2 -0
- package/build/__tests__/index.test.d.ts.map +1 -0
- package/build/__tests__/index.test.js +347 -0
- package/build/__tests__/index.test.js.map +1 -0
- package/build/index.d.ts +34 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +310 -21
- package/build/index.js.map +1 -1
- package/package.json +1 -1
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 @@
|
|
|
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
|
package/build/index.d.ts.map
CHANGED
|
@@ -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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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
|
-
|
|
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("##
|
|
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
|
package/build/index.js.map
CHANGED
|
@@ -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.
|
|
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",
|