bykaranteli-mcp 0.18.0 → 0.22.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
@@ -2,12 +2,12 @@
2
2
 
3
3
  MCP (Model Context Protocol) server for **live crypto derivatives data**: funding rates, cross-exchange funding arbitrage, open interest pressure, Fear & Greed, BTC dominance and a verified signal track record.
4
4
 
5
- 34 read-only tools over the free, no-auth public JSON API of [bykaranteli.com](https://bykaranteli.com/developers). No API key, no account, no rate-limit registration. Data covers Binance USDT-M perpetuals (funding arbitrage additionally compares OKX, Bybit, Gate, HTX, BingX, Kraken, MEXC and Bitget).
5
+ 46 read-only tools over the free, no-auth public JSON API of [bykaranteli.com](https://bykaranteli.com/developers). No API key, no account, no rate-limit registration. Data covers Binance USDT-M perpetuals (funding arbitrage additionally compares OKX, Bybit, Gate, HTX, BingX, Kraken, MEXC and Bitget).
6
6
 
7
7
  ## Hosted endpoint (no install)
8
8
 
9
9
  Paste `https://mcp.bykaranteli.com` as a custom connector in any MCP-capable
10
- assistant. Same 35 tools, nothing to install, no key.
10
+ assistant. Same 46 tools, nothing to install, no key.
11
11
 
12
12
  ## Quick start
13
13
 
@@ -65,6 +65,10 @@ Requires Node.js 18 or newer.
65
65
  | `get_theme_indices` | "Which crypto narrative is leading: AI, RWA, DePIN, memes, L2s, DeFi?" |
66
66
  | `get_factor_board` | "Which indicators sit in an unusual band today, and what followed historically?" |
67
67
  | `get_venue_markets` | "Total BTC open interest across exchanges?", "What is the DEX share of perp OI?", "Is USDT off peg anywhere?" |
68
+ | `get_leverage_tiers` | "How much leverage does Bybit allow on SOL?", "Which exchange has the highest max leverage for DOGE?", "Did any venue cut leverage on a coin this week?" |
69
+ | `get_withdrawal_status` | "Has KuCoin paused USDT withdrawals?", "Cheapest network to withdraw USDT from Gate?", "Which exchanges have withdrawals closed right now?" |
70
+ | `get_venue_profile` | "What do you record about Bybit?", "How many contracts does OKX list?", "Is HTX up, and what happened there this week?" |
71
+ | `get_settlements` | "What expires this week?", "When is the next BTC quarterly on OKX?", "At what price did the September future settle?" |
68
72
  | `get_lead_lag` | "Does Coinbase or Binance move first?" |
69
73
  | `get_iv_surface` | "What is BTC implied vol by expiry?", "Is downside protection expensive (skew)?" |
70
74
  | `get_whale_tape` | "Are whales buying or selling right now?" |
@@ -113,7 +117,7 @@ MIT. Attribution appreciated: "ByKaranteli (bykaranteli.com)".
113
117
 
114
118
  ## Paid depth (optional)
115
119
 
116
- The 35 tools above are free and stay free. For recorded history and raw records
120
+ The 46 tools above are free and stay free. For recorded history and raw records
117
121
  beyond the live snapshots, bykaranteli.com also exposes pay-per-call x402
118
122
  endpoints (USDC on Solana or Base, priced per call, no account):
119
123
  <https://bykaranteli.com/developers#x402> · machine catalog:
package/dist/tools.js CHANGED
@@ -615,6 +615,76 @@ export function registerByKaranteliTools(server, options) {
615
615
  return fail(err);
616
616
  }
617
617
  });
618
+ server.registerTool("get_settlements", {
619
+ title: "Expiry calendar and settlement prices across venues",
620
+ description: "Call this when the user asks what futures or options expire soon, when the next quarterly expiry is on an exchange, how many contracts settle this week, or at what price a dated future settled. Returns the next 60 days of dated future and option expiries grouped by date, venue and underlying from 54 venues' market lists, plus the settlement prices recorded as dated futures deliver.",
621
+ inputSchema: {},
622
+ annotations: READ_ONLY,
623
+ }, async () => {
624
+ try {
625
+ return ok(withProvenance(await fetchJson("/api/public/settlements"), "/api/public/settlements"));
626
+ }
627
+ catch (err) {
628
+ return fail(err);
629
+ }
630
+ });
631
+ server.registerTool("get_venue_profile", {
632
+ title: "Venue profile: everything ByKaranteli records about one exchange",
633
+ description: "Call this when the user asks about a specific exchange (Bybit, OKX, Gate, KuCoin, HTX, Bitget, MEXC, BitMEX, Hyperliquid ...): how many contracts it lists, its perp open interest and average funding, its leverage ladders, deposit and withdrawal networks and how many are paused, its base fee schedule, its status uptime and the recent event log (listings, delistings, leverage cuts, withdrawal pauses, incidents). Without venue returns the list of recorded venues.",
634
+ inputSchema: { venue: z.string().optional().describe("string, optional venue id, e.g. bybit") },
635
+ annotations: READ_ONLY,
636
+ }, async (args) => {
637
+ try {
638
+ return ok(withProvenance(await fetchJson(args.venue ? `/api/public/venues/profile?venue=${encodeURIComponent(String(args.venue).toLowerCase())}` : "/api/public/venues/profile"), args.venue ? `/api/public/venues/profile?venue=${encodeURIComponent(String(args.venue).toLowerCase())}` : "/api/public/venues/profile"));
639
+ }
640
+ catch (err) {
641
+ return fail(err);
642
+ }
643
+ });
644
+ server.registerTool("get_withdrawal_status", {
645
+ title: "Withdrawal status and network fees: which exchanges paused withdrawals, per asset and network",
646
+ description: "Call this when the user asks whether an exchange has paused withdrawals or deposits, which networks are open for an asset, what the withdrawal fee or minimum is on each venue, or which venue is cheapest to withdraw from. Without arguments returns the overview (withdrawals paused right now, ranked, plus recent suspension and resumption events). Pass asset (e.g. USDT) for every venue and network of that asset, and venue (e.g. kucoin) to narrow. Recorded daily by ByKaranteli from 20+ venues' public currency lists.",
647
+ inputSchema: {
648
+ asset: z.string().optional().describe("string, optional asset code, e.g. USDT"),
649
+ venue: z.string().optional().describe("string, optional venue id, e.g. kucoin"),
650
+ },
651
+ annotations: READ_ONLY,
652
+ }, async (args) => {
653
+ try {
654
+ const qs = new URLSearchParams();
655
+ if (args.asset)
656
+ qs.set("asset", String(args.asset).toUpperCase());
657
+ if (args.venue)
658
+ qs.set("venue", String(args.venue).toLowerCase());
659
+ const q = qs.toString();
660
+ return ok(withProvenance(await fetchJson(`/api/public/withdrawals${q ? `?${q}` : ""}`), `/api/public/withdrawals${q ? `?${q}` : ""}`));
661
+ }
662
+ catch (err) {
663
+ return fail(err);
664
+ }
665
+ });
666
+ server.registerTool("get_leverage_tiers", {
667
+ title: "Leverage tiers: max leverage and maintenance margin per perpetual on every venue",
668
+ description: "Call this when the user asks how much leverage an exchange allows on a coin, what the maintenance margin or risk limit ladder is, which venue offers the highest leverage for a symbol, or whether an exchange recently cut leverage. Returns the current ladder per venue (tier, notional floor and cap, max leverage, maintenance margin rate) recorded daily by ByKaranteli, plus a change log. Pass symbol for one base asset (e.g. SOL) and venue for one exchange (bybit, okx, gate, htx, bitget, mexc).",
669
+ inputSchema: {
670
+ symbol: z.string().optional().describe("string, optional base asset, e.g. BTC"),
671
+ venue: z.string().optional().describe("string, optional venue id, e.g. bybit"),
672
+ },
673
+ annotations: READ_ONLY,
674
+ }, async (args) => {
675
+ try {
676
+ const qs = new URLSearchParams();
677
+ if (args.symbol)
678
+ qs.set("symbol", String(args.symbol).toUpperCase());
679
+ if (args.venue)
680
+ qs.set("venue", String(args.venue).toLowerCase());
681
+ const q = qs.toString();
682
+ return ok(withProvenance(await fetchJson(`/api/public/leverage-tiers${q ? `?${q}` : ""}`), `/api/public/leverage-tiers${q ? `?${q}` : ""}`));
683
+ }
684
+ catch (err) {
685
+ return fail(err);
686
+ }
687
+ });
618
688
  server.registerTool("get_venue_markets", {
619
689
  title: "Exchange coverage: OI, volume, funding and pegs across 43 exchanges",
620
690
  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.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bykaranteli-mcp",
3
- "version": "0.18.0",
3
+ "version": "0.22.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": {