bykaranteli-mcp 0.30.2 → 0.30.4

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, liquidations, options, ETF flows, Fear & Greed and BTC dominance.
4
4
 
5
- 50 read-only tools over the public JSON API of [bykaranteli.com](https://bykaranteli.com/developers). Since 2026-09-10 the API asks programs for an account key: a **free key** comes with any verified account at <https://bykaranteli.com/dashboard/api> (30 requests a minute and 15,000 a month, public depth), and the Builder, Business and Scale plans raise the rate and the monthly fair use and unlock member depth (LiqMap on seven timeframes, 5-minute series, a monthly x402 catalog allowance). Set it as `BYKARANTELI_API_KEY`. Data covers Binance USDT-M perpetuals; funding arbitrage, liquidations, order book depth, options, positioning and insurance funds add the other venues each board lists on bykaranteli.com/coverage.
5
+ 51 read-only tools over the public JSON API of [bykaranteli.com](https://bykaranteli.com/developers). Since 2026-09-10 the API asks programs for an account key: a **free key** comes with any verified account at <https://bykaranteli.com/dashboard/api> (30 requests a minute and 15,000 a month, public depth), and the Builder, Business and Scale plans raise the rate and the monthly fair use and unlock member depth (LiqMap on seven timeframes, 5-minute series, a monthly x402 catalog allowance). Set it as `BYKARANTELI_API_KEY`. Data covers Binance USDT-M perpetuals; funding arbitrage, liquidations, order book depth, options, positioning and insurance funds add the other venues each board lists on bykaranteli.com/coverage.
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 50 tools, nothing to install. Every tool call needs your
10
+ assistant. Same 51 tools, nothing to install. Every tool call needs your
11
11
  account key (free at <https://bykaranteli.com/dashboard/api>); connecting and
12
12
  listing the tools work without one. The key travels one of three ways:
13
13
 
@@ -21,6 +21,8 @@ listing the tools work without one. The key travels one of three ways:
21
21
  A free account covers the API and the hosted MCP on one monthly counter;
22
22
  Builder and above bring higher rates and member depth.
23
23
 
24
+ Step-by-step guide for beginners: https://bykaranteli.com/guide/connect
25
+
24
26
  ## Quick start
25
27
 
26
28
  ### Claude Code
@@ -98,6 +100,7 @@ Requires Node.js 18 or newer.
98
100
  | `get_coverage` | "Which exchanges are behind your liquidation totals? How fresh is the data?" |
99
101
  | `get_orderbook_depth` | "Where is the biggest BTC bid wall? How deep is ETH within 2% on Coinbase vs Binance?" |
100
102
  | `get_jupiter_perps` | "How much long vs short OI is on Jupiter SOL perps? Who topped Jupiter this week? What is the JLP APR?" |
103
+ | `get_solana_perps` | "Which Solana perp DEX has the most open interest? What is Pacifica's BTC funding and 24h volume? Phoenix SOL open interest? GM Trade versus Jupiter?" |
101
104
  | `get_turkey_premium` | "What do lira buyers pay for bitcoin above the world price? What is the Turkey Premium Index and its score right now? Which Turkish exchange is dearest? What is USDT/TRY against the official rate?" |
102
105
  | `get_data_proof` | "Can I verify a ByKaranteli number was not changed later? Show the on-chain proof for BTC funding right now. Which Solana transaction sealed the newest epoch?" |
103
106
  | `get_cycle_indicators` | "Has the Pi Cycle crossed? Mayer Multiple and Puell today?" |
package/dist/tools.js CHANGED
@@ -1106,6 +1106,32 @@ export function registerByKaranteliTools(server, options) {
1106
1106
  return fail(err);
1107
1107
  }
1108
1108
  });
1109
+ server.registerTool("get_solana_perps", {
1110
+ title: "Solana Perps board: open interest, 24h volume and hourly rates across six Solana perpetual venues (Jupiter, Pacifica, Phoenix, GM Trade, Velocity, Bullet)",
1111
+ description: "Call this when the user asks about perpetuals on Solana as a whole, which Solana perp DEX has the most open interest or volume, a market on Pacifica, Phoenix, GM Trade (GMX on Solana), Velocity (the Drift relaunch) or Bullet (funding, open interest, 24h volume, mark), or how Jupiter compares with the order-book venues. Returns the board read every 10 minutes: per-venue totals (one-sided open interest, both sides on pool venues, 24h volume, market count, median hourly rate, as_of), every market of every venue largest first with instrument type (perpetual, equity, index, commodity, fx), and optional hourly history of one market on any venue but Jupiter (7 days free, 30 with member depth; Jupiter history is get_jupiter_perps).",
1112
+ inputSchema: {
1113
+ venue: z.string().trim().toLowerCase().regex(/^(jupiter|pacifica|phoenix|gmtrade|velocity|bullet)$/).optional().describe("Venue filter: jupiter, pacifica, phoenix, gmtrade, velocity or bullet"),
1114
+ symbol: z.string().trim().toUpperCase().regex(/^[A-Z0-9_.-]{1,24}$/).optional().describe("Market symbol on the chosen venue (Pacifica when venue is not given) for hourly history, e.g. SOL, SOL-PERP, SOL-USD"),
1115
+ history_days: z.number().int().min(1).max(30).optional().describe("Hourly history for the symbol, 1..30 days"),
1116
+ },
1117
+ annotations: READ_ONLY,
1118
+ }, async ({ venue, symbol, history_days }) => {
1119
+ try {
1120
+ const q = new URLSearchParams();
1121
+ if (venue)
1122
+ q.set("venue", venue);
1123
+ if (symbol)
1124
+ q.set("symbol", symbol);
1125
+ if (history_days)
1126
+ q.set("days", String(history_days));
1127
+ const qs = q.toString();
1128
+ const path = `/api/public/solana-perps${qs ? `?${qs}` : ""}`;
1129
+ return ok(withProvenance(await fetchJson(path), path));
1130
+ }
1131
+ catch (err) {
1132
+ return fail(err);
1133
+ }
1134
+ });
1109
1135
  server.registerTool("get_coverage", {
1110
1136
  title: "Coverage registry: which venues and data types we collect, how, and how fresh",
1111
1137
  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. snapshots[].country is the jurisdiction only when the venue states one; it is null for most venues, so do not read null as unknown risk.",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bykaranteli-mcp",
3
- "version": "0.30.2",
4
- "description": "MCP server for live crypto derivatives data from bykaranteli.com: funding rates, funding arbitrage, open interest pressure, liquidations, options, ETF flows, Fear & Greed and BTC dominance. 50 read-only tools, free account key, paid depth via plans or x402.",
3
+ "version": "0.30.4",
4
+ "description": "MCP server for live crypto derivatives data from bykaranteli.com: funding rates, funding arbitrage, open interest pressure, liquidations, options, ETF flows, Fear & Greed and BTC dominance. 51 read-only tools, free account key, paid depth via plans or x402.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "bykaranteli-mcp": "dist/index.js"