@0xinsider/mcp 2.10.0 → 2.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/sdk/client.d.ts +10 -5
- package/dist/sdk/client.d.ts.map +1 -1
- package/dist/sdk/client.js +9 -4
- package/dist/sdk/client.js.map +1 -1
- package/dist/sdk/schema.d.ts +87 -61
- package/dist/sdk/schema.d.ts.map +1 -1
- package/dist/tools/explore-markets.d.ts +2 -1
- package/dist/tools/explore-markets.d.ts.map +1 -1
- package/dist/tools/explore-markets.js +6 -6
- package/dist/tools/explore-markets.js.map +1 -1
- package/dist/tools/games.d.ts.map +1 -1
- package/dist/tools/games.js +8 -6
- package/dist/tools/games.js.map +1 -1
- package/dist/tools/get-large-positions.d.ts.map +1 -1
- package/dist/tools/get-large-positions.js +10 -8
- package/dist/tools/get-large-positions.js.map +1 -1
- package/dist/tools/get-market-flow.d.ts.map +1 -1
- package/dist/tools/get-market-flow.js +21 -12
- package/dist/tools/get-market-flow.js.map +1 -1
- package/dist/tools/get-position-timeline.js +4 -4
- package/dist/tools/get-position-timeline.js.map +1 -1
- package/dist/tools/get-positions.d.ts +1 -1
- package/dist/tools/get-positions.d.ts.map +1 -1
- package/dist/tools/get-positions.js +6 -3
- package/dist/tools/get-positions.js.map +1 -1
- package/dist/tools/get-suspicious-trades.d.ts +8 -2
- package/dist/tools/get-suspicious-trades.d.ts.map +1 -1
- package/dist/tools/get-suspicious-trades.js +16 -3
- package/dist/tools/get-suspicious-trades.js.map +1 -1
- package/dist/tools/get-trader-pnl.d.ts.map +1 -1
- package/dist/tools/get-trader-pnl.js +6 -4
- package/dist/tools/get-trader-pnl.js.map +1 -1
- package/dist/tools/get-trader.js +2 -2
- package/dist/tools/get-trending-wallets.d.ts.map +1 -1
- package/dist/tools/get-trending-wallets.js +9 -7
- package/dist/tools/get-trending-wallets.js.map +1 -1
- package/dist/tools/get-whale-trades.d.ts.map +1 -1
- package/dist/tools/get-whale-trades.js +37 -18
- package/dist/tools/get-whale-trades.js.map +1 -1
- package/dist/tools/pick-of-the-day.js +1 -1
- package/dist/tools/read-parity.d.ts.map +1 -1
- package/dist/tools/read-parity.js +158 -84
- package/dist/tools/read-parity.js.map +1 -1
- package/dist/tools/search-markets.js +1 -1
- package/dist/tools/search-markets.js.map +1 -1
- package/package.json +1 -2
|
@@ -3,19 +3,7 @@ import { fail, listResult } from "./result.js";
|
|
|
3
3
|
function registerTradeList(server, client, tool) {
|
|
4
4
|
server.registerTool(tool.name, {
|
|
5
5
|
title: tool.title,
|
|
6
|
-
description:
|
|
7
|
-
|
|
8
|
-
Args:
|
|
9
|
-
- limit (number, 1-100, default 20): Max results per page
|
|
10
|
-
- cursor (string, optional): Pagination cursor from previous response
|
|
11
|
-
- min_size (number, default 5000): Minimum trade size in USD
|
|
12
|
-
- category (string, optional): Filter by market category (case-insensitive)
|
|
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
|
|
15
|
-
- min_market_volume_share (number, 0-1, optional): Keep only trades whose market_volume_share is known and at least this; a fraction, so 0.01 is one percent of the market's traded volume
|
|
16
|
-
- sort (string, optional): "recent" (default, newest first) or "market_volume_share" (biggest share of its market first, over the last 30 days, or from the from bound on the history tools; a cursor is bound to the order it was minted in)
|
|
17
|
-
|
|
18
|
-
Returns: List of large trades with trader info, market context, size, side, price, current review_score (signal_score is its deprecated twin, same value) and trader grade, point-in-time recorded_review_score (recorded_signal_score is its deprecated twin; null before 2026-08-03) and trader grade_at_trade with grade_at_trade_status (unknown before 2026-09-19), optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label. The page carries data_quality beside data: status, as_of (the oldest clock the page rests on) and field_groups. fresh means tracked and clocked, not current: compare as_of with your own tolerance. unknown means this read cannot date that group, never that it is recent.`,
|
|
6
|
+
description: tool.description,
|
|
19
7
|
inputSchema: {
|
|
20
8
|
limit: z.number().int().min(1).max(100).default(20)
|
|
21
9
|
.describe("Max results (1-100, default 20)"),
|
|
@@ -27,11 +15,11 @@ Returns: List of large trades with trader info, market context, size, side, pric
|
|
|
27
15
|
.describe("Filter by market category (case-insensitive)"),
|
|
28
16
|
min_grade: z.enum(["S", "A", "B", "C", "D", "F"]).optional()
|
|
29
17
|
.describe("Minimum trader grade"),
|
|
30
|
-
suspicious_only: z.boolean().
|
|
31
|
-
.describe("Keep only persisted suspicion_score >= 60"),
|
|
18
|
+
suspicious_only: z.boolean().default(false)
|
|
19
|
+
.describe("Keep only rows with persisted suspicion_score >= 60"),
|
|
32
20
|
min_market_volume_share: z.number().min(0).max(1).optional()
|
|
33
21
|
.describe("Keep only trades whose market_volume_share is known and at least this. A fraction, not a percent: 0.01 is one percent of the market's traded volume. A trade whose share is unavailable is never returned by a non-zero value"),
|
|
34
|
-
sort: z.enum(["recent", "market_volume_share"]).
|
|
22
|
+
sort: z.enum(["recent", "market_volume_share"]).default("recent")
|
|
35
23
|
.describe("Order of the page. recent is newest first. market_volume_share ranks by each trade's share of its market's traded volume, biggest first, a trade whose share is unavailable last, over the last 30 days. A cursor is bound to the order it was minted in"),
|
|
36
24
|
},
|
|
37
25
|
annotations: {
|
|
@@ -62,8 +50,39 @@ Returns: List of large trades with trader info, market context, size, side, pric
|
|
|
62
50
|
}
|
|
63
51
|
});
|
|
64
52
|
}
|
|
53
|
+
const LARGE_TRADES_DESCRIPTION = `Get recent large trades from graded prediction market traders. Each trade includes a 0-1 review score, persisted suspicion facts, trader grade, and market context. Cursor-paginated, newest first.
|
|
54
|
+
|
|
55
|
+
Args:
|
|
56
|
+
- limit (number, 1-100, default 20): Max results per page
|
|
57
|
+
- cursor (string, optional): Pagination cursor from previous response
|
|
58
|
+
- min_size (number, default 5000): Minimum trade size in USD
|
|
59
|
+
- category (string, optional): Filter by market category (case-insensitive)
|
|
60
|
+
- min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)
|
|
61
|
+
- suspicious_only (boolean, optional): Keep only persisted suspicion_score >= 60; false preserves the current result set
|
|
62
|
+
- min_market_volume_share (number, 0-1, optional): Keep only trades whose market_volume_share is known and at least this; a fraction, so 0.01 is one percent of the market's traded volume
|
|
63
|
+
- sort (string, optional): "recent" (default, newest first) or "market_volume_share" (biggest share of its market first, over the last 30 days, or from the from bound on the history tools; a cursor is bound to the order it was minted in)
|
|
64
|
+
|
|
65
|
+
Returns: List of large trades with trader info, market context, size, side, price, current review_score (signal_score is its deprecated twin, same value) and trader grade, point-in-time recorded_review_score (recorded_signal_score is its deprecated twin; null before 2026-08-03) and trader grade_at_trade with grade_at_trade_status (unknown before 2026-09-19), optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label. The page carries data_quality beside data: status, as_of (the oldest clock the page rests on) and field_groups. fresh means tracked and clocked, not current: compare as_of with your own tolerance. unknown means this read cannot date that group, never that it is recent.`;
|
|
66
|
+
const WHALE_TRADES_DESCRIPTION = `Deprecated alias of get_large_trades (#16304), kept live; it calls the deprecated /api/v1/whale-trades path. Get recent large trades from graded prediction market traders. Each trade includes a 0-1 review score, persisted suspicion facts, trader grade, and market context. Cursor-paginated, newest first.
|
|
67
|
+
|
|
68
|
+
Args:
|
|
69
|
+
- limit (number, 1-100, default 20): Max results per page
|
|
70
|
+
- cursor (string, optional): Pagination cursor from previous response
|
|
71
|
+
- min_size (number, default 5000): Minimum trade size in USD
|
|
72
|
+
- category (string, optional): Filter by market category (case-insensitive)
|
|
73
|
+
- min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)
|
|
74
|
+
- suspicious_only (boolean, optional): Keep only persisted suspicion_score >= 60; false preserves the current result set
|
|
75
|
+
- min_market_volume_share (number, 0-1, optional): Keep only trades whose market_volume_share is known and at least this; a fraction, so 0.01 is one percent of the market's traded volume
|
|
76
|
+
- sort (string, optional): "recent" (default, newest first) or "market_volume_share" (biggest share of its market first, over the last 30 days, or from the from bound on the history tools; a cursor is bound to the order it was minted in)
|
|
77
|
+
|
|
78
|
+
Returns: List of whale trades with trader info, market context, size, side, price, current review_score (signal_score is its deprecated twin, same value) and trader grade, point-in-time recorded_review_score (recorded_signal_score is its deprecated twin; null before 2026-08-03) and trader grade_at_trade with grade_at_trade_status (unknown before 2026-09-19), optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label. The page carries data_quality beside data: status, as_of (the oldest clock the page rests on) and field_groups. fresh means tracked and clocked, not current: compare as_of with your own tolerance. unknown means this read cannot date that group, never that it is recent.`;
|
|
65
79
|
export function registerGetLargeTrades(server, client) {
|
|
66
|
-
registerTradeList(server, client, {
|
|
80
|
+
registerTradeList(server, client, {
|
|
81
|
+
name: "get_large_trades",
|
|
82
|
+
title: "List large trades",
|
|
83
|
+
path: "/api/v1/large-trades",
|
|
84
|
+
description: LARGE_TRADES_DESCRIPTION,
|
|
85
|
+
});
|
|
67
86
|
}
|
|
68
87
|
/** Deprecated spelling of get_large_trades (#16304). */
|
|
69
88
|
export function registerGetWhaleTrades(server, client) {
|
|
@@ -71,7 +90,7 @@ export function registerGetWhaleTrades(server, client) {
|
|
|
71
90
|
name: "get_whale_trades",
|
|
72
91
|
title: "List Whale Trades",
|
|
73
92
|
path: "/api/v1/whale-trades",
|
|
74
|
-
|
|
93
|
+
description: WHALE_TRADES_DESCRIPTION,
|
|
75
94
|
});
|
|
76
95
|
}
|
|
77
96
|
//# sourceMappingURL=get-whale-trades.js.map
|
|
@@ -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;AAExB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/C,SAAS,iBAAiB,CACxB,MAAiB,EACjB,MAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"get-whale-trades.js","sourceRoot":"","sources":["../../src/tools/get-whale-trades.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ const readAnnotations = {
|
|
|
16
16
|
export function registerGetPickOfTheDay(server, client) {
|
|
17
17
|
server.registerTool("get_pick_of_the_day", {
|
|
18
18
|
title: "Get Pick of the Day",
|
|
19
|
-
description: `Get today's published Pick of the Day: the sports markets where graded (S/A/B) sharp money is positioned, frozen at publish time. Pro-tier. Read \`picks\` in \`pick_rank\` order (normally 3-
|
|
19
|
+
description: `Get today's published Pick of the Day: the sports markets where graded (S/A/B) sharp money is positioned, frozen at publish time. Pro-tier. Read \`picks\` in \`pick_rank\` order (normally 3-10 items, never more than ten). Each pick carries the matchup, the backed side (pick_outcome_label), the frozen pre-game price and the return on the flat $1,000 stake (\`stake_usd\`, \`return_usd\`; \`return_per_100\` keeps the literal $100 basis), the sharp-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.
|
|
20
20
|
|
|
21
21
|
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 readable yet is listed in \`proof_pending_picks\` (pick_rank, release_at, kickoff, retry_at) while \`picks\` carries the proof-readable picks; the tool returns read_model_warming with a retry only when no published pick has readable proof.
|
|
22
22
|
|
|
@@ -1 +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,EAAE,MAAM,cAAc,CAAC;AAezC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA6BlF;
|
|
1
|
+
{"version":3,"file":"read-parity.d.ts","sourceRoot":"","sources":["../../src/tools/read-parity.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,38 +38,33 @@ Returns: Ordered batch trader results with per-item success or error details. Ea
|
|
|
38
38
|
function registerTradeHistory(server, client, tool) {
|
|
39
39
|
server.registerTool(tool.name, {
|
|
40
40
|
title: tool.title,
|
|
41
|
-
description:
|
|
42
|
-
|
|
43
|
-
Args:
|
|
44
|
-
- limit (number, 1-100, default 20)
|
|
45
|
-
- cursor (string, optional): Pagination cursor with wth_ prefix
|
|
46
|
-
- min_size (number, optional): Minimum trade size in USD
|
|
47
|
-
- condition_id (string, optional): Exact raw provider condition_id
|
|
48
|
-
- trader (string, optional): Wallet, alias, or username
|
|
49
|
-
- category (string, optional)
|
|
50
|
-
- min_grade (string, optional): S, A, B, C, D, or F; filters on today's grade, not the grade at trade time
|
|
51
|
-
- suspicious_only (boolean, optional): Keep only persisted suspicion_score >= 60
|
|
52
|
-
- platform (string, optional): polymarket or all
|
|
53
|
-
- from/to (string, optional): RFC3339 traded_at bounds
|
|
54
|
-
- min_market_volume_share (number, 0-1, optional): Keep only trades whose market_volume_share is known and at least this; a fraction, so 0.01 is one percent of the market's traded volume
|
|
55
|
-
- sort (string, optional): "recent" (default, newest first) or "market_volume_share" (biggest share of its market first, over the last 30 days, or from the from bound on the history tools; a cursor is bound to the order it was minted in)
|
|
56
|
-
|
|
57
|
-
Returns: Historical large trades with replay metadata, current review_score (signal_score is its deprecated twin, same value) and trader grade, point-in-time recorded_review_score (recorded_signal_score is its deprecated twin; null before 2026-08-03) and trader grade_at_trade with grade_at_trade_status (unknown before 2026-09-19), optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label. The page carries data_quality beside data: status, as_of (the oldest clock the page rests on) and field_groups. fresh means tracked and clocked, not current: compare as_of with your own tolerance. unknown means this read cannot date that group, never that it is recent.`,
|
|
41
|
+
description: tool.description,
|
|
58
42
|
inputSchema: {
|
|
59
|
-
limit: z.number().int().min(1).max(100).default(20)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
43
|
+
limit: z.number().int().min(1).max(100).default(20)
|
|
44
|
+
.describe("Max results (1-100, default 20)"),
|
|
45
|
+
cursor: z.string().optional()
|
|
46
|
+
.describe("Pagination cursor from previous response"),
|
|
47
|
+
min_size: z.number().min(0).default(5000)
|
|
48
|
+
.describe("Minimum trade size in USD"),
|
|
49
|
+
condition_id: z.string().optional()
|
|
50
|
+
.describe("Exact raw provider condition_id"),
|
|
51
|
+
trader: z.string().optional()
|
|
52
|
+
.describe("Trader wallet, alias, or username"),
|
|
53
|
+
category: z.string().optional()
|
|
54
|
+
.describe("Filter by market category"),
|
|
55
|
+
min_grade: z.enum(["S", "A", "B", "C", "D", "F"]).optional()
|
|
56
|
+
.describe("Minimum trader grade"),
|
|
57
|
+
suspicious_only: z.boolean().default(false)
|
|
58
|
+
.describe("Keep only rows with persisted suspicion_score >= 60"),
|
|
59
|
+
platform: z.enum(["polymarket", "all"]).optional()
|
|
60
|
+
.describe("Filter by provider platform"),
|
|
61
|
+
from: z.string().datetime().optional()
|
|
62
|
+
.describe("Inclusive traded_at lower bound"),
|
|
63
|
+
to: z.string().datetime().optional()
|
|
64
|
+
.describe("Exclusive traded_at upper bound"),
|
|
70
65
|
min_market_volume_share: z.number().min(0).max(1).optional()
|
|
71
66
|
.describe("Keep only trades whose market_volume_share is known and at least this. A fraction, not a percent: 0.01 is one percent of the market's traded volume. A trade whose share is unavailable is never returned by a non-zero value"),
|
|
72
|
-
sort: z.enum(["recent", "market_volume_share"]).
|
|
67
|
+
sort: z.enum(["recent", "market_volume_share"]).default("recent")
|
|
73
68
|
.describe("Order of the page. recent is newest first. market_volume_share ranks by each trade's share of its market's traded volume, biggest first, a trade whose share is unavailable last, over from, or the last 30 days when from is omitted. A cursor is bound to the order it was minted in"),
|
|
74
69
|
},
|
|
75
70
|
annotations: readAnnotations,
|
|
@@ -84,7 +79,28 @@ Returns: Historical large trades with replay metadata, current review_score (sig
|
|
|
84
79
|
});
|
|
85
80
|
}
|
|
86
81
|
export function registerGetLargeTradesHistory(server, client) {
|
|
87
|
-
registerTradeHistory(server, client, {
|
|
82
|
+
registerTradeHistory(server, client, {
|
|
83
|
+
name: "get_large_trades_history",
|
|
84
|
+
title: "Replay historical large trades",
|
|
85
|
+
path: "/api/v1/large-trades/history",
|
|
86
|
+
description: `Replay historical large trades from the local record. Supports cursor pagination plus condition, trader, category, grade, platform, suspicion, market-share, and RFC3339 from/to filters, and a market_volume_share sort.
|
|
87
|
+
|
|
88
|
+
Args:
|
|
89
|
+
- limit (number, 1-100, default 20)
|
|
90
|
+
- cursor (string, optional): Pagination cursor with wth_ prefix
|
|
91
|
+
- min_size (number, optional): Minimum trade size in USD
|
|
92
|
+
- condition_id (string, optional): Exact raw provider condition_id
|
|
93
|
+
- trader (string, optional): Wallet, alias, or username
|
|
94
|
+
- category (string, optional)
|
|
95
|
+
- min_grade (string, optional): S, A, B, C, D, or F; filters on today's grade, not the grade at trade time
|
|
96
|
+
- suspicious_only (boolean, optional): Keep only persisted suspicion_score >= 60
|
|
97
|
+
- platform (string, optional): polymarket or all
|
|
98
|
+
- from/to (string, optional): RFC3339 traded_at bounds
|
|
99
|
+
- min_market_volume_share (number, 0-1, optional): Keep only trades whose market_volume_share is known and at least this; a fraction, so 0.01 is one percent of the market's traded volume
|
|
100
|
+
- sort (string, optional): "recent" (default, newest first) or "market_volume_share" (biggest share of its market first, over the last 30 days, or from the from bound on the history tools; a cursor is bound to the order it was minted in)
|
|
101
|
+
|
|
102
|
+
Returns: Historical large trades with replay metadata, current review_score (signal_score is its deprecated twin, same value) and trader grade, point-in-time recorded_review_score (recorded_signal_score is its deprecated twin; null before 2026-08-03) and trader grade_at_trade with grade_at_trade_status (unknown before 2026-09-19), optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label. The page carries data_quality beside data: status, as_of (the oldest clock the page rests on) and field_groups. fresh means tracked and clocked, not current: compare as_of with your own tolerance. unknown means this read cannot date that group, never that it is recent.`,
|
|
103
|
+
});
|
|
88
104
|
}
|
|
89
105
|
/** Deprecated spelling of get_large_trades_history (#16304). */
|
|
90
106
|
export function registerGetWhaleTradesHistory(server, client) {
|
|
@@ -92,19 +108,32 @@ export function registerGetWhaleTradesHistory(server, client) {
|
|
|
92
108
|
name: "get_whale_trades_history",
|
|
93
109
|
title: "Replay Historical Whale Trades",
|
|
94
110
|
path: "/api/v1/whale-trades/history",
|
|
95
|
-
|
|
111
|
+
description: `Deprecated alias of get_large_trades_history (#16304), kept live; it calls the deprecated /api/v1/whale-trades/history path. Replay historical whale trades from local whale_alerts rows. Supports cursor pagination plus condition, trader, category, grade, platform, suspicion, market-share, and RFC3339 from/to filters, and a market_volume_share sort.
|
|
112
|
+
|
|
113
|
+
Args:
|
|
114
|
+
- limit (number, 1-100, default 20)
|
|
115
|
+
- cursor (string, optional): Pagination cursor with wth_ prefix
|
|
116
|
+
- min_size (number, optional): Minimum trade size in USD
|
|
117
|
+
- condition_id (string, optional): Exact raw provider condition_id
|
|
118
|
+
- trader (string, optional): Wallet, alias, or username
|
|
119
|
+
- category (string, optional)
|
|
120
|
+
- min_grade (string, optional): S, A, B, C, D, or F; filters on today's grade, not the grade at trade time
|
|
121
|
+
- suspicious_only (boolean, optional): Keep only persisted suspicion_score >= 60
|
|
122
|
+
- platform (string, optional): polymarket or all
|
|
123
|
+
- from/to (string, optional): RFC3339 traded_at bounds
|
|
124
|
+
- min_market_volume_share (number, 0-1, optional): Keep only trades whose market_volume_share is known and at least this; a fraction, so 0.01 is one percent of the market's traded volume
|
|
125
|
+
- sort (string, optional): "recent" (default, newest first) or "market_volume_share" (biggest share of its market first, over the last 30 days, or from the from bound on the history tools; a cursor is bound to the order it was minted in)
|
|
126
|
+
|
|
127
|
+
Returns: Historical whale trades with replay metadata, current review_score (signal_score is its deprecated twin, same value) and trader grade, point-in-time recorded_review_score (recorded_signal_score is its deprecated twin; null before 2026-08-03) and trader grade_at_trade with grade_at_trade_status (unknown before 2026-09-19), optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label. The page carries data_quality beside data: status, as_of (the oldest clock the page rests on) and field_groups. fresh means tracked and clocked, not current: compare as_of with your own tolerance. unknown means this read cannot date that group, never that it is recent.`,
|
|
96
128
|
});
|
|
97
129
|
}
|
|
98
130
|
function registerTradeDetail(server, client, tool) {
|
|
99
131
|
server.registerTool(tool.name, {
|
|
100
132
|
title: tool.title,
|
|
101
|
-
description:
|
|
102
|
-
|
|
103
|
-
Args:
|
|
104
|
-
- id (string, required): Large trade ID such as wt_123 or 123
|
|
105
|
-
|
|
106
|
-
Returns: One large trade with trader info, market context, size, side, price, current review_score (signal_score is its deprecated twin, same value) and trader grade, point-in-time recorded_review_score (recorded_signal_score is its deprecated twin; null before 2026-08-03) and trader grade_at_trade with grade_at_trade_status (unknown before 2026-09-19), optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label.`,
|
|
133
|
+
description: tool.description,
|
|
107
134
|
inputSchema: {
|
|
135
|
+
// `get_large_trade_id_schema` in `backend/src/mcp/tools/schema.rs` names
|
|
136
|
+
// the prefix too (#18083); the two sides must read the same.
|
|
108
137
|
id: z.string().trim().min(1).describe("Large trade ID such as wt_123 or 123"),
|
|
109
138
|
},
|
|
110
139
|
annotations: readAnnotations,
|
|
@@ -119,7 +148,17 @@ Returns: One large trade with trader info, market context, size, side, price, cu
|
|
|
119
148
|
});
|
|
120
149
|
}
|
|
121
150
|
export function registerGetLargeTrade(server, client) {
|
|
122
|
-
registerTradeDetail(server, client, {
|
|
151
|
+
registerTradeDetail(server, client, {
|
|
152
|
+
name: "get_large_trade",
|
|
153
|
+
title: "Get large trade",
|
|
154
|
+
path: "/api/v1/large-trades",
|
|
155
|
+
description: `Read one large trade by ID. Accepts either the wt_ ID returned by large-trade list/history responses or the raw numeric id.
|
|
156
|
+
|
|
157
|
+
Args:
|
|
158
|
+
- id (string, required): Large trade ID such as wt_123 or 123
|
|
159
|
+
|
|
160
|
+
Returns: One large trade with trader info, market context, size, side, price, current review_score (signal_score is its deprecated twin, same value) and trader grade, point-in-time recorded_review_score (recorded_signal_score is its deprecated twin; null before 2026-08-03) and trader grade_at_trade with grade_at_trade_status (unknown before 2026-09-19), optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label.`,
|
|
161
|
+
});
|
|
123
162
|
}
|
|
124
163
|
/** Deprecated spelling of get_large_trade (#16304). */
|
|
125
164
|
export function registerGetWhaleTrade(server, client) {
|
|
@@ -127,23 +166,23 @@ export function registerGetWhaleTrade(server, client) {
|
|
|
127
166
|
name: "get_whale_trade",
|
|
128
167
|
title: "Get Whale Trade",
|
|
129
168
|
path: "/api/v1/whale-trades",
|
|
130
|
-
|
|
169
|
+
description: `Deprecated alias of get_large_trade (#16304), kept live; it calls the deprecated /api/v1/whale-trades/{id} path, whose envelope keeps object: whale_trade. Read one whale trade by ID. Accepts either the wt_ ID returned by whale-trade list/history responses or the raw numeric whale_alerts.id.
|
|
170
|
+
|
|
171
|
+
Args:
|
|
172
|
+
- id (string, required): Whale trade ID such as wt_123 or 123
|
|
173
|
+
|
|
174
|
+
Returns: One whale trade with trader info, market context, size, side, price, current review_score (signal_score is its deprecated twin, same value) and trader grade, point-in-time recorded_review_score (recorded_signal_score is its deprecated twin; null before 2026-08-03) and trader grade_at_trade with grade_at_trade_status (unknown before 2026-09-19), optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label.`,
|
|
131
175
|
});
|
|
132
176
|
}
|
|
133
177
|
function registerMarketFlowBatch(server, client, tool) {
|
|
134
178
|
server.registerTool(tool.name, {
|
|
135
179
|
title: tool.title,
|
|
136
|
-
description:
|
|
137
|
-
|
|
138
|
-
Args:
|
|
139
|
-
- condition_ids (string[], required): Raw provider condition IDs
|
|
140
|
-
- timeframe (string, optional): "1h", "4h", "24h", or "7d" (default "24h")
|
|
141
|
-
|
|
142
|
-
Returns: Ordered batch market-flow results with per-item success or error details.`,
|
|
180
|
+
description: tool.description,
|
|
143
181
|
inputSchema: {
|
|
144
182
|
condition_ids: z.array(z.string().trim().min(1)).min(1).max(MAX_BATCH_ITEMS)
|
|
145
|
-
.describe("Raw provider
|
|
146
|
-
timeframe: z.enum(["1h", "4h", "24h", "7d"]).default("24h")
|
|
183
|
+
.describe("Raw provider condition_id values"),
|
|
184
|
+
timeframe: z.enum(["1h", "4h", "24h", "7d"]).default("24h")
|
|
185
|
+
.describe("Shared lookback window"),
|
|
147
186
|
},
|
|
148
187
|
annotations: readAnnotations,
|
|
149
188
|
}, async ({ condition_ids, timeframe }) => {
|
|
@@ -160,6 +199,13 @@ export function registerBatchGetMarketFlow(server, client) {
|
|
|
160
199
|
name: "batch_get_market_flow",
|
|
161
200
|
title: "Batch market flow",
|
|
162
201
|
path: "/api/v1/markets/flow/batch",
|
|
202
|
+
description: `Read-only batch lookup of market flow for 1-${MAX_BATCH_ITEMS} raw provider condition_id values. Results preserve request order and duplicate inputs return duplicate rows. Uses the same V1 batch item quota as POST /api/v1/markets/flow/batch.
|
|
203
|
+
|
|
204
|
+
Args:
|
|
205
|
+
- condition_ids (string[], required): Raw provider condition IDs
|
|
206
|
+
- timeframe (string, optional): "1h", "4h", "24h", or "7d" (default "24h")
|
|
207
|
+
|
|
208
|
+
Returns: Ordered batch market-flow results with per-item success or error details.`,
|
|
163
209
|
});
|
|
164
210
|
}
|
|
165
211
|
/** Deprecated spelling of batch_get_market_flow (#16312). */
|
|
@@ -168,7 +214,13 @@ export function registerBatchGetMarketIntel(server, client) {
|
|
|
168
214
|
name: "batch_get_market_intel",
|
|
169
215
|
title: "Batch Market Intelligence",
|
|
170
216
|
path: "/api/v1/markets/intel/batch",
|
|
171
|
-
|
|
217
|
+
description: `Deprecated alias of batch_get_market_flow (#16312), kept live; it calls the deprecated POST /api/v1/markets/intel/batch path, whose envelope keeps object: market_intel_batch. Read-only batch lookup for 1-${MAX_BATCH_ITEMS} raw provider condition_id values. Results preserve request order and duplicate inputs return duplicate rows. Uses the same V1 batch item quota as POST /api/v1/markets/intel/batch.
|
|
218
|
+
|
|
219
|
+
Args:
|
|
220
|
+
- condition_ids (string[], required): Raw provider condition IDs
|
|
221
|
+
- timeframe (string, optional): "1h", "4h", "24h", or "7d" (default "24h")
|
|
222
|
+
|
|
223
|
+
Returns: Ordered batch market-intelligence results with per-item success or error details.`,
|
|
172
224
|
});
|
|
173
225
|
}
|
|
174
226
|
// Canonical "sharp money" spelling (epic #6912, #16300, #16308); "sharp
|
|
@@ -185,20 +237,23 @@ Args:
|
|
|
185
237
|
- limit (number, 1-100, default 20): Max results per page
|
|
186
238
|
- cursor (string, optional): Pagination cursor with smf_ prefix
|
|
187
239
|
- category (string, optional): Filter by provider-backed market category
|
|
188
|
-
- platform (string, optional): "polymarket" or "all" (
|
|
240
|
+
- platform (string, optional): "polymarket" or "all" (default "all")
|
|
189
241
|
- min_grade (string, optional): Minimum trader grade S, A, B, C, D, or F (default "B" = S/A/B)
|
|
190
242
|
- direction (string, optional): Filter by net flow direction: "YES" or "NO"
|
|
191
243
|
|
|
192
244
|
Returns: Ranked markets with sharp_money (net_flow_usd, direction, whale_trade_count, buy/sell volumes) and market identity. smart_money is a deprecated byte-identical alias of sharp_money.`,
|
|
193
245
|
inputSchema: {
|
|
194
|
-
timeframe: z.enum(["1h", "4h", "24h", "7d"]).default("24h")
|
|
195
|
-
|
|
246
|
+
timeframe: z.enum(["1h", "4h", "24h", "7d"]).default("24h")
|
|
247
|
+
.describe("Lookback window (default 24h)"),
|
|
248
|
+
limit: z.number().int().min(1).max(100).default(20)
|
|
249
|
+
.describe("Max results (1-100, default 20)"),
|
|
196
250
|
cursor: z.string().optional()
|
|
197
251
|
.describe("Pagination cursor with smf_ prefix"),
|
|
198
252
|
category: z.string().optional()
|
|
199
253
|
.describe("Filter by provider-backed market category"),
|
|
200
|
-
platform: z.enum(["polymarket", "all"]).
|
|
201
|
-
|
|
254
|
+
platform: z.enum(["polymarket", "all"]).default("all")
|
|
255
|
+
.describe("Platform filter (default all)"),
|
|
256
|
+
min_grade: z.enum(["S", "A", "B", "C", "D", "F"]).default("B")
|
|
202
257
|
.describe("Minimum trader grade (default B = S/A/B)"),
|
|
203
258
|
direction: z.enum(["YES", "NO"]).optional()
|
|
204
259
|
.describe("Filter by net flow direction"),
|
|
@@ -226,20 +281,23 @@ Args:
|
|
|
226
281
|
- limit (number, 1-100, default 20): Max results per page
|
|
227
282
|
- cursor (string, optional): Pagination cursor with smf_ prefix
|
|
228
283
|
- category (string, optional): Filter by provider-backed market category
|
|
229
|
-
- platform (string, optional): "polymarket" or "all" (
|
|
284
|
+
- platform (string, optional): "polymarket" or "all" (default "all")
|
|
230
285
|
- min_grade (string, optional): Minimum trader grade S, A, B, C, D, or F (default "B" = S/A/B)
|
|
231
286
|
- direction (string, optional): Filter by net flow direction: "YES" or "NO"
|
|
232
287
|
|
|
233
288
|
Returns: Ranked markets with sharp_money (net_flow_usd, direction, whale_trade_count, buy/sell volumes) and market identity. smart_money is a deprecated byte-identical alias of sharp_money.`,
|
|
234
289
|
inputSchema: {
|
|
235
|
-
timeframe: z.enum(["1h", "4h", "24h", "7d"]).default("24h")
|
|
236
|
-
|
|
290
|
+
timeframe: z.enum(["1h", "4h", "24h", "7d"]).default("24h")
|
|
291
|
+
.describe("Lookback window (default 24h)"),
|
|
292
|
+
limit: z.number().int().min(1).max(100).default(20)
|
|
293
|
+
.describe("Max results (1-100, default 20)"),
|
|
237
294
|
cursor: z.string().optional()
|
|
238
295
|
.describe("Pagination cursor with smf_ prefix"),
|
|
239
296
|
category: z.string().optional()
|
|
240
297
|
.describe("Filter by provider-backed market category"),
|
|
241
|
-
platform: z.enum(["polymarket", "all"]).
|
|
242
|
-
|
|
298
|
+
platform: z.enum(["polymarket", "all"]).default("all")
|
|
299
|
+
.describe("Platform filter (default all)"),
|
|
300
|
+
min_grade: z.enum(["S", "A", "B", "C", "D", "F"]).default("B")
|
|
243
301
|
.describe("Minimum trader grade (default B = S/A/B)"),
|
|
244
302
|
direction: z.enum(["YES", "NO"]).optional()
|
|
245
303
|
.describe("Filter by net flow direction"),
|
|
@@ -293,8 +351,10 @@ Returns: List of position timeline events with pagination metadata.`,
|
|
|
293
351
|
inputSchema: {
|
|
294
352
|
condition_id: z.string().trim().min(1).describe("Market condition ID"),
|
|
295
353
|
trader_id: z.number().int().positive().describe("Internal traders.id alias"),
|
|
296
|
-
limit: z.number().int().min(1).max(100).default(20)
|
|
297
|
-
|
|
354
|
+
limit: z.number().int().min(1).max(100).default(20)
|
|
355
|
+
.describe("Max events (1-100, default 20)"),
|
|
356
|
+
cursor: z.string().optional()
|
|
357
|
+
.describe("Pagination cursor from previous response"),
|
|
298
358
|
},
|
|
299
359
|
annotations: readAnnotations,
|
|
300
360
|
}, async ({ condition_id, trader_id, limit, cursor }) => {
|
|
@@ -341,13 +401,20 @@ Args:
|
|
|
341
401
|
|
|
342
402
|
Returns: Event replay window with retention and completeness metadata; each event carries trade when expanded.`,
|
|
343
403
|
inputSchema: {
|
|
344
|
-
cursor: z.string().optional()
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
404
|
+
cursor: z.string().optional()
|
|
405
|
+
.describe("Opaque event replay cursor; bound to the filters the walk ran with"),
|
|
406
|
+
limit: z.number().int().min(1).max(100).default(50)
|
|
407
|
+
.describe("Max events (1-100, default 50)"),
|
|
408
|
+
trader: z.string().optional()
|
|
409
|
+
.describe("Only this wallet's trades: address, trd_ id or username (bound to the cursor)"),
|
|
410
|
+
condition_id: z.string().optional()
|
|
411
|
+
.describe("Only this market's trades: raw condition_id or mkt_ id (bound to the cursor)"),
|
|
412
|
+
min_grade: z.enum(["S", "A", "B", "C", "D", "F"]).optional()
|
|
413
|
+
.describe("Only wallets at this grade or better (bound to the cursor)"),
|
|
414
|
+
min_size: z.number().min(0).optional()
|
|
415
|
+
.describe("Only trades of at least this size in USD (bound to the cursor)"),
|
|
416
|
+
expand: z.enum(["trade"]).optional()
|
|
417
|
+
.describe("trade: add the public trade read to every event, so no per-event detail call is needed"),
|
|
351
418
|
},
|
|
352
419
|
annotations: readAnnotations,
|
|
353
420
|
}, async ({ cursor, limit, trader, condition_id, min_grade, min_size, expand }) => {
|
|
@@ -445,9 +512,12 @@ Args:
|
|
|
445
512
|
|
|
446
513
|
Returns: Report snapshot metadata and entries.`,
|
|
447
514
|
inputSchema: {
|
|
448
|
-
week: z.string().regex(/^\d{4}-\d{2}$/).optional()
|
|
449
|
-
|
|
450
|
-
|
|
515
|
+
week: z.string().regex(/^\d{4}-\d{2}$/).optional()
|
|
516
|
+
.describe("ISO week selector in YYYY-WW format"),
|
|
517
|
+
from: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional()
|
|
518
|
+
.describe("UTC source-range start in YYYY-MM-DD format"),
|
|
519
|
+
to: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional()
|
|
520
|
+
.describe("UTC source-range end in YYYY-MM-DD format"),
|
|
451
521
|
},
|
|
452
522
|
annotations: readAnnotations,
|
|
453
523
|
}, async ({ week, from, to }) => {
|
|
@@ -512,11 +582,11 @@ Returns: Trader export snapshot metadata.`,
|
|
|
512
582
|
export function registerGetCoverage(server, client) {
|
|
513
583
|
server.registerTool("get_coverage", {
|
|
514
584
|
title: "Get coverage",
|
|
515
|
-
description: `Read which V1 data surfaces the API serves for Polymarket, the one venue it covers.
|
|
585
|
+
description: `Read which V1 data surfaces the API serves for Polymarket, the one venue it covers. Every surface reports the status supported: grade, pnl, strategy, timeline, large_trades, whale_signal (the deprecated spelling of large_trades), suspicious_trades, insider_radar (the deprecated spelling of suspicious_trades), and market_snapshot. Use this before choosing trader, market, large-trade, or suspicious-trade routes.
|
|
516
586
|
|
|
517
587
|
Args: none
|
|
518
588
|
|
|
519
|
-
Returns: Static backend-owned coverage document
|
|
589
|
+
Returns: Static backend-owned coverage document under the single key polymarket.`,
|
|
520
590
|
inputSchema: {},
|
|
521
591
|
annotations: readAnnotations,
|
|
522
592
|
}, async () => {
|
|
@@ -533,11 +603,11 @@ Returns: Static backend-owned coverage document keyed by venue.`,
|
|
|
533
603
|
export function registerGetPlatforms(server, client) {
|
|
534
604
|
server.registerTool("get_platforms", {
|
|
535
605
|
title: "Get Platform Capability Matrix",
|
|
536
|
-
description: `Deprecated alias of get_coverage (#16315), kept live; it calls the deprecated /api/v1/platforms path, which serves the same body. Read
|
|
606
|
+
description: `Deprecated alias of get_coverage (#16315), kept live; it calls the deprecated /api/v1/platforms path, which serves the same body. Read which V1 data surfaces the API serves for Polymarket, the one venue it covers. Every surface reports the status supported: grade, pnl, strategy, timeline, large_trades, whale_signal (the deprecated spelling of large_trades), suspicious_trades, insider_radar (the deprecated spelling of suspicious_trades), and market_snapshot. Use this before choosing trader, market, large-trade, or suspicious-trade routes.
|
|
537
607
|
|
|
538
608
|
Args: none
|
|
539
609
|
|
|
540
|
-
Returns: Static backend-owned
|
|
610
|
+
Returns: Static backend-owned coverage document under the single key polymarket.`,
|
|
541
611
|
inputSchema: {},
|
|
542
612
|
annotations: readAnnotations,
|
|
543
613
|
}, async () => {
|
|
@@ -565,8 +635,9 @@ Args:
|
|
|
565
635
|
|
|
566
636
|
Returns: List of matching content items with content_id, kind, slug, title, excerpt, and url.`,
|
|
567
637
|
inputSchema: {
|
|
568
|
-
q: z.string().min(1).max(256).describe("Search query"),
|
|
569
|
-
limit: z.number().int().min(1).max(50).default(10)
|
|
638
|
+
q: z.string().min(1).max(256).describe("Search query (1-256 characters before whitespace trimming, non-empty after trimming)"),
|
|
639
|
+
limit: z.number().int().min(1).max(50).default(10)
|
|
640
|
+
.describe("Max results (1-50, default 10)"),
|
|
570
641
|
},
|
|
571
642
|
annotations: readAnnotations,
|
|
572
643
|
}, async ({ q, limit }) => {
|
|
@@ -590,8 +661,9 @@ Args:
|
|
|
590
661
|
|
|
591
662
|
Returns: Report snapshot metadata and entries (source_range, snapshot.status, completeness, reconciliation, report).`,
|
|
592
663
|
inputSchema: {
|
|
593
|
-
granularity: z.enum(["daily", "weekly", "monthly"])
|
|
594
|
-
|
|
664
|
+
granularity: z.enum(["daily", "weekly", "monthly"])
|
|
665
|
+
.describe("Report granularity selector"),
|
|
666
|
+
period: z.string().min(1).describe("Period token: daily YYYY-MM-DD, weekly YYYY-WW or a from,to YYYY-MM-DD pair, monthly YYYY-MM"),
|
|
595
667
|
},
|
|
596
668
|
annotations: readAnnotations,
|
|
597
669
|
}, async ({ granularity, period }) => {
|
|
@@ -607,7 +679,7 @@ Returns: Report snapshot metadata and entries (source_range, snapshot.status, co
|
|
|
607
679
|
function registerSideObservations(server, client, tool) {
|
|
608
680
|
server.registerTool(tool.name, {
|
|
609
681
|
title: tool.title,
|
|
610
|
-
description:
|
|
682
|
+
description: tool.description,
|
|
611
683
|
inputSchema: {
|
|
612
684
|
cohort: z.enum(["wider_holder", "in_play", "emerging_pile"]).describe("Observation cohort; required"),
|
|
613
685
|
category: z.string().optional().describe("Sport category; omitted means all sports"),
|
|
@@ -642,6 +714,7 @@ export function registerGetPreGameSideObservations(server, client) {
|
|
|
642
714
|
name: "get_pre_game_side_observations",
|
|
643
715
|
title: "List pre-game side observations",
|
|
644
716
|
path: "/api/v1/sports/pre-game-side-observations",
|
|
717
|
+
description: `Observation-only evidence for sports and esports markets, for a Pro API key: graded-holder piles the ranked route does not fund. cohort is required: wider_holder (pre-game holder piles outside the funded route's admission), in_play (provider-confirmed live games with fresh holder and directional evidence), or emerging_pile (wider_holder rows whose sharp share is in [0.75, 0.85) with a complete holder scan, before kickoff). Every row carries observation_only=true, the provider market and token identity, kickoff, observed_at, the side and its price, the graded-holder distribution and scores, holder_scan_complete, directional_status, directional_rank_score, and rank. Canonical field names are side, backing_score and side_share; the older piled_side, conviction_score and smart_score keys carry the same values and stay on the wire. The page carries snapshot_as_of, degraded, funnel, and meta: when degraded is true the snapshot is partial and is not healthy evidence. This surface never feeds or changes get_pre_game_sides. Supports category (omitted means all sports; a non-sport category returns an empty list), limit (1-100, default 20), and cursor (pinned to the cohort and snapshot; a refreshed snapshot rejects it with cursor_expired, so request the first page again).`,
|
|
645
718
|
});
|
|
646
719
|
}
|
|
647
720
|
/** Deprecated spelling of get_pre_game_side_observations (#16310). */
|
|
@@ -650,17 +723,17 @@ export function registerGetSportsEdgeObservations(server, client) {
|
|
|
650
723
|
name: "get_sports_edge_observations",
|
|
651
724
|
title: "Get Sports Edge Observations",
|
|
652
725
|
path: "/api/v1/sports-edge-observations",
|
|
653
|
-
|
|
726
|
+
description: `Deprecated alias of get_pre_game_side_observations (#16310), kept live; it calls the deprecated /api/v1/sports-edge-observations path. Observation-only evidence for sports and esports markets, for a Pro API key: graded-holder piles the ranked signals route does not fund. cohort is required: wider_holder (pre-game holder piles outside the funded route's admission), in_play (provider-confirmed live games with fresh holder and directional evidence), or emerging_pile (wider_holder rows whose sharp share is in [0.75, 0.85) with a complete holder scan, before kickoff). Every row carries observation_only=true, the provider market and token identity, kickoff, observed_at, the piled outcome and price, the graded-holder distribution and scores, holder_scan_complete, directional_status, directional_rank_score, and rank. The page carries snapshot_as_of, degraded, funnel, and meta: when degraded is true the snapshot is partial and is not healthy evidence. This surface never feeds or changes get_sports_edge_signals. Supports category (omitted means all sports; a non-sport category returns an empty list), limit (1-100, default 20), and cursor (pinned to the cohort and snapshot; a refreshed snapshot rejects it with cursor_expired, so request the first page again).`,
|
|
654
727
|
});
|
|
655
728
|
}
|
|
656
729
|
function registerSides(server, client, tool) {
|
|
657
730
|
server.registerTool(tool.name, {
|
|
658
731
|
title: tool.title,
|
|
659
|
-
description:
|
|
732
|
+
description: tool.description,
|
|
660
733
|
inputSchema: {
|
|
661
734
|
category: z.string().optional().describe("Sport category; omitted means all sports"),
|
|
662
735
|
limit: z.number().int().min(1).max(100).default(20),
|
|
663
|
-
cursor: z.string().optional().describe("Opaque cursor pinned to a
|
|
736
|
+
cursor: z.string().optional().describe("Opaque cursor pinned to a signal snapshot"),
|
|
664
737
|
horizon_hours: z.number().int().min(1).max(48).default(12),
|
|
665
738
|
min_grade: z.enum(["S", "A", "B"]).default("B"),
|
|
666
739
|
},
|
|
@@ -689,6 +762,7 @@ export function registerGetPreGameSides(server, client) {
|
|
|
689
762
|
name: "get_pre_game_sides",
|
|
690
763
|
title: "List pre-game sides",
|
|
691
764
|
path: "/api/v1/sports/pre-game-sides",
|
|
765
|
+
description: `Upcoming games ranked by the side profitable wallets hold, for a Pro API key. Eligibility uses recent graded large-trade flow; ranking uses current graded holder concentration. Returns provider market identity, the side and its token ID, kickoff, grade distribution, backing_score, ranked_at, and availability. Canonical field names are side, ranked_at, backing_score and side_share; the older piled_side, signal_created_at, conviction_score and smart_score keys carry the same values and stay on the wire. A row is analytics, not an order instruction. Cached snapshots can include kickoffs that have since passed; inspect timestamps before acting. Supports category, limit (1-100, default 20), cursor, horizon_hours (1-48, default 12), and min_grade (S, A, B; default B).`,
|
|
692
766
|
});
|
|
693
767
|
}
|
|
694
768
|
/** Deprecated spelling of get_pre_game_sides (#16310). */
|
|
@@ -697,7 +771,7 @@ export function registerGetSportsEdgeSignals(server, client) {
|
|
|
697
771
|
name: "get_sports_edge_signals",
|
|
698
772
|
title: "Get Ranked Sports Edge Signals",
|
|
699
773
|
path: "/api/v1/sports-edge-signals",
|
|
700
|
-
|
|
774
|
+
description: `Deprecated alias of get_pre_game_sides (#16310), kept live; it calls the deprecated /api/v1/sports-edge-signals path. Ranked pre-game sports and esports signals for a Pro API key. Eligibility uses recent graded whale flow; ranking uses current graded holder concentration. Returns provider market identity, backed outcome and token ID, kickoff, grade distribution, conviction, snapshot time, and availability. A signal is analytics, not an order instruction. Cached snapshots can include kickoffs that have since passed; inspect timestamps before acting. Supports category, limit (1-100, default 20), cursor, horizon_hours (1-48, default 12), and min_grade (S, A, B; default B).`,
|
|
701
775
|
});
|
|
702
776
|
}
|
|
703
777
|
//# sourceMappingURL=read-parity.js.map
|