@0xinsider/mcp 1.0.2 → 1.0.9

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 (52) hide show
  1. package/README.md +44 -7
  2. package/dist/cli-lib.d.ts +9 -0
  3. package/dist/cli-lib.d.ts.map +1 -1
  4. package/dist/cli-lib.js +210 -68
  5. package/dist/cli-lib.js.map +1 -1
  6. package/dist/client.d.ts +5 -0
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +30 -4
  9. package/dist/client.js.map +1 -1
  10. package/dist/constants.d.ts +2 -1
  11. package/dist/constants.d.ts.map +1 -1
  12. package/dist/constants.js +25 -1
  13. package/dist/constants.js.map +1 -1
  14. package/dist/prompts/index.js +1 -1
  15. package/dist/server.d.ts.map +1 -1
  16. package/dist/server.js +32 -2
  17. package/dist/server.js.map +1 -1
  18. package/dist/tools/explore-markets.d.ts +36 -0
  19. package/dist/tools/explore-markets.d.ts.map +1 -0
  20. package/dist/tools/explore-markets.js +77 -0
  21. package/dist/tools/explore-markets.js.map +1 -0
  22. package/dist/tools/get-insider-radar.js +1 -1
  23. package/dist/tools/get-large-positions.d.ts +21 -0
  24. package/dist/tools/get-large-positions.d.ts.map +1 -0
  25. package/dist/tools/get-large-positions.js +68 -0
  26. package/dist/tools/get-large-positions.js.map +1 -0
  27. package/dist/tools/get-position-timeline.d.ts +24 -0
  28. package/dist/tools/get-position-timeline.d.ts.map +1 -0
  29. package/dist/tools/get-position-timeline.js +79 -0
  30. package/dist/tools/get-position-timeline.js.map +1 -0
  31. package/dist/tools/get-positions.d.ts +21 -0
  32. package/dist/tools/get-positions.d.ts.map +1 -0
  33. package/dist/tools/get-positions.js +68 -0
  34. package/dist/tools/get-positions.js.map +1 -0
  35. package/dist/tools/get-trader-pnl.d.ts +6 -0
  36. package/dist/tools/get-trader-pnl.d.ts.map +1 -0
  37. package/dist/tools/get-trader-pnl.js +39 -0
  38. package/dist/tools/get-trader-pnl.js.map +1 -0
  39. package/dist/tools/get-trader.d.ts.map +1 -1
  40. package/dist/tools/get-trader.js +4 -3
  41. package/dist/tools/get-trader.js.map +1 -1
  42. package/dist/tools/get-trending-wallets.d.ts +15 -0
  43. package/dist/tools/get-trending-wallets.d.ts.map +1 -0
  44. package/dist/tools/get-trending-wallets.js +56 -0
  45. package/dist/tools/get-trending-wallets.js.map +1 -0
  46. package/dist/tools/get-whale-trades.js +1 -1
  47. package/dist/tools/get-whale-trades.js.map +1 -1
  48. package/dist/tools/read-parity.d.ts +20 -0
  49. package/dist/tools/read-parity.d.ts.map +1 -0
  50. package/dist/tools/read-parity.js +493 -0
  51. package/dist/tools/read-parity.js.map +1 -0
  52. package/package.json +3 -1
@@ -2,11 +2,12 @@ export declare const API_BASE_URL = "https://api.0xinsider.com";
2
2
  export declare const SITE_URL = "https://0xinsider.com";
3
3
  export declare const DEVELOPERS_URL = "https://0xinsider.com/developers";
4
4
  export declare const PRICING_URL = "https://0xinsider.com/pricing";
5
- export declare const VERSION = "1.0.2";
5
+ export declare const VERSION = "1.0.9";
6
6
  export declare const PACKAGE_NAME = "@0xinsider/mcp";
7
7
  export declare const SERVER_NAME = "0xinsider";
8
8
  export declare const API_KEY_ENV_VAR = "OXINSIDER_API_KEY";
9
9
  export declare const API_URL_ENV_VAR = "OXINSIDER_API_URL";
10
10
  export declare const MCP_NPX_COMMAND = "npx";
11
11
  export declare const MCP_NPX_ARGS: readonly ["-y", "@0xinsider/mcp"];
12
+ export declare const MAX_BATCH_ITEMS = 25;
12
13
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,8BAA8B,CAAC;AACxD,eAAO,MAAM,QAAQ,0BAA0B,CAAC;AAChD,eAAO,MAAM,cAAc,qCAA2B,CAAC;AACvD,eAAO,MAAM,WAAW,kCAAwB,CAAC;AACjD,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,YAAY,mBAAmB,CAAC;AAC7C,eAAO,MAAM,WAAW,cAAc,CAAC;AACvC,eAAO,MAAM,eAAe,sBAAsB,CAAC;AACnD,eAAO,MAAM,eAAe,sBAAsB,CAAC;AACnD,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,YAAY,mCAAgC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,8BAA8B,CAAC;AACxD,eAAO,MAAM,QAAQ,0BAA0B,CAAC;AAChD,eAAO,MAAM,cAAc,qCAA2B,CAAC;AACvD,eAAO,MAAM,WAAW,kCAAwB,CAAC;AAcjD,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,eAAO,MAAM,YAAY,mBAAmB,CAAC;AAC7C,eAAO,MAAM,WAAW,cAAc,CAAC;AACvC,eAAO,MAAM,eAAe,sBAAsB,CAAC;AACnD,eAAO,MAAM,eAAe,sBAAsB,CAAC;AACnD,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,YAAY,mCAAgC,CAAC;AAU1D,eAAO,MAAM,eAAe,KAAK,CAAC"}
package/dist/constants.js CHANGED
@@ -2,11 +2,35 @@ export const API_BASE_URL = "https://api.0xinsider.com";
2
2
  export const SITE_URL = "https://0xinsider.com";
3
3
  export const DEVELOPERS_URL = `${SITE_URL}/developers`;
4
4
  export const PRICING_URL = `${SITE_URL}/pricing`;
5
- export const VERSION = "1.0.2";
5
+ // Version reported to MCP clients.
6
+ //
7
+ // GENERATED from this package's own `package.json` by `scripts/generate-version.mjs`,
8
+ // which `prebuild` runs, so any `npm run build` refreshes it (#8103). `prepublishOnly`
9
+ // also runs `build`, but only for a DIRECTORY publish; the release workflow publishes a
10
+ // tarball and runs its own explicit `npm run build` before packing (#8395).
11
+ // A hand-maintained copy drifted to 1.0.3 while the package published 1.0.5, and this
12
+ // constant is what `server.ts` reports as `serverInfo.version` and what `client.ts` puts
13
+ // in the `User-Agent`. Do not hand-edit inside the markers: bump `package.json` and
14
+ // build. The generator lives in this package rather than in `web/` because the publish
15
+ // flow runs `cd mcp && npm ci` from a clean checkout, where `web/node_modules` need not
16
+ // exist.
17
+ // generated-package-version:start
18
+ export const VERSION = "1.0.9";
19
+ // generated-package-version:end
6
20
  export const PACKAGE_NAME = "@0xinsider/mcp";
7
21
  export const SERVER_NAME = "0xinsider";
8
22
  export const API_KEY_ENV_VAR = "OXINSIDER_API_KEY";
9
23
  export const API_URL_ENV_VAR = "OXINSIDER_API_URL";
10
24
  export const MCP_NPX_COMMAND = "npx";
11
25
  export const MCP_NPX_ARGS = ["-y", PACKAGE_NAME];
26
+ // Maximum items a single batch tool call may carry.
27
+ //
28
+ // GENERATED from `MAX_BATCH_ITEMS` in `backend/src/api_v1/handlers/batch.rs` by
29
+ // `web/scripts/generate-api-policy.ts` (#8103). This package is published separately and
30
+ // cannot import the owner module at `web/src/lib/rate-limit-facts.ts`, so the number is
31
+ // written here instead of restated by hand. Do not hand-edit inside the markers; run
32
+ // `cd web && npm run generate:api-policy` after changing the Rust constant.
33
+ // generated-batch-item-cap:start
34
+ export const MAX_BATCH_ITEMS = 25;
35
+ // generated-batch-item-cap:end
12
36
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,2BAA2B,CAAC;AACxD,MAAM,CAAC,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,QAAQ,aAAa,CAAC;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,QAAQ,UAAU,CAAC;AACjD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAC/B,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,YAAY,CAAU,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,2BAA2B,CAAC;AACxD,MAAM,CAAC,MAAM,QAAQ,GAAG,uBAAuB,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,QAAQ,aAAa,CAAC;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,QAAQ,UAAU,CAAC;AACjD,mCAAmC;AACnC,EAAE;AACF,sFAAsF;AACtF,uFAAuF;AACvF,wFAAwF;AACxF,4EAA4E;AAC5E,sFAAsF;AACtF,yFAAyF;AACzF,oFAAoF;AACpF,uFAAuF;AACvF,wFAAwF;AACxF,SAAS;AACT,kCAAkC;AAClC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAC/B,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,YAAY,CAAU,CAAC;AAE1D,oDAAoD;AACpD,EAAE;AACF,gFAAgF;AAChF,yFAAyF;AACzF,wFAAwF;AACxF,qFAAqF;AACrF,4EAA4E;AAC5E,iCAAiC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,+BAA+B"}
@@ -17,7 +17,7 @@ Provide:
17
17
  1. **Overview** — Grade, score, rank, and what tier they fall in
18
18
  2. **P&L Analysis** — Total, realized vs unrealized, recent trends (7d/30d)
19
19
  3. **Strategy** — What type of trader they are and how they operate
20
- 4. **Risk Profile** — Sharpe ratio, max drawdown, Sortino ratio interpretation
20
+ 4. **Risk Profile** — copy_score and smart_score (0-100), Sharpe (7d/30d), profit_factor, and edge_consistency interpretation
21
21
  5. **Category Strengths** — Where they perform best/worst
22
22
  6. **Key Takeaway** — One-paragraph summary of whether this trader is worth following and why`,
23
23
  },
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmCpE,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAmBvF;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAY/C"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4DpE,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA0CvF;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAY/C"}
package/dist/server.js CHANGED
@@ -7,6 +7,13 @@ import { registerGetLeaderboard } from "./tools/get-leaderboard.js";
7
7
  import { registerSearchMarkets } from "./tools/search-markets.js";
8
8
  import { registerGetMarketIntel } from "./tools/get-market-intel.js";
9
9
  import { registerGetInsiderRadar } from "./tools/get-insider-radar.js";
10
+ import { registerGetPositions } from "./tools/get-positions.js";
11
+ import { registerGetPositionTimeline } from "./tools/get-position-timeline.js";
12
+ import { registerGetLargePositions } from "./tools/get-large-positions.js";
13
+ import { registerGetTrendingWallets } from "./tools/get-trending-wallets.js";
14
+ import { registerGetTraderPnl } from "./tools/get-trader-pnl.js";
15
+ import { registerExploreMarkets } from "./tools/explore-markets.js";
16
+ import { registerBatchGetMarketIntel, registerBatchGetTraders, registerGetDailyReportSnapshot, registerGetEventReplaySince, registerGetInsiderRadarFlag, registerGetMarketSnapshot, registerGetMonthlyReportSnapshot, registerGetPlatforms, registerGetPositionTimelineById, registerGetSharpMoneyFlows, registerGetSmartMoneyFlows, registerGetTraderExportSnapshot, registerGetWebhook, registerGetWeeklyReportSnapshot, registerGetWhaleTrade, registerGetWhaleTradesHistory, registerListWebhooks, } from "./tools/read-parity.js";
10
17
  import { registerResources } from "./resources/index.js";
11
18
  import { registerPrompts } from "./prompts/index.js";
12
19
  import { API_KEY_ENV_VAR, API_URL_ENV_VAR, DEVELOPERS_URL, SERVER_NAME, SITE_URL, VERSION, } from "./constants.js";
@@ -29,12 +36,35 @@ export async function createServer(apiKey, baseUrl) {
29
36
  const client = new ApiClient(apiKey, baseUrl);
30
37
  const instructions = await fetchInstructions();
31
38
  const server = new McpServer({ name: SERVER_NAME, version: VERSION }, { instructions });
39
+ registerGetLeaderboard(server, client);
32
40
  registerGetTrader(server, client);
41
+ registerBatchGetTraders(server, client);
33
42
  registerGetWhaleTrades(server, client);
34
- registerGetLeaderboard(server, client);
35
- registerSearchMarkets(server, client);
43
+ registerGetWhaleTrade(server, client);
44
+ registerGetWhaleTradesHistory(server, client);
36
45
  registerGetMarketIntel(server, client);
46
+ registerBatchGetMarketIntel(server, client);
47
+ registerGetSmartMoneyFlows(server, client);
48
+ registerGetSharpMoneyFlows(server, client);
49
+ registerGetMarketSnapshot(server, client);
37
50
  registerGetInsiderRadar(server, client);
51
+ registerGetInsiderRadarFlag(server, client);
52
+ registerGetPositions(server, client);
53
+ registerGetPositionTimeline(server, client);
54
+ registerGetPositionTimelineById(server, client);
55
+ registerGetLargePositions(server, client);
56
+ registerGetTrendingWallets(server, client);
57
+ registerGetTraderPnl(server, client);
58
+ registerSearchMarkets(server, client);
59
+ registerExploreMarkets(server, client);
60
+ registerGetEventReplaySince(server, client);
61
+ registerListWebhooks(server, client);
62
+ registerGetWebhook(server, client);
63
+ registerGetDailyReportSnapshot(server, client);
64
+ registerGetWeeklyReportSnapshot(server, client);
65
+ registerGetMonthlyReportSnapshot(server, client);
66
+ registerGetTraderExportSnapshot(server, client);
67
+ registerGetPlatforms(server, client);
38
68
  registerResources(server, client);
39
69
  registerPrompts(server);
40
70
  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,36 @@
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<["active", "closed", "all"]>>;
9
+ platform: z.ZodDefault<z.ZodEnum<["polymarket", "kalshi", "all"]>>;
10
+ sort: z.ZodDefault<z.ZodEnum<["trending", "hot", "expiring", "whales", "volume", "newest"]>>;
11
+ q: z.ZodOptional<z.ZodString>;
12
+ };
13
+ export declare function buildExploreMarketsParams(args: {
14
+ limit?: number;
15
+ cursor?: string;
16
+ category?: string;
17
+ status?: "active" | "closed" | "all";
18
+ platform?: "polymarket" | "kalshi" | "all";
19
+ sort?: "trending" | "hot" | "expiring" | "whales" | "volume" | "newest";
20
+ q?: string;
21
+ }): Record<string, string | number | undefined>;
22
+ export declare function buildExploreMarketsResult(response: {
23
+ data: unknown;
24
+ has_more?: boolean;
25
+ next_cursor?: string | null;
26
+ total?: number | null;
27
+ facets?: unknown;
28
+ }): {
29
+ data: unknown;
30
+ has_more?: boolean;
31
+ next_cursor?: string | null;
32
+ total?: number | null;
33
+ facets?: unknown;
34
+ };
35
+ export declare function registerExploreMarkets(server: McpServer, client: ApiClient): void;
36
+ //# 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,21 @@
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<["S", "A", "B", "C", "D", "F"]>>;
10
+ condition_id: z.ZodOptional<z.ZodString>;
11
+ };
12
+ export declare function buildLargePositionsParams(args: {
13
+ limit?: number;
14
+ cursor?: string;
15
+ min_size?: number;
16
+ category?: string;
17
+ min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
18
+ condition_id?: string;
19
+ }): Record<string, string | number | undefined>;
20
+ export declare function registerGetLargePositions(server: McpServer, client: ApiClient): void;
21
+ //# 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,21 @@
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<["S", "A", "B", "C", "D", "F"]>>;
10
+ side: z.ZodOptional<z.ZodEnum<["yes", "no"]>>;
11
+ };
12
+ export declare function buildPositionsParams(args: {
13
+ limit?: number;
14
+ cursor?: string;
15
+ min_size?: number;
16
+ category?: string;
17
+ min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
18
+ side?: "yes" | "no";
19
+ }): Record<string, string | number | undefined>;
20
+ export declare function registerGetPositions(server: McpServer, client: ApiClient): void;
21
+ //# 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"}