@0xinsider/mcp 1.0.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +94 -9
  2. package/dist/catalog.generated.d.ts +136 -0
  3. package/dist/catalog.generated.d.ts.map +1 -0
  4. package/dist/catalog.generated.js +171 -0
  5. package/dist/catalog.generated.js.map +1 -0
  6. package/dist/cli-lib.d.ts +9 -0
  7. package/dist/cli-lib.d.ts.map +1 -1
  8. package/dist/cli-lib.js +213 -69
  9. package/dist/cli-lib.js.map +1 -1
  10. package/dist/client.d.ts +6 -1
  11. package/dist/client.d.ts.map +1 -1
  12. package/dist/client.js +30 -4
  13. package/dist/client.js.map +1 -1
  14. package/dist/constants.d.ts +2 -1
  15. package/dist/constants.d.ts.map +1 -1
  16. package/dist/constants.js +25 -1
  17. package/dist/constants.js.map +1 -1
  18. package/dist/prompts/index.js +1 -1
  19. package/dist/server.d.ts.map +1 -1
  20. package/dist/server.js +53 -6
  21. package/dist/server.js.map +1 -1
  22. package/dist/tools/explore-markets.d.ts +51 -0
  23. package/dist/tools/explore-markets.d.ts.map +1 -0
  24. package/dist/tools/explore-markets.js +77 -0
  25. package/dist/tools/explore-markets.js.map +1 -0
  26. package/dist/tools/get-insider-radar.js +1 -1
  27. package/dist/tools/get-large-positions.d.ts +28 -0
  28. package/dist/tools/get-large-positions.d.ts.map +1 -0
  29. package/dist/tools/get-large-positions.js +68 -0
  30. package/dist/tools/get-large-positions.js.map +1 -0
  31. package/dist/tools/get-position-timeline.d.ts +24 -0
  32. package/dist/tools/get-position-timeline.d.ts.map +1 -0
  33. package/dist/tools/get-position-timeline.js +79 -0
  34. package/dist/tools/get-position-timeline.js.map +1 -0
  35. package/dist/tools/get-positions.d.ts +31 -0
  36. package/dist/tools/get-positions.d.ts.map +1 -0
  37. package/dist/tools/get-positions.js +68 -0
  38. package/dist/tools/get-positions.js.map +1 -0
  39. package/dist/tools/get-trader-pnl.d.ts +6 -0
  40. package/dist/tools/get-trader-pnl.d.ts.map +1 -0
  41. package/dist/tools/get-trader-pnl.js +39 -0
  42. package/dist/tools/get-trader-pnl.js.map +1 -0
  43. package/dist/tools/get-trader.d.ts.map +1 -1
  44. package/dist/tools/get-trader.js +4 -3
  45. package/dist/tools/get-trader.js.map +1 -1
  46. package/dist/tools/get-trending-wallets.d.ts +18 -0
  47. package/dist/tools/get-trending-wallets.d.ts.map +1 -0
  48. package/dist/tools/get-trending-wallets.js +56 -0
  49. package/dist/tools/get-trending-wallets.js.map +1 -0
  50. package/dist/tools/get-whale-trades.d.ts.map +1 -1
  51. package/dist/tools/get-whale-trades.js +6 -2
  52. package/dist/tools/get-whale-trades.js.map +1 -1
  53. package/dist/tools/pick-of-the-day.d.ts +5 -0
  54. package/dist/tools/pick-of-the-day.d.ts.map +1 -0
  55. package/dist/tools/pick-of-the-day.js +74 -0
  56. package/dist/tools/pick-of-the-day.js.map +1 -0
  57. package/dist/tools/read-parity.d.ts +22 -0
  58. package/dist/tools/read-parity.d.ts.map +1 -0
  59. package/dist/tools/read-parity.js +549 -0
  60. package/dist/tools/read-parity.js.map +1 -0
  61. package/package.json +15 -7
package/dist/server.js CHANGED
@@ -1,15 +1,67 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
3
  import { ApiClient } from "./client.js";
4
+ import { MCP_TOOL_CATALOG, } from "./catalog.generated.js";
4
5
  import { registerGetTrader } from "./tools/get-trader.js";
5
6
  import { registerGetWhaleTrades } from "./tools/get-whale-trades.js";
6
7
  import { registerGetLeaderboard } from "./tools/get-leaderboard.js";
7
8
  import { registerSearchMarkets } from "./tools/search-markets.js";
8
9
  import { registerGetMarketIntel } from "./tools/get-market-intel.js";
9
10
  import { registerGetInsiderRadar } from "./tools/get-insider-radar.js";
11
+ import { registerGetPositions } from "./tools/get-positions.js";
12
+ import { registerGetPositionTimeline } from "./tools/get-position-timeline.js";
13
+ import { registerGetLargePositions } from "./tools/get-large-positions.js";
14
+ import { registerGetTrendingWallets } from "./tools/get-trending-wallets.js";
15
+ import { registerGetTraderPnl } from "./tools/get-trader-pnl.js";
16
+ import { registerExploreMarkets } from "./tools/explore-markets.js";
17
+ import { registerGetPickOfTheDay, registerGetPickOfTheDayArchive, } from "./tools/pick-of-the-day.js";
18
+ import { registerBatchGetMarketIntel, registerBatchGetTraders, registerGetDailyReportSnapshot, registerGetEventReplaySince, registerGetInsiderRadarFlag, registerGetMarketSnapshot, registerGetMonthlyReportSnapshot, registerGetPlatforms, registerGetPositionTimelineById, registerGetSharpMoneyFlows, registerGetReport, registerSearchContent, registerGetSmartMoneyFlows, registerGetTraderExportSnapshot, registerGetWebhook, registerGetWeeklyReportSnapshot, registerGetWhaleTrade, registerGetWhaleTradesHistory, registerListWebhooks, } from "./tools/read-parity.js";
10
19
  import { registerResources } from "./resources/index.js";
11
20
  import { registerPrompts } from "./prompts/index.js";
12
21
  import { API_KEY_ENV_VAR, API_URL_ENV_VAR, DEVELOPERS_URL, SERVER_NAME, SITE_URL, VERSION, } from "./constants.js";
22
+ // Handler modules own schemas and request behavior. This adapter map only binds
23
+ // those implementations to the Rust-generated identity catalog, so a new Rust
24
+ // tool cannot silently disappear from stdio registration.
25
+ const TOOL_REGISTRATIONS = {
26
+ get_leaderboard: registerGetLeaderboard,
27
+ get_trader: registerGetTrader,
28
+ batch_get_traders: registerBatchGetTraders,
29
+ get_whale_trades: registerGetWhaleTrades,
30
+ get_whale_trade: registerGetWhaleTrade,
31
+ get_whale_trades_history: registerGetWhaleTradesHistory,
32
+ get_market_intel: registerGetMarketIntel,
33
+ batch_get_market_intel: registerBatchGetMarketIntel,
34
+ get_smart_money_flows: registerGetSmartMoneyFlows,
35
+ get_sharp_money_flows: registerGetSharpMoneyFlows,
36
+ get_market_snapshot: registerGetMarketSnapshot,
37
+ get_insider_radar: registerGetInsiderRadar,
38
+ get_insider_radar_flag: registerGetInsiderRadarFlag,
39
+ get_positions: registerGetPositions,
40
+ get_position_timeline: registerGetPositionTimeline,
41
+ get_position_timeline_by_id: registerGetPositionTimelineById,
42
+ search_markets: registerSearchMarkets,
43
+ search_content: registerSearchContent,
44
+ explore_markets: registerExploreMarkets,
45
+ get_event_replay_since: registerGetEventReplaySince,
46
+ list_webhooks: registerListWebhooks,
47
+ get_webhook: registerGetWebhook,
48
+ get_daily_report_snapshot: registerGetDailyReportSnapshot,
49
+ get_weekly_report_snapshot: registerGetWeeklyReportSnapshot,
50
+ get_monthly_report_snapshot: registerGetMonthlyReportSnapshot,
51
+ get_report: registerGetReport,
52
+ get_trader_export_snapshot: registerGetTraderExportSnapshot,
53
+ get_platforms: registerGetPlatforms,
54
+ get_large_positions: registerGetLargePositions,
55
+ get_trending_wallets: registerGetTrendingWallets,
56
+ get_trader_pnl: registerGetTraderPnl,
57
+ get_pick_of_the_day: registerGetPickOfTheDay,
58
+ get_pick_of_the_day_archive: registerGetPickOfTheDayArchive,
59
+ };
60
+ function registerCatalogTools(server, client) {
61
+ for (const tool of MCP_TOOL_CATALOG) {
62
+ TOOL_REGISTRATIONS[tool.name](server, client);
63
+ }
64
+ }
13
65
  async function fetchInstructions() {
14
66
  try {
15
67
  const response = await fetch(`${SITE_URL}/agents.md`);
@@ -29,12 +81,7 @@ export async function createServer(apiKey, baseUrl) {
29
81
  const client = new ApiClient(apiKey, baseUrl);
30
82
  const instructions = await fetchInstructions();
31
83
  const server = new McpServer({ name: SERVER_NAME, version: VERSION }, { instructions });
32
- registerGetTrader(server, client);
33
- registerGetWhaleTrades(server, client);
34
- registerGetLeaderboard(server, client);
35
- registerSearchMarkets(server, client);
36
- registerGetMarketIntel(server, client);
37
- registerGetInsiderRadar(server, client);
84
+ registerCatalogTools(server, client);
38
85
  registerResources(server, client);
39
86
  registerPrompts(server);
40
87
  return server;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { z } from "zod";
3
+ import { ApiClient } from "../client.js";
4
+ export declare const exploreMarketsParamsSchema: {
5
+ limit: z.ZodDefault<z.ZodNumber>;
6
+ cursor: z.ZodOptional<z.ZodString>;
7
+ category: z.ZodOptional<z.ZodString>;
8
+ status: z.ZodDefault<z.ZodEnum<{
9
+ active: "active";
10
+ closed: "closed";
11
+ all: "all";
12
+ }>>;
13
+ platform: z.ZodDefault<z.ZodEnum<{
14
+ all: "all";
15
+ polymarket: "polymarket";
16
+ kalshi: "kalshi";
17
+ }>>;
18
+ sort: z.ZodDefault<z.ZodEnum<{
19
+ trending: "trending";
20
+ hot: "hot";
21
+ expiring: "expiring";
22
+ whales: "whales";
23
+ volume: "volume";
24
+ newest: "newest";
25
+ }>>;
26
+ q: z.ZodOptional<z.ZodString>;
27
+ };
28
+ export declare function buildExploreMarketsParams(args: {
29
+ limit?: number;
30
+ cursor?: string;
31
+ category?: string;
32
+ status?: "active" | "closed" | "all";
33
+ platform?: "polymarket" | "kalshi" | "all";
34
+ sort?: "trending" | "hot" | "expiring" | "whales" | "volume" | "newest";
35
+ q?: string;
36
+ }): Record<string, string | number | undefined>;
37
+ export declare function buildExploreMarketsResult(response: {
38
+ data: unknown;
39
+ has_more?: boolean;
40
+ next_cursor?: string | null;
41
+ total?: number | null;
42
+ facets?: unknown;
43
+ }): {
44
+ data: unknown;
45
+ has_more?: boolean;
46
+ next_cursor?: string | null;
47
+ total?: number | null;
48
+ facets?: unknown;
49
+ };
50
+ export declare function registerExploreMarkets(server: McpServer, client: ApiClient): void;
51
+ //# sourceMappingURL=explore-markets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explore-markets.d.ts","sourceRoot":"","sources":["../../src/tools/explore-markets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;CAetC,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IACrC,QAAQ,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC3C,IAAI,CAAC,EAAE,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxE,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAU9C;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE;IAClD,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG;IACF,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAQA;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA6CjF"}
@@ -0,0 +1,77 @@
1
+ import { z } from "zod";
2
+ import { ApiError } from "../client.js";
3
+ export const exploreMarketsParamsSchema = {
4
+ limit: z.number().int().min(1).max(48).default(24)
5
+ .describe("Max discovery entries (1-48, default 24)"),
6
+ cursor: z.string().optional()
7
+ .describe("Pagination cursor from previous response"),
8
+ category: z.string().optional()
9
+ .describe("Filter by provider-native market category"),
10
+ status: z.enum(["active", "closed", "all"]).default("all")
11
+ .describe("Filter by market status"),
12
+ platform: z.enum(["polymarket", "kalshi", "all"]).default("all")
13
+ .describe("Filter by platform"),
14
+ sort: z.enum(["trending", "hot", "expiring", "whales", "volume", "newest"]).default("trending")
15
+ .describe("Discovery sort order"),
16
+ q: z.string().optional()
17
+ .describe("Keyword search against market titles"),
18
+ };
19
+ export function buildExploreMarketsParams(args) {
20
+ return {
21
+ limit: args.limit,
22
+ cursor: args.cursor,
23
+ category: args.category,
24
+ status: args.status,
25
+ platform: args.platform,
26
+ sort: args.sort,
27
+ q: args.q,
28
+ };
29
+ }
30
+ export function buildExploreMarketsResult(response) {
31
+ return {
32
+ data: response.data,
33
+ has_more: response.has_more,
34
+ next_cursor: response.next_cursor,
35
+ total: response.total,
36
+ facets: response.facets,
37
+ };
38
+ }
39
+ export function registerExploreMarkets(server, client) {
40
+ server.registerTool("explore_markets", {
41
+ title: "Explore Markets",
42
+ description: `Browse whale-active titled markets for discovery surfaces. Returns grouped event clusters or standalone markets plus live facets. Cursor-paginated over visible discovery entries.
43
+
44
+ Args:
45
+ - limit (number, 1-48, default 24): Max discovery entries per page
46
+ - cursor (string, optional): Pagination cursor from previous response
47
+ - category (string, optional): Filter by provider-native market category
48
+ - status (string, optional): Filter by status: "active", "closed", or "all"
49
+ - platform (string, optional): Filter by platform: "polymarket", "kalshi", or "all"
50
+ - sort (string, optional): Sort by "trending", "hot", "expiring", "whales", "volume", or "newest"
51
+ - q (string, optional): Keyword search against market titles
52
+
53
+ Returns: Market discovery entries, facets, and pagination metadata.`,
54
+ inputSchema: exploreMarketsParamsSchema,
55
+ annotations: {
56
+ readOnlyHint: true,
57
+ destructiveHint: false,
58
+ idempotentHint: true,
59
+ openWorldHint: false,
60
+ },
61
+ }, async (args) => {
62
+ try {
63
+ const response = await client.request("/api/v1/markets/explore", buildExploreMarketsParams(args));
64
+ const result = buildExploreMarketsResult(response);
65
+ return {
66
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
67
+ };
68
+ }
69
+ catch (error) {
70
+ return {
71
+ isError: true,
72
+ content: [{ type: "text", text: error instanceof ApiError ? error.message : `Unexpected error: ${error}` }],
73
+ };
74
+ }
75
+ });
76
+ }
77
+ //# sourceMappingURL=explore-markets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explore-markets.js","sourceRoot":"","sources":["../../src/tools/explore-markets.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { ApiError } from "../client.js";
3
3
  export function registerGetInsiderRadar(server, client) {
4
4
  server.registerTool("get_insider_radar", {
5
5
  title: "Get Insider Radar Flags",
6
- description: `Suspicious trading pattern detection — pre-resolution accumulation, coordinated wallets, unusual timing. Cursor-paginated by suspicion score (highest first).
6
+ description: `Suspicious trading pattern flags — pre-resolution accumulation and coordinated wallets. Each flag carries recorded per-signal component scores; they are nullable and historical. Cursor-paginated by suspicion score (highest first).
7
7
 
8
8
  Each flag includes:
9
9
  - suspicion_score (0-100)
@@ -0,0 +1,28 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { z } from "zod";
3
+ import { ApiClient } from "../client.js";
4
+ export declare const largePositionsParamsSchema: {
5
+ limit: z.ZodDefault<z.ZodNumber>;
6
+ cursor: z.ZodOptional<z.ZodString>;
7
+ min_size: z.ZodOptional<z.ZodNumber>;
8
+ category: z.ZodOptional<z.ZodString>;
9
+ min_grade: z.ZodOptional<z.ZodEnum<{
10
+ S: "S";
11
+ A: "A";
12
+ B: "B";
13
+ C: "C";
14
+ D: "D";
15
+ F: "F";
16
+ }>>;
17
+ condition_id: z.ZodOptional<z.ZodString>;
18
+ };
19
+ export declare function buildLargePositionsParams(args: {
20
+ limit?: number;
21
+ cursor?: string;
22
+ min_size?: number;
23
+ category?: string;
24
+ min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
25
+ condition_id?: string;
26
+ }): Record<string, string | number | undefined>;
27
+ export declare function registerGetLargePositions(server: McpServer, client: ApiClient): void;
28
+ //# sourceMappingURL=get-large-positions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-large-positions.d.ts","sourceRoot":"","sources":["../../src/tools/get-large-positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;CAatC,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAS9C;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAgDpF"}
@@ -0,0 +1,68 @@
1
+ import { z } from "zod";
2
+ import { ApiError } from "../client.js";
3
+ export const largePositionsParamsSchema = {
4
+ limit: z.number().int().min(1).max(100).default(20)
5
+ .describe("Max results (1-100, default 20)"),
6
+ cursor: z.string().optional()
7
+ .describe("Pagination cursor from previous response"),
8
+ min_size: z.number().min(0).optional()
9
+ .describe("Minimum current position value in USD"),
10
+ category: z.string().optional()
11
+ .describe("Filter by provider-backed market category"),
12
+ min_grade: z.enum(["S", "A", "B", "C", "D", "F"]).optional()
13
+ .describe("Minimum trader grade"),
14
+ condition_id: z.string().optional()
15
+ .describe("Scope to one market: raw provider condition_id or mkt_-prefixed market id"),
16
+ };
17
+ export function buildLargePositionsParams(args) {
18
+ return {
19
+ limit: args.limit,
20
+ cursor: args.cursor,
21
+ min_size: args.min_size,
22
+ category: args.category,
23
+ min_grade: args.min_grade,
24
+ condition_id: args.condition_id,
25
+ };
26
+ }
27
+ export function registerGetLargePositions(server, client) {
28
+ server.registerTool("get_large_positions", {
29
+ title: "List Large Positions",
30
+ description: `List the largest current open positions from graded traders, value-descending, with cursor pagination. Polymarket-only by design: the scanner filters platform = 'polymarket', so a Kalshi or unknown condition_id returns an empty list (never fabricated rows).
31
+
32
+ Args:
33
+ - limit (number, 1-100, default 20): Max results per page
34
+ - cursor (string, optional): Pagination cursor from previous response
35
+ - min_size (number, optional): Minimum current position value in USD
36
+ - category (string, optional): Filter by provider-backed market category
37
+ - min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)
38
+ - condition_id (string, optional): Scope to one market by raw condition_id or mkt_-prefixed market id
39
+
40
+ Returns: List of large positions with trader, market, value, P&L, and freshness context plus pagination metadata.`,
41
+ inputSchema: largePositionsParamsSchema,
42
+ annotations: {
43
+ readOnlyHint: true,
44
+ destructiveHint: false,
45
+ idempotentHint: true,
46
+ openWorldHint: false,
47
+ },
48
+ }, async (args) => {
49
+ try {
50
+ const response = await client.request("/api/v1/large-positions", buildLargePositionsParams(args));
51
+ const result = {
52
+ data: response.data,
53
+ has_more: response.has_more,
54
+ next_cursor: response.next_cursor,
55
+ };
56
+ return {
57
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
58
+ };
59
+ }
60
+ catch (error) {
61
+ return {
62
+ isError: true,
63
+ content: [{ type: "text", text: error instanceof ApiError ? error.message : `Unexpected error: ${error}` }],
64
+ };
65
+ }
66
+ });
67
+ }
68
+ //# sourceMappingURL=get-large-positions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-large-positions.js","sourceRoot":"","sources":["../../src/tools/get-large-positions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAChD,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,0CAA0C,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,uCAAuC,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,2CAA2C,CAAC;IACxD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;SACzD,QAAQ,CAAC,sBAAsB,CAAC;IACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAChC,QAAQ,CAAC,2EAA2E,CAAC;CACzF,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,IAOzC;IACC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAiB;IAC5E,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE;;;;;;;;;;kHAU+F;QAC5G,WAAW,EAAE,0BAA0B;QACvC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,yBAAyB,EACzB,yBAAyB,CAAC,IAAI,CAAC,CAChC,CAAC;YAEF,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { z } from "zod";
3
+ import { ApiClient } from "../client.js";
4
+ type PositionTimelineArgs = {
5
+ condition_id: string;
6
+ address?: string;
7
+ trader_id?: number;
8
+ limit?: number;
9
+ cursor?: string;
10
+ };
11
+ export declare const positionTimelineParamsSchema: {
12
+ condition_id: z.ZodString;
13
+ address: z.ZodOptional<z.ZodString>;
14
+ trader_id: z.ZodOptional<z.ZodNumber>;
15
+ limit: z.ZodDefault<z.ZodNumber>;
16
+ cursor: z.ZodOptional<z.ZodString>;
17
+ };
18
+ export declare function buildPositionTimelineRequest(args: PositionTimelineArgs): {
19
+ path: string;
20
+ params: Record<string, string | number | undefined>;
21
+ };
22
+ export declare function registerGetPositionTimeline(server: McpServer, client: ApiClient): void;
23
+ export {};
24
+ //# sourceMappingURL=get-position-timeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-position-timeline.d.ts","sourceRoot":"","sources":["../../src/tools/get-position-timeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,KAAK,oBAAoB,GAAG;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;;;;CAWxC,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,oBAAoB,GAAG;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CACrD,CA0BA;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA6CtF"}
@@ -0,0 +1,79 @@
1
+ import { z } from "zod";
2
+ import { ApiError } from "../client.js";
3
+ export const positionTimelineParamsSchema = {
4
+ condition_id: z.string().trim().min(1)
5
+ .describe("Market condition ID"),
6
+ address: z.string().trim().min(1).max(100).optional()
7
+ .describe("Trader identity: 0x... wallet, username, trd_-prefixed id, or bare integer traders.id"),
8
+ trader_id: z.number().int().positive().optional()
9
+ .describe("Internal traders.id alias"),
10
+ limit: z.number().int().min(1).max(100).default(20)
11
+ .describe("Max events (1-100, default 20)"),
12
+ cursor: z.string().optional()
13
+ .describe("Pagination cursor from previous response"),
14
+ };
15
+ export function buildPositionTimelineRequest(args) {
16
+ const conditionId = args.condition_id.trim();
17
+ if (!conditionId) {
18
+ throw new Error("condition_id is required");
19
+ }
20
+ const address = args.address?.trim();
21
+ const hasAddress = Boolean(address);
22
+ const hasTraderId = args.trader_id !== undefined;
23
+ if (hasAddress === hasTraderId) {
24
+ throw new Error("Provide exactly one of address or trader_id");
25
+ }
26
+ const path = hasTraderId
27
+ ? `/api/v1/traders/${args.trader_id}/position-timeline`
28
+ : `/api/v1/trader/${encodeURIComponent(address ?? "")}/position-timeline`;
29
+ return {
30
+ path,
31
+ params: {
32
+ condition_id: conditionId,
33
+ limit: args.limit,
34
+ cursor: args.cursor,
35
+ },
36
+ };
37
+ }
38
+ export function registerGetPositionTimeline(server, client) {
39
+ server.registerTool("get_position_timeline", {
40
+ title: "Get Position Timeline",
41
+ description: `Get stored Polymarket fills available for one tracked trader in one market, newest first, with server-computed running_amount and running_avg_price. Only HOT and WARM tier traders are tracked.
42
+
43
+ Args:
44
+ - condition_id (string, required): Market condition ID
45
+ - address (string, optional): Trader identity: 0x... wallet, username, trd_-prefixed id, or bare integer traders.id
46
+ - trader_id (number, optional): Internal traders.id alias; provide exactly one of address or trader_id
47
+ - limit (number, 1-100, default 20): Max events per page
48
+ - cursor (string, optional): Pagination cursor from previous response
49
+
50
+ Returns: List of position timeline events with pagination metadata.`,
51
+ inputSchema: positionTimelineParamsSchema,
52
+ annotations: {
53
+ readOnlyHint: true,
54
+ destructiveHint: false,
55
+ idempotentHint: true,
56
+ openWorldHint: false,
57
+ },
58
+ }, async (args) => {
59
+ try {
60
+ const request = buildPositionTimelineRequest(args);
61
+ const response = await client.request(request.path, request.params);
62
+ const result = {
63
+ data: response.data,
64
+ has_more: response.has_more,
65
+ next_cursor: response.next_cursor,
66
+ };
67
+ return {
68
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
69
+ };
70
+ }
71
+ catch (error) {
72
+ return {
73
+ isError: true,
74
+ content: [{ type: "text", text: error instanceof ApiError ? error.message : `Unexpected error: ${error}` }],
75
+ };
76
+ }
77
+ });
78
+ }
79
+ //# sourceMappingURL=get-position-timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-position-timeline.js","sourceRoot":"","sources":["../../src/tools/get-position-timeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { z } from "zod";
3
+ import { ApiClient } from "../client.js";
4
+ export declare const positionsParamsSchema: {
5
+ limit: z.ZodDefault<z.ZodNumber>;
6
+ cursor: z.ZodOptional<z.ZodString>;
7
+ min_size: z.ZodDefault<z.ZodNumber>;
8
+ category: z.ZodOptional<z.ZodString>;
9
+ min_grade: z.ZodOptional<z.ZodEnum<{
10
+ S: "S";
11
+ A: "A";
12
+ B: "B";
13
+ C: "C";
14
+ D: "D";
15
+ F: "F";
16
+ }>>;
17
+ side: z.ZodOptional<z.ZodEnum<{
18
+ yes: "yes";
19
+ no: "no";
20
+ }>>;
21
+ };
22
+ export declare function buildPositionsParams(args: {
23
+ limit?: number;
24
+ cursor?: string;
25
+ min_size?: number;
26
+ category?: string;
27
+ min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
28
+ side?: "yes" | "no";
29
+ }): Record<string, string | number | undefined>;
30
+ export declare function registerGetPositions(server: McpServer, client: ApiClient): void;
31
+ //# sourceMappingURL=get-positions.d.ts.map
@@ -0,0 +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,EAAY,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;CAajC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC9C,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAS9C;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAgD/E"}
@@ -0,0 +1,68 @@
1
+ import { z } from "zod";
2
+ import { ApiError } from "../client.js";
3
+ export const positionsParamsSchema = {
4
+ limit: z.number().int().min(1).max(100).default(20)
5
+ .describe("Max results (1-100, default 20)"),
6
+ cursor: z.string().optional()
7
+ .describe("Pagination cursor from previous response"),
8
+ min_size: z.number().min(0).default(100)
9
+ .describe("Minimum current position value in USD"),
10
+ category: z.string().optional()
11
+ .describe("Filter by provider-backed market category"),
12
+ min_grade: z.enum(["S", "A", "B", "C", "D", "F"]).optional()
13
+ .describe("Minimum trader grade"),
14
+ side: z.enum(["yes", "no"]).optional()
15
+ .describe("Filter by binary outcome side"),
16
+ };
17
+ export function buildPositionsParams(args) {
18
+ return {
19
+ limit: args.limit,
20
+ cursor: args.cursor,
21
+ min_size: args.min_size,
22
+ category: args.category,
23
+ min_grade: args.min_grade,
24
+ side: args.side,
25
+ };
26
+ }
27
+ export function registerGetPositions(server, client) {
28
+ server.registerTool("get_positions", {
29
+ title: "List Current Positions",
30
+ description: `List current prediction-market positions from the public positions-board feed. Returns trader, market, value, side, share, P&L, and freshness context. Cursor-paginated by current value descending.
31
+
32
+ Args:
33
+ - limit (number, 1-100, default 20): Max results per page
34
+ - cursor (string, optional): Pagination cursor from previous response
35
+ - min_size (number, default 100): Minimum current value in USD
36
+ - category (string, optional): Filter by provider-backed market category
37
+ - min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)
38
+ - side (string, optional): Filter by binary side: "yes" or "no"
39
+
40
+ Returns: List of current positions with pagination metadata.`,
41
+ inputSchema: positionsParamsSchema,
42
+ annotations: {
43
+ readOnlyHint: true,
44
+ destructiveHint: false,
45
+ idempotentHint: true,
46
+ openWorldHint: false,
47
+ },
48
+ }, async (args) => {
49
+ try {
50
+ const response = await client.request("/api/v1/positions", buildPositionsParams(args));
51
+ const result = {
52
+ data: response.data,
53
+ has_more: response.has_more,
54
+ next_cursor: response.next_cursor,
55
+ };
56
+ return {
57
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
58
+ };
59
+ }
60
+ catch (error) {
61
+ return {
62
+ isError: true,
63
+ content: [{ type: "text", text: error instanceof ApiError ? error.message : `Unexpected error: ${error}` }],
64
+ };
65
+ }
66
+ });
67
+ }
68
+ //# sourceMappingURL=get-positions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-positions.js","sourceRoot":"","sources":["../../src/tools/get-positions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAChD,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,0CAA0C,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;SACrC,QAAQ,CAAC,uCAAuC,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,2CAA2C,CAAC;IACxD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;SACzD,QAAQ,CAAC,sBAAsB,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,+BAA+B,CAAC;CAC7C,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,IAOpC;IACC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAiB;IACvE,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE;;;;;;;;;;6DAU0C;QACvD,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,mBAAmB,EACnB,oBAAoB,CAAC,IAAI,CAAC,CAC3B,CAAC;YAEF,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { z } from "zod";
3
+ import { ApiClient } from "../client.js";
4
+ export declare const traderPnlLookupSchema: z.ZodString;
5
+ export declare function registerGetTraderPnl(server: McpServer, client: ApiClient): void;
6
+ //# sourceMappingURL=get-trader-pnl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-trader-pnl.d.ts","sourceRoot":"","sources":["../../src/tools/get-trader-pnl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,qBAAqB,aAAoC,CAAC;AAEvE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAwC/E"}
@@ -0,0 +1,39 @@
1
+ import { z } from "zod";
2
+ import { ApiError } from "../client.js";
3
+ export const traderPnlLookupSchema = z.string().trim().min(1).max(100);
4
+ export function registerGetTraderPnl(server, client) {
5
+ server.registerTool("get_trader_pnl", {
6
+ title: "Get Trader P&L Time Series",
7
+ description: `Get a trader's daily P&L time series and pre-derived stats from the precomputed daily_pnl read model: daily cumulative entries, period stats (all/90d/30d/7d), monthly aggregation, per-year totals, and the drawdown series. A resolved trader with no daily P&L returns an empty structured object; an unknown address returns an error.
8
+
9
+ Args:
10
+ - address (string, required): Ethereum wallet address (0x...), trader username, or trd_-prefixed trader id
11
+
12
+ Returns: Trader daily P&L time series with period stats, monthly aggregation, per-year totals, and drawdown series.`,
13
+ inputSchema: {
14
+ address: traderPnlLookupSchema
15
+ .describe("Ethereum wallet address (0x...), username, or trd_-prefixed trader id"),
16
+ },
17
+ annotations: {
18
+ readOnlyHint: true,
19
+ destructiveHint: false,
20
+ idempotentHint: true,
21
+ openWorldHint: false,
22
+ },
23
+ }, async ({ address }) => {
24
+ try {
25
+ const traderLookup = address.trim();
26
+ const response = await client.request(`/api/v1/trader/${encodeURIComponent(traderLookup)}/pnl`);
27
+ return {
28
+ content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }],
29
+ };
30
+ }
31
+ catch (error) {
32
+ return {
33
+ isError: true,
34
+ content: [{ type: "text", text: error instanceof ApiError ? error.message : `Unexpected error: ${error}` }],
35
+ };
36
+ }
37
+ });
38
+ }
39
+ //# sourceMappingURL=get-trader-pnl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-trader-pnl.js","sourceRoot":"","sources":["../../src/tools/get-trader-pnl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvE,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAiB;IACvE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE;;;;;oHAKiG;QAC9G,WAAW,EAAE;YACX,OAAO,EAAE,qBAAqB;iBAC3B,QAAQ,CAAC,uEAAuE,CAAC;SACrF;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,kBAAkB,kBAAkB,CAAC,YAAY,CAAC,MAAM,CACzD,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,EAAE,CAAC;aACrH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}