@0xinsider/mcp 3.5.0 → 3.6.1

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 (99) hide show
  1. package/README.md +13 -0
  2. package/dist/constants.d.ts +1 -1
  3. package/dist/constants.js +1 -1
  4. package/dist/prompts/index.d.ts +1 -1
  5. package/dist/prompts/index.d.ts.map +1 -1
  6. package/dist/prompts/index.js +6 -6
  7. package/dist/prompts/index.js.map +1 -1
  8. package/dist/resources/index.d.ts +1 -1
  9. package/dist/resources/index.d.ts.map +1 -1
  10. package/dist/resources/index.js +10 -10
  11. package/dist/resources/index.js.map +1 -1
  12. package/dist/sdk/client.d.ts +1 -1
  13. package/dist/sdk/schema.d.ts +19 -19
  14. package/dist/sdk/schema.d.ts.map +1 -1
  15. package/dist/server.d.ts +1 -1
  16. package/dist/server.d.ts.map +1 -1
  17. package/dist/server.js +18 -7
  18. package/dist/server.js.map +1 -1
  19. package/dist/tools/combos.d.ts +1 -1
  20. package/dist/tools/combos.d.ts.map +1 -1
  21. package/dist/tools/combos.js +11 -11
  22. package/dist/tools/combos.js.map +1 -1
  23. package/dist/tools/explore-markets.d.ts +1 -1
  24. package/dist/tools/explore-markets.d.ts.map +1 -1
  25. package/dist/tools/explore-markets.js +3 -3
  26. package/dist/tools/explore-markets.js.map +1 -1
  27. package/dist/tools/games.d.ts +1 -1
  28. package/dist/tools/games.d.ts.map +1 -1
  29. package/dist/tools/games.js +8 -8
  30. package/dist/tools/games.js.map +1 -1
  31. package/dist/tools/get-insider-radar.d.ts +1 -1
  32. package/dist/tools/get-insider-radar.d.ts.map +1 -1
  33. package/dist/tools/get-insider-radar.js +4 -3
  34. package/dist/tools/get-insider-radar.js.map +1 -1
  35. package/dist/tools/get-large-positions.d.ts +1 -1
  36. package/dist/tools/get-large-positions.d.ts.map +1 -1
  37. package/dist/tools/get-large-positions.js +3 -3
  38. package/dist/tools/get-large-positions.js.map +1 -1
  39. package/dist/tools/get-leaderboard.d.ts +1 -1
  40. package/dist/tools/get-leaderboard.d.ts.map +1 -1
  41. package/dist/tools/get-leaderboard.js +4 -4
  42. package/dist/tools/get-leaderboard.js.map +1 -1
  43. package/dist/tools/get-market-flow.d.ts +1 -1
  44. package/dist/tools/get-market-flow.d.ts.map +1 -1
  45. package/dist/tools/get-market-flow.js +4 -4
  46. package/dist/tools/get-market-flow.js.map +1 -1
  47. package/dist/tools/get-position-timeline.d.ts +1 -1
  48. package/dist/tools/get-position-timeline.d.ts.map +1 -1
  49. package/dist/tools/get-position-timeline.js +3 -3
  50. package/dist/tools/get-position-timeline.js.map +1 -1
  51. package/dist/tools/get-positions.d.ts +1 -1
  52. package/dist/tools/get-positions.d.ts.map +1 -1
  53. package/dist/tools/get-positions.js +3 -3
  54. package/dist/tools/get-positions.js.map +1 -1
  55. package/dist/tools/get-suspicious-trades.d.ts +1 -1
  56. package/dist/tools/get-suspicious-trades.d.ts.map +1 -1
  57. package/dist/tools/get-suspicious-trades.js +6 -6
  58. package/dist/tools/get-suspicious-trades.js.map +1 -1
  59. package/dist/tools/get-trader-pnl.d.ts +1 -1
  60. package/dist/tools/get-trader-pnl.d.ts.map +1 -1
  61. package/dist/tools/get-trader-pnl.js +4 -4
  62. package/dist/tools/get-trader-pnl.js.map +1 -1
  63. package/dist/tools/get-trader.d.ts +1 -1
  64. package/dist/tools/get-trader.d.ts.map +1 -1
  65. package/dist/tools/get-trader.js +4 -4
  66. package/dist/tools/get-trader.js.map +1 -1
  67. package/dist/tools/get-trending-wallets.d.ts +1 -1
  68. package/dist/tools/get-trending-wallets.d.ts.map +1 -1
  69. package/dist/tools/get-trending-wallets.js +3 -3
  70. package/dist/tools/get-trending-wallets.js.map +1 -1
  71. package/dist/tools/get-whale-trades.d.ts +1 -1
  72. package/dist/tools/get-whale-trades.d.ts.map +1 -1
  73. package/dist/tools/get-whale-trades.js +4 -4
  74. package/dist/tools/get-whale-trades.js.map +1 -1
  75. package/dist/tools/large-trade-counterparties.d.ts +1 -1
  76. package/dist/tools/large-trade-counterparties.d.ts.map +1 -1
  77. package/dist/tools/large-trade-counterparties.js +8 -8
  78. package/dist/tools/large-trade-counterparties.js.map +1 -1
  79. package/dist/tools/market-reads.d.ts +1 -1
  80. package/dist/tools/market-reads.d.ts.map +1 -1
  81. package/dist/tools/market-reads.js +8 -8
  82. package/dist/tools/market-reads.js.map +1 -1
  83. package/dist/tools/pick-of-the-day.d.ts +1 -1
  84. package/dist/tools/pick-of-the-day.d.ts.map +1 -1
  85. package/dist/tools/pick-of-the-day.js +15 -13
  86. package/dist/tools/pick-of-the-day.js.map +1 -1
  87. package/dist/tools/read-parity.d.ts +1 -1
  88. package/dist/tools/read-parity.d.ts.map +1 -1
  89. package/dist/tools/read-parity.js +80 -80
  90. package/dist/tools/read-parity.js.map +1 -1
  91. package/dist/tools/search-markets.d.ts +1 -1
  92. package/dist/tools/search-markets.d.ts.map +1 -1
  93. package/dist/tools/search-markets.js +4 -4
  94. package/dist/tools/search-markets.js.map +1 -1
  95. package/dist/tools/trader-reads.d.ts +1 -1
  96. package/dist/tools/trader-reads.d.ts.map +1 -1
  97. package/dist/tools/trader-reads.js +12 -12
  98. package/dist/tools/trader-reads.js.map +1 -1
  99. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"get-positions.d.ts","sourceRoot":"","sources":["../../src/tools/get-positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,eAAO,MAAM,qBAAqB;IAChC,KAAK;IAEL,MAAM;IAON,QAAQ;IAER,QAAQ;IAER,YAAY;IAEZ,MAAM;IAEN,SAAS;;;;;;;;IAET,IAAI;;;;IAKJ,WAAW;;;;CAEZ,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;IAC1D,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;CAC/C,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAW9C;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAiD/E"}
1
+ {"version":3,"file":"get-positions.d.ts","sourceRoot":"","sources":["../../src/tools/get-positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,eAAO,MAAM,qBAAqB;IAChC,KAAK;IAEL,MAAM;IAON,QAAQ;IAER,QAAQ;IAER,YAAY;IAEZ,MAAM;IAEN,SAAS;;;;;;;;IAET,IAAI;;;;IAKJ,WAAW;;;;CAEZ,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;IAC1D,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;CAC/C,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAW9C;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAiD/E"}
@@ -57,19 +57,19 @@ Args:
57
57
  - consistency (string, optional): live (default) or snapshot. snapshot requires wallet and freezes up to 500 positions and 2 MB for up to five minutes; repeat the same filters and consistency on every page. A new first page replaces the API key's prior snapshot; a changed filter errors, and an expired or replaced cursor returns cursor_expired
58
58
 
59
59
  Returns: List of current positions with pagination metadata. 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. With consistency=snapshot, the page also carries snapshot: as_of, expires_at, row_count.`,
60
- inputSchema: positionsParamsSchema,
60
+ inputSchema: z.object(positionsParamsSchema),
61
61
  annotations: {
62
62
  readOnlyHint: true,
63
63
  destructiveHint: false,
64
64
  idempotentHint: true,
65
65
  openWorldHint: false,
66
66
  },
67
- }, async (args, extra) => {
67
+ }, async (args, ctx) => {
68
68
  try {
69
69
  const repeatedParams = args.wallet && args.wallet.length > 0
70
70
  ? { wallet: args.wallet }
71
71
  : undefined;
72
- const response = await client.request("/api/v1/positions", buildPositionsParams(args), repeatedParams, { signal: extra.signal });
72
+ const response = await client.request("/api/v1/positions", buildPositionsParams(args), repeatedParams, { signal: ctx.mcpReq.signal });
73
73
  const result = listResult(response);
74
74
  return {
75
75
  content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
@@ -1 +1 @@
1
- {"version":3,"file":"get-positions.js","sourceRoot":"","sources":["../../src/tools/get-positions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-positions.js","sourceRoot":"","sources":["../../src/tools/get-positions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { z } from "zod";
3
3
  import { ApiClient } from "../client.js";
4
4
  /** Shared by the canonical list tool and its deprecated alias. */
@@ -1 +1 @@
1
- {"version":3,"file":"get-suspicious-trades.d.ts","sourceRoot":"","sources":["../../src/tools/get-suspicious-trades.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAUzC,kEAAkE;AAClE,eAAO,MAAM,2BAA2B;aACtC,KAAK;aAEL,MAAM;aASN,aAAa;aAEb,QAAQ;;;;aAER,IAAI;;;;CAEI,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;aACrC,EAAE;CACM,CAAC;AAEX,eAAO,MAAM,6BAA6B,mhCAeoC,CAAC;AAE/E,eAAO,MAAM,4BAA4B,4RAK0C,CAAC;AAEpF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAwBtF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAoBrF"}
1
+ {"version":3,"file":"get-suspicious-trades.d.ts","sourceRoot":"","sources":["../../src/tools/get-suspicious-trades.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAUzC,kEAAkE;AAClE,eAAO,MAAM,2BAA2B;aACtC,KAAK;aAEL,MAAM;aASN,aAAa;aAEb,QAAQ;;;;aAER,IAAI;;;;CAEI,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;aACrC,EAAE;CACM,CAAC;AAEX,eAAO,MAAM,6BAA6B,mhCAeoC,CAAC;AAE/E,eAAO,MAAM,4BAA4B,4RAK0C,CAAC;AAEpF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAwBtF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAoBrF"}
@@ -67,9 +67,9 @@ export function registerGetSuspiciousTrades(server, client) {
67
67
  server.registerTool("get_suspicious_trades", {
68
68
  title: "Get suspicious trades",
69
69
  description: SUSPICIOUS_TRADES_DESCRIPTION,
70
- inputSchema: suspiciousTradesInputSchema,
70
+ inputSchema: z.object(suspiciousTradesInputSchema),
71
71
  annotations: readAnnotations,
72
- }, async ({ limit, cursor, min_suspicion, severity, mode }, extra) => {
72
+ }, async ({ limit, cursor, min_suspicion, severity, mode }, ctx) => {
73
73
  try {
74
74
  const response = await client.request("/api/v1/suspicious-trades", {
75
75
  limit,
@@ -77,7 +77,7 @@ export function registerGetSuspiciousTrades(server, client) {
77
77
  min_suspicion,
78
78
  severity,
79
79
  mode,
80
- }, undefined, { signal: extra.signal });
80
+ }, undefined, { signal: ctx.mcpReq.signal });
81
81
  return ok(listResult(response));
82
82
  }
83
83
  catch (error) {
@@ -89,11 +89,11 @@ export function registerGetSuspiciousTrade(server, client) {
89
89
  server.registerTool("get_suspicious_trade", {
90
90
  title: "Get suspicious trade",
91
91
  description: SUSPICIOUS_TRADE_DESCRIPTION,
92
- inputSchema: suspiciousTradeInputSchema,
92
+ inputSchema: z.object(suspiciousTradeInputSchema),
93
93
  annotations: readAnnotations,
94
- }, async ({ id }, extra) => {
94
+ }, async ({ id }, ctx) => {
95
95
  try {
96
- const response = await client.request(`/api/v1/suspicious-trades/${encodeURIComponent(id)}`, undefined, undefined, { signal: extra.signal });
96
+ const response = await client.request(`/api/v1/suspicious-trades/${encodeURIComponent(id)}`, undefined, undefined, { signal: ctx.mcpReq.signal });
97
97
  return ok(withMeta(response.data, response.meta));
98
98
  }
99
99
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-suspicious-trades.js","sourceRoot":"","sources":["../../src/tools/get-suspicious-trades.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-suspicious-trades.js","sourceRoot":"","sources":["../../src/tools/get-suspicious-trades.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { z } from "zod";
3
3
  import { ApiClient } from "../client.js";
4
4
  export declare const traderPnlLookupSchema: z.ZodString;
@@ -1 +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,EAAE,MAAM,cAAc,CAAC;AAGzC,eAAO,MAAM,qBAAqB,aAAoC,CAAC;AAEvE,iGAAiG;AACjG,eAAO,MAAM,YAAY,YAAI,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,CAAU,CAAC;AAEhG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA0D/E"}
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,8BAA8B,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,eAAO,MAAM,qBAAqB,aAAoC,CAAC;AAEvE,iGAAiG;AACjG,eAAO,MAAM,YAAY,YAAI,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,CAAU,CAAC;AAEhG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA0D/E"}
@@ -16,7 +16,7 @@ Args:
16
16
  - sections (string[], optional): Which sections to return: "entries", "stats", "monthly", "year_totals", "drawdown"; omit for all five. A section left out is absent, and an unrecognized name is an error, never ignored
17
17
 
18
18
  Returns: Structured trader P&L object (entries, stats, monthly, year_totals, drawdown). A request that sent from, to or sections also carries view: the bounds applied, the sections present, entries_total, entries_in_window and the pre-window anchor.`,
19
- inputSchema: {
19
+ inputSchema: z.object({
20
20
  address: traderPnlLookupSchema
21
21
  .describe("Wallet address (0x...), username, or trd_-prefixed trader id"),
22
22
  // The three view parameters the route takes (#16158), missing from
@@ -29,14 +29,14 @@ Returns: Structured trader P&L object (entries, stats, monthly, year_totals, dra
29
29
  .describe("Inclusive UTC calendar-date upper bound (YYYY-MM-DD) for the daily series (entries and drawdown); omit for the whole stored history. Must not be before from"),
30
30
  sections: z.array(z.enum(PNL_SECTIONS)).optional()
31
31
  .describe("Which sections of the object to return; omit for all five. A section left out is absent from the result, never null or empty"),
32
- },
32
+ }),
33
33
  annotations: {
34
34
  readOnlyHint: true,
35
35
  destructiveHint: false,
36
36
  idempotentHint: true,
37
37
  openWorldHint: false,
38
38
  },
39
- }, async ({ address, from, to, sections }, extra) => {
39
+ }, async ({ address, from, to, sections }, ctx) => {
40
40
  try {
41
41
  const traderLookup = address.trim();
42
42
  // `sections` is a repeated query key (`sections=a&sections=b`), the
@@ -44,7 +44,7 @@ Returns: Structured trader P&L object (entries, stats, monthly, year_totals, dra
44
44
  const repeatedParams = sections && sections.length > 0
45
45
  ? { sections: [...sections] }
46
46
  : undefined;
47
- const response = await client.request(`/api/v1/trader/${encodeURIComponent(traderLookup)}/pnl`, { from, to }, repeatedParams, { signal: extra.signal });
47
+ const response = await client.request(`/api/v1/trader/${encodeURIComponent(traderLookup)}/pnl`, { from, to }, repeatedParams, { signal: ctx.mcpReq.signal });
48
48
  return {
49
49
  content: [{ type: "text", text: JSON.stringify(withMeta(response.data, response.meta), null, 2) }],
50
50
  };
@@ -1 +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;AAExB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvE,iGAAiG;AACjG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,CAAU,CAAC;AAEhG,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAiB;IACvE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE;;;;;;;;;0PASuO;QACpP,WAAW,EAAE;YACX,OAAO,EAAE,qBAAqB;iBAC3B,QAAQ,CAAC,8DAA8D,CAAC;YAC3E,mEAAmE;YACnE,mEAAmE;YACnE,+DAA+D;YAC/D,wCAAwC;YACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;iBACrD,QAAQ,CAAC,oLAAoL,CAAC;YACjM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;iBACnD,QAAQ,CAAC,8JAA8J,CAAC;YAC3K,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;iBAC/C,QAAQ,CAAC,8HAA8H,CAAC;SAC5I;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,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,oEAAoE;YACpE,8DAA8D;YAC9D,MAAM,cAAc,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACpD,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE;gBAC7B,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,kBAAkB,kBAAkB,CAAC,YAAY,CAAC,MAAM,EACxD,EAAE,IAAI,EAAE,EAAE,EAAE,EACZ,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CACzC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5G,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
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;AAExB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvE,iGAAiG;AACjG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,CAAU,CAAC;AAEhG,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAiB;IACvE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE;;;;;;;;;0PASuO;QACpP,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,qBAAqB;iBAC3B,QAAQ,CAAC,8DAA8D,CAAC;YAC3E,mEAAmE;YACnE,mEAAmE;YACnE,+DAA+D;YAC/D,wCAAwC;YACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;iBACrD,QAAQ,CAAC,oLAAoL,CAAC;YACjM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;iBACnD,QAAQ,CAAC,8JAA8J,CAAC;YAC3K,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;iBAC/C,QAAQ,CAAC,8HAA8H,CAAC;SAC5I,CAAC;QACF,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,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,oEAAoE;YACpE,8DAA8D;YAC9D,MAAM,cAAc,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACpD,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE;gBAC7B,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,kBAAkB,kBAAkB,CAAC,YAAY,CAAC,MAAM,EACxD,EAAE,IAAI,EAAE,EAAE,EAAE,EACZ,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAC9C,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5G,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { z } from "zod";
3
3
  import { ApiClient } from "../client.js";
4
4
  export declare const traderLookupSchema: z.ZodString;
@@ -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,EAAE,MAAM,cAAc,CAAC;AAGzC,eAAO,MAAM,kBAAkB,aAAoC,CAAC;AAEpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA4D5E"}
1
+ {"version":3,"file":"get-trader.d.ts","sourceRoot":"","sources":["../../src/tools/get-trader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,eAAO,MAAM,kBAAkB,aAAoC,CAAC;AAEpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA4D5E"}
@@ -20,7 +20,7 @@ Args:
20
20
  - max_age_s (integer, optional, 0 or more): Freshness ceiling in seconds. The call answers only when data_quality.status is fresh and data_quality.as_of is no older than this; otherwise it fails with reason freshness_ceiling_unsatisfied (HTTP 409). Nothing is refreshed to meet it
21
21
 
22
22
  Returns: Trader profile with grade, P&L, stats, and optional expanded fields. The trader carries data_quality: status, as_of (the oldest clock the body 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.`,
23
- inputSchema: {
23
+ inputSchema: z.object({
24
24
  address: traderLookupSchema
25
25
  .describe("Ethereum wallet address (0x...) or trader username"),
26
26
  expand: z.array(z.enum(["strategy", "categories", "quant_metrics", "trust"]))
@@ -30,20 +30,20 @@ Returns: Trader profile with grade, P&L, stats, and optional expanded fields. Th
30
30
  // and neither transport's tool could send it.
31
31
  max_age_s: z.number().int().min(0).optional()
32
32
  .describe("Freshness ceiling in seconds: answer only when data_quality.status is fresh and data_quality.as_of is no older than this, otherwise fail with freshness_ceiling_unsatisfied"),
33
- },
33
+ }),
34
34
  annotations: {
35
35
  readOnlyHint: true,
36
36
  destructiveHint: false,
37
37
  idempotentHint: true,
38
38
  openWorldHint: false,
39
39
  },
40
- }, async ({ address, expand, max_age_s }, extra) => {
40
+ }, async ({ address, expand, max_age_s }, ctx) => {
41
41
  try {
42
42
  const traderLookup = address.trim();
43
43
  const repeatedParams = expand && expand.length > 0
44
44
  ? { expand }
45
45
  : undefined;
46
- const response = await client.request(`/api/v1/trader/${encodeURIComponent(traderLookup)}`, { max_age_s }, repeatedParams, { signal: extra.signal });
46
+ const response = await client.request(`/api/v1/trader/${encodeURIComponent(traderLookup)}`, { max_age_s }, repeatedParams, { signal: ctx.mcpReq.signal });
47
47
  return {
48
48
  content: [{ type: "text", text: JSON.stringify(withMeta(response.data, response.meta), null, 2) }],
49
49
  };
@@ -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;AAExB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE7C,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,YAAY;QACnB,WAAW,EAAE;;;;;;;;;;;;;;;kVAe+T;QAC5U,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;YAC/C,sEAAsE;YACtE,8CAA8C;YAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;iBAC1C,QAAQ,CAAC,6KAA6K,CAAC;SAC3L;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,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE;QAC9C,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,EAAE,SAAS,EAAE,EACb,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CACzC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5G,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-trader.js","sourceRoot":"","sources":["../../src/tools/get-trader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE7C,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,YAAY;QACnB,WAAW,EAAE;;;;;;;;;;;;;;;kVAe+T;QAC5U,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,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;YAC/C,sEAAsE;YACtE,8CAA8C;YAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;iBAC1C,QAAQ,CAAC,6KAA6K,CAAC;SAC3L,CAAC;QACF,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,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE;QAC5C,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,EAAE,SAAS,EAAE,EACb,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAC9C,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5G,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { z } from "zod";
3
3
  import { ApiClient } from "../client.js";
4
4
  export declare const trendingWalletsParamsSchema: {
@@ -1 +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,EAAE,MAAM,cAAc,CAAC;AAGzC,eAAO,MAAM,2BAA2B;IACtC,KAAK;IAEL,MAAM;IAEN,MAAM;;;;CAEP,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;CACnC,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,CAsCrF"}
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,8BAA8B,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,eAAO,MAAM,2BAA2B;IACtC,KAAK;IAEL,MAAM;IAEN,MAAM;;;;CAEP,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;CACnC,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,CAsCrF"}
@@ -28,16 +28,16 @@ Args:
28
28
  - window (string, optional): Trailing window: "7d" (default) or "30d"
29
29
 
30
30
  Returns: Ranked trending wallets with window stats and pagination metadata.`,
31
- inputSchema: trendingWalletsParamsSchema,
31
+ inputSchema: z.object(trendingWalletsParamsSchema),
32
32
  annotations: {
33
33
  readOnlyHint: true,
34
34
  destructiveHint: false,
35
35
  idempotentHint: true,
36
36
  openWorldHint: false,
37
37
  },
38
- }, async (args, extra) => {
38
+ }, async (args, ctx) => {
39
39
  try {
40
- const response = await client.request("/api/v1/leaderboard/trending", buildTrendingWalletsParams(args), undefined, { signal: extra.signal });
40
+ const response = await client.request("/api/v1/leaderboard/trending", buildTrendingWalletsParams(args), undefined, { signal: ctx.mcpReq.signal });
41
41
  const result = listResult(response);
42
42
  return ok(result);
43
43
  }
@@ -1 +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;AAExB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,aAAa,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,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAC/C,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;SACxC,QAAQ,CAAC,8BAA8B,CAAC;CAC5C,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;;;;;;;;;4EASyD;QACtE,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,KAAK,EAAE,EAAE;QACpB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,8BAA8B,EAC9B,0BAA0B,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CACtE,CAAC;YAEF,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YAEpC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
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;AAExB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,aAAa,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,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAC/C,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;SACxC,QAAQ,CAAC,8BAA8B,CAAC;CAC5C,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;;;;;;;;;4EASyD;QACtE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC;QAClD,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,GAAG,EAAE,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,8BAA8B,EAC9B,0BAA0B,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAC3E,CAAC;YAEF,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YAEpC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { ApiClient } from "../client.js";
3
3
  export declare function registerGetLargeTrades(server: McpServer, client: ApiClient): void;
4
4
  /** Deprecated spelling of get_large_trades (#16304). */
@@ -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,EAAE,MAAM,cAAc,CAAC;AA8FzC,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAOjF;AAED,wDAAwD;AACxD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAOjF"}
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,8BAA8B,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA8FzC,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAOjF;AAED,wDAAwD;AACxD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAOjF"}
@@ -4,7 +4,7 @@ function registerTradeList(server, client, tool) {
4
4
  server.registerTool(tool.name, {
5
5
  title: tool.title,
6
6
  description: tool.description,
7
- inputSchema: {
7
+ inputSchema: z.object({
8
8
  limit: z.number().int().min(1).max(100).default(20)
9
9
  .describe("Max results (1-100, default 20)"),
10
10
  cursor: z.string().optional()
@@ -23,14 +23,14 @@ function registerTradeList(server, client, tool) {
23
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"),
24
24
  since: z.string().optional()
25
25
  .describe("wt_ id of a trade a previous call returned: answer only the trades recorded after it, in commit order, so a trade recorded late still arrives and none is skipped. Poll with the first trade of the last answer that had trades and deduplicate on id. Recent order only"),
26
- },
26
+ }),
27
27
  annotations: {
28
28
  readOnlyHint: true,
29
29
  destructiveHint: false,
30
30
  idempotentHint: true,
31
31
  openWorldHint: false,
32
32
  },
33
- }, async ({ limit, cursor, min_size, category, min_grade, suspicious_only, min_market_volume_share, sort, since }, extra) => {
33
+ }, async ({ limit, cursor, min_size, category, min_grade, suspicious_only, min_market_volume_share, sort, since }, ctx) => {
34
34
  try {
35
35
  const response = await client.request(tool.path, {
36
36
  limit,
@@ -42,7 +42,7 @@ function registerTradeList(server, client, tool) {
42
42
  min_market_volume_share,
43
43
  sort,
44
44
  since,
45
- }, undefined, { signal: extra.signal });
45
+ }, undefined, { signal: ctx.mcpReq.signal });
46
46
  const result = listResult(response);
47
47
  return ok(result);
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-whale-trades.js","sourceRoot":"","sources":["../../src/tools/get-whale-trades.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-whale-trades.js","sourceRoot":"","sources":["../../src/tools/get-whale-trades.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { ApiClient } from "../client.js";
3
3
  export declare function registerGetLargeTradeCounterpartyExecutions(server: McpServer, client: ApiClient): void;
4
4
  export declare function registerGetLargeTradeCounterpartyMakers(server: McpServer, client: ApiClient): void;
@@ -1 +1 @@
1
- {"version":3,"file":"large-trade-counterparties.d.ts","sourceRoot":"","sources":["../../src/tools/large-trade-counterparties.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAyBzC,wBAAgB,2CAA2C,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAgCtG;AAED,wBAAgB,uCAAuC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAwClG"}
1
+ {"version":3,"file":"large-trade-counterparties.d.ts","sourceRoot":"","sources":["../../src/tools/large-trade-counterparties.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAyBzC,wBAAgB,2CAA2C,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAgCtG;AAED,wBAAgB,uCAAuC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAwClG"}
@@ -37,17 +37,17 @@ Args:
37
37
  - limit (number, 1-100, default 100): Executions per page
38
38
 
39
39
  Returns: executions (each with its first makers page and makers_next_cursor), executions_next_cursor, execution counts, status and meta.`,
40
- inputSchema: {
40
+ inputSchema: z.object({
41
41
  id: largeTradeId,
42
42
  snapshot_id: snapshotId,
43
43
  cursor: z.string().optional()
44
44
  .describe("executions_next_cursor from get_large_trade or from the previous page"),
45
45
  limit: pageLimit("executions"),
46
- },
46
+ }),
47
47
  annotations: readAnnotations,
48
- }, async ({ id, ...query }, extra) => {
48
+ }, async ({ id, ...query }, ctx) => {
49
49
  try {
50
- const response = await client.request(executionsPath(id), query, undefined, { signal: extra.signal });
50
+ const response = await client.request(executionsPath(id), query, undefined, { signal: ctx.mcpReq.signal });
51
51
  return ok(withMeta(response.data, response.meta));
52
52
  }
53
53
  catch (error) {
@@ -68,7 +68,7 @@ Args:
68
68
  - limit (number, 1-100, default 100): Makers per page
69
69
 
70
70
  Returns: items (makers), next_cursor, execution_id, snapshot_id and meta.`,
71
- inputSchema: {
71
+ inputSchema: z.object({
72
72
  id: largeTradeId,
73
73
  execution_id: z.string().trim().min(1)
74
74
  .describe("execution_id of one counterparty execution"),
@@ -76,11 +76,11 @@ Returns: items (makers), next_cursor, execution_id, snapshot_id and meta.`,
76
76
  cursor: z.string().optional()
77
77
  .describe("makers_next_cursor from the execution, or next_cursor from the previous page"),
78
78
  limit: pageLimit("makers"),
79
- },
79
+ }),
80
80
  annotations: readAnnotations,
81
- }, async ({ id, execution_id, ...query }, extra) => {
81
+ }, async ({ id, execution_id, ...query }, ctx) => {
82
82
  try {
83
- const response = await client.request(`${executionsPath(id)}/${encodeURIComponent(execution_id)}/makers`, query, undefined, { signal: extra.signal });
83
+ const response = await client.request(`${executionsPath(id)}/${encodeURIComponent(execution_id)}/makers`, query, undefined, { signal: ctx.mcpReq.signal });
84
84
  return ok(withMeta(response.data, response.meta));
85
85
  }
86
86
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"large-trade-counterparties.js","sourceRoot":"","sources":["../../src/tools/large-trade-counterparties.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"large-trade-counterparties.js","sourceRoot":"","sources":["../../src/tools/large-trade-counterparties.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { ApiClient } from "../client.js";
3
3
  export declare function registerGetMarketHolders(server: McpServer, client: ApiClient): void;
4
4
  export declare function registerGetMarketCandles(server: McpServer, client: ApiClient): void;
@@ -1 +1 @@
1
- {"version":3,"file":"market-reads.d.ts","sourceRoot":"","sources":["../../src/tools/market-reads.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAkBzC,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAmDnF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAoCnF"}
1
+ {"version":3,"file":"market-reads.d.ts","sourceRoot":"","sources":["../../src/tools/market-reads.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAkBzC,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAmDnF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAoCnF"}
@@ -31,7 +31,7 @@ Args:
31
31
  - cursor (string, optional): next_cursor from the previous page, bound to the same market and filters
32
32
 
33
33
  Returns: data (holders), has_more, next_cursor, total, market, scan, totals and meta.`,
34
- inputSchema: {
34
+ inputSchema: z.object({
35
35
  condition_id: marketConditionId,
36
36
  outcome: z.enum(["yes", "no", "all"]).optional()
37
37
  .describe("Keep holders netting one side; all (the default) lists both"),
@@ -41,11 +41,11 @@ Returns: data (holders), has_more, next_cursor, total, market, scan, totals and
41
41
  .describe("Max holders per page (1-100, default 20)"),
42
42
  cursor: z.string().optional()
43
43
  .describe("next_cursor from the previous page; it is bound to the same market and filters"),
44
- },
44
+ }),
45
45
  annotations: readAnnotations,
46
- }, async ({ condition_id, ...query }, extra) => {
46
+ }, async ({ condition_id, ...query }, ctx) => {
47
47
  try {
48
- const response = await client.request(marketPath(condition_id, "holders"), query, undefined, { signal: extra.signal });
48
+ const response = await client.request(marketPath(condition_id, "holders"), query, undefined, { signal: ctx.mcpReq.signal });
49
49
  // `ListMetadata::MarketHolders` in `response.rs`: the page and its
50
50
  // cursor pair, with the market, the scan and the roster totals beside
51
51
  // it. An absent field stays absent; none is invented.
@@ -77,7 +77,7 @@ Args:
77
77
  - to (integer, optional): Inclusive upper bound, unix seconds; from must not be after to
78
78
 
79
79
  Returns: condition_id, resolution, and outcomes, each with its token_id and candles, plus meta.`,
80
- inputSchema: {
80
+ inputSchema: z.object({
81
81
  condition_id: marketConditionId,
82
82
  resolution: z.enum(["1d", "1w"]).optional()
83
83
  .describe("1d (the default) buckets by UTC day, 1w by ISO week from Monday 00:00 UTC"),
@@ -85,11 +85,11 @@ Returns: condition_id, resolution, and outcomes, each with its token_id and cand
85
85
  .describe("Exclusive lower bound in unix seconds"),
86
86
  to: z.number().int().optional()
87
87
  .describe("Inclusive upper bound in unix seconds; from must not be after to"),
88
- },
88
+ }),
89
89
  annotations: readAnnotations,
90
- }, async ({ condition_id, ...query }, extra) => {
90
+ }, async ({ condition_id, ...query }, ctx) => {
91
91
  try {
92
- const response = await client.request(marketPath(condition_id, "candles"), query, undefined, { signal: extra.signal });
92
+ const response = await client.request(marketPath(condition_id, "candles"), query, undefined, { signal: ctx.mcpReq.signal });
93
93
  return ok(withMeta(response.data, response.meta));
94
94
  }
95
95
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"market-reads.js","sourceRoot":"","sources":["../../src/tools/market-reads.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4BAA4B;AAC5B,EAAE;AACF,0EAA0E;AAC1E,mFAAmF;AACnF,4CAA4C;AAG5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,eAAe,GAAG;IACtB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,KAAK;CACZ,CAAC;AAEX,qDAAqD;AACrD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC/C,QAAQ,CAAC,0DAA0D,CAAC,CAAC;AAExE,SAAS,UAAU,CAAC,WAAmB,EAAE,MAAc;IACrD,OAAO,kBAAkB,kBAAkB,CAAC,WAAW,CAAC,IAAI,MAAM,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAiB,EAAE,MAAiB;IAC3E,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE;;;;;;;;;sFASmE;QAChF,WAAW,EAAE;YACX,YAAY,EAAE,iBAAiB;YAC/B,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;iBAC7C,QAAQ,CAAC,6DAA6D,CAAC;YAC1E,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;iBAC1C,QAAQ,CAAC,wFAAwF,CAAC;YACrG,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,0CAA0C,CAAC;YACvD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAC1B,QAAQ,CAAC,gFAAgF,CAAC;SAC9F;QACD,WAAW,EAAE,eAAe;KAC7B,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,UAAU,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAChF,CAAC;YACF,mEAAmE;YACnE,sEAAsE;YACtE,sDAAsD;YACtD,OAAO,EAAE,CAAC;gBACR,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,KAAK;gBACpC,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI;gBACzC,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClE,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACrE,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC/D,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACrE,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;aAChE,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAiB,EAAE,MAAiB;IAC3E,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE;;;;;;;;gGAQ6E;QAC1F,WAAW,EAAE;YACX,YAAY,EAAE,iBAAiB;YAC/B,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;iBACxC,QAAQ,CAAC,2EAA2E,CAAC;YACxF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;iBAC9B,QAAQ,CAAC,uCAAuC,CAAC;YACpD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;iBAC5B,QAAQ,CAAC,kEAAkE,CAAC;SAChF;QACD,WAAW,EAAE,eAAe;KAC7B,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,UAAU,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAChF,CAAC;YACF,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"market-reads.js","sourceRoot":"","sources":["../../src/tools/market-reads.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { ApiClient } from "../client.js";
3
3
  export declare function registerGetPickOfTheDay(server: McpServer, client: ApiClient): void;
4
4
  export declare function registerGetPickOfTheDayArchive(server: McpServer, client: ApiClient): void;
@@ -1 +1 @@
1
- {"version":3,"file":"pick-of-the-day.d.ts","sourceRoot":"","sources":["../../src/tools/pick-of-the-day.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAmBzC,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;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAoB7F"}
1
+ {"version":3,"file":"pick-of-the-day.d.ts","sourceRoot":"","sources":["../../src/tools/pick-of-the-day.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAmBzC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA0BlF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAsBzF;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAoB7F"}
@@ -17,18 +17,20 @@ const readAnnotations = {
17
17
  export function registerGetPickOfTheDay(server, client) {
18
18
  server.registerTool("get_pick_of_the_day", {
19
19
  title: "Get Pick of the Day",
20
- 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 opens the explicitly designated free selection plus the first four non-free selections in publication order; Max opens every available daily selection, up to fifteen. Read entitled \`picks\` in \`publication_order\` order; use stable decimal-string \`pick_id\` for identity, not deprecated \`pick_rank\`. \`is_free_selection\` designates account access; \`supersedes_pick_id\` is deprecated and always null. \`locked_picks\` lists extra unresolved ranks with only pick_rank and required_tier=max; no game, participants, league, time, links, market identifiers or backed facts are exposed. 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\` contains only entitled selected-but-unreleased slots and preserves required release_at; unauthorized future ranks join the identity-free locked_picks descriptors instead. No market identity is revealed before publication. Withdrawn picks are omitted from current and dated recommendations, the archive, and its statistics, even after market settlement. The public ledger retains every published commitment under its original identity and proof bytes.
20
+ description: `Get today's published Pick of the Day selections and their recorded facts. Pro opens five selections in total: the explicitly designated free selection plus the first four non-free selections in publication order. Max opens every available daily selection, up to twenty. Read entitled \`picks\` in \`publication_order\` order; use stable decimal-string \`pick_id\` for identity, not deprecated \`pick_rank\`. \`is_free_selection\` designates account access; \`supersedes_pick_id\` is deprecated and always null. \`locked_picks\` lists extra unresolved slots with only pick_rank and required_tier=max; game identity, identifying clocks and backed facts are omitted. Each full pick carries the matchup, backed side (pick_outcome_label), recorded publication price and return on the flat $1,000 stake (\`stake_usd\`, \`return_usd\`; \`return_per_100\` keeps the literal $100 basis), available holder facts, top grade, CLV capture status and backend-provided thesis. \`scheduled_picks\` contains entitled scheduled slots with release_at and kickoff; unauthorized slots appear in identity-free locked_picks instead. No market identity is revealed before publication. Withdrawn picks are omitted from current and dated recommendations, the archive and its statistics, even after market settlement. The public ledger retains every published commitment under its original identity and proof bytes.
21
21
 
22
- When no active pick is available, including after cancelled pending recommendations are withdrawn, 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 only when no entitled published pick has readable proof. If only Max-locked ranks have published, a successful state=none response carries picks=[], pick_count=0, locked_picks, and an upgrade action. This is not a proof-warming state.
22
+ When no active pick is available, the tool returns reason pick_not_released and retry_at. Schedule the next read from the returned retry guidance or an entitled scheduled slot's release_at instead of polling. An entitled published pick whose holder proof is not readable appears in \`proof_pending_picks\` (pick_rank, release_at, kickoff, retry_at), while \`picks\` contains readable picks. The tool returns read_model_warming only when no entitled published pick has readable proof. If only Max-locked selections have published, a successful state=none response carries picks=[], pick_count=0, locked_picks and an upgrade action.
23
+
24
+ For automated entry, require a present, matching, unexpired entry_authorization. Honor its returned max_entry_price and expires_at, quote a current executable book for the actual stake and retain any stricter local limits. Fees are separate; authorization guarantees neither liquidity nor execution.
23
25
 
24
26
  Args: none
25
27
 
26
28
  Returns: The published pick set for the current product day (America/New_York), or a pick_not_released error with retry_at.`,
27
- inputSchema: {},
29
+ inputSchema: z.object({}),
28
30
  annotations: readAnnotations,
29
- }, async (_args, extra) => {
31
+ }, async (_args, ctx) => {
30
32
  try {
31
- const response = await client.request("/api/v1/pick-of-the-day", undefined, undefined, { signal: extra.signal });
33
+ const response = await client.request("/api/v1/pick-of-the-day", undefined, undefined, { signal: ctx.mcpReq.signal });
32
34
  return ok(withMeta(response.data, response.meta));
33
35
  }
34
36
  catch (error) {
@@ -39,16 +41,16 @@ Returns: The published pick set for the current product day (America/New_York),
39
41
  export function registerGetPickOfTheDayArchive(server, client) {
40
42
  server.registerTool("get_pick_of_the_day_archive", {
41
43
  title: "Get Pick of the Day Archive",
42
- description: `Get the Pick of the Day track record: each published pick that has not been withdrawn, with its 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-$1,000-stake profit and ROI (\`hit_rate.stake_usd\` names the stake). The actual API key tier controls unresolved access: Pro reads ranks 1–5 and Max all available ranks, up to fifteen. Every resolved outcome (win/loss/void) is public. Unentitled pending rows retain only slot/date/outcome and required_tier with backed_side_locked=true; matchup, category, league, image, publication clock and all backed facts are omitted. The archive retains the included historical picks, losses included. Withdrawn recommendations are omitted from archive rows and every aggregate, including the cumulative series, even after market settlement. The public ledger retains every published commitment under its original pick_id and proof bytes.
44
+ description: `Get the Pick of the Day track record: each published pick that has not been withdrawn, with its outcome (win, loss, void or pending), recorded publication price, unit score and CLV fields, plus the rolling hit rate (wins / decided; void and pending excluded) and flat-$1,000-stake profit and ROI (\`hit_rate.stake_usd\` names the stake). The actual API key tier controls unresolved access: Pro opens five selections in total, the designated free selection plus the first four non-free selections in publication order; Max opens every available daily selection, up to twenty. Every resolved outcome (win/loss/void) is public. Unentitled pending rows retain only slot/date/outcome and required_tier with backed_side_locked=true; matchup, category, league, image, publication clock and backed facts are omitted. The archive retains the included historical picks, losses included. Withdrawn recommendations are omitted from archive rows and every aggregate, including the cumulative series, even after market settlement. The public ledger retains every published commitment under its original pick_id and proof bytes.
43
45
 
44
46
  Args: none
45
47
 
46
48
  Returns: picks[] newest first with outcome and CLV fields, plus the aggregate record (hit_rate, decided, wins, losses, voids, profit, roi, total risked).`,
47
- inputSchema: {},
49
+ inputSchema: z.object({}),
48
50
  annotations: readAnnotations,
49
- }, async (_args, extra) => {
51
+ }, async (_args, ctx) => {
50
52
  try {
51
- const response = await client.request("/api/v1/pick-of-the-day/archive", undefined, undefined, { signal: extra.signal });
53
+ const response = await client.request("/api/v1/pick-of-the-day/archive", undefined, undefined, { signal: ctx.mcpReq.signal });
52
54
  return ok(withMeta(response.data, response.meta));
53
55
  }
54
56
  catch (error) {
@@ -60,13 +62,13 @@ export function registerGetPickOfTheDayLedgerEntry(server, client) {
60
62
  server.registerTool("get_pick_of_the_day_ledger_entry", {
61
63
  title: "Get Pick of the Day Proof",
62
64
  description: "Read one published pick's sealed, opened or uncommitted ledger entry by its stable decimal-string pick_id. commitment_version explicitly selects version 1 legacy proofs or version 2 rank-free proofs. Never infer a proof format from dates or reorder canonical bytes. Pending proofs withhold the backed side and nonce. This tool requires the usual authenticated MCP tools/call transport; the corresponding REST read is public.",
63
- inputSchema: {
65
+ inputSchema: z.object({
64
66
  pick_id: z.string().regex(/^[1-9][0-9]*$/).describe("Stable positive database row id as decimal text"),
65
- },
67
+ }),
66
68
  annotations: readAnnotations,
67
- }, async ({ pick_id }, extra) => {
69
+ }, async ({ pick_id }, ctx) => {
68
70
  try {
69
- const response = await client.request(`/api/v1/pick-of-the-day/ledger/${encodeURIComponent(pick_id)}`, undefined, undefined, { signal: extra.signal });
71
+ const response = await client.request(`/api/v1/pick-of-the-day/ledger/${encodeURIComponent(pick_id)}`, undefined, undefined, { signal: ctx.mcpReq.signal });
70
72
  return ok(withMeta(response.data, response.meta));
71
73
  }
72
74
  catch (error) {