bykaranteli-mcp 0.15.0 → 0.17.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
@@ -77,6 +77,7 @@ Requires Node.js 18 or newer.
77
77
  | `get_hl_whales` | "Are Hyperliquid whales net long BTC? What did the biggest accounts just flip?" |
78
78
  | `get_positioning` | "BTC long/short ratio on Binance? Are top traders net short ETH? CVD today?" |
79
79
  | `get_coverage` | "Which exchanges are behind your liquidation totals? How fresh is the data?" |
80
+ | `get_orderbook_depth` | "Where is the biggest BTC bid wall? How deep is ETH within 2% on Coinbase vs Binance?" |
80
81
  | `get_cycle_indicators` | "Has the Pi Cycle crossed? Mayer Multiple and Puell today?" |
81
82
  | `get_altseason` | "Is it altseason?", "What is the altcoin season index?" |
82
83
  | `get_metric_context` | "Is today's funding extreme historically?", "Where does this reading sit in its distribution?" |
package/dist/tools.js CHANGED
@@ -198,9 +198,9 @@ export function registerByKaranteliTools(server, options) {
198
198
  });
199
199
  server.registerTool("get_etf_flows", {
200
200
  title: "US spot Bitcoin and Ethereum ETF daily flows",
201
- description: "Call this when the user asks about Bitcoin or Ethereum ETF flows: daily net inflows or outflows, cumulative flow since launch, or total net assets of the US spot ETFs (IBIT, FBTC, ETHA and the rest). Returns one row per finalized US trading day and asset with net inflow, total net assets, cumulative inflow and value traded, all in USD. About 14 months of history.",
201
+ description: "Call this when the user asks about Bitcoin, Ethereum or Solana spot ETF flows: daily net inflows or outflows, cumulative flow since launch, or total net assets of the US spot ETFs (IBIT, FBTC, ETHA and the rest). Returns one row per finalized US trading day and asset with net inflow, total net assets, cumulative inflow and value traded, all in USD. About 14 months of history.",
202
202
  inputSchema: {
203
- asset: z.enum(["BTC", "ETH"]).optional().describe("Filter to one asset. Omit for both."),
203
+ asset: z.enum(["BTC", "ETH", "SOL"]).optional().describe("Filter to one asset (BTC, ETH or SOL, SOL since 2026-09-02). Omit for all."),
204
204
  days: z.number().int().min(1).max(400).optional().describe("How many most recent trading days to return (default 10)."),
205
205
  },
206
206
  annotations: READ_ONLY,
@@ -885,4 +885,27 @@ export function registerByKaranteliTools(server, options) {
885
885
  return fail(err);
886
886
  }
887
887
  });
888
+ server.registerTool("get_orderbook_depth", {
889
+ title: "Spot order book depth: walls and 2% depth across Binance, Coinbase, Kraken, Bybit, OKX",
890
+ description: "Call this when the user asks where the bid or ask walls are, how deep the spot order book is, whether buyers or sellers have more resting orders near price, or for an order book heatmap. Returns the five venues' books binned into 0.1% buckets within 5% of mid (USD notional), the largest walls with venue split, 2% depth and book reach per venue, and optionally the summed 5-minute history; coins: BTC, ETH, SOL, XRP, DOGE, ADA, LINK, AVAX, LTC, BNB.",
891
+ inputSchema: {
892
+ symbol: z.string().trim().toUpperCase().regex(/^[A-Z0-9]{2,12}$/).optional().describe("One coin, e.g. BTC (default BTC)"),
893
+ hours: z.number().int().min(1).max(24).optional().describe("Include the summed 5-minute history for this many hours"),
894
+ },
895
+ annotations: READ_ONLY,
896
+ }, async ({ symbol, hours }) => {
897
+ try {
898
+ const params = new URLSearchParams();
899
+ if (symbol)
900
+ params.set("symbol", symbol);
901
+ if (hours)
902
+ params.set("hours", String(hours));
903
+ const qs = params.toString();
904
+ const path = `/api/public/orderbook${qs ? `?${qs}` : ""}`;
905
+ return ok(withProvenance(await fetchJson(path), path));
906
+ }
907
+ catch (err) {
908
+ return fail(err);
909
+ }
910
+ });
888
911
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bykaranteli-mcp",
3
- "version": "0.15.0",
3
+ "version": "0.17.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": {