@0xinsider/mcp 1.0.2 → 1.2.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 +94 -9
- package/dist/catalog.generated.d.ts +136 -0
- package/dist/catalog.generated.d.ts.map +1 -0
- package/dist/catalog.generated.js +171 -0
- package/dist/catalog.generated.js.map +1 -0
- package/dist/cli-lib.d.ts +9 -0
- package/dist/cli-lib.d.ts.map +1 -1
- package/dist/cli-lib.js +213 -69
- package/dist/cli-lib.js.map +1 -1
- package/dist/client.d.ts +6 -1
- 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 +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +53 -6
- package/dist/server.js.map +1 -1
- package/dist/tools/explore-markets.d.ts +51 -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 +28 -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 +31 -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.map +1 -1
- package/dist/tools/get-trader.js +4 -3
- package/dist/tools/get-trader.js.map +1 -1
- package/dist/tools/get-trending-wallets.d.ts +18 -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.d.ts.map +1 -1
- package/dist/tools/get-whale-trades.js +6 -2
- package/dist/tools/get-whale-trades.js.map +1 -1
- package/dist/tools/pick-of-the-day.d.ts +5 -0
- package/dist/tools/pick-of-the-day.d.ts.map +1 -0
- package/dist/tools/pick-of-the-day.js +74 -0
- package/dist/tools/pick-of-the-day.js.map +1 -0
- package/dist/tools/read-parity.d.ts +22 -0
- package/dist/tools/read-parity.d.ts.map +1 -0
- package/dist/tools/read-parity.js +549 -0
- package/dist/tools/read-parity.js.map +1 -0
- package/package.json +15 -7
|
@@ -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;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,
|
|
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
|
@@ -9,19 +9,20 @@ export function registerGetTrader(server, client) {
|
|
|
9
9
|
Optional expand fields for heavier data:
|
|
10
10
|
- strategy: Trading strategy classification
|
|
11
11
|
- categories: Per-category performance breakdown
|
|
12
|
-
- 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
|
|
13
14
|
|
|
14
15
|
Unknown addresses or usernames return sync_status "unknown" (not an error).
|
|
15
16
|
|
|
16
17
|
Args:
|
|
17
18
|
- address (string, required): Ethereum wallet address (0x...) or trader username
|
|
18
|
-
- expand (string[], optional): Heavy fields to include: "strategy", "categories", "quant_metrics"
|
|
19
|
+
- expand (string[], optional): Heavy fields to include: "strategy", "categories", "quant_metrics", "trust"
|
|
19
20
|
|
|
20
21
|
Returns: Trader profile with grade, P&L, stats, and optional expanded fields.`,
|
|
21
22
|
inputSchema: {
|
|
22
23
|
address: traderLookupSchema
|
|
23
24
|
.describe("Ethereum wallet address (0x...) or trader username"),
|
|
24
|
-
expand: z.array(z.enum(["strategy", "categories", "quant_metrics"]))
|
|
25
|
+
expand: z.array(z.enum(["strategy", "categories", "quant_metrics", "trust"]))
|
|
25
26
|
.optional()
|
|
26
27
|
.describe("Optional heavy fields to include"),
|
|
27
28
|
},
|
|
@@ -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,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
|
|
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,18 @@
|
|
|
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<{
|
|
8
|
+
"7d": "7d";
|
|
9
|
+
"30d": "30d";
|
|
10
|
+
}>>;
|
|
11
|
+
};
|
|
12
|
+
export declare function buildTrendingWalletsParams(args: {
|
|
13
|
+
limit?: number;
|
|
14
|
+
cursor?: string;
|
|
15
|
+
window?: "7d" | "30d";
|
|
16
|
+
}): Record<string, string | number | undefined>;
|
|
17
|
+
export declare function registerGetTrendingWallets(server: McpServer, client: ApiClient): void;
|
|
18
|
+
//# 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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-whale-trades.d.ts","sourceRoot":"","sources":["../../src/tools/get-whale-trades.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"get-whale-trades.d.ts","sourceRoot":"","sources":["../../src/tools/get-whale-trades.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAiEjF"}
|
|
@@ -11,8 +11,9 @@ Args:
|
|
|
11
11
|
- min_size (number, default 5000): Minimum trade size in USD
|
|
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
|
+
- suspicious_only (boolean, optional): Keep only persisted suspicion_score >= 60; false preserves the current result set
|
|
14
15
|
|
|
15
|
-
Returns: List of whale trades with trader info, market context, size, side, price, and
|
|
16
|
+
Returns: List of whale trades with trader info, market context, size, side, price, current signal_score, optional recorded_signal_score, optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label.`,
|
|
16
17
|
inputSchema: {
|
|
17
18
|
limit: z.number().int().min(1).max(100).default(20)
|
|
18
19
|
.describe("Max results (1-100, default 20)"),
|
|
@@ -24,6 +25,8 @@ Returns: List of whale trades with trader info, market context, size, side, pric
|
|
|
24
25
|
.describe("Filter by market category (case-insensitive)"),
|
|
25
26
|
min_grade: z.enum(["S", "A", "B", "C", "D", "F"]).optional()
|
|
26
27
|
.describe("Minimum trader grade"),
|
|
28
|
+
suspicious_only: z.boolean().optional()
|
|
29
|
+
.describe("Keep only persisted suspicion_score >= 60"),
|
|
27
30
|
},
|
|
28
31
|
annotations: {
|
|
29
32
|
readOnlyHint: true,
|
|
@@ -31,7 +34,7 @@ Returns: List of whale trades with trader info, market context, size, side, pric
|
|
|
31
34
|
idempotentHint: true,
|
|
32
35
|
openWorldHint: false,
|
|
33
36
|
},
|
|
34
|
-
}, async ({ limit, cursor, min_size, category, min_grade }) => {
|
|
37
|
+
}, async ({ limit, cursor, min_size, category, min_grade, suspicious_only }) => {
|
|
35
38
|
try {
|
|
36
39
|
const response = await client.request("/api/v1/whale-trades", {
|
|
37
40
|
limit,
|
|
@@ -39,6 +42,7 @@ Returns: List of whale trades with trader info, market context, size, side, pric
|
|
|
39
42
|
min_size,
|
|
40
43
|
category,
|
|
41
44
|
min_grade,
|
|
45
|
+
suspicious_only,
|
|
42
46
|
});
|
|
43
47
|
const result = {
|
|
44
48
|
data: response.data,
|
|
@@ -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;;;;;;;;;;2QAUwP;QACrQ,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;YACnC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;iBACpC,QAAQ,CAAC,2CAA2C,CAAC;SACzD;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,EAAE,EAAE;QAC1E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE;gBAC5D,KAAK;gBACL,MAAM;gBACN,QAAQ;gBACR,QAAQ;gBACR,SAAS;gBACT,eAAe;aAChB,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,5 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { ApiClient } from "../client.js";
|
|
3
|
+
export declare function registerGetPickOfTheDay(server: McpServer, client: ApiClient): void;
|
|
4
|
+
export declare function registerGetPickOfTheDayArchive(server: McpServer, client: ApiClient): void;
|
|
5
|
+
//# sourceMappingURL=pick-of-the-day.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pick-of-the-day.d.ts","sourceRoot":"","sources":["../../src/tools/pick-of-the-day.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAyCnD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAwBlF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAsBzF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ApiError } from "../client.js";
|
|
2
|
+
// Pick of the Day over stdio (#10657). Both tools are argument-free reads that
|
|
3
|
+
// mirror the remote entries in backend/src/mcp/tools/contract.rs; the
|
|
4
|
+
// description text is kept in step with that file by hand, and
|
|
5
|
+
// scripts/mcp-catalog-parity.mjs proves the two tool lists match.
|
|
6
|
+
//
|
|
7
|
+
// The pre-release 404 (error.reason pick_not_released) and its retry_at reach the
|
|
8
|
+
// agent through ApiClient.decodeResponse, which already appends the Retry-After
|
|
9
|
+
// seconds and the absolute retry_at instant to the error text.
|
|
10
|
+
const readAnnotations = {
|
|
11
|
+
readOnlyHint: true,
|
|
12
|
+
destructiveHint: false,
|
|
13
|
+
idempotentHint: true,
|
|
14
|
+
openWorldHint: false,
|
|
15
|
+
};
|
|
16
|
+
function ok(value) {
|
|
17
|
+
return {
|
|
18
|
+
content: [{ type: "text", text: JSON.stringify(value, null, 2) }],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function fail(error) {
|
|
22
|
+
return {
|
|
23
|
+
isError: true,
|
|
24
|
+
content: [
|
|
25
|
+
{
|
|
26
|
+
type: "text",
|
|
27
|
+
text: error instanceof ApiError ? error.message : `Unexpected error: ${error}`,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function registerGetPickOfTheDay(server, client) {
|
|
33
|
+
server.registerTool("get_pick_of_the_day", {
|
|
34
|
+
title: "Get Pick of the Day",
|
|
35
|
+
description: `Get today's published Pick of the Day: the sports markets where graded (S/A/B) smart money is positioned, frozen at publish time. Pro-tier. Read \`picks\` in \`pick_rank\` order (normally 3-6 items, never more than six). Each pick carries the matchup, the backed side (pick_outcome_label), the frozen pre-game price and $100 return, the smart-money holders on that side, the top grade, CLV capture status, and the thesis. \`scheduled_picks\` lists today's selected-but-unreleased slots with only pick_rank, release_at, and kickoff; no market identity exists before release.
|
|
36
|
+
|
|
37
|
+
Before any pick is released the tool returns an error carrying reason pick_not_released and a retry_at instant: schedule the next read from retry_at (or the earliest scheduled_picks.release_at) instead of polling. A current-day pick whose holder proof is not yet readable returns read_model_warming with a retry.
|
|
38
|
+
|
|
39
|
+
Args: none
|
|
40
|
+
|
|
41
|
+
Returns: The published pick set for the current product day (America/New_York), or a pick_not_released error with retry_at.`,
|
|
42
|
+
inputSchema: {},
|
|
43
|
+
annotations: readAnnotations,
|
|
44
|
+
}, async () => {
|
|
45
|
+
try {
|
|
46
|
+
const response = await client.request("/api/v1/pick-of-the-day");
|
|
47
|
+
return ok(response.data);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
return fail(error);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
export function registerGetPickOfTheDayArchive(server, client) {
|
|
55
|
+
server.registerTool("get_pick_of_the_day_archive", {
|
|
56
|
+
title: "Get Pick of the Day Archive",
|
|
57
|
+
description: `Get the complete Pick of the Day track record: every published pick with its settled outcome (win, loss, void, or pending), the frozen backed price, unit score, and CLV fields, plus the rolling hit rate (wins / decided; void and pending excluded) and the flat-$100-stake profit and ROI. Pro-tier. A published pick is never deleted, re-pointed, or re-priced, so the archive is the whole record, losses included. Resolved picks are public on the web; a still-pending pick's backed side is included here because the API key proves Pro.
|
|
58
|
+
|
|
59
|
+
Args: none
|
|
60
|
+
|
|
61
|
+
Returns: picks[] newest first with outcome and CLV fields, plus the aggregate record (hit_rate, decided, wins, losses, voids, profit, roi, total risked).`,
|
|
62
|
+
inputSchema: {},
|
|
63
|
+
annotations: readAnnotations,
|
|
64
|
+
}, async () => {
|
|
65
|
+
try {
|
|
66
|
+
const response = await client.request("/api/v1/pick-of-the-day/archive");
|
|
67
|
+
return ok(response.data);
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
return fail(error);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=pick-of-the-day.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pick-of-the-day.js","sourceRoot":"","sources":["../../src/tools/pick-of-the-day.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,+EAA+E;AAC/E,sEAAsE;AACtE,+DAA+D;AAC/D,kEAAkE;AAClE,EAAE;AACF,kFAAkF;AAClF,gFAAgF;AAChF,+DAA+D;AAE/D,MAAM,eAAe,GAAG;IACtB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,KAAK;CACZ,CAAC;AAOX,SAAS,EAAE,CAAC,KAAc;IACxB,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,KAAc;IAC1B,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE;aAC/E;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,MAAiB;IAC1E,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE;;;;;;4HAMyG;QACtH,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,eAAe;KAC7B,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,MAAiB,EAAE,MAAiB;IACjF,MAAM,CAAC,YAAY,CACjB,6BAA6B,EAC7B;QACE,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE;;;;0JAIuI;QACpJ,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,eAAe;KAC7B,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;YACzE,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
export declare function registerSearchContent(server: McpServer, client: ApiClient): void;
|
|
21
|
+
export declare function registerGetReport(server: McpServer, client: ApiClient): void;
|
|
22
|
+
//# 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,CA4CxF;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;AAMD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2BhF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2B5E"}
|