@0xinsider/mcp 3.6.2 → 3.9.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.
Files changed (87) hide show
  1. package/README.md +60 -18
  2. package/dist/catalog.generated.d.ts +56 -0
  3. package/dist/catalog.generated.d.ts.map +1 -1
  4. package/dist/catalog.generated.js +70 -0
  5. package/dist/catalog.generated.js.map +1 -1
  6. package/dist/client.d.ts +3 -0
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js.map +1 -1
  9. package/dist/constants.d.ts +1 -1
  10. package/dist/constants.js +1 -1
  11. package/dist/product-cli/index.d.ts.map +1 -1
  12. package/dist/product-cli/index.js +181 -26
  13. package/dist/product-cli/index.js.map +1 -1
  14. package/dist/product-cli/operations.d.ts +24 -0
  15. package/dist/product-cli/operations.d.ts.map +1 -0
  16. package/dist/product-cli/operations.js +239 -0
  17. package/dist/product-cli/operations.js.map +1 -0
  18. package/dist/prompts/index.js +2 -2
  19. package/dist/sdk/client.d.ts +262 -151
  20. package/dist/sdk/client.d.ts.map +1 -1
  21. package/dist/sdk/client.js +284 -145
  22. package/dist/sdk/client.js.map +1 -1
  23. package/dist/sdk/errors.d.ts +6 -5
  24. package/dist/sdk/errors.d.ts.map +1 -1
  25. package/dist/sdk/errors.js +13 -5
  26. package/dist/sdk/errors.js.map +1 -1
  27. package/dist/sdk/index.d.ts +4 -26
  28. package/dist/sdk/index.d.ts.map +1 -1
  29. package/dist/sdk/index.js +2 -1
  30. package/dist/sdk/index.js.map +1 -1
  31. package/dist/sdk/pagination.d.ts +3 -3
  32. package/dist/sdk/pagination.js +2 -2
  33. package/dist/sdk/schema.d.ts +1496 -212
  34. package/dist/sdk/schema.d.ts.map +1 -1
  35. package/dist/sdk/webhooks.d.ts +8 -60
  36. package/dist/sdk/webhooks.d.ts.map +1 -1
  37. package/dist/sdk/webhooks.js.map +1 -1
  38. package/dist/server.d.ts.map +1 -1
  39. package/dist/server.js +21 -4
  40. package/dist/server.js.map +1 -1
  41. package/dist/tools/account.d.ts +5 -0
  42. package/dist/tools/account.d.ts.map +1 -0
  43. package/dist/tools/account.js +53 -0
  44. package/dist/tools/account.js.map +1 -0
  45. package/dist/tools/category-leaderboards.d.ts +5 -0
  46. package/dist/tools/category-leaderboards.d.ts.map +1 -0
  47. package/dist/tools/category-leaderboards.js +71 -0
  48. package/dist/tools/category-leaderboards.js.map +1 -0
  49. package/dist/tools/explore-markets.js +2 -2
  50. package/dist/tools/explore-markets.js.map +1 -1
  51. package/dist/tools/games.d.ts +4 -0
  52. package/dist/tools/games.d.ts.map +1 -1
  53. package/dist/tools/games.js +152 -6
  54. package/dist/tools/games.js.map +1 -1
  55. package/dist/tools/get-insider-radar.js +1 -1
  56. package/dist/tools/get-insider-radar.js.map +1 -1
  57. package/dist/tools/get-leaderboard.d.ts.map +1 -1
  58. package/dist/tools/get-leaderboard.js +36 -18
  59. package/dist/tools/get-leaderboard.js.map +1 -1
  60. package/dist/tools/get-market-flow.js +1 -1
  61. package/dist/tools/get-trader-pnl.js +3 -3
  62. package/dist/tools/get-trader-pnl.js.map +1 -1
  63. package/dist/tools/get-trader.js +3 -3
  64. package/dist/tools/get-trending-wallets.js +1 -1
  65. package/dist/tools/get-whale-trades.d.ts.map +1 -1
  66. package/dist/tools/get-whale-trades.js +14 -4
  67. package/dist/tools/get-whale-trades.js.map +1 -1
  68. package/dist/tools/market-reads.d.ts +2 -0
  69. package/dist/tools/market-reads.d.ts.map +1 -1
  70. package/dist/tools/market-reads.js +58 -4
  71. package/dist/tools/market-reads.js.map +1 -1
  72. package/dist/tools/pick-of-the-day.d.ts +1 -0
  73. package/dist/tools/pick-of-the-day.d.ts.map +1 -1
  74. package/dist/tools/pick-of-the-day.js +22 -2
  75. package/dist/tools/pick-of-the-day.js.map +1 -1
  76. package/dist/tools/read-parity.d.ts +1 -0
  77. package/dist/tools/read-parity.d.ts.map +1 -1
  78. package/dist/tools/read-parity.js +55 -14
  79. package/dist/tools/read-parity.js.map +1 -1
  80. package/dist/tools/search-markets.js +4 -4
  81. package/dist/tools/search-markets.js.map +1 -1
  82. package/dist/tools/sport-leaderboards.d.ts +5 -0
  83. package/dist/tools/sport-leaderboards.d.ts.map +1 -0
  84. package/dist/tools/sport-leaderboards.js +65 -0
  85. package/dist/tools/sport-leaderboards.js.map +1 -0
  86. package/dist/tools/trader-reads.js +1 -1
  87. package/package.json +5 -5
@@ -0,0 +1,239 @@
1
+ import { API_CLIENT_OPERATIONS, READ_ONLY_POST_OPERATIONS, } from "#sdk";
2
+ /**
3
+ * Checked against the SDK's generated `OperationQuery` at compile time in both
4
+ * directions: a name the operation does not document fails, and so does a
5
+ * documented name left out, reported as `Property 'missing' is missing`. When
6
+ * the OpenAPI document adds or removes a query parameter, the SDK types move
7
+ * and `npm run check-types` names the row to change here.
8
+ */
9
+ function completeQueryTable(table) {
10
+ return table;
11
+ }
12
+ // The SDK registry carries no runtime query metadata, so this is the CLI's one
13
+ // copy of it. Operation ids, methods and paths still come from
14
+ // `API_CLIENT_OPERATIONS`; nothing here restates them.
15
+ const QUERY_PARAMETERS = completeQueryTable({
16
+ batchGetMarketFlow: [],
17
+ batchGetTraders: [],
18
+ exploreMarkets: ["q", "category", "status", "platform", "sort", "limit", "cursor"],
19
+ getAccountIdentity: [],
20
+ getApiDiscovery: [],
21
+ getCategoryLeaderboard: ["active_within", "min_events", "limit", "cursor"],
22
+ getCombo: [],
23
+ getCombosSummary: [],
24
+ getCoverage: [],
25
+ getDailyReportSnapshot: ["date"],
26
+ getEdgeHunter: [
27
+ "view",
28
+ "kind",
29
+ "sports",
30
+ "leagues",
31
+ "market_types",
32
+ "condition_ids",
33
+ "event_slugs",
34
+ "series_slugs",
35
+ "category",
36
+ "cohort",
37
+ "admission",
38
+ "min_grade",
39
+ "horizon_hours",
40
+ "limit",
41
+ "cursor",
42
+ ],
43
+ getEventReplaySince: ["trader", "condition_id", "min_grade", "min_size", "expand", "limit", "cursor"],
44
+ getGame: [],
45
+ getGameHolders: ["condition_ids", "limit"],
46
+ getGameSharpMoney: [],
47
+ getHealth: [],
48
+ getLargeTrade: [],
49
+ getMarketCandles: ["resolution", "from", "to"],
50
+ getMarketWalletsInOut: ["window"],
51
+ getMarketContextMarkdown: [],
52
+ getMarketFlow: ["timeframe"],
53
+ getMarketHolders: ["outcome", "min_grade", "limit", "cursor"],
54
+ getMarketTopHolders: ["limit"],
55
+ getMarketSnapshot: ["expand"],
56
+ getMonthlyReportSnapshot: ["month"],
57
+ getPickOfTheDay: [],
58
+ getPickOfTheDayArchive: [],
59
+ getPickOfTheDayStats: [],
60
+ getPickOfTheDayLedger: [],
61
+ getPickOfTheDayLedgerEntry: [],
62
+ getPositionTimeline: ["condition_id", "limit", "cursor"],
63
+ getPositionTimelineById: ["condition_id", "limit", "cursor"],
64
+ getReports: ["granularity", "period"],
65
+ getResolutionReport: ["date", "view"],
66
+ getSportLeaderboard: ["league", "sort", "limit"],
67
+ getStream: ["last_event_id", "seq", "event", "condition_id", "min_grade", "wallet", "min_size"],
68
+ getSuspiciousTrade: [],
69
+ getTrader: ["expand", "max_age_s"],
70
+ getTraderCategoryRecords: ["category"],
71
+ getTraderContext: [],
72
+ getTraderContextMarkdown: [],
73
+ getTraderExportSnapshot: [],
74
+ getTraderExportStatus: ["job_id"],
75
+ getTraderGradeAt: ["as_of"],
76
+ getTraderPnl: ["from", "to", "sections"],
77
+ getUsage: [],
78
+ getWebhook: [],
79
+ getWebhookVerificationAttempt: [],
80
+ getWeeklyReportSnapshot: ["week", "from", "to"],
81
+ getWhaleDatasetStatus: [],
82
+ listCategoryLeaders: [],
83
+ listComboFills: [
84
+ "result",
85
+ "legs",
86
+ "min_stake",
87
+ "min_multiplier",
88
+ "grades",
89
+ "sports",
90
+ "sort",
91
+ "window",
92
+ "limit",
93
+ "cursor",
94
+ "offset",
95
+ ],
96
+ listGameMarkets: ["sports_market_type", "status", "limit", "cursor", "expand"],
97
+ listGameTrades: ["limit"],
98
+ listGames: ["sport", "league", "status", "starts_after", "starts_before", "window", "expand", "limit", "cursor"],
99
+ listLargePositions: ["condition_id", "category", "min_grade", "min_size", "limit", "cursor"],
100
+ listLargeTradeCounterpartyExecutions: ["snapshot_id", "limit", "cursor"],
101
+ listLargeTradeCounterpartyMakers: ["snapshot_id", "limit", "cursor"],
102
+ listLargeTradeHistory: [
103
+ "condition_id",
104
+ "event_slug",
105
+ "trader",
106
+ "category",
107
+ "platform",
108
+ "min_grade",
109
+ "min_size",
110
+ "min_market_volume_share",
111
+ "suspicious_only",
112
+ "from",
113
+ "to",
114
+ "sort",
115
+ "limit",
116
+ "cursor",
117
+ ],
118
+ listLargeTrades: [
119
+ "category",
120
+ "min_grade",
121
+ "min_size",
122
+ "min_market_volume_share",
123
+ "suspicious_only",
124
+ "since",
125
+ "sort",
126
+ "condition_id",
127
+ "event_slug",
128
+ "limit",
129
+ "cursor",
130
+ ],
131
+ listLeaderboard: ["category", "strategy", "sort", "dir", "activity", "limit", "cursor"],
132
+ listLeaderboardLeagues: [],
133
+ listPositions: [
134
+ "wallet",
135
+ "condition_id",
136
+ "category",
137
+ "side",
138
+ "min_grade",
139
+ "min_size",
140
+ "consistency",
141
+ "limit",
142
+ "cursor",
143
+ ],
144
+ listSharpMoneyFlows: [
145
+ "timeframe",
146
+ "category",
147
+ "platform",
148
+ "min_grade",
149
+ "direction",
150
+ "condition_id",
151
+ "event_slug",
152
+ "limit",
153
+ "cursor",
154
+ ],
155
+ listSuspiciousTrades: ["min_suspicion", "severity", "mode", "limit", "cursor"],
156
+ listTrendingWallets: ["window", "limit", "cursor"],
157
+ listWebhookDeliveries: ["limit", "cursor"],
158
+ listWebhookEvents: [],
159
+ listWebhooks: [],
160
+ searchContent: ["q", "limit"],
161
+ searchMarkets: ["q", "status", "category", "limit", "cursor"],
162
+ });
163
+ /**
164
+ * Reads the MCP catalog serves (`backend/src/mcp/tools/contract.rs`) on a
165
+ * path the general rule below excludes. None changes state, and neither
166
+ * webhook read returns the signing secret: the OpenAPI document returns it
167
+ * only on create and rotation.
168
+ */
169
+ const CATALOG_READS = new Set([
170
+ "listWebhooks",
171
+ "getWebhook",
172
+ "getTraderExportSnapshot",
173
+ ]);
174
+ const READ_ONLY_POSTS = new Set(READ_ONLY_POST_OPERATIONS);
175
+ const EXCLUDED_PATH = /\/(webhooks|stream|mcp)(\/|$)|\/export(\/|$)|\.md$/;
176
+ /**
177
+ * Whether `api call` may run an operation: a JSON GET outside webhook
178
+ * administration, streams, MCP, exports and Markdown, one of the catalog
179
+ * reads above, or a read-only POST batch. Every other write stays refused.
180
+ */
181
+ export function isCliCallable(operation) {
182
+ if (READ_ONLY_POSTS.has(operation.operationId))
183
+ return true;
184
+ if (operation.method !== "GET" || "kind" in operation)
185
+ return false;
186
+ return CATALOG_READS.has(operation.operationId) || !EXCLUDED_PATH.test(operation.path);
187
+ }
188
+ export function pathParameters(path) {
189
+ return [...path.matchAll(/\{([^}]+)\}/g)].flatMap((match) => match[1] === undefined ? [] : [match[1]]);
190
+ }
191
+ function isTabled(operationId) {
192
+ return Object.hasOwn(QUERY_PARAMETERS, operationId);
193
+ }
194
+ /** Every operation `api call` accepts, in registry order. */
195
+ export function cliOperations(commandFor) {
196
+ return API_CLIENT_OPERATIONS.filter(isCliCallable).map((operation) => ({
197
+ operation_id: operation.operationId,
198
+ method: operation.method,
199
+ path: operation.path,
200
+ path_parameters: pathParameters(operation.path),
201
+ query_parameters: isTabled(operation.operationId)
202
+ ? QUERY_PARAMETERS[operation.operationId]
203
+ : [],
204
+ body: operation.method !== "GET",
205
+ command: commandFor(operation.operationId),
206
+ }));
207
+ }
208
+ function distance(a, b) {
209
+ let previous = Array.from({ length: b.length + 1 }, (_, index) => index);
210
+ for (let i = 1; i <= a.length; i++) {
211
+ const current = [i];
212
+ for (let j = 1; j <= b.length; j++) {
213
+ const substitution = (previous[j - 1] ?? 0) + (a[i - 1] === b[j - 1] ? 0 : 1);
214
+ current.push(Math.min((previous[j] ?? 0) + 1, (current[j - 1] ?? 0) + 1, substitution));
215
+ }
216
+ previous = current;
217
+ }
218
+ return previous[b.length] ?? 0;
219
+ }
220
+ // `getGames` should find `listGames`, whose noun matches, as well as `getGame`.
221
+ const VERB = /^(get|list|search|explore|batch|fetch|read|show)(?=[A-Z])/;
222
+ function noun(id) {
223
+ return id.replace(VERB, "").toLowerCase();
224
+ }
225
+ /** Up to 3 callable ids closest to an unknown one, nearest first. */
226
+ export function suggestOperations(input, candidates) {
227
+ const wanted = input.toLowerCase();
228
+ const wantedNoun = noun(input);
229
+ return candidates
230
+ .map((id) => ({
231
+ id,
232
+ score: Math.min(distance(wanted, id.toLowerCase()), distance(wantedNoun, noun(id))),
233
+ }))
234
+ .filter(({ score }) => score <= Math.max(2, Math.floor(wanted.length / 4)))
235
+ .sort((a, b) => a.score - b.score || a.id.localeCompare(b.id))
236
+ .slice(0, 3)
237
+ .map(({ id }) => id);
238
+ }
239
+ //# sourceMappingURL=operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/product-cli/operations.ts"],"names":[],"mappings":"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"}
@@ -11,13 +11,13 @@ export function registerPrompts(server) {
11
11
  role: "user",
12
12
  content: {
13
13
  type: "text",
14
- text: `Analyze the prediction market trader identified by ${address}. Use the get_trader tool with all expand fields (strategy, categories, quant_metrics) to get comprehensive data.
14
+ text: `Analyze the prediction market trader identified by ${address}. Use the get_trader tool with the strategy and categories expand fields to get comprehensive data.
15
15
 
16
16
  Provide:
17
17
  1. **Overview** — Grade, score, rank, and what tier they fall in
18
18
  2. **P&L Analysis** — Total, realized vs unrealized, recent trends (7d/30d)
19
19
  3. **Strategy** — What type of trader they are and how they operate
20
- 4. **Risk Profile** — copy_score and smart_score (0-100), Sharpe (7d/30d), profit_factor, and edge_consistency interpretation
20
+ 4. **Risk Profile** — the sports and esports record in pnl.in_scope (realized P&L, settled markets, win rate) and what it says about consistency
21
21
  5. **Category Strengths** — Where they perform best/worst
22
22
  6. **Key Takeaway** — One-paragraph summary of whether this trader is worth following and why`,
23
23
  },