agentcanary-mcp 1.1.2 → 1.3.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/index.js CHANGED
@@ -81,7 +81,7 @@ async function detectTier() {
81
81
 
82
82
  const server = new McpServer({
83
83
  name: "agentcanary",
84
- version: "1.1.2",
84
+ version: "1.2.0",
85
85
  });
86
86
 
87
87
  // --- Tool: get_briefs (all tiers) ---
@@ -294,7 +294,7 @@ server.tool(
294
294
  // --- Tool: get_btc_options (signal+) ---
295
295
  server.tool(
296
296
  "get_btc_options",
297
- "Get BTC options data — max pain, volatility skew, put/call ratios. Key for understanding institutional positioning.",
297
+ "Get BTC options data — pass view= for maxpain (max pain price) or skew (volatility skew). Omit for overview (includes max pain + skew + put/call ratios). Key for understanding institutional positioning.",
298
298
  {
299
299
  view: z.string().optional().describe("View: maxpain, skew. Omit for overview."),
300
300
  },
@@ -305,6 +305,28 @@ server.tool(
305
305
  }
306
306
  );
307
307
 
308
+ // --- Tool: get_market_structure (signal+) ---
309
+ server.tool(
310
+ "get_market_structure",
311
+ "Get market structure & exchange data — pass view= for one of: orderbook (depth across exchanges), liquidation-heatmap (BTC leverage liquidation map), liquidation-ranges, exchange-assets (token listings by venue), exchange-volumes (trading volumes by exchange), coinbase (Coinbase-specific metrics). Omit for orderbook (default). Covers the leverage/depth/venue data that complements directional signals from get_signals.",
312
+ {
313
+ view: z.string().optional().describe("View: orderbook, liquidation-heatmap, liquidation-ranges, exchange-assets, exchange-volumes, coinbase. Omit for orderbook."),
314
+ },
315
+ async ({ view }) => {
316
+ const map = {
317
+ orderbook: "orderbook/depth",
318
+ "liquidation-heatmap": "btc-liquidation-heatmap",
319
+ "liquidation-ranges": "liquidation-ranges",
320
+ "exchange-assets": "exchange-assets",
321
+ "exchange-volumes": "exchange-volumes",
322
+ coinbase: "coinbase",
323
+ };
324
+ const endpoint = map[view] || map.orderbook;
325
+ const data = await acFetch(endpoint);
326
+ return { content: [{ type: "text", text: truncate(data) }] };
327
+ }
328
+ );
329
+
308
330
  // --- Tool: get_central_banks (signal+) ---
309
331
  server.tool(
310
332
  "get_central_banks",
@@ -347,6 +369,37 @@ server.tool(
347
369
  }
348
370
  );
349
371
 
372
+ // --- Tool: get_open_interest (builder+) ---
373
+ // Live derivatives positioning across 43 tracked perps × 21 exchanges.
374
+ // Sourced from coinglass-v2; refreshes ~hourly upstream. Same atom that
375
+ // powers the OPEN INTEREST section of the pulse brief.
376
+ server.tool(
377
+ "get_open_interest",
378
+ "Get cross-exchange open-interest snapshot for crypto perps. Aggregate OI across 43 symbols + top-N by USD size + top-N by absolute 4h Δ% (intraday OI shifters). Useful for agents detecting positioning unwinds, new builds, leveraged crowding. Builder tier or above.",
379
+ {
380
+ view: z.string().optional().describe("View: 'top' (top symbols by OI USD), 'shifters' (top intraday OI movers by 4h Δ%). Omit for full snapshot (aggregate + top + shifters + envelope)."),
381
+ },
382
+ async ({ view }) => {
383
+ const endpoint = view ? `derivatives/oi/${view}` : "derivatives/oi";
384
+ const data = await acFetch(endpoint);
385
+ return { content: [{ type: "text", text: truncate(data) }] };
386
+ }
387
+ );
388
+
389
+ // --- Tool: get_liquidations (builder+) ---
390
+ // 24h aggregate + latest 4h breakdown with long/short USD split, per-side
391
+ // event counts, dominant-direction label. Same atom that powers the
392
+ // Liquidations line of the pulse brief.
393
+ server.tool(
394
+ "get_liquidations",
395
+ "Get crypto perp liquidations. 24h total + latest-4h breakdown with long/short USD split, per-side event counts, long%/short%, and dominant-direction label (long-dominant >=65%, short-dominant <=35%, balanced). Useful for agents detecting forced deleveraging direction. Builder tier or above.",
396
+ {},
397
+ async () => {
398
+ const data = await acFetch("derivatives/liquidations");
399
+ return { content: [{ type: "text", text: truncate(data) }] };
400
+ }
401
+ );
402
+
350
403
  // ─── Start ───────────────────────────────────────────────────────
351
404
 
352
405
  await detectTier();
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "agentcanary-mcp",
3
- "version": "1.1.2",
3
+ "version": "1.3.0",
4
4
  "mcpName": "io.github.MrCerq/agentcanary",
5
- "description": "MCP server for AgentCanary market intelligence — briefs, indicators, regime, narratives, predictions, scoring",
5
+ "description": "MCP server for AgentCanary market intelligence — briefs, indicators, regime, narratives, predictions, scoring, plus live derivatives (open interest, liquidations)",
6
6
  "main": "index.js",
7
7
  "type": "module",
8
8
  "bin": {
package/server.json CHANGED
@@ -8,13 +8,13 @@
8
8
  "url": "https://github.com/MrCerq/agentcanary-mcp",
9
9
  "source": "github"
10
10
  },
11
- "version": "1.1.2",
11
+ "version": "1.2.0",
12
12
  "packages": [
13
13
  {
14
14
  "registryType": "npm",
15
15
  "registryBaseUrl": "https://registry.npmjs.org",
16
16
  "identifier": "agentcanary-mcp",
17
- "version": "1.1.2",
17
+ "version": "1.2.0",
18
18
  "transport": {
19
19
  "type": "stdio"
20
20
  },
package/smithery.yaml ADDED
@@ -0,0 +1,22 @@
1
+ # Smithery configuration — https://smithery.ai/docs/config
2
+ # Tells Smithery how to launch agentcanary-mcp via stdio with the user's API key.
3
+
4
+ startCommand:
5
+ type: stdio
6
+ configSchema:
7
+ # JSON Schema for the config that Smithery passes to the server at launch.
8
+ type: object
9
+ required:
10
+ - acApiKey
11
+ properties:
12
+ acApiKey:
13
+ type: string
14
+ description: AgentCanary API key. Get one at https://app.agentcanary.ai or POST https://api.agentcanary.ai/api/keys/create with a wallet address.
15
+ commandFunction:
16
+ # Returns the CLI command Smithery uses to spawn the MCP server.
17
+ |-
18
+ (config) => ({
19
+ command: 'npx',
20
+ args: ['-y', 'agentcanary-mcp'],
21
+ env: { AC_API_KEY: config.acApiKey }
22
+ })