bykaranteli-mcp 0.14.0 → 0.16.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.
Files changed (2) hide show
  1. package/dist/tools.js +9 -4
  2. package/package.json +1 -1
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,
@@ -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: { symbol: z.string().optional().describe("string, optional base asset, e.g. BTC") },
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.symbol ? `/api/public/venues/markets?symbol=${encodeURIComponent(args.symbol.toUpperCase())}` : "/api/public/venues/markets";
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) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bykaranteli-mcp",
3
- "version": "0.14.0",
3
+ "version": "0.16.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": {