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 +55 -2
- package/package.json +2 -2
- package/server.json +2 -2
- package/smithery.yaml +22 -0
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
+
})
|