@0xinsider/mcp 1.0.0 → 1.0.9
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 +67 -7
- package/dist/cli-lib.d.ts +15 -0
- package/dist/cli-lib.d.ts.map +1 -1
- package/dist/cli-lib.js +231 -53
- package/dist/cli-lib.js.map +1 -1
- package/dist/client.d.ts +5 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +30 -4
- package/dist/client.js.map +1 -1
- package/dist/constants.d.ts +2 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +25 -1
- package/dist/constants.js.map +1 -1
- package/dist/prompts/index.js +3 -3
- package/dist/prompts/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +32 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/explore-markets.d.ts +36 -0
- package/dist/tools/explore-markets.d.ts.map +1 -0
- package/dist/tools/explore-markets.js +77 -0
- package/dist/tools/explore-markets.js.map +1 -0
- package/dist/tools/get-insider-radar.js +1 -1
- package/dist/tools/get-large-positions.d.ts +21 -0
- package/dist/tools/get-large-positions.d.ts.map +1 -0
- package/dist/tools/get-large-positions.js +68 -0
- package/dist/tools/get-large-positions.js.map +1 -0
- package/dist/tools/get-position-timeline.d.ts +24 -0
- package/dist/tools/get-position-timeline.d.ts.map +1 -0
- package/dist/tools/get-position-timeline.js +79 -0
- package/dist/tools/get-position-timeline.js.map +1 -0
- package/dist/tools/get-positions.d.ts +21 -0
- package/dist/tools/get-positions.d.ts.map +1 -0
- package/dist/tools/get-positions.js +68 -0
- package/dist/tools/get-positions.js.map +1 -0
- package/dist/tools/get-trader-pnl.d.ts +6 -0
- package/dist/tools/get-trader-pnl.d.ts.map +1 -0
- package/dist/tools/get-trader-pnl.js +39 -0
- package/dist/tools/get-trader-pnl.js.map +1 -0
- package/dist/tools/get-trader.d.ts +2 -0
- package/dist/tools/get-trader.d.ts.map +1 -1
- package/dist/tools/get-trader.js +13 -11
- package/dist/tools/get-trader.js.map +1 -1
- package/dist/tools/get-trending-wallets.d.ts +15 -0
- package/dist/tools/get-trending-wallets.d.ts.map +1 -0
- package/dist/tools/get-trending-wallets.js +56 -0
- package/dist/tools/get-trending-wallets.js.map +1 -0
- package/dist/tools/get-whale-trades.js +1 -1
- package/dist/tools/get-whale-trades.js.map +1 -1
- package/dist/tools/read-parity.d.ts +20 -0
- package/dist/tools/read-parity.d.ts.map +1 -0
- package/dist/tools/read-parity.js +493 -0
- package/dist/tools/read-parity.js.map +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ApiError } from "../client.js";
|
|
3
|
+
export const positionsParamsSchema = {
|
|
4
|
+
limit: z.number().int().min(1).max(100).default(20)
|
|
5
|
+
.describe("Max results (1-100, default 20)"),
|
|
6
|
+
cursor: z.string().optional()
|
|
7
|
+
.describe("Pagination cursor from previous response"),
|
|
8
|
+
min_size: z.number().min(0).default(100)
|
|
9
|
+
.describe("Minimum current position value in USD"),
|
|
10
|
+
category: z.string().optional()
|
|
11
|
+
.describe("Filter by provider-backed market category"),
|
|
12
|
+
min_grade: z.enum(["S", "A", "B", "C", "D", "F"]).optional()
|
|
13
|
+
.describe("Minimum trader grade"),
|
|
14
|
+
side: z.enum(["yes", "no"]).optional()
|
|
15
|
+
.describe("Filter by binary outcome side"),
|
|
16
|
+
};
|
|
17
|
+
export function buildPositionsParams(args) {
|
|
18
|
+
return {
|
|
19
|
+
limit: args.limit,
|
|
20
|
+
cursor: args.cursor,
|
|
21
|
+
min_size: args.min_size,
|
|
22
|
+
category: args.category,
|
|
23
|
+
min_grade: args.min_grade,
|
|
24
|
+
side: args.side,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function registerGetPositions(server, client) {
|
|
28
|
+
server.registerTool("get_positions", {
|
|
29
|
+
title: "List Current Positions",
|
|
30
|
+
description: `List current prediction-market positions from the public positions-board feed. Returns trader, market, value, side, share, P&L, and freshness context. Cursor-paginated by current value descending.
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
- limit (number, 1-100, default 20): Max results per page
|
|
34
|
+
- cursor (string, optional): Pagination cursor from previous response
|
|
35
|
+
- min_size (number, default 100): Minimum current value in USD
|
|
36
|
+
- category (string, optional): Filter by provider-backed market category
|
|
37
|
+
- min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)
|
|
38
|
+
- side (string, optional): Filter by binary side: "yes" or "no"
|
|
39
|
+
|
|
40
|
+
Returns: List of current positions with pagination metadata.`,
|
|
41
|
+
inputSchema: positionsParamsSchema,
|
|
42
|
+
annotations: {
|
|
43
|
+
readOnlyHint: true,
|
|
44
|
+
destructiveHint: false,
|
|
45
|
+
idempotentHint: true,
|
|
46
|
+
openWorldHint: false,
|
|
47
|
+
},
|
|
48
|
+
}, async (args) => {
|
|
49
|
+
try {
|
|
50
|
+
const response = await client.request("/api/v1/positions", buildPositionsParams(args));
|
|
51
|
+
const result = {
|
|
52
|
+
data: response.data,
|
|
53
|
+
has_more: response.has_more,
|
|
54
|
+
next_cursor: response.next_cursor,
|
|
55
|
+
};
|
|
56
|
+
return {
|
|
57
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
return {
|
|
62
|
+
isError: true,
|
|
63
|
+
content: [{ type: "text", text: error instanceof ApiError ? error.message : `Unexpected error: ${error}` }],
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=get-positions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-positions.js","sourceRoot":"","sources":["../../src/tools/get-positions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAChD,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,0CAA0C,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;SACrC,QAAQ,CAAC,uCAAuC,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,2CAA2C,CAAC;IACxD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;SACzD,QAAQ,CAAC,sBAAsB,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,+BAA+B,CAAC;CAC7C,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,IAOpC;IACC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAiB;IACvE,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE;;;;;;;;;;6DAU0C;QACvD,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,mBAAmB,EACnB,oBAAoB,CAAC,IAAI,CAAC,CAC3B,CAAC;YAEF,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { ApiClient } from "../client.js";
|
|
4
|
+
export declare const traderPnlLookupSchema: z.ZodString;
|
|
5
|
+
export declare function registerGetTraderPnl(server: McpServer, client: ApiClient): void;
|
|
6
|
+
//# sourceMappingURL=get-trader-pnl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-trader-pnl.d.ts","sourceRoot":"","sources":["../../src/tools/get-trader-pnl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,qBAAqB,aAAoC,CAAC;AAEvE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAwC/E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ApiError } from "../client.js";
|
|
3
|
+
export const traderPnlLookupSchema = z.string().trim().min(1).max(100);
|
|
4
|
+
export function registerGetTraderPnl(server, client) {
|
|
5
|
+
server.registerTool("get_trader_pnl", {
|
|
6
|
+
title: "Get Trader P&L Time Series",
|
|
7
|
+
description: `Get a trader's daily P&L time series and pre-derived stats from the precomputed daily_pnl read model: daily cumulative entries, period stats (all/90d/30d/7d), monthly aggregation, per-year totals, and the drawdown series. A resolved trader with no daily P&L returns an empty structured object; an unknown address returns an error.
|
|
8
|
+
|
|
9
|
+
Args:
|
|
10
|
+
- address (string, required): Ethereum wallet address (0x...), trader username, or trd_-prefixed trader id
|
|
11
|
+
|
|
12
|
+
Returns: Trader daily P&L time series with period stats, monthly aggregation, per-year totals, and drawdown series.`,
|
|
13
|
+
inputSchema: {
|
|
14
|
+
address: traderPnlLookupSchema
|
|
15
|
+
.describe("Ethereum wallet address (0x...), username, or trd_-prefixed trader id"),
|
|
16
|
+
},
|
|
17
|
+
annotations: {
|
|
18
|
+
readOnlyHint: true,
|
|
19
|
+
destructiveHint: false,
|
|
20
|
+
idempotentHint: true,
|
|
21
|
+
openWorldHint: false,
|
|
22
|
+
},
|
|
23
|
+
}, async ({ address }) => {
|
|
24
|
+
try {
|
|
25
|
+
const traderLookup = address.trim();
|
|
26
|
+
const response = await client.request(`/api/v1/trader/${encodeURIComponent(traderLookup)}/pnl`);
|
|
27
|
+
return {
|
|
28
|
+
content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
return {
|
|
33
|
+
isError: true,
|
|
34
|
+
content: [{ type: "text", text: error instanceof ApiError ? error.message : `Unexpected error: ${error}` }],
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=get-trader-pnl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-trader-pnl.js","sourceRoot":"","sources":["../../src/tools/get-trader-pnl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvE,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAiB;IACvE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE;;;;;oHAKiG;QAC9G,WAAW,EAAE;YACX,OAAO,EAAE,qBAAqB;iBAC3B,QAAQ,CAAC,uEAAuE,CAAC;SACrF;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,kBAAkB,kBAAkB,CAAC,YAAY,CAAC,MAAM,CACzD,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { z } from "zod";
|
|
2
3
|
import { ApiClient } from "../client.js";
|
|
4
|
+
export declare const traderLookupSchema: z.ZodString;
|
|
3
5
|
export declare function registerGetTrader(server: McpServer, client: ApiClient): void;
|
|
4
6
|
//# sourceMappingURL=get-trader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-trader.d.ts","sourceRoot":"","sources":["../../src/tools/get-trader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"get-trader.d.ts","sourceRoot":"","sources":["../../src/tools/get-trader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,kBAAkB,aAAoC,CAAC;AAEpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA0D5E"}
|
package/dist/tools/get-trader.js
CHANGED
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { ApiError } from "../client.js";
|
|
3
|
+
export const traderLookupSchema = z.string().trim().min(1).max(100);
|
|
3
4
|
export function registerGetTrader(server, client) {
|
|
4
5
|
server.registerTool("get_trader", {
|
|
5
6
|
title: "Get Trader Intelligence",
|
|
6
|
-
description: `Look up a prediction market trader by wallet address. Returns grade (S through F), P&L breakdown, win rate, and volume.
|
|
7
|
+
description: `Look up a prediction market trader by wallet address or username. Returns grade (S through F), P&L breakdown, win rate, and volume.
|
|
7
8
|
|
|
8
9
|
Optional expand fields for heavier data:
|
|
9
10
|
- strategy: Trading strategy classification
|
|
10
11
|
- categories: Per-category performance breakdown
|
|
11
|
-
- quant_metrics:
|
|
12
|
+
- quant_metrics: curated advanced metrics (copy_score and smart_score 0-100, sharpe_30d, sharpe_7d, profit_factor, edge_consistency, sharpe_percentile, pf_percentile, consistency_percentile); each value is a number or null
|
|
13
|
+
- trust: Per-field provenance (source, freshness, reconciliation, completeness) for grade, P&L, and stats
|
|
12
14
|
|
|
13
|
-
Unknown addresses return sync_status "unknown" (not an error).
|
|
15
|
+
Unknown addresses or usernames return sync_status "unknown" (not an error).
|
|
14
16
|
|
|
15
17
|
Args:
|
|
16
|
-
- address (string, required): Ethereum wallet address (0x...)
|
|
17
|
-
- expand (string[], optional): Heavy fields to include: "strategy", "categories", "quant_metrics"
|
|
18
|
+
- address (string, required): Ethereum wallet address (0x...) or trader username
|
|
19
|
+
- expand (string[], optional): Heavy fields to include: "strategy", "categories", "quant_metrics", "trust"
|
|
18
20
|
|
|
19
21
|
Returns: Trader profile with grade, P&L, stats, and optional expanded fields.`,
|
|
20
22
|
inputSchema: {
|
|
21
|
-
address:
|
|
22
|
-
.
|
|
23
|
-
|
|
24
|
-
expand: z.array(z.enum(["strategy", "categories", "quant_metrics"]))
|
|
23
|
+
address: traderLookupSchema
|
|
24
|
+
.describe("Ethereum wallet address (0x...) or trader username"),
|
|
25
|
+
expand: z.array(z.enum(["strategy", "categories", "quant_metrics", "trust"]))
|
|
25
26
|
.optional()
|
|
26
27
|
.describe("Optional heavy fields to include"),
|
|
27
28
|
},
|
|
@@ -33,10 +34,11 @@ Returns: Trader profile with grade, P&L, stats, and optional expanded fields.`,
|
|
|
33
34
|
},
|
|
34
35
|
}, async ({ address, expand }) => {
|
|
35
36
|
try {
|
|
37
|
+
const traderLookup = address.trim();
|
|
36
38
|
const repeatedParams = expand && expand.length > 0
|
|
37
|
-
? {
|
|
39
|
+
? { expand }
|
|
38
40
|
: undefined;
|
|
39
|
-
const response = await client.request(`/api/v1/trader/${encodeURIComponent(
|
|
41
|
+
const response = await client.request(`/api/v1/trader/${encodeURIComponent(traderLookup)}`, undefined, repeatedParams);
|
|
40
42
|
return {
|
|
41
43
|
content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }],
|
|
42
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-trader.js","sourceRoot":"","sources":["../../src/tools/get-trader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAiB;IACpE,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"get-trader.js","sourceRoot":"","sources":["../../src/tools/get-trader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEpE,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAiB;IACpE,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE;;;;;;;;;;;;;;8EAc2D;QACxE,WAAW,EAAE;YACX,OAAO,EAAE,kBAAkB;iBACxB,QAAQ,CAAC,oDAAoD,CAAC;YACjE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;iBAC1E,QAAQ,EAAE;iBACV,QAAQ,CAAC,kCAAkC,CAAC;SAChD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,cAAc,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAChD,CAAC,CAAC,EAAE,MAAM,EAAE;gBACZ,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,kBAAkB,kBAAkB,CAAC,YAAY,CAAC,EAAE,EACpD,SAAS,EACT,cAAc,CACf,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { ApiClient } from "../client.js";
|
|
4
|
+
export declare const trendingWalletsParamsSchema: {
|
|
5
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
6
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
7
|
+
window: z.ZodDefault<z.ZodEnum<["7d", "30d"]>>;
|
|
8
|
+
};
|
|
9
|
+
export declare function buildTrendingWalletsParams(args: {
|
|
10
|
+
limit?: number;
|
|
11
|
+
cursor?: string;
|
|
12
|
+
window?: "7d" | "30d";
|
|
13
|
+
}): Record<string, string | number | undefined>;
|
|
14
|
+
export declare function registerGetTrendingWallets(server: McpServer, client: ApiClient): void;
|
|
15
|
+
//# sourceMappingURL=get-trending-wallets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-trending-wallets.d.ts","sourceRoot":"","sources":["../../src/tools/get-trending-wallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,2BAA2B;;;;CAOvC,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;CACvB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAM9C;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA6CrF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ApiError } from "../client.js";
|
|
3
|
+
export const trendingWalletsParamsSchema = {
|
|
4
|
+
limit: z.number().int().min(1).max(100).default(20)
|
|
5
|
+
.describe("Max results (1-100, default 20)"),
|
|
6
|
+
cursor: z.string().optional()
|
|
7
|
+
.describe("Pagination cursor from previous response"),
|
|
8
|
+
window: z.enum(["7d", "30d"]).default("7d")
|
|
9
|
+
.describe("Trailing ranking window: 7d (default) or 30d"),
|
|
10
|
+
};
|
|
11
|
+
export function buildTrendingWalletsParams(args) {
|
|
12
|
+
return {
|
|
13
|
+
limit: args.limit,
|
|
14
|
+
cursor: args.cursor,
|
|
15
|
+
window: args.window,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function registerGetTrendingWallets(server, client) {
|
|
19
|
+
server.registerTool("get_trending_wallets", {
|
|
20
|
+
title: "List Trending Wallets",
|
|
21
|
+
description: `List wallets ranked by trailing-window realized P&L (Polymarket-only discovery), with cursor pagination. Each row carries window P&L, volume, distinct markets, grade, hot-streak tier, and a zero-filled daily P&L series. A cold read model returns 503 (warming, retry-after), never a fabricated ranking.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
- limit (number, 1-100, default 20): Max results per page
|
|
25
|
+
- cursor (string, optional): Pagination cursor from previous response
|
|
26
|
+
- window (string, optional): Trailing ranking window: "7d" (default) or "30d"
|
|
27
|
+
|
|
28
|
+
Returns: Ranked list of trending wallets with window stats and pagination metadata.`,
|
|
29
|
+
inputSchema: trendingWalletsParamsSchema,
|
|
30
|
+
annotations: {
|
|
31
|
+
readOnlyHint: true,
|
|
32
|
+
destructiveHint: false,
|
|
33
|
+
idempotentHint: true,
|
|
34
|
+
openWorldHint: false,
|
|
35
|
+
},
|
|
36
|
+
}, async (args) => {
|
|
37
|
+
try {
|
|
38
|
+
const response = await client.request("/api/v1/leaderboard/trending", buildTrendingWalletsParams(args));
|
|
39
|
+
const result = {
|
|
40
|
+
data: response.data,
|
|
41
|
+
has_more: response.has_more,
|
|
42
|
+
next_cursor: response.next_cursor,
|
|
43
|
+
};
|
|
44
|
+
return {
|
|
45
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
return {
|
|
50
|
+
isError: true,
|
|
51
|
+
content: [{ type: "text", text: error instanceof ApiError ? error.message : `Unexpected error: ${error}` }],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=get-trending-wallets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-trending-wallets.js","sourceRoot":"","sources":["../../src/tools/get-trending-wallets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAChD,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,0CAA0C,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;SACxC,QAAQ,CAAC,8CAA8C,CAAC;CAC5D,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,IAI1C;IACC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,MAAiB;IAC7E,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE;;;;;;;oFAOiE;QAC9E,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,8BAA8B,EAC9B,0BAA0B,CAAC,IAAI,CAAC,CACjC,CAAC;YAEF,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -12,7 +12,7 @@ Args:
|
|
|
12
12
|
- category (string, optional): Filter by market category (case-insensitive)
|
|
13
13
|
- min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)
|
|
14
14
|
|
|
15
|
-
Returns: List of whale trades with trader info, market context, size, side, price, and
|
|
15
|
+
Returns: List of whale trades with trader info, market context, size, side, price, current signal_score, and optional recorded_signal_score. A null recorded score means the row predates score capture. If a trade is added later, its time-sensitive recorded score reflects that delay.`,
|
|
16
16
|
inputSchema: {
|
|
17
17
|
limit: z.number().int().min(1).max(100).default(20)
|
|
18
18
|
.describe("Max results (1-100, default 20)"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-whale-trades.js","sourceRoot":"","sources":["../../src/tools/get-whale-trades.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAiB;IACzE,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"get-whale-trades.js","sourceRoot":"","sources":["../../src/tools/get-whale-trades.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAiB;IACzE,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE;;;;;;;;;2RASwQ;QACrR,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;iBAChD,QAAQ,CAAC,iCAAiC,CAAC;YAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAC1B,QAAQ,CAAC,0CAA0C,CAAC;YACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;iBACtC,QAAQ,CAAC,0CAA0C,CAAC;YACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAC5B,QAAQ,CAAC,8CAA8C,CAAC;YAC3D,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;iBACzD,QAAQ,CAAC,sBAAsB,CAAC;SACpC;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;QACzD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE;gBAC5D,KAAK;gBACL,MAAM;gBACN,QAAQ;gBACR,QAAQ;gBACR,SAAS;aACV,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { ApiClient } from "../client.js";
|
|
3
|
+
export declare function registerBatchGetTraders(server: McpServer, client: ApiClient): void;
|
|
4
|
+
export declare function registerGetWhaleTradesHistory(server: McpServer, client: ApiClient): void;
|
|
5
|
+
export declare function registerGetWhaleTrade(server: McpServer, client: ApiClient): void;
|
|
6
|
+
export declare function registerBatchGetMarketIntel(server: McpServer, client: ApiClient): void;
|
|
7
|
+
export declare function registerGetSmartMoneyFlows(server: McpServer, client: ApiClient): void;
|
|
8
|
+
export declare function registerGetSharpMoneyFlows(server: McpServer, client: ApiClient): void;
|
|
9
|
+
export declare function registerGetMarketSnapshot(server: McpServer, client: ApiClient): void;
|
|
10
|
+
export declare function registerGetPositionTimelineById(server: McpServer, client: ApiClient): void;
|
|
11
|
+
export declare function registerGetInsiderRadarFlag(server: McpServer, client: ApiClient): void;
|
|
12
|
+
export declare function registerGetEventReplaySince(server: McpServer, client: ApiClient): void;
|
|
13
|
+
export declare function registerListWebhooks(server: McpServer, client: ApiClient): void;
|
|
14
|
+
export declare function registerGetWebhook(server: McpServer, client: ApiClient): void;
|
|
15
|
+
export declare function registerGetDailyReportSnapshot(server: McpServer, client: ApiClient): void;
|
|
16
|
+
export declare function registerGetWeeklyReportSnapshot(server: McpServer, client: ApiClient): void;
|
|
17
|
+
export declare function registerGetMonthlyReportSnapshot(server: McpServer, client: ApiClient): void;
|
|
18
|
+
export declare function registerGetTraderExportSnapshot(server: McpServer, client: ApiClient): void;
|
|
19
|
+
export declare function registerGetPlatforms(server: McpServer, client: ApiClient): void;
|
|
20
|
+
//# sourceMappingURL=read-parity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-parity.d.ts","sourceRoot":"","sources":["../../src/tools/read-parity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AA0DnD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA6BlF;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA0CxF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BhF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BtF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAyCrF;AAKD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAyCrF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BpF;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAkC1F;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BtF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BtF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAsB/E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAyB7E;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAyBzF;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA+B1F;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAyB3F;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2B1F;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAsB/E"}
|