@ironflowsh/mcp 0.8.0 → 0.8.3

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
@@ -1,5 +1,7 @@
1
1
  # @ironflowsh/mcp
2
2
 
3
+ [![smithery badge](https://smithery.ai/badge/ironflow/hyperliquid)](https://smithery.ai/servers/ironflow/hyperliquid)
4
+
3
5
  MCP server for [Ironflow](https://ironflow.sh): read-only Hyperliquid market data and wallet analytics for Claude, Cursor and any MCP client. It covers native perps, HIP-3 builder markets, HIP-4 outcome markets and spot. 33 tools, all read-only.
4
6
 
5
7
  No API key needed to start: keyless calls get 10 requests per minute and 24 hours of history. A free key from [ironflow.sh/key](https://ironflow.sh/key) raises that to 60 requests per minute and 30 days.
@@ -0,0 +1,3 @@
1
+ export declare const MAX_RESULT_CHARS = 40000;
2
+ export declare function fitToBudget(value: unknown, maxChars?: number): string;
3
+ //# sourceMappingURL=budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB,QAAS,CAAC;AA+BvC,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,SAAmB,GAAG,MAAM,CA0B/E"}
@@ -0,0 +1,61 @@
1
+ // Size budget for tool results. MCP clients cap a single tool result (Claude
2
+ // Code at 25k tokens; JSON full of hex addresses and numbers runs about 2.2
3
+ // characters per token, so ~55k characters already fails) and fail the call
4
+ // when it is larger, so a broad query would return nothing at all. Results are
5
+ // sent as compact JSON, and anything still over budget has its largest list
6
+ // or map trimmed from the end (lists are ranked, so the head is kept) with a
7
+ // note telling the model how to narrow the query.
8
+ export const MAX_RESULT_CHARS = 40_000;
9
+ const isPlainObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
10
+ // collections lists the arrays and maps at the root and one level down.
11
+ function collections(root) {
12
+ const out = [];
13
+ const visit = (owner, prefix, depth) => {
14
+ for (const [key, v] of Object.entries(owner)) {
15
+ if (Array.isArray(v) || isPlainObject(v)) {
16
+ out.push({ owner, key, path: prefix + key, size: JSON.stringify(v).length });
17
+ }
18
+ if (isPlainObject(v) && depth === 0)
19
+ visit(v, `${prefix}${key}.`, 1);
20
+ }
21
+ };
22
+ visit(root, "", 0);
23
+ return out;
24
+ }
25
+ const countOf = (v) => (Array.isArray(v) ? v.length : Object.keys(v).length);
26
+ function keepFirst(v, n) {
27
+ if (Array.isArray(v))
28
+ return v.slice(0, n);
29
+ return Object.fromEntries(Object.entries(v).slice(0, n));
30
+ }
31
+ // fitToBudget serializes value as compact JSON no longer than maxChars when
32
+ // trimming can get it there.
33
+ export function fitToBudget(value, maxChars = MAX_RESULT_CHARS) {
34
+ let text = JSON.stringify(value);
35
+ if (text.length <= maxChars || !isPlainObject(value))
36
+ return text;
37
+ const root = { ...value };
38
+ const trimmed = new Map();
39
+ for (let round = 0; round < 30 && text.length > maxChars; round++) {
40
+ // The largest collection that still has something to cut.
41
+ const target = collections(root)
42
+ .filter((c) => countOf(c.owner[c.key]) > 1)
43
+ .sort((a, b) => b.size - a.size)[0];
44
+ if (!target)
45
+ break;
46
+ const current = target.owner[target.key];
47
+ const count = countOf(current);
48
+ const excess = text.length - maxChars * 0.95;
49
+ const keep = Math.max(1, Math.min(count - 1, Math.floor(count * (1 - excess / target.size))));
50
+ target.owner[target.key] = keepFirst(current, keep);
51
+ const prev = trimmed.get(target.path);
52
+ trimmed.set(target.path, { from: prev?.from ?? count, to: keep });
53
+ root.truncated = [...trimmed]
54
+ .map(([path, t]) => `${path} trimmed from ${t.from} to ${t.to} entries`)
55
+ .join("; ")
56
+ .concat(". The result was too large for one tool call; narrow the query (market, address, window, limit or search) to see the rest.");
57
+ text = JSON.stringify(root);
58
+ }
59
+ return text;
60
+ }
61
+ //# sourceMappingURL=budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.js","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type Schema = Record<string, unknown>;
2
+ export declare const outputSchemas: Record<string, Schema>;
3
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAgH7C,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6ZhD,CAAC"}
@@ -0,0 +1,444 @@
1
+ // Output schemas for every tool (MCP structured output). Written from real
2
+ // API responses. They describe fields without pinning JSON types or marking
3
+ // fields required: MCP clients validate structuredContent against these, and
4
+ // a schema stricter than the API (a number that arrives as a string, a
5
+ // field that is sometimes null) would turn a working tool into an error.
6
+ const d = (description) => ({ description });
7
+ const obj = (description, properties) => ({
8
+ type: "object",
9
+ description,
10
+ properties,
11
+ });
12
+ const arr = (description, items) => ({ type: "array", description, items });
13
+ // Fields that recur across endpoints.
14
+ const F = {
15
+ source: d("Venue, always hyperliquid"),
16
+ market: d('Display symbol, e.g. "BTC-PERP" or "xyz:NVDA-PERP"'),
17
+ display_symbol: d('Display symbol, e.g. "BTC-PERP" or "xyz:NVDA-PERP"'),
18
+ issuer: d('HIP-3 builder code ("" for native markets)'),
19
+ base_market: d("Display symbol without the HIP-3 issuer prefix"),
20
+ market_type: d("perp, spot or prediction"),
21
+ market_class: d("perp, spot, prediction or option"),
22
+ timestamp: d("Unix milliseconds"),
23
+ block_number: d("Hyperliquid block height"),
24
+ address: d("Wallet address (0x…)"),
25
+ side: d('Fill side, "buy" or "sell"'),
26
+ price: d("Price in USD"),
27
+ size: d("Size in base units"),
28
+ fee: d("Fee paid in USD"),
29
+ realized_pnl: d("Realized PnL in USD"),
30
+ venue: d("Venue, always hyperliquid"),
31
+ quote_asset: d("Quote asset, e.g. USDC"),
32
+ sequence: d("Order of the event within its block"),
33
+ from: d("Window start, Unix milliseconds"),
34
+ to: d("Window end, Unix milliseconds"),
35
+ window: d('Lookback window, e.g. "30d"'),
36
+ win_rate: d("Share of closed trades that were profitable, 0 to 1"),
37
+ profit_factor: d("Gross profit divided by gross loss"),
38
+ trades: d("Closed trades in the window"),
39
+ realized_pnl_usd: d("Realized PnL in USD"),
40
+ avg_notional_usd: d("Average trade size in USD"),
41
+ max_drawdown_pct: d("Largest peak-to-trough drop of the PnL curve, 0 to 1"),
42
+ last_trade_ms: d("Last trade, Unix milliseconds"),
43
+ };
44
+ const PAGINATION = obj("Cursor pagination", {
45
+ next_cursor: d("Pass as cursor to fetch the next page; null on the last page"),
46
+ has_more: d("Whether more rows exist"),
47
+ });
48
+ const page = (description, row) => obj(description, { data: arr(description, obj("One row", row)), pagination: PAGINATION });
49
+ const MARKET_ROW = {
50
+ source: F.source,
51
+ market: F.market,
52
+ issuer: F.issuer,
53
+ base_market: F.base_market,
54
+ display_symbol: F.display_symbol,
55
+ venue: F.venue,
56
+ quote_asset: F.quote_asset,
57
+ timestamp: F.timestamp,
58
+ };
59
+ const POSITION = obj("Open position", {
60
+ market: F.market,
61
+ market_class: F.market_class,
62
+ size: d("Signed size: positive long, negative short"),
63
+ entry_price: d("Average entry price"),
64
+ mark_price: d("Current mark price"),
65
+ position_value: d("Position value in USD"),
66
+ unrealized_pnl: d("Unrealized PnL in USD"),
67
+ realized_pnl: F.realized_pnl,
68
+ return_on_equity: d("Unrealized PnL divided by margin"),
69
+ leverage: d("Leverage"),
70
+ leverage_type: d("cross or isolated"),
71
+ });
72
+ const USER_STATE = obj("Open positions right now", {
73
+ address: F.address,
74
+ as_of_ts: d("Snapshot time, Unix milliseconds"),
75
+ asset_positions: arr("Open positions", POSITION),
76
+ margin_summary: obj("Account totals", {
77
+ total_position_value: d("Sum of position values in USD"),
78
+ total_unrealized_pnl: d("Sum of unrealized PnL in USD"),
79
+ total_realized_pnl: d("Sum of realized PnL in USD"),
80
+ open_markets_count: d("Markets with an open position"),
81
+ }),
82
+ });
83
+ const WALLET_STATS = {
84
+ address: F.address,
85
+ fills: d("Fills in the window"),
86
+ volume_usd: d("Traded notional in USD"),
87
+ realized_pnl: F.realized_pnl,
88
+ wins: d("Profitable closing fills"),
89
+ losses: d("Losing closing fills"),
90
+ maker_fills: d("Fills as maker"),
91
+ taker_fills: d("Fills as taker"),
92
+ pct_maker: d("Share of fills as maker, 0 to 1"),
93
+ };
94
+ const TRADER = {
95
+ address: F.address,
96
+ win_rate: F.win_rate,
97
+ profit_factor: F.profit_factor,
98
+ trades: F.trades,
99
+ realized_pnl_usd: F.realized_pnl_usd,
100
+ avg_notional_usd: F.avg_notional_usd,
101
+ last_trade_ms: F.last_trade_ms,
102
+ };
103
+ // Keyed by tool name. Every tool in tools.ts has an entry (pinned by a test).
104
+ export const outputSchemas = {
105
+ get_price: obj("Latest mark price", { market: F.market, price: F.price }),
106
+ get_recent_trades: page("Trades, newest first", {
107
+ ...MARKET_ROW,
108
+ market_type: F.market_type,
109
+ block_number: F.block_number,
110
+ sequence: F.sequence,
111
+ price: F.price,
112
+ size: F.size,
113
+ side: F.side,
114
+ address: F.address,
115
+ fee: F.fee,
116
+ realized_pnl: F.realized_pnl,
117
+ }),
118
+ get_candles: page("OHLCV candles", {
119
+ ...MARKET_ROW,
120
+ interval: d("Candle interval"),
121
+ open: d("Open price"),
122
+ high: d("High price"),
123
+ low: d("Low price"),
124
+ close: d("Close price"),
125
+ volume: d("Volume in base units"),
126
+ trade_count: d("Trades in the candle"),
127
+ }),
128
+ get_funding_rates: page("Hourly funding rates", {
129
+ ...MARKET_ROW,
130
+ rate: d("Hourly funding rate; positive means longs pay shorts"),
131
+ sequence: F.sequence,
132
+ }),
133
+ get_open_interest: page("Open interest samples", {
134
+ ...MARKET_ROW,
135
+ open_interest: d("Open interest in base units"),
136
+ volume_24h: d("24h volume in USD"),
137
+ }),
138
+ get_liquidations: page("Liquidations", {
139
+ ...MARKET_ROW,
140
+ market_type: F.market_type,
141
+ block_number: F.block_number,
142
+ address: d("Liquidated wallet"),
143
+ side: d('The liquidated wallet\'s fill side: "sell" closed a long, "buy" closed a short'),
144
+ price: F.price,
145
+ size: F.size,
146
+ realized_pnl: F.realized_pnl,
147
+ }),
148
+ get_liquidation_summary: obj("Liquidation totals over the window", {
149
+ from: F.from,
150
+ to: F.to,
151
+ market: d("Market filter, or null for all markets"),
152
+ count: d("Number of liquidations"),
153
+ notional_usd: d("Liquidated notional in USD"),
154
+ longs_liquidated_usd: d("Notional of liquidated longs in USD"),
155
+ shorts_liquidated_usd: d("Notional of liquidated shorts in USD"),
156
+ by_market: arr("Top markets by liquidated notional", obj("One market", { market: F.market, count: d("Liquidations"), notional_usd: d("Notional in USD") })),
157
+ largest: obj("Largest single liquidation, or null when there were none", {
158
+ market: F.market,
159
+ side: d('"long" or "short"'),
160
+ notional_usd: d("Notional in USD"),
161
+ price: F.price,
162
+ address: F.address,
163
+ timestamp: F.timestamp,
164
+ }),
165
+ complete: d("False when the page cap was hit and totals are a lower bound"),
166
+ }),
167
+ get_fills: page("Fills for one wallet, newest first", {
168
+ ...MARKET_ROW,
169
+ market_type: F.market_type,
170
+ block_number: F.block_number,
171
+ price: F.price,
172
+ size: F.size,
173
+ side: F.side,
174
+ direction: d('e.g. "Open Long", "Close Short"'),
175
+ fee: F.fee,
176
+ realized_pnl: F.realized_pnl,
177
+ address: F.address,
178
+ }),
179
+ get_mark_prices: page("Mark price samples", {
180
+ ...MARKET_ROW,
181
+ mark_price: d("Mark price"),
182
+ oracle_price: d("Oracle price"),
183
+ funding_rate: d("Current hourly funding rate"),
184
+ }),
185
+ get_vault_operations: page("Vault deposits and withdrawals", {
186
+ source: F.source,
187
+ timestamp: F.timestamp,
188
+ block_number: F.block_number,
189
+ address: d("Depositor"),
190
+ vault: d("Vault address"),
191
+ operation: d("deposit or withdraw"),
192
+ token: d("Token, usually USDC"),
193
+ requested_amount: d("Requested amount"),
194
+ net_amount: d("Amount after commission and closing cost"),
195
+ commission: d("Leader commission"),
196
+ closing_cost: d("Cost of closing positions for the withdrawal"),
197
+ }),
198
+ get_liquidation_levels: obj("Liquidated notional by price bucket", {
199
+ data: arr("Price buckets", obj("One bucket", { market: F.market })),
200
+ }),
201
+ get_vault_leaderboard: obj("Vaults ranked by net deposits", {
202
+ data: arr("Vaults", obj("One vault", { vault: d("Vault address") })),
203
+ }),
204
+ get_funding_stats: obj("Funding statistics per time bucket", {
205
+ data: arr("Buckets", obj("One bucket", {
206
+ source: F.source,
207
+ market: F.market,
208
+ bucket: d("Bucket start, Unix milliseconds"),
209
+ avg_rate: d("Average hourly rate"),
210
+ min_rate: d("Lowest hourly rate"),
211
+ max_rate: d("Highest hourly rate"),
212
+ cumulative_rate: d("Sum of hourly rates in the bucket"),
213
+ })),
214
+ }),
215
+ get_user_state: USER_STATE,
216
+ get_user_funding: obj("Funding paid or received per market per bucket", {
217
+ total_rows: d("Rows in the window before the limit"),
218
+ returned: d("Rows in data, most recent first"),
219
+ address: F.address,
220
+ bucket: d("Bucket size"),
221
+ from: F.from,
222
+ to: F.to,
223
+ data: arr("Buckets", obj("One bucket and market", {
224
+ bucket_start: d("Bucket start, Unix milliseconds"),
225
+ market: F.market,
226
+ market_class: F.market_class,
227
+ funding_payment: d("USD; positive received, negative paid"),
228
+ avg_position: d("Average position size"),
229
+ avg_funding_rate: d("Average hourly rate"),
230
+ interval_count: d("Hourly payments in the bucket"),
231
+ })),
232
+ }),
233
+ get_user_maker_taker: obj("Maker vs taker breakdown", {
234
+ address: F.address,
235
+ from: F.from,
236
+ to: F.to,
237
+ data: arr("Per market", obj("One market", { market: F.market })),
238
+ total: obj("All markets", {
239
+ maker_fills: d("Fills as maker"),
240
+ taker_fills: d("Fills as taker"),
241
+ maker_notional: d("Maker notional in USD"),
242
+ taker_notional: d("Taker notional in USD"),
243
+ maker_fee: d("Maker fees in USD; negative means rebates"),
244
+ taker_fee: d("Taker fees in USD"),
245
+ total_fills: d("All fills"),
246
+ pct_maker: d("Share of fills as maker, 0 to 1"),
247
+ }),
248
+ }),
249
+ get_user_ledger: obj("Vault and transfer ledger", {
250
+ address: F.address,
251
+ from: F.from,
252
+ to: F.to,
253
+ data: arr("Ledger entries", obj("One entry", { timestamp: F.timestamp, type: d("Event type"), amount: d("USD; positive into the account") })),
254
+ }),
255
+ get_pnl_leaderboard: obj("Wallets ranked over the window", {
256
+ from: F.from,
257
+ to: F.to,
258
+ sort_by: d("Ranking metric"),
259
+ data: arr("Wallets", obj("One wallet", {
260
+ ...WALLET_STATS,
261
+ win_rate: F.win_rate,
262
+ markets_count: d("Markets traded"),
263
+ max_drawdown_pct: F.max_drawdown_pct,
264
+ })),
265
+ }),
266
+ get_market_top_wallets: obj("Top wallets on one market", {
267
+ market: F.market,
268
+ from: F.from,
269
+ to: F.to,
270
+ sort_by: d("Ranking metric"),
271
+ data: arr("Wallets", obj("One wallet", {
272
+ ...WALLET_STATS,
273
+ first_seen_ms: d("First fill in the window, Unix milliseconds"),
274
+ last_seen_ms: d("Last fill in the window, Unix milliseconds"),
275
+ })),
276
+ }),
277
+ get_markets_snapshot: obj("Markets ranked by the requested key", {
278
+ sort_by: d("Ranking key used"),
279
+ order: d("desc or asc"),
280
+ total_markets: d("Active markets before filtering"),
281
+ matched: d("Markets past the volume floor"),
282
+ returned: d("Rows in data"),
283
+ data: arr("Ranked markets", obj("One market", {
284
+ market_id: d("Stable market id"),
285
+ display_symbol: F.display_symbol,
286
+ market_class: F.market_class,
287
+ issuer: F.issuer,
288
+ mark_price: d("Current mark price"),
289
+ mark_24h_ago: d("Mark price 24h ago"),
290
+ change_24h_pct: d("24h change as a fraction, e.g. -0.031 for -3.1%"),
291
+ open_interest_base: d("Open interest in base units"),
292
+ open_interest_usd: d("Open interest in USD"),
293
+ funding_rate: d("Current hourly funding rate"),
294
+ mark_ts_ms: d("Mark sample time, Unix milliseconds"),
295
+ volume_24h_usd: d("24h volume in USD"),
296
+ })),
297
+ }),
298
+ get_user_summary: obj("One wallet over a window", {
299
+ address: F.address,
300
+ from: F.from,
301
+ to: F.to,
302
+ state: USER_STATE,
303
+ window: obj("Window totals", {
304
+ fill_count: d("Fills"),
305
+ volume_usd: d("Traded notional in USD"),
306
+ realized_pnl: F.realized_pnl,
307
+ wins: d("Profitable closing fills"),
308
+ losses: d("Losing closing fills"),
309
+ win_rate: F.win_rate,
310
+ fees: d("Fees in USD"),
311
+ maker_notional: d("Maker notional in USD"),
312
+ taker_notional: d("Taker notional in USD"),
313
+ maker_fills: d("Fills as maker"),
314
+ taker_fills: d("Fills as taker"),
315
+ pct_maker: d("Share of fills as maker, 0 to 1"),
316
+ }),
317
+ }),
318
+ get_wallet_labels: {
319
+ ...obj("Labels for notable wallets", {
320
+ generated_at: d("Unix milliseconds"),
321
+ ttl_seconds: d("Cache lifetime"),
322
+ source: F.source,
323
+ labels: {
324
+ type: "object",
325
+ description: "Address to its labels",
326
+ additionalProperties: arr("Labels", obj("One label", { kind: d("whale, smart_money, vault or vault_leader"), name: d("Display label"), rank: d("Rank") })),
327
+ },
328
+ counts: d("Wallets per label kind"),
329
+ note: d("What the labels map includes"),
330
+ }),
331
+ },
332
+ get_user_pnl_series: obj("Realized PnL per bucket", {
333
+ address: F.address,
334
+ from: F.from,
335
+ to: F.to,
336
+ bucket: d("Bucket size"),
337
+ data: arr("Buckets", obj("One bucket", { ts: d("Bucket start, Unix milliseconds"), realized_pnl: F.realized_pnl, fees_usd: d("Fees in USD") })),
338
+ }),
339
+ get_top_traders: obj("Traders ranked across all markets", {
340
+ window: F.window,
341
+ sort: d("Ranking used"),
342
+ traders: arr("Traders", obj("One trader", {
343
+ ...TRADER,
344
+ max_drawdown_pct: F.max_drawdown_pct,
345
+ first_trade_ms: d("First trade, Unix milliseconds"),
346
+ taker_share: d("Share of volume as taker, 0 to 1"),
347
+ liquidations: d("Liquidations in the window"),
348
+ top_pairs: d("Best markets with their win rates"),
349
+ })),
350
+ aggregate: obj("Totals", {
351
+ trader_count: d("Traders ranked"),
352
+ total_pnl_usd: d("Sum of realized PnL in USD"),
353
+ active_today: d("Traders active today"),
354
+ }),
355
+ }),
356
+ get_market_leaders: obj("Best traders on one market", {
357
+ market: F.market,
358
+ window: F.window,
359
+ traders: arr("Traders", obj("One trader", TRADER)),
360
+ }),
361
+ get_early_movers: obj("Wallets whose large orders preceded moves", {
362
+ market: F.market,
363
+ window: F.window,
364
+ formula: d("How the lead score is computed"),
365
+ signals: arr("Wallets", obj("One wallet", {
366
+ address: F.address,
367
+ events: d("Scored large orders"),
368
+ notional_usd: d("Notional of scored orders in USD"),
369
+ lead_score_bps: d("Notional-weighted 30-minute forward return, basis points"),
370
+ hit_rate: d("Share of orders followed by a move in their direction"),
371
+ last_event_ms: d("Last scored order, Unix milliseconds"),
372
+ cancel_ratio_30d: d("Share of large orders cancelled without a fill"),
373
+ })),
374
+ }),
375
+ get_trader_profile: obj("One wallet's trading record", {
376
+ address: F.address,
377
+ window: F.window,
378
+ overall: obj("Headline stats", {
379
+ win_rate: F.win_rate,
380
+ profit_factor: F.profit_factor,
381
+ trades: F.trades,
382
+ max_drawdown_pct: F.max_drawdown_pct,
383
+ realized_pnl_usd: F.realized_pnl_usd,
384
+ first_trade_ms: d("First trade, Unix milliseconds"),
385
+ }),
386
+ markets: arr("Best markets, ranked", obj("One market", {
387
+ market: F.market,
388
+ win_rate: F.win_rate,
389
+ profit_factor: F.profit_factor,
390
+ trades: F.trades,
391
+ avg_notional_usd: F.avg_notional_usd,
392
+ realized_pnl_usd: F.realized_pnl_usd,
393
+ rank: d("Rank among the wallet's markets"),
394
+ last_trade_ms: F.last_trade_ms,
395
+ })),
396
+ liquidation_count: d("Liquidations in the window"),
397
+ trades: d("Recent round-trip trades"),
398
+ }),
399
+ list_cohorts: obj("Wallet cohorts", {
400
+ data: arr("Cohorts", obj("One cohort", { name: d("Cohort name"), description: d("What the cohort contains") })),
401
+ }),
402
+ get_cohort_addresses: obj("Wallets in a cohort", {
403
+ addresses: arr("Wallets", obj("One wallet", { address: F.address, value: d("The metric the cohort ranks by") })),
404
+ fetched_at: d("Unix milliseconds"),
405
+ }),
406
+ get_status: obj("Service status", {
407
+ status: d("operational, degraded or down"),
408
+ timestamp: F.timestamp,
409
+ uptime: d("Time since the last incident"),
410
+ platform: d("Event and market counts"),
411
+ venues: d("Freshness per venue"),
412
+ components: d("data_pipeline, rest_api and streaming health"),
413
+ }),
414
+ get_status_metrics: obj("Rolling performance metrics", {
415
+ api: d("Latency and error rate"),
416
+ pipeline: d("Ingestion latency and throughput"),
417
+ synthetic: d("Synthetic probe latencies"),
418
+ timestamp: F.timestamp,
419
+ }),
420
+ get_status_history: obj("Hourly status timeline", {
421
+ points: arr("Hourly buckets", obj("One hour", { ts: d("Hour start, Unix milliseconds"), status: d("Worst status in the hour"), fresh_sec: d("Data age in seconds") })),
422
+ uptime_percent: d("Share of operational hours"),
423
+ period: d("24h or 7d"),
424
+ }),
425
+ list_markets: obj("Active markets", {
426
+ total_markets: d("Active markets before search"),
427
+ matched: d("Markets matching the search"),
428
+ returned: d("Rows in data"),
429
+ data: arr("Markets", obj("One market", {
430
+ market_id: d("Stable market id"),
431
+ source: F.source,
432
+ market_class: F.market_class,
433
+ issuer: F.issuer,
434
+ base_asset: d("Base asset"),
435
+ quote_asset: F.quote_asset,
436
+ base_market: F.base_market,
437
+ display_symbol: F.display_symbol,
438
+ hl_coin: d("Hyperliquid coin string"),
439
+ active_from_ms: d("Listing time, Unix milliseconds"),
440
+ max_leverage: d("Maximum leverage"),
441
+ })),
442
+ }),
443
+ };
444
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
package/build/server.d.ts CHANGED
@@ -2,4 +2,5 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
2
  import type { IronflowAPI } from "./api.js";
3
3
  export declare function packageVersion(): string;
4
4
  export declare function createServer(api: IronflowAPI, version: string): Server;
5
+ export declare function structuredFrom(text: string): Record<string, unknown>;
5
6
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAKnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAS5C,wBAAgB,cAAc,IAAI,MAAM,CAQvC;AAGD,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAkCtE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAKnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAe5C,wBAAgB,cAAc,IAAI,MAAM,CAQvC;AAGD,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA+CtE;AAOD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUpE"}
package/build/server.js CHANGED
@@ -5,7 +5,11 @@ import { dirname, join } from "node:path";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
7
7
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
8
+ import { fitToBudget } from "./budget.js";
9
+ import { outputSchemas } from "./schemas.js";
8
10
  import { tools } from "./tools.js";
11
+ // One-line summary for MCP directories and client server lists.
12
+ const DESCRIPTION = "Read-only Hyperliquid market data and wallet analytics from our own nodes: trades, funding, liquidations, open interest, wallet PnL and trader rankings. Native perps, HIP-3, HIP-4 and spot. No API key needed.";
9
13
  // Server-level guidance the client shows the model alongside the tool list.
10
14
  const INSTRUCTIONS = "Read-only Hyperliquid market data from Ironflow's own nodes: trades, candles, funding, open interest, liquidations, mark prices, market snapshots and wallet analytics for native perps, HIP-3 builder markets and spot. Markets use display symbols such as BTC-PERP or xyz:NVDA-PERP; call list_markets when unsure. Keyless use allows 10 requests per minute and 24 hours of history; a free key from https://ironflow.sh/key raises that to 60 per minute and 30 days.";
11
15
  // Reads the package version from package.json so MCP clients see the real
@@ -22,12 +26,23 @@ export function packageVersion() {
22
26
  }
23
27
  // createServer wires the tool list and tool calls to one API client.
24
28
  export function createServer(api, version) {
25
- const server = new Server({ name: "ironflow", version }, { capabilities: { tools: {} }, instructions: INSTRUCTIONS });
29
+ const server = new Server({
30
+ name: "ironflow",
31
+ title: "Ironflow Hyperliquid",
32
+ version,
33
+ description: DESCRIPTION,
34
+ websiteUrl: "https://ironflow.sh/api#mcp",
35
+ icons: [
36
+ { src: "https://ironflow.sh/apple-touch-icon.png", mimeType: "image/png", sizes: ["256x256"] },
37
+ { src: "https://ironflow.sh/favicon.svg", mimeType: "image/svg+xml", sizes: ["any"] },
38
+ ],
39
+ }, { capabilities: { tools: {} }, instructions: INSTRUCTIONS });
26
40
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
27
41
  tools: tools.map((t) => ({
28
42
  name: t.name,
29
43
  description: t.description,
30
44
  inputSchema: t.inputSchema,
45
+ outputSchema: outputSchemas[t.name],
31
46
  annotations: { readOnlyHint: true, openWorldHint: true },
32
47
  })),
33
48
  }));
@@ -41,8 +56,10 @@ export function createServer(api, version) {
41
56
  };
42
57
  }
43
58
  try {
44
- const result = await tool.handler(args ?? {}, api);
45
- return { content: [{ type: "text", text: result }] };
59
+ const structured = structuredFrom(await tool.handler(args ?? {}, api));
60
+ // Compact JSON, trimmed to fit a client's per-result limit.
61
+ const text = fitToBudget(structured);
62
+ return { content: [{ type: "text", text }], structuredContent: JSON.parse(text) };
46
63
  }
47
64
  catch (error) {
48
65
  const message = error instanceof Error ? error.message : String(error);
@@ -51,4 +68,21 @@ export function createServer(api, version) {
51
68
  });
52
69
  return server;
53
70
  }
71
+ // structuredFrom turns a tool's JSON text into MCP structured output. Every
72
+ // tool declares an output schema, and clients reject a successful result
73
+ // without structuredContent, so anything that is not a JSON object is
74
+ // wrapped as { result }. The schemas mark no field required, so the wrapper
75
+ // still validates.
76
+ export function structuredFrom(text) {
77
+ try {
78
+ const parsed = JSON.parse(text);
79
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
80
+ return parsed;
81
+ }
82
+ return { result: parsed };
83
+ }
84
+ catch {
85
+ return { result: text };
86
+ }
87
+ }
54
88
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ type Row = Record<string, unknown>;
2
+ export declare const DEFAULT_MARKETS_LIMIT = 100;
3
+ export declare const DEFAULT_FUNDING_ROWS = 200;
4
+ export declare function shapeMarkets(resp: {
5
+ data?: Row[];
6
+ }, opts: {
7
+ search?: string;
8
+ limit?: number;
9
+ }): {
10
+ total_markets: number;
11
+ matched: number;
12
+ returned: number;
13
+ data: Row[];
14
+ };
15
+ export declare function shapeWalletLabels(resp: {
16
+ counts?: unknown;
17
+ labels?: Record<string, Row[]>;
18
+ } & Row, opts: {
19
+ addresses?: string[];
20
+ }): {
21
+ counts: unknown;
22
+ labels: {
23
+ [k: string]: Row[];
24
+ };
25
+ note: string;
26
+ };
27
+ export declare function shapeUserFunding(resp: {
28
+ data?: Row[];
29
+ } & Row, limit?: number): {
30
+ total_rows: number;
31
+ returned: number;
32
+ data: Row[];
33
+ };
34
+ export {};
35
+ //# sourceMappingURL=shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape.d.ts","sourceRoot":"","sources":["../src/shape.ts"],"names":[],"mappings":"AAKA,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAqBxC,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;CAAE,EAAE,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;EAU7F;AAOD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;CAAE,GAAG,GAAG,EAChE,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE;;;;;;EAc/B;AAGD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;CAAE,GAAG,GAAG,EAAE,KAAK,SAAuB;;;;EAI1F"}
package/build/shape.js ADDED
@@ -0,0 +1,56 @@
1
+ // Reshaping for tools whose raw API responses are far larger than an MCP
2
+ // client accepts in one result: the market registry (about 9M characters with
3
+ // HIP-4 metadata), wallet labels (every vault address) and per-bucket wallet
4
+ // funding. Each keeps what an agent asks for and reports what it left out.
5
+ export const DEFAULT_MARKETS_LIMIT = 100;
6
+ export const DEFAULT_FUNDING_ROWS = 200;
7
+ const MARKET_FIELDS = [
8
+ "market_id",
9
+ "display_symbol",
10
+ "market_class",
11
+ "issuer",
12
+ "base_asset",
13
+ "quote_asset",
14
+ "base_market",
15
+ "hl_coin",
16
+ "max_leverage",
17
+ "active_from_ms",
18
+ ];
19
+ const pick = (row, keys) => Object.fromEntries(keys.filter((k) => k in row).map((k) => [k, row[k]]));
20
+ // shapeMarkets filters the registry by a case-insensitive search over the
21
+ // symbol, base asset and Hyperliquid coin, drops the per-market metadata blob
22
+ // and keeps the first `limit` rows.
23
+ export function shapeMarkets(resp, opts) {
24
+ const rows = resp.data ?? [];
25
+ const q = opts.search?.trim().toLowerCase();
26
+ const matched = q
27
+ ? rows.filter((r) => [r.display_symbol, r.base_asset, r.hl_coin].some((v) => String(v ?? "").toLowerCase().includes(q)))
28
+ : rows;
29
+ const data = matched.slice(0, opts.limit ?? DEFAULT_MARKETS_LIMIT).map((r) => pick(r, MARKET_FIELDS));
30
+ return { total_markets: rows.length, matched: matched.length, returned: data.length, data };
31
+ }
32
+ const LISTED_KINDS = new Set(["whale", "smart_money"]);
33
+ // shapeWalletLabels returns labels for the requested addresses, or, without
34
+ // addresses, every whale and smart-money wallet (plain vault entries run into
35
+ // the thousands and are left out).
36
+ export function shapeWalletLabels(resp, opts) {
37
+ const labels = resp.labels ?? {};
38
+ const wanted = opts.addresses?.map((a) => a.toLowerCase());
39
+ const keep = wanted
40
+ ? Object.entries(labels).filter(([addr]) => wanted.includes(addr.toLowerCase()))
41
+ : Object.entries(labels).filter(([, ls]) => ls.some((l) => LISTED_KINDS.has(String(l.kind))));
42
+ return {
43
+ counts: resp.counts,
44
+ labels: Object.fromEntries(keep),
45
+ note: wanted
46
+ ? "Addresses without an entry have no label."
47
+ : "Whales and smart money only. Pass addresses to check any wallet, including vaults and vault leaders.",
48
+ };
49
+ }
50
+ // shapeUserFunding keeps the most recent `limit` funding rows.
51
+ export function shapeUserFunding(resp, limit = DEFAULT_FUNDING_ROWS) {
52
+ const rows = [...(resp.data ?? [])].sort((a, b) => Number(b.bucket_start ?? 0) - Number(a.bucket_start ?? 0));
53
+ const data = rows.slice(0, limit);
54
+ return { ...resp, total_rows: rows.length, returned: data.length, data };
55
+ }
56
+ //# sourceMappingURL=shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape.js","sourceRoot":"","sources":["../src/shape.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export declare const SORT_KEYS: readonly ["volume", "open_interest", "funding", "abs_funding", "change_24h", "abs_change_24h"];
2
+ export type SortKey = (typeof SORT_KEYS)[number];
3
+ export declare const DEFAULT_LIMIT = 25;
4
+ export declare const MAX_LIMIT = 200;
5
+ type Row = Record<string, unknown>;
6
+ export interface RankOptions {
7
+ sortBy?: SortKey;
8
+ order?: "asc" | "desc";
9
+ limit?: number;
10
+ minVolumeUsd?: number;
11
+ }
12
+ export interface RankedSnapshot {
13
+ sort_by: SortKey;
14
+ order: "asc" | "desc";
15
+ total_markets: number;
16
+ matched: number;
17
+ returned: number;
18
+ data: Row[];
19
+ }
20
+ export declare function rankSnapshot(rows: Row[], opts: RankOptions): RankedSnapshot;
21
+ export {};
22
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,gGAAiG,CAAC;AACxH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnC,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAoBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,cAAc,CAgB3E"}
@@ -0,0 +1,40 @@
1
+ // Ranking for get_markets_snapshot. The API returns every active market
2
+ // (about 140k characters for perps alone), more than MCP clients accept in one
3
+ // tool result, so the tool sorts, filters and trims before answering.
4
+ export const SORT_KEYS = ["volume", "open_interest", "funding", "abs_funding", "change_24h", "abs_change_24h"];
5
+ export const DEFAULT_LIMIT = 25;
6
+ export const MAX_LIMIT = 200;
7
+ const num = (v) => {
8
+ const n = typeof v === "number" ? v : Number(v);
9
+ return Number.isFinite(n) ? n : 0;
10
+ };
11
+ // sortValue maps a row to the number it is ranked by.
12
+ const sortValue = {
13
+ volume: (r) => num(r.volume_24h_usd),
14
+ open_interest: (r) => num(r.open_interest_usd),
15
+ funding: (r) => num(r.funding_rate),
16
+ abs_funding: (r) => Math.abs(num(r.funding_rate)),
17
+ change_24h: (r) => num(r.change_24h_pct),
18
+ abs_change_24h: (r) => Math.abs(num(r.change_24h_pct)),
19
+ };
20
+ // rankSnapshot filters rows by 24h volume, sorts them and keeps the top
21
+ // `limit`. total_markets counts every row; matched counts rows past the
22
+ // volume floor.
23
+ export function rankSnapshot(rows, opts) {
24
+ const sortBy = opts.sortBy ?? "volume";
25
+ if (!SORT_KEYS.includes(sortBy)) {
26
+ throw new Error(`"sort_by" must be one of ${SORT_KEYS.join(", ")}`);
27
+ }
28
+ const order = opts.order ?? "desc";
29
+ const limit = opts.limit ?? DEFAULT_LIMIT;
30
+ if (!Number.isInteger(limit) || limit < 1 || limit > MAX_LIMIT) {
31
+ throw new Error(`"limit" must be between 1 and ${MAX_LIMIT}`);
32
+ }
33
+ const floor = opts.minVolumeUsd ?? 0;
34
+ const value = sortValue[sortBy];
35
+ const matched = rows.filter((r) => num(r.volume_24h_usd) >= floor);
36
+ const sorted = [...matched].sort((a, b) => (order === "desc" ? value(b) - value(a) : value(a) - value(b)));
37
+ const data = sorted.slice(0, limit);
38
+ return { sort_by: sortBy, order, total_markets: rows.length, matched: matched.length, returned: data.length, data };
39
+ }
40
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIvC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;QACnF,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/E;AAiCD,eAAO,MAAM,KAAK,EAAE,OAAO,EAwqB1B,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAMvC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;QACnF,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/E;AAiCD,eAAO,MAAM,KAAK,EAAE,OAAO,EAgsB1B,CAAC"}
package/build/tools.js CHANGED
@@ -1,5 +1,7 @@
1
1
  // MCP tool definitions for Ironflow market data.
2
2
  import { MAX_SUMMARY_MINUTES, summarizeLiquidations } from "./liquidations.js";
3
+ import { MAX_LIMIT, rankSnapshot, SORT_KEYS } from "./snapshot.js";
4
+ import { DEFAULT_FUNDING_ROWS, DEFAULT_MARKETS_LIMIT, shapeMarkets, shapeUserFunding, shapeWalletLabels } from "./shape.js";
3
5
  // ─── Arg validation helpers ──────────────────────────────────────────────────
4
6
  function requireString(args, key) {
5
7
  const val = args[key];
@@ -42,7 +44,7 @@ export const tools = [
42
44
  handler: async (args, api) => {
43
45
  const market = requireString(args, "market");
44
46
  const price = await api.getPrice(market);
45
- return `${market}: $${price}`;
47
+ return JSON.stringify({ market, price });
46
48
  },
47
49
  },
48
50
  {
@@ -301,6 +303,7 @@ export const tools = [
301
303
  from: { type: "number", description: "Unix ms window start (inclusive)" },
302
304
  to: { type: "number", description: "Unix ms window end (exclusive)" },
303
305
  bucket: { type: "string", enum: ["1h", "1d", "raw"], description: "Aggregation bucket; default 1d" },
306
+ limit: { type: "number", description: `Most recent rows to return (default ${DEFAULT_FUNDING_ROWS})` },
304
307
  },
305
308
  required: ["address"],
306
309
  },
@@ -310,8 +313,8 @@ export const tools = [
310
313
  const from = optionalNumber(args, "from", 0);
311
314
  const to = optionalNumber(args, "to", 0);
312
315
  const bucket = optionalString(args, "bucket", "1d");
313
- const data = await api.getUserFunding(address, market, from, to, bucket);
314
- return JSON.stringify(data, null, 2);
316
+ const data = (await api.getUserFunding(address, market, from, to, bucket));
317
+ return JSON.stringify(shapeUserFunding(data, optionalNumber(args, "limit", DEFAULT_FUNDING_ROWS)));
315
318
  },
316
319
  },
317
320
  {
@@ -417,7 +420,7 @@ export const tools = [
417
420
  },
418
421
  {
419
422
  name: "get_markets_snapshot",
420
- description: "Every active Hyperliquid market in one call: mark price, 24h change, open interest and latest funding. Use it to scan for funding extremes or big movers. Filter by market_class or HIP-3 issuer.",
423
+ description: "Active Hyperliquid markets ranked in one call: mark price, 24h change, 24h volume, open interest and current hourly funding. Sort by abs_funding for the most extreme funding, abs_change_24h for the biggest movers, or volume (default). Use min_volume_usd to skip illiquid markets. Returns the top 25 unless limit is set.",
421
424
  inputSchema: {
422
425
  type: "object",
423
426
  properties: {
@@ -428,16 +431,30 @@ export const tools = [
428
431
  },
429
432
  issuer: {
430
433
  type: "string",
431
- description: "HIP-3 builder code (e.g. 'flx'). Omit to include every issuer.",
434
+ description: "HIP-3 builder code (e.g. 'xyz'). Omit to include every issuer.",
435
+ },
436
+ sort_by: {
437
+ type: "string",
438
+ description: "Ranking key (default volume). funding_rate is hourly; positive means longs pay shorts.",
439
+ enum: [...SORT_KEYS],
432
440
  },
441
+ order: { type: "string", description: "desc (default) or asc", enum: ["desc", "asc"] },
442
+ limit: { type: "number", description: `Rows to return (1-${MAX_LIMIT}, default 25)` },
443
+ min_volume_usd: { type: "number", description: "Skip markets with less 24h volume than this (USD)" },
433
444
  },
434
445
  required: [],
435
446
  },
436
447
  handler: async (args, api) => {
437
448
  const marketClass = optionalString(args, "market_class", "");
438
449
  const issuer = optionalString(args, "issuer", "");
439
- const data = await api.getMarketsSnapshot(marketClass, issuer);
440
- return JSON.stringify(data, null, 2);
450
+ const resp = (await api.getMarketsSnapshot(marketClass, issuer));
451
+ const ranked = rankSnapshot(resp.data ?? [], {
452
+ sortBy: optionalString(args, "sort_by", "volume"),
453
+ order: optionalString(args, "order", "desc") === "asc" ? "asc" : "desc",
454
+ limit: optionalNumber(args, "limit", 25),
455
+ minVolumeUsd: args.min_volume_usd === undefined ? 0 : Number(args.min_volume_usd),
456
+ });
457
+ return JSON.stringify(ranked);
441
458
  },
442
459
  },
443
460
  {
@@ -462,10 +479,11 @@ export const tools = [
462
479
  },
463
480
  {
464
481
  name: "get_wallet_labels",
465
- description: "Labels for notable Hyperliquid wallets: top whales by 24h volume, top traders by 30-day realized PnL, vaults and vault leaders. Returns a map of address to labels; fetch once and look addresses up locally.",
482
+ description: "Labels for notable Hyperliquid wallets: top whales by 24h volume, top traders by 30-day realized PnL, vaults and vault leaders. Pass addresses to check specific wallets; without them it lists the whales and smart money.",
466
483
  inputSchema: {
467
484
  type: "object",
468
485
  properties: {
486
+ addresses: { type: "string", description: "Comma-separated wallet addresses to look up" },
469
487
  whale_top_n: { type: "number", description: "Top N whales to include (max 500, default 100)" },
470
488
  smart_top_n: { type: "number", description: "Top N smart-money wallets to include (max 500, default 100)" },
471
489
  },
@@ -474,8 +492,12 @@ export const tools = [
474
492
  handler: async (args, api) => {
475
493
  const whaleN = optionalNumber(args, "whale_top_n", 100);
476
494
  const smartN = optionalNumber(args, "smart_top_n", 100);
477
- const data = await api.getWalletLabels(whaleN, smartN);
478
- return JSON.stringify(data, null, 2);
495
+ const addresses = optionalString(args, "addresses", "")
496
+ .split(",")
497
+ .map((a) => a.trim())
498
+ .filter(Boolean);
499
+ const data = (await api.getWalletLabels(whaleN, smartN));
500
+ return JSON.stringify(shapeWalletLabels(data, { addresses: addresses.length ? addresses : undefined }));
479
501
  },
480
502
  },
481
503
  {
@@ -650,7 +672,7 @@ export const tools = [
650
672
  },
651
673
  {
652
674
  name: "list_markets",
653
- description: "Every active Hyperliquid market with its display symbol, class (perp, spot, prediction), HIP-3 issuer and base asset. Call it when unsure how a market is named.",
675
+ description: "Active Hyperliquid markets with display symbol, class (perp, spot, prediction), HIP-3 issuer and base asset. Use search to find how a market is named (e.g. search 'nvda' finds xyz:NVDA-PERP).",
654
676
  inputSchema: {
655
677
  type: "object",
656
678
  properties: {
@@ -664,6 +686,8 @@ export const tools = [
664
686
  type: "string",
665
687
  description: "HIP-3 issuer code (e.g. 'flx'). Pass empty string '' to return only native non-builder markets. Omit to include every issuer.",
666
688
  },
689
+ search: { type: "string", description: "Case-insensitive match on symbol, base asset or Hyperliquid coin" },
690
+ limit: { type: "number", description: `Rows to return (default ${DEFAULT_MARKETS_LIMIT})` },
667
691
  },
668
692
  required: [],
669
693
  },
@@ -674,8 +698,8 @@ export const tools = [
674
698
  const issuer = Object.prototype.hasOwnProperty.call(args, "issuer")
675
699
  ? optionalString(args, "issuer", "")
676
700
  : undefined;
677
- const data = await api.listMarkets(source, market_class, issuer);
678
- return JSON.stringify(data, null, 2);
701
+ const data = (await api.listMarkets(source, market_class, issuer));
702
+ return JSON.stringify(shapeMarkets(data, { search: optionalString(args, "search", ""), limit: optionalNumber(args, "limit", DEFAULT_MARKETS_LIMIT) }));
679
703
  },
680
704
  },
681
705
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ironflowsh/mcp",
3
- "version": "0.8.0",
3
+ "version": "0.8.3",
4
4
  "mcpName": "io.github.ironflowsh/mcp",
5
5
  "description": "Read-only Hyperliquid market data and wallet analytics MCP server for Claude, Cursor and AI agents",
6
6
  "author": "Ironflow <hello@ironflow.sh>",