@ironflowsh/mcp 0.8.3 → 0.11.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 +37 -23
- package/build/api.d.ts +36 -9
- package/build/api.d.ts.map +1 -1
- package/build/api.js +120 -48
- package/build/api.js.map +1 -1
- package/build/http.js +28 -5
- package/build/http.js.map +1 -1
- package/build/index.js +4 -3
- package/build/index.js.map +1 -1
- package/build/notice.d.ts +10 -0
- package/build/notice.d.ts.map +1 -0
- package/build/notice.js +82 -0
- package/build/notice.js.map +1 -0
- package/build/query.d.ts +24 -0
- package/build/query.d.ts.map +1 -0
- package/build/query.js +117 -0
- package/build/query.js.map +1 -0
- package/build/schemas.d.ts.map +1 -1
- package/build/schemas.js +62 -5
- package/build/schemas.js.map +1 -1
- package/build/server.d.ts +9 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +29 -10
- package/build/server.js.map +1 -1
- package/build/shape.d.ts +14 -3
- package/build/shape.d.ts.map +1 -1
- package/build/shape.js +28 -12
- package/build/shape.js.map +1 -1
- package/build/tools.d.ts +1 -0
- package/build/tools.d.ts.map +1 -1
- package/build/tools.js +235 -73
- package/build/tools.js.map +1 -1
- package/build/usage.d.ts +15 -0
- package/build/usage.d.ts.map +1 -0
- package/build/usage.js +66 -0
- package/build/usage.js.map +1 -0
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
// Usage:
|
|
5
5
|
// IRONFLOW_API_KEY=if_xxx npx -y @ironflowsh/mcp
|
|
6
6
|
//
|
|
7
|
-
// The key is optional: keyless calls get 10 requests per minute
|
|
8
|
-
// of history; a free key from https://ironflow.sh/key gives 60
|
|
7
|
+
// The key is optional: keyless calls get 10 requests per minute, 500 per day
|
|
8
|
+
// and 24 hours of history; a free key from https://ironflow.sh/key gives 60
|
|
9
|
+
// per minute and 30 days.
|
|
9
10
|
// No install needed at all with the hosted server:
|
|
10
11
|
// claude mcp add --transport http ironflow https://mcp.ironflow.sh/mcp
|
|
11
12
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
@@ -15,7 +16,7 @@ const apiUrl = process.env.IRONFLOW_API_URL || "https://api.ironflow.sh";
|
|
|
15
16
|
const apiKey = process.env.IRONFLOW_API_KEY;
|
|
16
17
|
if (!apiKey) {
|
|
17
18
|
// stderr: stdout carries the MCP protocol.
|
|
18
|
-
console.error("IRONFLOW_API_KEY is not set: running keyless (10 requests per minute, 24 hours of history). Free key for more: https://ironflow.sh/key");
|
|
19
|
+
console.error("IRONFLOW_API_KEY is not set: running keyless (10 requests per minute, 500 per day, 24 hours of history). Free key for more: https://ironflow.sh/key");
|
|
19
20
|
}
|
|
20
21
|
const version = packageVersion();
|
|
21
22
|
const server = createServer(new IronflowAPI(apiUrl, apiKey, undefined, version), version);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,yEAAyE;AACzE,EAAE;AACF,SAAS;AACT,mDAAmD;AACnD,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,mDAAmD;AACnD,yEAAyE;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,yBAAyB,CAAC;AACzE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAE5C,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,2CAA2C;IAC3C,OAAO,CAAC,KAAK,CACX,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,yEAAyE;AACzE,EAAE;AACF,SAAS;AACT,mDAAmD;AACnD,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,0BAA0B;AAC1B,mDAAmD;AACnD,yEAAyE;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,yBAAyB,CAAC;AACzE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAE5C,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,2CAA2C;IAC3C,OAAO,CAAC,KAAK,CACX,qJAAqJ,CACtJ,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;AACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1F,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ApiNotice {
|
|
2
|
+
requestedMarket?: string;
|
|
3
|
+
market?: string;
|
|
4
|
+
historyClampedMs?: number;
|
|
5
|
+
notice?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function readNotice(headers: Headers, requestedMarket?: string): ApiNotice | undefined;
|
|
8
|
+
export declare function formatNotices(notices: ApiNotice[]): string;
|
|
9
|
+
export declare function attachNotice(result: Record<string, unknown>, notice: string): Record<string, unknown>;
|
|
10
|
+
//# sourceMappingURL=notice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notice.d.ts","sourceRoot":"","sources":["../src/notice.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,SAAS;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAa5F;AA4BD,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAI1D;AAKD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOrG"}
|
package/build/notice.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// API notices: what an Ironflow API response says beside its body, turned
|
|
2
|
+
// into one plain line the agent reads at the top of the tool result.
|
|
3
|
+
//
|
|
4
|
+
// X-Ironflow-Market the symbol a Hyperliquid name resolved to
|
|
5
|
+
// (market=BTC is served as BTC-PERP)
|
|
6
|
+
// X-Ironflow-History-Clamped the earliest time served, Unix ms, when
|
|
7
|
+
// `from` reached past the caller's history
|
|
8
|
+
// X-Ironflow-Notice a plain-text next step, e.g. where to get
|
|
9
|
+
// a free key for longer history
|
|
10
|
+
const CLAMP_HEADER = "X-Ironflow-History-Clamped";
|
|
11
|
+
const MAX_HEADER_CHARS = 400;
|
|
12
|
+
const MAX_NOTICE_CHARS = 1200;
|
|
13
|
+
// clean keeps a header value printable and short: it is our own API's text,
|
|
14
|
+
// but it lands in the model's context, so no control characters or walls.
|
|
15
|
+
function clean(value) {
|
|
16
|
+
const v = (value ?? "").replace(/[\u0000-\u001f\u007f]+/g, " ").trim();
|
|
17
|
+
return v ? v.slice(0, MAX_HEADER_CHARS) : undefined;
|
|
18
|
+
}
|
|
19
|
+
// readNotice returns what a response's headers say, or undefined when they
|
|
20
|
+
// say nothing.
|
|
21
|
+
export function readNotice(headers, requestedMarket) {
|
|
22
|
+
const market = clean(headers.get("x-ironflow-market"));
|
|
23
|
+
const clamped = Number(headers.get("x-ironflow-history-clamped"));
|
|
24
|
+
const notice = clean(headers.get("x-ironflow-notice"));
|
|
25
|
+
const out = {};
|
|
26
|
+
if (market) {
|
|
27
|
+
out.market = market;
|
|
28
|
+
const asked = clean(requestedMarket ?? null);
|
|
29
|
+
if (asked && asked !== market)
|
|
30
|
+
out.requestedMarket = asked;
|
|
31
|
+
}
|
|
32
|
+
if (Number.isFinite(clamped) && clamped > 0)
|
|
33
|
+
out.historyClampedMs = Math.floor(clamped);
|
|
34
|
+
if (notice)
|
|
35
|
+
out.notice = notice;
|
|
36
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
37
|
+
}
|
|
38
|
+
// Whole seconds; the exact Unix ms is written beside it.
|
|
39
|
+
const iso = (ms) => new Date(ms).toISOString().replace(/\.\d{3}Z$/, "Z");
|
|
40
|
+
const sentence = (s) => {
|
|
41
|
+
const t = s.charAt(0).toUpperCase() + s.slice(1);
|
|
42
|
+
return /[.!?]$/.test(t) || /https?:\/\/\S+$/.test(t) ? t : `${t}.`;
|
|
43
|
+
};
|
|
44
|
+
// noticeLines words one response's notice for the agent. The API's notice
|
|
45
|
+
// names the clamp header; the agent never sees headers, so the time it
|
|
46
|
+
// carries is written in instead.
|
|
47
|
+
function noticeLines(n) {
|
|
48
|
+
const lines = [];
|
|
49
|
+
if (n.market) {
|
|
50
|
+
lines.push(n.requestedMarket ? `Market "${n.requestedMarket}" was read as ${n.market}.` : `Market: ${n.market}.`);
|
|
51
|
+
}
|
|
52
|
+
const start = n.historyClampedMs ? `${iso(n.historyClampedMs)} (${n.historyClampedMs})` : "";
|
|
53
|
+
if (n.notice) {
|
|
54
|
+
lines.push(sentence(start ? n.notice.split(CLAMP_HEADER).join(start) : n.notice));
|
|
55
|
+
}
|
|
56
|
+
else if (start) {
|
|
57
|
+
lines.push(`Data starts at ${start}, later than the requested from: that is as far back as this key reaches.`);
|
|
58
|
+
}
|
|
59
|
+
return lines;
|
|
60
|
+
}
|
|
61
|
+
// formatNotices joins the notices of every API call one tool made into one
|
|
62
|
+
// line, each distinct sentence once ("" when there is nothing to say).
|
|
63
|
+
export function formatNotices(notices) {
|
|
64
|
+
const seen = new Set();
|
|
65
|
+
for (const n of notices)
|
|
66
|
+
for (const line of noticeLines(n))
|
|
67
|
+
seen.add(line);
|
|
68
|
+
return [...seen].join(" ").slice(0, MAX_NOTICE_CHARS);
|
|
69
|
+
}
|
|
70
|
+
// attachNotice puts the notice first in a tool result, where an agent reads
|
|
71
|
+
// it before the data. A result that already has a string notice keeps it,
|
|
72
|
+
// after ours.
|
|
73
|
+
export function attachNotice(result, notice) {
|
|
74
|
+
if (!notice)
|
|
75
|
+
return result;
|
|
76
|
+
const { notice: existing, ...rest } = result;
|
|
77
|
+
if (existing === undefined || typeof existing === "string") {
|
|
78
|
+
return { notice: existing ? `${notice} ${existing}` : notice, ...rest };
|
|
79
|
+
}
|
|
80
|
+
return { api_notice: notice, ...result };
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=notice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notice.js","sourceRoot":"","sources":["../src/notice.ts"],"names":[],"mappings":"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"}
|
package/build/query.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IronflowAPI } from "./api.js";
|
|
2
|
+
export declare const BEHAVIOR_LABELS: readonly ["market_maker", "high_frequency", "whale", "directional", "consistent_winner", "big_loser", "revenge_sizing", "often_liquidated", "hip3_trader", "spot_trader", "prediction_trader"];
|
|
3
|
+
export declare const BEHAVIOR_SORT_KEYS: readonly ["volume", "pnl", "fills", "liquidations"];
|
|
4
|
+
type BehaviorSort = (typeof BEHAVIOR_SORT_KEYS)[number];
|
|
5
|
+
export declare const MAX_BEHAVIOR_ADDRESSES = 50;
|
|
6
|
+
export declare const MAX_BEHAVIOR_LIMIT = 100;
|
|
7
|
+
export interface BehaviorQuery {
|
|
8
|
+
addresses: string[];
|
|
9
|
+
label: string;
|
|
10
|
+
sortBy: BehaviorSort;
|
|
11
|
+
limit: number;
|
|
12
|
+
minVolumeUsd: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function behaviorSQL(q: BehaviorQuery): string;
|
|
15
|
+
export declare function runQuery(api: IronflowAPI, sql: string, maxRows: number): Promise<unknown>;
|
|
16
|
+
export declare function rowsToObjects(result: {
|
|
17
|
+
columns: string[];
|
|
18
|
+
rows: unknown[][];
|
|
19
|
+
}): Record<string, unknown>[];
|
|
20
|
+
export declare const VAULT_LEADERBOARD_DAYS = 7;
|
|
21
|
+
export declare const MAX_VAULT_LEADERBOARD_LIMIT = 1000;
|
|
22
|
+
export declare function vaultLeaderboardSQL(limit: number): string;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,eAAe,gMAYlB,CAAC;AAEX,eAAO,MAAM,kBAAkB,qDAAsD,CAAC;AACtF,KAAK,YAAY,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AASxD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAItC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAID,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAuCpD;AAcD,wBAAsB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY/F;AAID,wBAAgB,aAAa,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAEzG;AAOD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAKhD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAczD"}
|
package/build/query.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
// SQL query tools: run_query passes the caller's SQL to POST /v1/query;
|
|
2
|
+
// get_wallet_behavior builds a fixed query over hl.wallet_behavior from
|
|
3
|
+
// validated inputs (addresses, a label from a fixed list), so no caller text
|
|
4
|
+
// is ever spliced into SQL.
|
|
5
|
+
export const BEHAVIOR_LABELS = [
|
|
6
|
+
"market_maker",
|
|
7
|
+
"high_frequency",
|
|
8
|
+
"whale",
|
|
9
|
+
"directional",
|
|
10
|
+
"consistent_winner",
|
|
11
|
+
"big_loser",
|
|
12
|
+
"revenge_sizing",
|
|
13
|
+
"often_liquidated",
|
|
14
|
+
"hip3_trader",
|
|
15
|
+
"spot_trader",
|
|
16
|
+
"prediction_trader",
|
|
17
|
+
];
|
|
18
|
+
export const BEHAVIOR_SORT_KEYS = ["volume", "pnl", "fills", "liquidations"];
|
|
19
|
+
const SORT_COLUMN = {
|
|
20
|
+
volume: "volume_usd",
|
|
21
|
+
pnl: "realized_pnl_usd",
|
|
22
|
+
fills: "fills",
|
|
23
|
+
liquidations: "liquidations",
|
|
24
|
+
};
|
|
25
|
+
export const MAX_BEHAVIOR_ADDRESSES = 50;
|
|
26
|
+
export const MAX_BEHAVIOR_LIMIT = 100;
|
|
27
|
+
const ADDRESS_RE = /^0x[0-9a-f]{40}$/;
|
|
28
|
+
// behaviorSQL returns the SELECT for get_wallet_behavior. Every input is
|
|
29
|
+
// validated here; anything unexpected throws instead of reaching SQL.
|
|
30
|
+
export function behaviorSQL(q) {
|
|
31
|
+
const where = [];
|
|
32
|
+
if (q.addresses.length > 0) {
|
|
33
|
+
if (q.addresses.length > MAX_BEHAVIOR_ADDRESSES) {
|
|
34
|
+
throw new Error(`at most ${MAX_BEHAVIOR_ADDRESSES} addresses per call`);
|
|
35
|
+
}
|
|
36
|
+
const addrs = q.addresses.map((a) => a.trim().toLowerCase());
|
|
37
|
+
for (const a of addrs) {
|
|
38
|
+
if (!ADDRESS_RE.test(a))
|
|
39
|
+
throw new Error(`not a wallet address: ${a}`);
|
|
40
|
+
}
|
|
41
|
+
where.push(`address IN (${addrs.map((a) => `'${a}'`).join(", ")})`);
|
|
42
|
+
}
|
|
43
|
+
if (q.label) {
|
|
44
|
+
if (!BEHAVIOR_LABELS.includes(q.label)) {
|
|
45
|
+
throw new Error(`label must be one of: ${BEHAVIOR_LABELS.join(", ")}`);
|
|
46
|
+
}
|
|
47
|
+
where.push(`has(labels, '${q.label}')`);
|
|
48
|
+
}
|
|
49
|
+
if (!Number.isFinite(q.minVolumeUsd) || q.minVolumeUsd < 0) {
|
|
50
|
+
throw new Error("min_volume_usd must be zero or more");
|
|
51
|
+
}
|
|
52
|
+
if (q.minVolumeUsd > 0)
|
|
53
|
+
where.push(`volume_usd >= ${Math.floor(q.minVolumeUsd)}`);
|
|
54
|
+
const limit = Math.min(Math.max(1, Math.floor(q.limit)), MAX_BEHAVIOR_LIMIT);
|
|
55
|
+
const col = SORT_COLUMN[q.sortBy];
|
|
56
|
+
if (!col)
|
|
57
|
+
throw new Error(`sort_by must be one of: ${BEHAVIOR_SORT_KEYS.join(", ")}`);
|
|
58
|
+
return [
|
|
59
|
+
"SELECT address, labels, active_days, round(volume_usd) AS volume_usd, fills,",
|
|
60
|
+
" round(realized_pnl_usd) AS realized_pnl_usd, round(maker_share, 3) AS maker_share,",
|
|
61
|
+
" round(flow_imbalance, 3) AS flow_imbalance, round(avg_fill_usd) AS avg_fill_usd,",
|
|
62
|
+
" round(fills_per_day, 1) AS fills_per_day, round(green_day_share, 3) AS green_day_share,",
|
|
63
|
+
" round(profit_factor, 2) AS profit_factor, markets_traded, liquidations,",
|
|
64
|
+
" round(revenge_ratio, 2) AS revenge_ratio, as_of",
|
|
65
|
+
"FROM hl.wallet_behavior",
|
|
66
|
+
where.length ? `WHERE ${where.join(" AND ")}` : "",
|
|
67
|
+
`ORDER BY ${col} DESC`,
|
|
68
|
+
`LIMIT ${limit}`,
|
|
69
|
+
]
|
|
70
|
+
.filter(Boolean)
|
|
71
|
+
.join("\n");
|
|
72
|
+
}
|
|
73
|
+
// runQuery calls POST /v1/query and returns a compact shape: column names
|
|
74
|
+
// once, then positional rows.
|
|
75
|
+
export async function runQuery(api, sql, maxRows) {
|
|
76
|
+
const res = (await api.post("/v1/query", { sql, max_rows: maxRows }));
|
|
77
|
+
return {
|
|
78
|
+
columns: res.columns.map((c) => c.name),
|
|
79
|
+
column_types: res.columns.map((c) => c.type),
|
|
80
|
+
rows: res.rows,
|
|
81
|
+
row_count: res.row_count,
|
|
82
|
+
truncated: res.truncated,
|
|
83
|
+
stats: res.stats,
|
|
84
|
+
limits: res.limits,
|
|
85
|
+
budget_remaining_seconds: res.budget_remaining_seconds,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// rowsToObjects turns positional rows into objects keyed by column name,
|
|
89
|
+
// for tools whose callers read single wallets.
|
|
90
|
+
export function rowsToObjects(result) {
|
|
91
|
+
return result.rows.map((r) => Object.fromEntries(result.columns.map((c, i) => [c, r[i]])));
|
|
92
|
+
}
|
|
93
|
+
// Vault leaderboard over SQL. GET /v1/analytics/vault-leaderboard needs a
|
|
94
|
+
// Builder or Enterprise key, but the same aggregation over hl.vault_operations
|
|
95
|
+
// is open to every caller through /v1/query (rows limited to the caller's
|
|
96
|
+
// history window), so get_vault_leaderboard uses it for everyone else.
|
|
97
|
+
export const VAULT_LEADERBOARD_DAYS = 7;
|
|
98
|
+
export const MAX_VAULT_LEADERBOARD_LIMIT = 1000;
|
|
99
|
+
// vaultLeaderboardSQL mirrors the REST endpoint: vaults ranked by deposits
|
|
100
|
+
// minus withdrawals over the last 7 days. limit is the only input and is
|
|
101
|
+
// clamped to an integer, so no caller text reaches SQL.
|
|
102
|
+
export function vaultLeaderboardSQL(limit) {
|
|
103
|
+
const n = Math.min(Math.max(1, Math.floor(Number.isFinite(limit) ? limit : 10)), MAX_VAULT_LEADERBOARD_LIMIT);
|
|
104
|
+
return [
|
|
105
|
+
"SELECT vault,",
|
|
106
|
+
" toString(round(sumIf(net_amount, operation = 'deposit'), 6)) AS total_deposits,",
|
|
107
|
+
" toString(round(sumIf(net_amount, operation = 'withdraw'), 6)) AS total_withdrawals,",
|
|
108
|
+
" toString(round(sumIf(net_amount, operation = 'deposit') - sumIf(net_amount, operation = 'withdraw'), 6)) AS net_flow,",
|
|
109
|
+
" uniq(address) AS unique_users",
|
|
110
|
+
"FROM hl.vault_operations",
|
|
111
|
+
`WHERE ts >= now() - INTERVAL ${VAULT_LEADERBOARD_DAYS} DAY AND vault != ''`,
|
|
112
|
+
"GROUP BY vault",
|
|
113
|
+
"ORDER BY sumIf(net_amount, operation = 'deposit') - sumIf(net_amount, operation = 'withdraw') DESC",
|
|
114
|
+
`LIMIT ${n}`,
|
|
115
|
+
].join("\n");
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/build/schemas.d.ts.map
CHANGED
|
@@ -1 +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;
|
|
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;AA0kB7C,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKhD,CAAC"}
|
package/build/schemas.js
CHANGED
|
@@ -101,7 +101,7 @@ const TRADER = {
|
|
|
101
101
|
last_trade_ms: F.last_trade_ms,
|
|
102
102
|
};
|
|
103
103
|
// Keyed by tool name. Every tool in tools.ts has an entry (pinned by a test).
|
|
104
|
-
|
|
104
|
+
const toolSchemas = {
|
|
105
105
|
get_price: obj("Latest mark price", { market: F.market, price: F.price }),
|
|
106
106
|
get_recent_trades: page("Trades, newest first", {
|
|
107
107
|
...MARKET_ROW,
|
|
@@ -145,6 +145,42 @@ export const outputSchemas = {
|
|
|
145
145
|
size: F.size,
|
|
146
146
|
realized_pnl: F.realized_pnl,
|
|
147
147
|
}),
|
|
148
|
+
describe_data: obj("Catalog of the SQL tables run_query can read", {
|
|
149
|
+
dialect: d("SQL dialect and database name"),
|
|
150
|
+
tables: arr("Queryable tables", obj("One table", {
|
|
151
|
+
name: d("Table name, e.g. hl.fills"),
|
|
152
|
+
description: d("What one row is"),
|
|
153
|
+
time_column: d("Column the history window filters on"),
|
|
154
|
+
data_from: d("How far back the table goes"),
|
|
155
|
+
columns: arr("Columns", obj("One column", { name: d("Name"), type: d("ClickHouse type"), description: d("Meaning") })),
|
|
156
|
+
})),
|
|
157
|
+
tips: arr("Query tips", d("One tip")),
|
|
158
|
+
examples: arr("Worked examples", obj("One example", { question: d("Question"), sql: d("SQL that answers it") })),
|
|
159
|
+
limits: d("Your tier's limits: history_days, max_execution_seconds, max_rows, budget_seconds_per_hour"),
|
|
160
|
+
tiers: arr("Every tier's limits", d("One tier")),
|
|
161
|
+
}),
|
|
162
|
+
run_query: obj("Query result", {
|
|
163
|
+
columns: arr("Column names in row order", d("Name")),
|
|
164
|
+
column_types: arr("ClickHouse types in row order", d("Type")),
|
|
165
|
+
rows: arr("Rows as positional arrays", d("One row")),
|
|
166
|
+
row_count: d("Rows returned"),
|
|
167
|
+
truncated: d("true when more rows existed than were returned"),
|
|
168
|
+
stats: d("elapsed_ms, rows_read, bytes_read"),
|
|
169
|
+
limits: d("Your tier's limits"),
|
|
170
|
+
budget_remaining_seconds: d("Query seconds left this hour"),
|
|
171
|
+
}),
|
|
172
|
+
get_wallet_behavior: obj("Wallet trading behaviour over the last 30 days", {
|
|
173
|
+
window_days: d("Days the features cover"),
|
|
174
|
+
wallets: arr("Wallets", obj("One wallet", {
|
|
175
|
+
address: d("Wallet address"),
|
|
176
|
+
labels: arr("Behaviour labels", d("Label")),
|
|
177
|
+
volume_usd: d("30-day volume in USD"),
|
|
178
|
+
realized_pnl_usd: d("30-day realized PnL in USD"),
|
|
179
|
+
maker_share: d("Maker volume / volume"),
|
|
180
|
+
fills_per_day: d("Fills per active day"),
|
|
181
|
+
liquidations: d("Liquidation events"),
|
|
182
|
+
})),
|
|
183
|
+
}),
|
|
148
184
|
get_liquidation_summary: obj("Liquidation totals over the window", {
|
|
149
185
|
from: F.from,
|
|
150
186
|
to: F.to,
|
|
@@ -199,7 +235,15 @@ export const outputSchemas = {
|
|
|
199
235
|
data: arr("Price buckets", obj("One bucket", { market: F.market })),
|
|
200
236
|
}),
|
|
201
237
|
get_vault_leaderboard: obj("Vaults ranked by net deposits", {
|
|
202
|
-
|
|
238
|
+
window_days: d("Days covered (keyless: 1); absent when served by the Builder endpoint"),
|
|
239
|
+
data: arr("Vaults", obj("One vault", {
|
|
240
|
+
source: F.source,
|
|
241
|
+
vault: d("Vault address"),
|
|
242
|
+
total_deposits: d("USDC deposited in the window"),
|
|
243
|
+
total_withdrawals: d("USDC withdrawn in the window"),
|
|
244
|
+
net_flow: d("Deposits minus withdrawals, USDC"),
|
|
245
|
+
unique_users: d("Distinct depositors and withdrawers"),
|
|
246
|
+
})),
|
|
203
247
|
}),
|
|
204
248
|
get_funding_stats: obj("Funding statistics per time bucket", {
|
|
205
249
|
data: arr("Buckets", obj("One bucket", {
|
|
@@ -422,10 +466,14 @@ export const outputSchemas = {
|
|
|
422
466
|
uptime_percent: d("Share of operational hours"),
|
|
423
467
|
period: d("24h or 7d"),
|
|
424
468
|
}),
|
|
425
|
-
list_markets: obj("
|
|
426
|
-
|
|
427
|
-
matched: d("Markets matching the search"),
|
|
469
|
+
list_markets: obj("One page of markets", {
|
|
470
|
+
matched: d("Markets matching the filters and search, across all pages"),
|
|
428
471
|
returned: d("Rows in data"),
|
|
472
|
+
pagination: obj("Cursor pagination", {
|
|
473
|
+
next_cursor: d("Pass as cursor, with the same filters, for the next page; null on the last page"),
|
|
474
|
+
has_more: d("Whether more pages exist"),
|
|
475
|
+
total: d("Markets matching the filters and search"),
|
|
476
|
+
}),
|
|
429
477
|
data: arr("Markets", obj("One market", {
|
|
430
478
|
market_id: d("Stable market id"),
|
|
431
479
|
source: F.source,
|
|
@@ -437,8 +485,17 @@ export const outputSchemas = {
|
|
|
437
485
|
display_symbol: F.display_symbol,
|
|
438
486
|
hl_coin: d("Hyperliquid coin string"),
|
|
439
487
|
active_from_ms: d("Listing time, Unix milliseconds"),
|
|
488
|
+
active_to_ms: d("Close time, Unix milliseconds; only on closed markets (include_inactive)"),
|
|
440
489
|
max_leverage: d("Maximum leverage"),
|
|
441
490
|
})),
|
|
442
491
|
}),
|
|
443
492
|
};
|
|
493
|
+
// NOTICE is the line the server puts first in a result when the API said
|
|
494
|
+
// something beside the data: how a Hyperliquid name was read, that the data
|
|
495
|
+
// starts later than asked (the tier's history window), or a next step.
|
|
496
|
+
const NOTICE = d("Present when the API added a note: how a market name was read, that data starts later than asked because of the history window, or a next step such as a free key");
|
|
497
|
+
export const outputSchemas = Object.fromEntries(Object.entries(toolSchemas).map(([name, schema]) => [
|
|
498
|
+
name,
|
|
499
|
+
{ ...schema, properties: { notice: NOTICE, ...schema.properties } },
|
|
500
|
+
]));
|
|
444
501
|
//# sourceMappingURL=schemas.js.map
|
package/build/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,6EAA6E;AAC7E,uEAAuE;AACvE,yEAAyE;AAIzE,MAAM,CAAC,GAAG,CAAC,WAAmB,EAAU,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;AAE7D,MAAM,GAAG,GAAG,CAAC,WAAmB,EAAE,UAAkC,EAAU,EAAE,CAAC,CAAC;IAChF,IAAI,EAAE,QAAQ;IACd,WAAW;IACX,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,CAAC,WAAmB,EAAE,KAAa,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;AAEpG,sCAAsC;AACtC,MAAM,CAAC,GAAG;IACR,MAAM,EAAE,CAAC,CAAC,2BAA2B,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,oDAAoD,CAAC;IAC/D,cAAc,EAAE,CAAC,CAAC,oDAAoD,CAAC;IACvE,MAAM,EAAE,CAAC,CAAC,4CAA4C,CAAC;IACvD,WAAW,EAAE,CAAC,CAAC,gDAAgD,CAAC;IAChE,WAAW,EAAE,CAAC,CAAC,0BAA0B,CAAC;IAC1C,YAAY,EAAE,CAAC,CAAC,kCAAkC,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,mBAAmB,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,0BAA0B,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,sBAAsB,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,4BAA4B,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,oBAAoB,CAAC;IAC7B,GAAG,EAAE,CAAC,CAAC,iBAAiB,CAAC;IACzB,YAAY,EAAE,CAAC,CAAC,qBAAqB,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,2BAA2B,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,wBAAwB,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,qCAAqC,CAAC;IAClD,IAAI,EAAE,CAAC,CAAC,iCAAiC,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,+BAA+B,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,6BAA6B,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,qDAAqD,CAAC;IAClE,aAAa,EAAE,CAAC,CAAC,oCAAoC,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,6BAA6B,CAAC;IACxC,gBAAgB,EAAE,CAAC,CAAC,qBAAqB,CAAC;IAC1C,gBAAgB,EAAE,CAAC,CAAC,2BAA2B,CAAC;IAChD,gBAAgB,EAAE,CAAC,CAAC,sDAAsD,CAAC;IAC3E,aAAa,EAAE,CAAC,CAAC,+BAA+B,CAAC;CACjB,CAAC;AAEnC,MAAM,UAAU,GAAG,GAAG,CAAC,mBAAmB,EAAE;IAC1C,WAAW,EAAE,CAAC,CAAC,8DAA8D,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,yBAAyB,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,CAAC,WAAmB,EAAE,GAA2B,EAAU,EAAE,CACxE,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;AAE5F,MAAM,UAAU,GAAG;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,WAAW,EAAE,CAAC,CAAC,WAAW;IAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;IAChC,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,WAAW,EAAE,CAAC,CAAC,WAAW;IAC1B,SAAS,EAAE,CAAC,CAAC,SAAS;CACvB,CAAC;AAEF,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,YAAY,EAAE,CAAC,CAAC,YAAY;IAC5B,IAAI,EAAE,CAAC,CAAC,4CAA4C,CAAC;IACrD,WAAW,EAAE,CAAC,CAAC,qBAAqB,CAAC;IACrC,UAAU,EAAE,CAAC,CAAC,oBAAoB,CAAC;IACnC,cAAc,EAAE,CAAC,CAAC,uBAAuB,CAAC;IAC1C,cAAc,EAAE,CAAC,CAAC,uBAAuB,CAAC;IAC1C,YAAY,EAAE,CAAC,CAAC,YAAY;IAC5B,gBAAgB,EAAE,CAAC,CAAC,kCAAkC,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC;IACvB,aAAa,EAAE,CAAC,CAAC,mBAAmB,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,GAAG,CAAC,0BAA0B,EAAE;IACjD,OAAO,EAAE,CAAC,CAAC,OAAO;IAClB,QAAQ,EAAE,CAAC,CAAC,kCAAkC,CAAC;IAC/C,eAAe,EAAE,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAChD,cAAc,EAAE,GAAG,CAAC,gBAAgB,EAAE;QACpC,oBAAoB,EAAE,CAAC,CAAC,+BAA+B,CAAC;QACxD,oBAAoB,EAAE,CAAC,CAAC,8BAA8B,CAAC;QACvD,kBAAkB,EAAE,CAAC,CAAC,4BAA4B,CAAC;QACnD,kBAAkB,EAAE,CAAC,CAAC,+BAA+B,CAAC;KACvD,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,CAAC,CAAC,OAAO;IAClB,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;IAC/B,UAAU,EAAE,CAAC,CAAC,wBAAwB,CAAC;IACvC,YAAY,EAAE,CAAC,CAAC,YAAY;IAC5B,IAAI,EAAE,CAAC,CAAC,0BAA0B,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,sBAAsB,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC;IAChC,WAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC;IAChC,SAAS,EAAE,CAAC,CAAC,iCAAiC,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,CAAC,CAAC,OAAO;IAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;IACpB,aAAa,EAAE,CAAC,CAAC,aAAa;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;IACpC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;IACpC,aAAa,EAAE,CAAC,CAAC,aAAa;CAC/B,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,SAAS,EAAE,GAAG,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAEzE,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,EAAE;QAC9C,GAAG,UAAU;QACb,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,YAAY,EAAE,CAAC,CAAC,YAAY;KAC7B,CAAC;IAEF,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;QACjC,GAAG,UAAU;QACb,QAAQ,EAAE,CAAC,CAAC,iBAAiB,CAAC;QAC9B,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC;QACrB,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC;QACrB,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC;QACvB,MAAM,EAAE,CAAC,CAAC,sBAAsB,CAAC;QACjC,WAAW,EAAE,CAAC,CAAC,sBAAsB,CAAC;KACvC,CAAC;IAEF,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,EAAE;QAC9C,GAAG,UAAU;QACb,IAAI,EAAE,CAAC,CAAC,sDAAsD,CAAC;QAC/D,QAAQ,EAAE,CAAC,CAAC,QAAQ;KACrB,CAAC;IAEF,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE;QAC/C,GAAG,UAAU;QACb,aAAa,EAAE,CAAC,CAAC,6BAA6B,CAAC;QAC/C,UAAU,EAAE,CAAC,CAAC,mBAAmB,CAAC;KACnC,CAAC;IAEF,gBAAgB,EAAE,IAAI,CAAC,cAAc,EAAE;QACrC,GAAG,UAAU;QACb,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,OAAO,EAAE,CAAC,CAAC,mBAAmB,CAAC;QAC/B,IAAI,EAAE,CAAC,CAAC,gFAAgF,CAAC;QACzF,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,YAAY,EAAE,CAAC,CAAC,YAAY;KAC7B,CAAC;IAEF,uBAAuB,EAAE,GAAG,CAAC,oCAAoC,EAAE;QACjE,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,MAAM,EAAE,CAAC,CAAC,wCAAwC,CAAC;QACnD,KAAK,EAAE,CAAC,CAAC,wBAAwB,CAAC;QAClC,YAAY,EAAE,CAAC,CAAC,4BAA4B,CAAC;QAC7C,oBAAoB,EAAE,CAAC,CAAC,qCAAqC,CAAC;QAC9D,qBAAqB,EAAE,CAAC,CAAC,sCAAsC,CAAC;QAChE,SAAS,EAAE,GAAG,CACZ,oCAAoC,EACpC,GAAG,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CACtG;QACD,OAAO,EAAE,GAAG,CAAC,0DAA0D,EAAE;YACvE,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,IAAI,EAAE,CAAC,CAAC,mBAAmB,CAAC;YAC5B,YAAY,EAAE,CAAC,CAAC,iBAAiB,CAAC;YAClC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB,CAAC;QACF,QAAQ,EAAE,CAAC,CAAC,8DAA8D,CAAC;KAC5E,CAAC;IAEF,SAAS,EAAE,IAAI,CAAC,oCAAoC,EAAE;QACpD,GAAG,UAAU;QACb,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,SAAS,EAAE,CAAC,CAAC,iCAAiC,CAAC;QAC/C,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,OAAO,EAAE,CAAC,CAAC,OAAO;KACnB,CAAC;IAEF,eAAe,EAAE,IAAI,CAAC,oBAAoB,EAAE;QAC1C,GAAG,UAAU;QACb,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC;QAC3B,YAAY,EAAE,CAAC,CAAC,cAAc,CAAC;QAC/B,YAAY,EAAE,CAAC,CAAC,6BAA6B,CAAC;KAC/C,CAAC;IAEF,oBAAoB,EAAE,IAAI,CAAC,gCAAgC,EAAE;QAC3D,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC;QACvB,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC;QACzB,SAAS,EAAE,CAAC,CAAC,qBAAqB,CAAC;QACnC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;QAC/B,gBAAgB,EAAE,CAAC,CAAC,kBAAkB,CAAC;QACvC,UAAU,EAAE,CAAC,CAAC,0CAA0C,CAAC;QACzD,UAAU,EAAE,CAAC,CAAC,mBAAmB,CAAC;QAClC,YAAY,EAAE,CAAC,CAAC,8CAA8C,CAAC;KAChE,CAAC;IAEF,sBAAsB,EAAE,GAAG,CAAC,qCAAqC,EAAE;QACjE,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;KACpE,CAAC;IAEF,qBAAqB,EAAE,GAAG,CAAC,+BAA+B,EAAE;QAC1D,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;KACrE,CAAC;IAEF,iBAAiB,EAAE,GAAG,CAAC,oCAAoC,EAAE;QAC3D,IAAI,EAAE,GAAG,CACP,SAAS,EACT,GAAG,CAAC,YAAY,EAAE;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,iCAAiC,CAAC;YAC5C,QAAQ,EAAE,CAAC,CAAC,qBAAqB,CAAC;YAClC,QAAQ,EAAE,CAAC,CAAC,oBAAoB,CAAC;YACjC,QAAQ,EAAE,CAAC,CAAC,qBAAqB,CAAC;YAClC,eAAe,EAAE,CAAC,CAAC,mCAAmC,CAAC;SACxD,CAAC,CACH;KACF,CAAC;IAEF,cAAc,EAAE,UAAU;IAE1B,gBAAgB,EAAE,GAAG,CAAC,gDAAgD,EAAE;QACtE,UAAU,EAAE,CAAC,CAAC,qCAAqC,CAAC;QACpD,QAAQ,EAAE,CAAC,CAAC,iCAAiC,CAAC;QAC9C,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC;QACxB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,GAAG,CACP,SAAS,EACT,GAAG,CAAC,uBAAuB,EAAE;YAC3B,YAAY,EAAE,CAAC,CAAC,iCAAiC,CAAC;YAClD,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,eAAe,EAAE,CAAC,CAAC,uCAAuC,CAAC;YAC3D,YAAY,EAAE,CAAC,CAAC,uBAAuB,CAAC;YACxC,gBAAgB,EAAE,CAAC,CAAC,qBAAqB,CAAC;YAC1C,cAAc,EAAE,CAAC,CAAC,+BAA+B,CAAC;SACnD,CAAC,CACH;KACF,CAAC;IAEF,oBAAoB,EAAE,GAAG,CAAC,0BAA0B,EAAE;QACpD,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,KAAK,EAAE,GAAG,CAAC,aAAa,EAAE;YACxB,WAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC;YAChC,WAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC;YAChC,cAAc,EAAE,CAAC,CAAC,uBAAuB,CAAC;YAC1C,cAAc,EAAE,CAAC,CAAC,uBAAuB,CAAC;YAC1C,SAAS,EAAE,CAAC,CAAC,2CAA2C,CAAC;YACzD,SAAS,EAAE,CAAC,CAAC,mBAAmB,CAAC;YACjC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC;YAC3B,SAAS,EAAE,CAAC,CAAC,iCAAiC,CAAC;SAChD,CAAC;KACH,CAAC;IAEF,eAAe,EAAE,GAAG,CAAC,2BAA2B,EAAE;QAChD,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,GAAG,CACP,gBAAgB,EAChB,GAAG,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,gCAAgC,CAAC,EAAE,CAAC,CACjH;KACF,CAAC;IAEF,mBAAmB,EAAE,GAAG,CAAC,gCAAgC,EAAE;QACzD,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,OAAO,EAAE,CAAC,CAAC,gBAAgB,CAAC;QAC5B,IAAI,EAAE,GAAG,CACP,SAAS,EACT,GAAG,CAAC,YAAY,EAAE;YAChB,GAAG,YAAY;YACf,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,aAAa,EAAE,CAAC,CAAC,gBAAgB,CAAC;YAClC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;SACrC,CAAC,CACH;KACF,CAAC;IAEF,sBAAsB,EAAE,GAAG,CAAC,2BAA2B,EAAE;QACvD,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,OAAO,EAAE,CAAC,CAAC,gBAAgB,CAAC;QAC5B,IAAI,EAAE,GAAG,CACP,SAAS,EACT,GAAG,CAAC,YAAY,EAAE;YAChB,GAAG,YAAY;YACf,aAAa,EAAE,CAAC,CAAC,6CAA6C,CAAC;YAC/D,YAAY,EAAE,CAAC,CAAC,4CAA4C,CAAC;SAC9D,CAAC,CACH;KACF,CAAC;IAEF,oBAAoB,EAAE,GAAG,CAAC,qCAAqC,EAAE;QAC/D,OAAO,EAAE,CAAC,CAAC,kBAAkB,CAAC;QAC9B,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC;QACvB,aAAa,EAAE,CAAC,CAAC,iCAAiC,CAAC;QACnD,OAAO,EAAE,CAAC,CAAC,+BAA+B,CAAC;QAC3C,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,GAAG,CACP,gBAAgB,EAChB,GAAG,CAAC,YAAY,EAAE;YAChB,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC;YAChC,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,UAAU,EAAE,CAAC,CAAC,oBAAoB,CAAC;YACnC,YAAY,EAAE,CAAC,CAAC,oBAAoB,CAAC;YACrC,cAAc,EAAE,CAAC,CAAC,iDAAiD,CAAC;YACpE,kBAAkB,EAAE,CAAC,CAAC,6BAA6B,CAAC;YACpD,iBAAiB,EAAE,CAAC,CAAC,sBAAsB,CAAC;YAC5C,YAAY,EAAE,CAAC,CAAC,6BAA6B,CAAC;YAC9C,UAAU,EAAE,CAAC,CAAC,qCAAqC,CAAC;YACpD,cAAc,EAAE,CAAC,CAAC,mBAAmB,CAAC;SACvC,CAAC,CACH;KACF,CAAC;IAEF,gBAAgB,EAAE,GAAG,CAAC,0BAA0B,EAAE;QAChD,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,GAAG,CAAC,eAAe,EAAE;YAC3B,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC;YACtB,UAAU,EAAE,CAAC,CAAC,wBAAwB,CAAC;YACvC,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,IAAI,EAAE,CAAC,CAAC,0BAA0B,CAAC;YACnC,MAAM,EAAE,CAAC,CAAC,sBAAsB,CAAC;YACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC;YACtB,cAAc,EAAE,CAAC,CAAC,uBAAuB,CAAC;YAC1C,cAAc,EAAE,CAAC,CAAC,uBAAuB,CAAC;YAC1C,WAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC;YAChC,WAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC;YAChC,SAAS,EAAE,CAAC,CAAC,iCAAiC,CAAC;SAChD,CAAC;KACH,CAAC;IAEF,iBAAiB,EAAE;QACjB,GAAG,GAAG,CAAC,4BAA4B,EAAE;YACnC,YAAY,EAAE,CAAC,CAAC,mBAAmB,CAAC;YACpC,WAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC;YAChC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uBAAuB;gBACpC,oBAAoB,EAAE,GAAG,CACvB,QAAQ,EACR,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,2CAA2C,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CACtH;aACF;YACD,MAAM,EAAE,CAAC,CAAC,wBAAwB,CAAC;YACnC,IAAI,EAAE,CAAC,CAAC,8BAA8B,CAAC;SACxC,CAAC;KACH;IAED,mBAAmB,EAAE,GAAG,CAAC,yBAAyB,EAAE;QAClD,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC;QACxB,IAAI,EAAE,GAAG,CACP,SAAS,EACT,GAAG,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,iCAAiC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAC1H;KACF,CAAC;IAEF,eAAe,EAAE,GAAG,CAAC,mCAAmC,EAAE;QACxD,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC;QACvB,OAAO,EAAE,GAAG,CACV,SAAS,EACT,GAAG,CAAC,YAAY,EAAE;YAChB,GAAG,MAAM;YACT,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,cAAc,EAAE,CAAC,CAAC,gCAAgC,CAAC;YACnD,WAAW,EAAE,CAAC,CAAC,kCAAkC,CAAC;YAClD,YAAY,EAAE,CAAC,CAAC,4BAA4B,CAAC;YAC7C,SAAS,EAAE,CAAC,CAAC,mCAAmC,CAAC;SAClD,CAAC,CACH;QACD,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE;YACvB,YAAY,EAAE,CAAC,CAAC,gBAAgB,CAAC;YACjC,aAAa,EAAE,CAAC,CAAC,4BAA4B,CAAC;YAC9C,YAAY,EAAE,CAAC,CAAC,sBAAsB,CAAC;SACxC,CAAC;KACH,CAAC;IAEF,kBAAkB,EAAE,GAAG,CAAC,4BAA4B,EAAE;QACpD,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;KACnD,CAAC;IAEF,gBAAgB,EAAE,GAAG,CAAC,2CAA2C,EAAE;QACjE,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,CAAC,CAAC,gCAAgC,CAAC;QAC5C,OAAO,EAAE,GAAG,CACV,SAAS,EACT,GAAG,CAAC,YAAY,EAAE;YAChB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,MAAM,EAAE,CAAC,CAAC,qBAAqB,CAAC;YAChC,YAAY,EAAE,CAAC,CAAC,kCAAkC,CAAC;YACnD,cAAc,EAAE,CAAC,CAAC,0DAA0D,CAAC;YAC7E,QAAQ,EAAE,CAAC,CAAC,uDAAuD,CAAC;YACpE,aAAa,EAAE,CAAC,CAAC,sCAAsC,CAAC;YACxD,gBAAgB,EAAE,CAAC,CAAC,gDAAgD,CAAC;SACtE,CAAC,CACH;KACF,CAAC;IAEF,kBAAkB,EAAE,GAAG,CAAC,6BAA6B,EAAE;QACrD,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,GAAG,CAAC,gBAAgB,EAAE;YAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,cAAc,EAAE,CAAC,CAAC,gCAAgC,CAAC;SACpD,CAAC;QACF,OAAO,EAAE,GAAG,CACV,sBAAsB,EACtB,GAAG,CAAC,YAAY,EAAE;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,IAAI,EAAE,CAAC,CAAC,iCAAiC,CAAC;YAC1C,aAAa,EAAE,CAAC,CAAC,aAAa;SAC/B,CAAC,CACH;QACD,iBAAiB,EAAE,CAAC,CAAC,4BAA4B,CAAC;QAClD,MAAM,EAAE,CAAC,CAAC,0BAA0B,CAAC;KACtC,CAAC;IAEF,YAAY,EAAE,GAAG,CAAC,gBAAgB,EAAE;QAClC,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;KAChH,CAAC;IAEF,oBAAoB,EAAE,GAAG,CAAC,qBAAqB,EAAE;QAC/C,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;QAChH,UAAU,EAAE,CAAC,CAAC,mBAAmB,CAAC;KACnC,CAAC;IAEF,UAAU,EAAE,GAAG,CAAC,gBAAgB,EAAE;QAChC,MAAM,EAAE,CAAC,CAAC,+BAA+B,CAAC;QAC1C,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,MAAM,EAAE,CAAC,CAAC,8BAA8B,CAAC;QACzC,QAAQ,EAAE,CAAC,CAAC,yBAAyB,CAAC;QACtC,MAAM,EAAE,CAAC,CAAC,qBAAqB,CAAC;QAChC,UAAU,EAAE,CAAC,CAAC,8CAA8C,CAAC;KAC9D,CAAC;IAEF,kBAAkB,EAAE,GAAG,CAAC,6BAA6B,EAAE;QACrD,GAAG,EAAE,CAAC,CAAC,wBAAwB,CAAC;QAChC,QAAQ,EAAE,CAAC,CAAC,kCAAkC,CAAC;QAC/C,SAAS,EAAE,CAAC,CAAC,2BAA2B,CAAC;QACzC,SAAS,EAAE,CAAC,CAAC,SAAS;KACvB,CAAC;IAEF,kBAAkB,EAAE,GAAG,CAAC,wBAAwB,EAAE;QAChD,MAAM,EAAE,GAAG,CACT,gBAAgB,EAChB,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,+BAA+B,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,0BAA0B,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CACxI;QACD,cAAc,EAAE,CAAC,CAAC,4BAA4B,CAAC;QAC/C,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC;KACvB,CAAC;IAEF,YAAY,EAAE,GAAG,CAAC,gBAAgB,EAAE;QAClC,aAAa,EAAE,CAAC,CAAC,8BAA8B,CAAC;QAChD,OAAO,EAAE,CAAC,CAAC,6BAA6B,CAAC;QACzC,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC;QAC3B,IAAI,EAAE,GAAG,CACP,SAAS,EACT,GAAG,CAAC,YAAY,EAAE;YAChB,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC;YAChC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC;YAC3B,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,OAAO,EAAE,CAAC,CAAC,yBAAyB,CAAC;YACrC,cAAc,EAAE,CAAC,CAAC,iCAAiC,CAAC;YACpD,YAAY,EAAE,CAAC,CAAC,kBAAkB,CAAC;SACpC,CAAC,CACH;KACF,CAAC;CACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
package/build/server.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
2
|
import type { IronflowAPI } from "./api.js";
|
|
3
3
|
export declare function packageVersion(): string;
|
|
4
|
-
export
|
|
4
|
+
export interface ServerOptions {
|
|
5
|
+
fallbackClient?: string;
|
|
6
|
+
onToolResult?: (result: ToolOutcome) => void;
|
|
7
|
+
}
|
|
8
|
+
export interface ToolOutcome {
|
|
9
|
+
tool: string;
|
|
10
|
+
isError: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function createServer(api: IronflowAPI, version: string, options?: ServerOptions): Server;
|
|
5
13
|
export declare function structuredFrom(text: string): Record<string, unknown>;
|
|
6
14
|
//# sourceMappingURL=server.d.ts.map
|
package/build/server.d.ts.map
CHANGED
|
@@ -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;
|
|
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;AAgB5C,wBAAgB,cAAc,IAAI,MAAM,CAQvC;AAGD,MAAM,WAAW,aAAa;IAI5B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CAC9C;AAUD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAGD,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAkEnG;AAOD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUpE"}
|
package/build/server.js
CHANGED
|
@@ -6,12 +6,13 @@ 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
8
|
import { fitToBudget } from "./budget.js";
|
|
9
|
+
import { attachNotice } from "./notice.js";
|
|
9
10
|
import { outputSchemas } from "./schemas.js";
|
|
10
11
|
import { tools } from "./tools.js";
|
|
11
12
|
// One-line summary for MCP directories and client server lists.
|
|
12
13
|
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.";
|
|
13
14
|
// Server-level guidance the client shows the model alongside the tool list.
|
|
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
|
|
15
|
+
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, HIP-4 outcomes and spot. Markets take display symbols (BTC-PERP, xyz:NVDA-PERP, HYPE/USDC) or Hyperliquid names (BTC, @107, xyz:NVDA); list_markets with q finds a name. Times take Unix ms, Unix seconds or ISO 8601. A result that starts with a notice says how a market name was read or that the data starts later than asked; pass its next step on to the user. For anything the named tools do not cover, call describe_data and then run_query with ClickHouse SQL over the hl.* tables. Keyless use allows 10 requests per minute, 500 per day and 24 hours of history; a free key from https://ironflow.sh/key raises that to 60 per minute and 30 days.";
|
|
15
16
|
// Reads the package version from package.json so MCP clients see the real
|
|
16
17
|
// version in serverInfo instead of a constant that drifts on every release.
|
|
17
18
|
export function packageVersion() {
|
|
@@ -25,7 +26,7 @@ export function packageVersion() {
|
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
// createServer wires the tool list and tool calls to one API client.
|
|
28
|
-
export function createServer(api, version) {
|
|
29
|
+
export function createServer(api, version, options = {}) {
|
|
29
30
|
const server = new Server({
|
|
30
31
|
name: "ironflow",
|
|
31
32
|
title: "Ironflow Hyperliquid",
|
|
@@ -38,16 +39,24 @@ export function createServer(api, version) {
|
|
|
38
39
|
],
|
|
39
40
|
}, { capabilities: { tools: {} }, instructions: INSTRUCTIONS });
|
|
40
41
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
42
|
+
// Every tool only reads, from data outside this server: readOnlyHint
|
|
43
|
+
// and openWorldHint. The title appears at the top level and in the
|
|
44
|
+
// annotations, which older clients read.
|
|
41
45
|
tools: tools.map((t) => ({
|
|
42
46
|
name: t.name,
|
|
47
|
+
title: t.title,
|
|
43
48
|
description: t.description,
|
|
44
49
|
inputSchema: t.inputSchema,
|
|
45
50
|
outputSchema: outputSchemas[t.name],
|
|
46
|
-
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
51
|
+
annotations: { title: t.title, readOnlyHint: true, openWorldHint: true },
|
|
47
52
|
})),
|
|
48
53
|
}));
|
|
49
54
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
50
|
-
const
|
|
55
|
+
const result = await callTool(request.params.name, request.params.arguments);
|
|
56
|
+
options.onToolResult?.({ tool: request.params.name, isError: result.isError === true });
|
|
57
|
+
return result;
|
|
58
|
+
});
|
|
59
|
+
async function callTool(name, args) {
|
|
51
60
|
const tool = tools.find((t) => t.name === name);
|
|
52
61
|
if (!tool) {
|
|
53
62
|
return {
|
|
@@ -55,17 +64,27 @@ export function createServer(api, version) {
|
|
|
55
64
|
isError: true,
|
|
56
65
|
};
|
|
57
66
|
}
|
|
67
|
+
const info = server.getClientVersion();
|
|
68
|
+
const client = info?.name ? `${info.name}${info.version ? `/${info.version}` : ""}` : options.fallbackClient;
|
|
69
|
+
// One client copy per call, so the notices read below are this call's.
|
|
70
|
+
const scoped = api.withContext({ client, tool: name });
|
|
58
71
|
try {
|
|
59
|
-
const structured = structuredFrom(await tool.handler(args ?? {},
|
|
60
|
-
// Compact JSON, trimmed to fit a client's per-result limit
|
|
61
|
-
|
|
62
|
-
|
|
72
|
+
const structured = structuredFrom(await tool.handler(args ?? {}, scoped));
|
|
73
|
+
// Compact JSON, trimmed to fit a client's per-result limit, with the
|
|
74
|
+
// API's notice (if any) first.
|
|
75
|
+
const text = fitToBudget(attachNotice(structured, scoped.notice()));
|
|
76
|
+
return {
|
|
77
|
+
content: [{ type: "text", text }],
|
|
78
|
+
structuredContent: JSON.parse(text),
|
|
79
|
+
};
|
|
63
80
|
}
|
|
64
81
|
catch (error) {
|
|
65
82
|
const message = error instanceof Error ? error.message : String(error);
|
|
66
|
-
|
|
83
|
+
const notice = scoped.notice();
|
|
84
|
+
const text = notice && !message.includes(notice) ? `Error: ${message} ${notice}` : `Error: ${message}`;
|
|
85
|
+
return { content: [{ type: "text", text }], isError: true };
|
|
67
86
|
}
|
|
68
|
-
}
|
|
87
|
+
}
|
|
69
88
|
return server;
|
|
70
89
|
}
|
|
71
90
|
// structuredFrom turns a tool's JSON text into MCP structured output. Every
|
package/build/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,gEAAgE;AAChE,MAAM,WAAW,GACf,kNAAkN,CAAC;AAErN,4EAA4E;AAC5E,MAAM,YAAY,GAChB,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|