bykaranteli-mcp 0.13.0 → 0.15.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 +2 -0
- package/dist/tools.js +37 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -75,6 +75,8 @@ Requires Node.js 18 or newer.
|
|
|
75
75
|
| `get_tradfi_board` | "TSLA perp funding rate? Which exchanges list NVDA perps? Is the stock session open?" |
|
|
76
76
|
| `get_rsi_heatmap` | "Which coins are oversold on the daily? BTC RSI on 4h and 1w?" |
|
|
77
77
|
| `get_hl_whales` | "Are Hyperliquid whales net long BTC? What did the biggest accounts just flip?" |
|
|
78
|
+
| `get_positioning` | "BTC long/short ratio on Binance? Are top traders net short ETH? CVD today?" |
|
|
79
|
+
| `get_coverage` | "Which exchanges are behind your liquidation totals? How fresh is the data?" |
|
|
78
80
|
| `get_cycle_indicators` | "Has the Pi Cycle crossed? Mayer Multiple and Puell today?" |
|
|
79
81
|
| `get_altseason` | "Is it altseason?", "What is the altcoin season index?" |
|
|
80
82
|
| `get_metric_context` | "Is today's funding extreme historically?", "Where does this reading sit in its distribution?" |
|
package/dist/tools.js
CHANGED
|
@@ -618,11 +618,16 @@ export function registerByKaranteliTools(server, options) {
|
|
|
618
618
|
server.registerTool("get_venue_markets", {
|
|
619
619
|
title: "Exchange coverage: OI, volume, funding and pegs across 43 exchanges",
|
|
620
620
|
description: "Call this when the user asks about total open interest across exchanges, which venues hold the most OI, DEX versus CEX share, funding dispersion between venues, or stablecoin pegs. Returns the latest 10-minute snapshot aggregates across 56 feeds on 43 exchanges; pass symbol for one coin's per-venue rows.",
|
|
621
|
-
inputSchema: {
|
|
621
|
+
inputSchema: {
|
|
622
|
+
symbol: z.string().optional().describe("string, optional base asset, e.g. BTC"),
|
|
623
|
+
history_days: z.number().int().min(1).max(90).optional().describe("Return the hourly multi-venue open interest history (total, DEX share, OI-weighted funding) for this many days instead of the snapshot"),
|
|
624
|
+
},
|
|
622
625
|
annotations: READ_ONLY,
|
|
623
626
|
}, async (args) => {
|
|
624
627
|
try {
|
|
625
|
-
const path = args.
|
|
628
|
+
const path = args.history_days
|
|
629
|
+
? `/api/public/venues/oi-history?days=${Math.min(90, Math.floor(args.history_days))}`
|
|
630
|
+
: args.symbol ? `/api/public/venues/markets?symbol=${encodeURIComponent(args.symbol.toUpperCase())}` : "/api/public/venues/markets";
|
|
626
631
|
return ok(withProvenance(await fetchJson(path), path));
|
|
627
632
|
}
|
|
628
633
|
catch (err) {
|
|
@@ -850,4 +855,34 @@ export function registerByKaranteliTools(server, options) {
|
|
|
850
855
|
return fail(err);
|
|
851
856
|
}
|
|
852
857
|
});
|
|
858
|
+
server.registerTool("get_positioning", {
|
|
859
|
+
title: "Positioning: long/short ratios, taker buy/sell and CVD on Binance, Bybit, OKX",
|
|
860
|
+
description: "Call this when the user asks about the long/short ratio, whether retail or top traders are net long or short, the taker buy/sell ratio, or CVD (cumulative volume delta) for a perpetual. Returns exchange-published statistics for the 30 most traded Binance USDT perps (Binance global and top-trader ratios, Bybit share long, OKX ratios and taker volume) and CVD series for BTC, ETH and SOL; refreshed every 15 minutes.",
|
|
861
|
+
inputSchema: {
|
|
862
|
+
symbol: z.string().trim().toUpperCase().regex(/^[A-Z0-9]{2,24}$/).optional().describe("One Binance symbol, e.g. BTCUSDT"),
|
|
863
|
+
},
|
|
864
|
+
annotations: READ_ONLY,
|
|
865
|
+
}, async ({ symbol }) => {
|
|
866
|
+
try {
|
|
867
|
+
const path = `/api/public/positioning${symbol ? `?symbol=${encodeURIComponent(symbol)}` : ""}`;
|
|
868
|
+
return ok(withProvenance(await fetchJson(path), path));
|
|
869
|
+
}
|
|
870
|
+
catch (err) {
|
|
871
|
+
return fail(err);
|
|
872
|
+
}
|
|
873
|
+
});
|
|
874
|
+
server.registerTool("get_coverage", {
|
|
875
|
+
title: "Coverage registry: which venues and data types we collect, how, and how fresh",
|
|
876
|
+
description: "Call this when the user asks which exchanges sit behind a ByKaranteli number, whether a feed is complete or sampled, since when a venue is collected, or how fresh the data is. Returns the live coverage registry: liquidation feeds per venue with kind and last record, snapshot feeds per venue and market, funding arbitrage legs, positioning sources, whale tape, spot minutes and the Hyperliquid whale scan with freshness.",
|
|
877
|
+
inputSchema: {},
|
|
878
|
+
annotations: READ_ONLY,
|
|
879
|
+
}, async () => {
|
|
880
|
+
try {
|
|
881
|
+
const path = "/api/public/coverage";
|
|
882
|
+
return ok(withProvenance(await fetchJson(path), path));
|
|
883
|
+
}
|
|
884
|
+
catch (err) {
|
|
885
|
+
return fail(err);
|
|
886
|
+
}
|
|
887
|
+
});
|
|
853
888
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bykaranteli-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "MCP server for live crypto derivatives data from bykaranteli.com: funding rates, funding arbitrage, open interest pressure, Fear & Greed, BTC dominance and verified signal performance. Free, no API key.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|