starkfi 0.2.0 → 0.3.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 (138) hide show
  1. package/LICENSE +1 -1
  2. package/MCP.md +270 -48
  3. package/README.md +395 -87
  4. package/dist/commands/batch/batch.d.ts.map +1 -1
  5. package/dist/commands/batch/batch.js +12 -0
  6. package/dist/commands/batch/batch.js.map +1 -1
  7. package/dist/commands/config/config.d.ts.map +1 -1
  8. package/dist/commands/config/config.js +12 -6
  9. package/dist/commands/config/config.js.map +1 -1
  10. package/dist/commands/lending/lending.d.ts.map +1 -1
  11. package/dist/commands/lending/lending.js +15 -8
  12. package/dist/commands/lending/lending.js.map +1 -1
  13. package/dist/commands/staking/staking.d.ts.map +1 -1
  14. package/dist/commands/staking/staking.js +6 -4
  15. package/dist/commands/staking/staking.js.map +1 -1
  16. package/dist/commands/trade/multi-swap.d.ts.map +1 -1
  17. package/dist/commands/trade/multi-swap.js +3 -2
  18. package/dist/commands/trade/multi-swap.js.map +1 -1
  19. package/dist/commands/trade/swap.d.ts.map +1 -1
  20. package/dist/commands/trade/swap.js +3 -2
  21. package/dist/commands/trade/swap.js.map +1 -1
  22. package/dist/commands/wallet/balance.js +1 -1
  23. package/dist/commands/wallet/balance.js.map +1 -1
  24. package/dist/commands/wallet/send.js +1 -1
  25. package/dist/commands/wallet/send.js.map +1 -1
  26. package/dist/index.js +151 -13
  27. package/dist/index.js.map +1 -1
  28. package/dist/lib/concurrency.d.ts +2 -0
  29. package/dist/lib/concurrency.d.ts.map +1 -0
  30. package/dist/lib/concurrency.js +21 -0
  31. package/dist/lib/concurrency.js.map +1 -0
  32. package/dist/lib/fetch.d.ts +4 -0
  33. package/dist/lib/fetch.d.ts.map +1 -0
  34. package/dist/lib/fetch.js +13 -0
  35. package/dist/lib/fetch.js.map +1 -0
  36. package/dist/lib/format.d.ts +12 -43
  37. package/dist/lib/format.d.ts.map +1 -1
  38. package/dist/lib/format.js +69 -52
  39. package/dist/lib/format.js.map +1 -1
  40. package/dist/lib/retry.d.ts +0 -7
  41. package/dist/lib/retry.d.ts.map +1 -1
  42. package/dist/lib/retry.js +0 -4
  43. package/dist/lib/retry.js.map +1 -1
  44. package/dist/lib/types.d.ts +6 -0
  45. package/dist/lib/types.d.ts.map +1 -0
  46. package/dist/lib/types.js +2 -0
  47. package/dist/lib/types.js.map +1 -0
  48. package/dist/mcp/handlers/multi-swap.js +2 -2
  49. package/dist/mcp/handlers/multi-swap.js.map +1 -1
  50. package/dist/mcp/handlers/trade.js +4 -4
  51. package/dist/mcp/handlers/trade.js.map +1 -1
  52. package/dist/mcp/handlers/wallet.d.ts.map +1 -1
  53. package/dist/mcp/handlers/wallet.js +8 -4
  54. package/dist/mcp/handlers/wallet.js.map +1 -1
  55. package/dist/mcp/server.d.ts.map +1 -1
  56. package/dist/mcp/server.js +45 -4
  57. package/dist/mcp/server.js.map +1 -1
  58. package/dist/mcp/tools/auth.d.ts +3 -0
  59. package/dist/mcp/tools/auth.d.ts.map +1 -0
  60. package/dist/mcp/tools/auth.js +17 -0
  61. package/dist/mcp/tools/auth.js.map +1 -0
  62. package/dist/mcp/tools/error-handling.d.ts +12 -0
  63. package/dist/mcp/tools/error-handling.d.ts.map +1 -0
  64. package/dist/mcp/tools/error-handling.js +28 -0
  65. package/dist/mcp/tools/error-handling.js.map +1 -0
  66. package/dist/mcp/tools/index.d.ts +11 -0
  67. package/dist/mcp/tools/index.d.ts.map +1 -0
  68. package/dist/mcp/tools/index.js +19 -0
  69. package/dist/mcp/tools/index.js.map +1 -0
  70. package/dist/mcp/tools/lending.d.ts +3 -0
  71. package/dist/mcp/tools/lending.d.ts.map +1 -0
  72. package/dist/mcp/tools/lending.js +71 -0
  73. package/dist/mcp/tools/lending.js.map +1 -0
  74. package/dist/mcp/tools/staking.d.ts +3 -0
  75. package/dist/mcp/tools/staking.d.ts.map +1 -0
  76. package/dist/mcp/tools/staking.js +50 -0
  77. package/dist/mcp/tools/staking.js.map +1 -0
  78. package/dist/mcp/tools/trade.d.ts +3 -0
  79. package/dist/mcp/tools/trade.d.ts.map +1 -0
  80. package/dist/mcp/tools/trade.js +63 -0
  81. package/dist/mcp/tools/trade.js.map +1 -0
  82. package/dist/mcp/tools/wallet.d.ts +3 -0
  83. package/dist/mcp/tools/wallet.d.ts.map +1 -0
  84. package/dist/mcp/tools/wallet.js +27 -0
  85. package/dist/mcp/tools/wallet.js.map +1 -0
  86. package/dist/mcp/tools.d.ts.map +1 -1
  87. package/dist/mcp/tools.js +25 -10
  88. package/dist/mcp/tools.js.map +1 -1
  89. package/dist/services/api/client.d.ts.map +1 -1
  90. package/dist/services/api/client.js +5 -9
  91. package/dist/services/api/client.js.map +1 -1
  92. package/dist/services/auth/session.d.ts.map +1 -1
  93. package/dist/services/auth/session.js +3 -2
  94. package/dist/services/auth/session.js.map +1 -1
  95. package/dist/services/batch/batch.d.ts +0 -1
  96. package/dist/services/batch/batch.d.ts.map +1 -1
  97. package/dist/services/batch/batch.js +5 -6
  98. package/dist/services/batch/batch.js.map +1 -1
  99. package/dist/services/config/config.d.ts +0 -1
  100. package/dist/services/config/config.d.ts.map +1 -1
  101. package/dist/services/config/config.js +0 -1
  102. package/dist/services/config/config.js.map +1 -1
  103. package/dist/services/fibrous/route.d.ts +0 -4
  104. package/dist/services/fibrous/route.d.ts.map +1 -1
  105. package/dist/services/fibrous/route.js +3 -3
  106. package/dist/services/fibrous/route.js.map +1 -1
  107. package/dist/services/portfolio/portfolio.d.ts +0 -4
  108. package/dist/services/portfolio/portfolio.d.ts.map +1 -1
  109. package/dist/services/portfolio/portfolio.js +56 -58
  110. package/dist/services/portfolio/portfolio.js.map +1 -1
  111. package/dist/services/simulate/simulate.d.ts +0 -8
  112. package/dist/services/simulate/simulate.d.ts.map +1 -1
  113. package/dist/services/simulate/simulate.js +1 -5
  114. package/dist/services/simulate/simulate.js.map +1 -1
  115. package/dist/services/staking/staking.d.ts +7 -20
  116. package/dist/services/staking/staking.d.ts.map +1 -1
  117. package/dist/services/staking/staking.js +2 -2
  118. package/dist/services/staking/staking.js.map +1 -1
  119. package/dist/services/starkzap/client.d.ts +2 -1
  120. package/dist/services/starkzap/client.d.ts.map +1 -1
  121. package/dist/services/starkzap/client.js +1 -3
  122. package/dist/services/starkzap/client.js.map +1 -1
  123. package/dist/services/tokens/balances.d.ts.map +1 -1
  124. package/dist/services/tokens/balances.js +17 -29
  125. package/dist/services/tokens/balances.js.map +1 -1
  126. package/dist/services/vesu/api.d.ts.map +1 -1
  127. package/dist/services/vesu/api.js +3 -9
  128. package/dist/services/vesu/api.js.map +1 -1
  129. package/dist/services/vesu/lending.d.ts +1 -4
  130. package/dist/services/vesu/lending.d.ts.map +1 -1
  131. package/dist/services/vesu/lending.js +14 -17
  132. package/dist/services/vesu/lending.js.map +1 -1
  133. package/dist/services/vesu/pools.d.ts +1 -1
  134. package/dist/services/vesu/pools.d.ts.map +1 -1
  135. package/dist/services/vesu/pools.js.map +1 -1
  136. package/package.json +1 -1
  137. package/skills/README.md +5 -9
  138. package/skills/config/SKILL.md +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"multi-swap.js","sourceRoot":"","sources":["../../../src/mcp/handlers/multi-swap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multi-swap.js","sourceRoot":"","sources":["../../../src/mcp/handlers/multi-swap.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@ import { FIBROUS_ROUTER_ADDRESS } from "../../services/fibrous/config.js";
7
7
  import { simulateTransaction } from "../../services/simulate/simulate.js";
8
8
  import { jsonResult } from "./utils.js";
9
9
  export async function handleGetSwapQuote(args) {
10
- const tokenIn = await resolveToken(args.from_token);
11
- const tokenOut = await resolveToken(args.to_token);
10
+ const tokenIn = resolveToken(args.from_token);
11
+ const tokenOut = resolveToken(args.to_token);
12
12
  const parsedAmount = Amount.parse(args.amount, tokenIn);
13
13
  const rawAmount = parsedAmount.toBase().toString();
14
14
  const routeResponse = await getRoute(tokenIn, tokenOut, rawAmount);
@@ -29,8 +29,8 @@ export async function handleSwapTokens(args) {
29
29
  const session = requireSession();
30
30
  const { wallet } = await initSDKAndWallet(session);
31
31
  await wallet.ensureReady({ deploy: "if_needed" });
32
- const tokenIn = await resolveToken(args.from_token);
33
- const tokenOut = await resolveToken(args.to_token);
32
+ const tokenIn = resolveToken(args.from_token);
33
+ const tokenOut = resolveToken(args.to_token);
34
34
  const parsedAmount = Amount.parse(args.amount, tokenIn);
35
35
  const rawAmount = parsedAmount.toBase().toString();
36
36
  const calldataResponse = await getCalldata(tokenIn, tokenOut, rawAmount, args.slippage ?? 1, session.address);
@@ -1 +1 @@
1
- {"version":3,"file":"trade.js","sourceRoot":"","sources":["../../../src/mcp/handlers/trade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trade.js","sourceRoot":"","sources":["../../../src/mcp/handlers/trade.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers/wallet.ts"],"names":[],"mappings":"AASA,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAqB9D;AAED,wBAAsB,mBAAmB;;;;;GAmBxC;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;;;;;GA4CA;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;;;;;GAkB7D"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers/wallet.ts"],"names":[],"mappings":"AAaA,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAqB9D;AAED,wBAAsB,mBAAmB;;;;;GAwBxC;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;;;;;GA4CA;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;;;;;GAkB7D"}
@@ -1,5 +1,5 @@
1
1
  import { requireSession } from "../../services/auth/session.js";
2
- import { initSDKAndWallet, createSDK } from "../../services/starkzap/client.js";
2
+ import { initSDKAndWallet, createSDK, resolveFeeModeConfig, } from "../../services/starkzap/client.js";
3
3
  import { ConfigService } from "../../services/config/config.js";
4
4
  import { getBalances } from "../../services/tokens/balances.js";
5
5
  import { resolveToken } from "../../services/tokens/tokens.js";
@@ -10,7 +10,7 @@ export async function handleGetBalance(args) {
10
10
  const session = requireSession();
11
11
  const { wallet } = await initSDKAndWallet(session);
12
12
  if (args.token) {
13
- const tokenType = await resolveToken(args.token);
13
+ const tokenType = resolveToken(args.token);
14
14
  const balanceAmount = await wallet.balanceOf(tokenType);
15
15
  return jsonResult({
16
16
  symbol: tokenType.symbol,
@@ -30,7 +30,11 @@ export async function handleDeployAccount() {
30
30
  const { wallet } = await initSDKAndWallet(session);
31
31
  const alreadyDeployed = await wallet.isDeployed();
32
32
  if (!alreadyDeployed) {
33
- await wallet.ensureReady({ deploy: "if_needed" });
33
+ const configService = ConfigService.getInstance();
34
+ const gasfreeMode = configService.get("gasfreeMode") === true;
35
+ const gasToken = configService.get("gasToken");
36
+ const { feeMode } = resolveFeeModeConfig(gasfreeMode, gasToken);
37
+ await wallet.ensureReady({ deploy: "if_needed", feeMode });
34
38
  }
35
39
  return jsonResult({
36
40
  alreadyDeployed,
@@ -46,7 +50,7 @@ export async function handleSendTokens(args) {
46
50
  const session = requireSession();
47
51
  const { wallet } = await initSDKAndWallet(session);
48
52
  await wallet.ensureReady({ deploy: "if_needed" });
49
- const token = await resolveToken(args.token);
53
+ const token = resolveToken(args.token);
50
54
  const amount = Amount.parse(args.amount, token);
51
55
  const balance = await wallet.balanceOf(token);
52
56
  if (balance.lt(amount)) {
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/mcp/handlers/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/mcp/handlers/wallet.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAUpD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AA8CA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBpD"}
@@ -1,13 +1,54 @@
1
+ import { createRequire } from "node:module";
1
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
- import { registerTools } from "./tools.js";
4
+ import { registerTools } from "./tools/index.js";
5
+ const require = createRequire(import.meta.url);
6
+ const pkg = require("../../package.json");
7
+ const MCP_INSTRUCTIONS = `StarkFi is a Starknet DeFi toolkit. You can:
8
+ - Check auth status and configure settings (network, RPC, gas payment mode)
9
+ - Query balances, deploy accounts, send tokens, and view full portfolio
10
+ - Get swap quotes and execute token swaps via Fibrous aggregation
11
+ - Execute multi-swaps (2-3 pairs) and batch multiple DeFi operations in a single transaction
12
+ - Stake/unstake tokens across validators, claim and compound rewards
13
+ - Supply, borrow, repay, withdraw, and close positions on Vesu V2 lending pools
14
+
15
+ Always call get_swap_quote before swap_tokens. Always call list_validators before staking. Always call list_lending_pools before lending operations. Use simulate=true on transactional tools to preview fees before execution.`;
16
+ function printBanner(summary) {
17
+ const version = pkg.version;
18
+ const line = "═".repeat(49);
19
+ const maxNameLen = Math.max(...summary.categories.map((c) => c.name.length));
20
+ const lines = [
21
+ "",
22
+ ` ${line}`,
23
+ ` StarkFi MCP Server v${version}`,
24
+ ` Transport: stdio`,
25
+ ` ${line}`,
26
+ "",
27
+ ` Tools (${summary.total}):`,
28
+ ...summary.categories.map((c) => {
29
+ const dots = "·".repeat(maxNameLen - c.name.length + 4);
30
+ return ` ${c.name} ${dots} ${c.count} tools`;
31
+ }),
32
+ "",
33
+ ` ✓ Server ready — awaiting client connection`,
34
+ ` ${line}`,
35
+ "",
36
+ ];
37
+ // MCP stdio transport reserves stdout for JSON-RPC.
38
+ // All human-readable output MUST go to stderr.
39
+ process.stderr.write(lines.join("\n") + "\n");
40
+ }
4
41
  export async function startMcpServer() {
5
42
  const server = new McpServer({
6
- name: "starkfi",
7
- version: "0.1.0",
43
+ name: pkg.name,
44
+ version: pkg.version,
45
+ }, {
46
+ instructions: MCP_INSTRUCTIONS,
47
+ capabilities: { logging: {} },
8
48
  });
9
- registerTools(server);
49
+ const summary = registerTools(server);
10
50
  const transport = new StdioServerTransport();
11
51
  await server.connect(transport);
52
+ printBanner(summary);
12
53
  }
13
54
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,cAAc;IACnC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC5B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,OAAO;KAChB,CAAC,CAAC;IAEH,aAAa,CAAC,MAAM,CAAC,CAAC;IAEtB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AAEnE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAsC,CAAC;AAE/E,MAAM,gBAAgB,GAAG;;;;;;;;gOAQuM,CAAC;AAEjO,SAAS,WAAW,CAAC,OAAoB;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7E,MAAM,KAAK,GAAG;QACb,EAAE;QACF,KAAK,IAAI,EAAE;QACX,0BAA0B,OAAO,EAAE;QACnC,qBAAqB;QACrB,KAAK,IAAI,EAAE;QACX,EAAE;QACF,aAAa,OAAO,CAAC,KAAK,IAAI;QAC9B,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,OAAO,QAAQ,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,QAAQ,CAAC;QAClD,CAAC,CAAC;QACF,EAAE;QACF,gDAAgD;QAChD,KAAK,IAAI,EAAE;QACX,EAAE;KACF,CAAC;IAEF,oDAAoD;IACpD,+CAA+C;IAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IACnC,MAAM,MAAM,GAAG,IAAI,SAAS,CAC3B;QACC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;KACpB,EACD;QACC,YAAY,EAAE,gBAAgB;QAC9B,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;KAC7B,CACD,CAAC;IAEF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,WAAW,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerAuthAndConfigTools(server: McpServer): number;
3
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA8BpE"}
@@ -0,0 +1,17 @@
1
+ import { z } from "zod";
2
+ import { handleGetAuthStatus, handleConfigAction } from "../handlers/index.js";
3
+ import { withErrorHandling } from "./error-handling.js";
4
+ export function registerAuthAndConfigTools(server) {
5
+ server.tool("get_auth_status", "Check authentication status and Fibrous API health on Starknet. Use this to verify the user's active wallet.", {}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetAuthStatus));
6
+ server.tool("config_action", "View and modify starkfi global configuration such as active network, RPC URL, and Gas Payment mechanisms.", {
7
+ action: z
8
+ .enum(["list", "set-rpc", "get-rpc", "set-network", "set-gasfree", "set-gas-token"])
9
+ .describe("list: view all. set-gasfree: dev pays gas using paymaster credits. set-gas-token: user pays gas in ERC20 token instead of STRK."),
10
+ value: z
11
+ .string()
12
+ .optional()
13
+ .describe("set-gasfree: 'on'/'off'. set-gas-token: symbol 'USDC'/'ETH' or 'off'. set-rpc: URL string. set-network: 'mainnet'/'sepolia'."),
14
+ }, { readOnlyHint: false, destructiveHint: false }, withErrorHandling(handleConfigAction));
15
+ return 2;
16
+ }
17
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/mcp/tools/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC3D,MAAM,CAAC,IAAI,CACV,iBAAiB,EACjB,8GAA8G,EAC9G,EAAE,EACF,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAC9C,iBAAiB,CAAC,mBAAmB,CAAC,CACtC,CAAC;IAEF,MAAM,CAAC,IAAI,CACV,eAAe,EACf,2GAA2G,EAC3G;QACC,MAAM,EAAE,CAAC;aACP,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;aACnF,QAAQ,CACR,iIAAiI,CACjI;QACF,KAAK,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACR,8HAA8H,CAC9H;KACF,EACD,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,EAC/C,iBAAiB,CAAC,kBAAkB,CAAC,CACrC,CAAC;IAEF,OAAO,CAAC,CAAC;AACV,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare function withErrorHandling<T extends (...args: never[]) => Promise<{
2
+ content: {
3
+ type: "text";
4
+ text: string;
5
+ }[];
6
+ }>>(fn: T): (...args: Parameters<T>) => Promise<{
7
+ content: {
8
+ type: "text";
9
+ text: string;
10
+ }[];
11
+ }>;
12
+ //# sourceMappingURL=error-handling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handling.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/error-handling.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAChC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAAC,EACrF,EAAE,EAAE,CAAC,IAEL,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,KACpB,OAAO,CAAC;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAAC,CA4BzD"}
@@ -0,0 +1,28 @@
1
+ import { StarkfiError } from "../../lib/errors.js";
2
+ export function withErrorHandling(fn) {
3
+ return async (...args) => {
4
+ try {
5
+ return await fn(...args);
6
+ }
7
+ catch (error) {
8
+ const isStarkfiError = error instanceof StarkfiError;
9
+ const message = error instanceof Error ? error.message : String(error);
10
+ return {
11
+ content: [
12
+ {
13
+ type: "text",
14
+ text: JSON.stringify({
15
+ success: false,
16
+ error: message,
17
+ code: isStarkfiError ? error.code : "UNKNOWN_ERROR",
18
+ ...(isStarkfiError && error.details
19
+ ? { details: error.details }
20
+ : {}),
21
+ }, null, 2),
22
+ },
23
+ ],
24
+ };
25
+ }
26
+ };
27
+ }
28
+ //# sourceMappingURL=error-handling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handling.js","sourceRoot":"","sources":["../../../src/mcp/tools/error-handling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,UAAU,iBAAiB,CAE/B,EAAK;IACN,OAAO,KAAK,EACX,GAAG,IAAmB,EACmC,EAAE;QAC3D,IAAI,CAAC;YACJ,OAAO,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,cAAc,GAAG,KAAK,YAAY,YAAY,CAAC;YACrD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEvE,OAAO;gBACN,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CACnB;4BACC,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,OAAO;4BACd,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;4BACnD,GAAG,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO;gCAClC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;gCAC5B,CAAC,CAAC,EAAE,CAAC;yBACN,EACD,IAAI,EACJ,CAAC,CACD;qBACD;iBACD;aACD,CAAC;QACH,CAAC;IACF,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export interface ToolCategory {
3
+ name: string;
4
+ count: number;
5
+ }
6
+ export interface ToolSummary {
7
+ total: number;
8
+ categories: ToolCategory[];
9
+ }
10
+ export declare function registerTools(server: McpServer): ToolSummary;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAa5D"}
@@ -0,0 +1,19 @@
1
+ import { registerAuthAndConfigTools } from "./auth.js";
2
+ import { registerWalletTools } from "./wallet.js";
3
+ import { registerTradeTools } from "./trade.js";
4
+ import { registerStakingTools } from "./staking.js";
5
+ import { registerLendingTools } from "./lending.js";
6
+ export function registerTools(server) {
7
+ const categories = [
8
+ { name: "Auth & Config", count: registerAuthAndConfigTools(server) },
9
+ { name: "Wallet", count: registerWalletTools(server) },
10
+ { name: "Trade", count: registerTradeTools(server) },
11
+ { name: "Staking", count: registerStakingTools(server) },
12
+ { name: "Lending", count: registerLendingTools(server) },
13
+ ];
14
+ return {
15
+ total: categories.reduce((sum, c) => sum + c.count, 0),
16
+ categories,
17
+ };
18
+ }
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAYpD,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC9C,MAAM,UAAU,GAAmB;QAClC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,0BAA0B,CAAC,MAAM,CAAC,EAAE;QACpE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE;QACtD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE;QACpD,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE;QACxD,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE;KACxD,CAAC;IAEF,OAAO;QACN,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACtD,UAAU;KACV,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerLendingTools(server: McpServer): number;
3
+ //# sourceMappingURL=lending.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lending.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/lending.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAuH9D"}
@@ -0,0 +1,71 @@
1
+ import { z } from "zod";
2
+ import { handleListLendingPools, handleGetLendingPosition, handleSupplyAssets, handleWithdrawAssets, handleBorrowAssets, handleRepayDebt, handleClosePosition, } from "../handlers/index.js";
3
+ import { withErrorHandling } from "./error-handling.js";
4
+ export function registerLendingTools(server) {
5
+ server.tool("list_lending_pools", "List available Vesu V2 lending pools on Starknet with their supported collateral/debt pairs. Use this FIRST to discover available pools before supplying, borrowing, or checking positions.", {
6
+ name: z
7
+ .string()
8
+ .optional()
9
+ .describe("Filter pools by name (partial match). Omit to list all."),
10
+ }, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleListLendingPools));
11
+ server.tool("get_lending_position", "Get the user's lending position (supplied collateral and outstanding debt) in a specific Vesu pool.", {
12
+ pool: z
13
+ .string()
14
+ .describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
15
+ collateral_token: z.string().describe("Collateral token symbol (e.g. 'ETH', 'STRK')"),
16
+ borrow_token: z
17
+ .string()
18
+ .optional()
19
+ .describe("Borrow token symbol (e.g. 'USDC', 'USDT')"),
20
+ }, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetLendingPosition));
21
+ server.tool("supply_assets", "Supply (lend) tokens into a Vesu V2 pool to earn interest. The tokens are deposited into the pool's ERC-4626 vToken vault.", {
22
+ pool: z
23
+ .string()
24
+ .describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
25
+ amount: z.string().describe("Amount to supply (e.g. '100', '0.5')"),
26
+ token: z.string().describe("Token symbol to supply (e.g. 'STRK', 'ETH', 'USDC')"),
27
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleSupplyAssets));
28
+ server.tool("withdraw_assets", "Withdraw previously supplied tokens from a Vesu V2 lending pool.", {
29
+ pool: z
30
+ .string()
31
+ .describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
32
+ amount: z.string().describe("Amount to withdraw (e.g. '100', '0.5')"),
33
+ token: z.string().describe("Token symbol to withdraw (e.g. 'STRK', 'ETH', 'USDC')"),
34
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleWithdrawAssets));
35
+ server.tool("borrow_assets", "Borrow tokens from a Vesu V2 pool by supplying collateral. Atomically deposits collateral and borrows the debt asset in a single transaction.", {
36
+ pool: z
37
+ .string()
38
+ .describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
39
+ collateral_amount: z.string().describe("Collateral amount to deposit (e.g. '1000')"),
40
+ collateral_token: z.string().describe("Collateral token symbol (e.g. 'STRK', 'ETH')"),
41
+ borrow_amount: z.string().describe("Amount to borrow (e.g. '100')"),
42
+ borrow_token: z.string().describe("Token to borrow (e.g. 'USDC', 'USDT')"),
43
+ use_supplied: z
44
+ .boolean()
45
+ .optional()
46
+ .describe("Set to true to use previously supplied yield tokens as collateral via Multicall instead of transferring fresh tokens from wallet."),
47
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleBorrowAssets));
48
+ server.tool("repay_debt", "Repay borrowed tokens on an existing Vesu V2 lending position. Approves and repays the specified amount of debt.", {
49
+ pool: z
50
+ .string()
51
+ .describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
52
+ amount: z.string().describe("Amount to repay (e.g. '50', '100')"),
53
+ token: z.string().describe("Token to repay (e.g. 'USDC', 'USDT')"),
54
+ collateral_token: z
55
+ .string()
56
+ .describe("Collateral token of the position (e.g. 'ETH', 'STRK'). Needed to identify the position."),
57
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleRepayDebt));
58
+ server.tool("close_position", "Atomically close an active Vesu V2 lending position. Repays all outstanding debt and withdraws all collateral in a single transaction.", {
59
+ pool: z
60
+ .string()
61
+ .describe("Pool name (e.g. 'Prime', 'Re7') or contract address (0x...)"),
62
+ collateral_token: z
63
+ .string()
64
+ .describe("Collateral token symbol of the position (e.g. 'STRK', 'ETH')"),
65
+ debt_token: z
66
+ .string()
67
+ .describe("Borrowed token symbol of the position (e.g. 'USDC', 'USDT')"),
68
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleClosePosition));
69
+ return 7;
70
+ }
71
+ //# sourceMappingURL=lending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lending.js","sourceRoot":"","sources":["../../../src/mcp/tools/lending.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerStakingTools(server: McpServer): number;
3
+ //# sourceMappingURL=staking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staking.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/staking.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA2G9D"}
@@ -0,0 +1,50 @@
1
+ import { z } from "zod";
2
+ import { handleListValidators, handleListPools, handleGetStakingInfo, handleGetStakeStatus, handleStakeTokens, handleUnstakeTokens, handleClaimRewards, handleCompoundRewards, } from "../handlers/index.js";
3
+ import { withErrorHandling } from "./error-handling.js";
4
+ export function registerStakingTools(server) {
5
+ server.tool("list_validators", "List all known Starknet staking validators. Use this FIRST to see available validators and their names before trying to find pools.", {}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleListValidators));
6
+ server.tool("list_pools", "List delegation pools for a specific validator. Look up a validator name via list_validators first.", {
7
+ validator: z
8
+ .string()
9
+ .describe("Validator name (e.g. 'Karnot', 'Kakarot') or staker address. Supports partial matches."),
10
+ }, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleListPools));
11
+ server.tool("get_staking_info", "Get staking position info (staked balance, unclaimed rewards, total balance, commission, unpooling cooldown) for a specific pool contract.", {
12
+ pool: z.string().describe("Staking pool contract address (0x...)"),
13
+ }, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetStakingInfo));
14
+ server.tool("get_stake_status", "Scan ALL known validators and pools to return a consolidated staking dashboard with total staked, total rewards, total value, and per-pool breakdown. Use this to give the user a full picture of their staking portfolio.", {
15
+ validator: z
16
+ .string()
17
+ .optional()
18
+ .describe("Optional validator name or staker address to strictly filter results."),
19
+ }, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetStakeStatus));
20
+ server.tool("stake_tokens", "Stake tokens in a delegation pool on Starknet. Smart stake: auto-detects whether the user needs to enter the pool or just add to an existing delegation. Supports STRK, WBTC, tBTC, SolvBTC, LBTC.", {
21
+ amount: z.string().describe("Amount to stake (e.g. '100', '0.01')"),
22
+ pool: z.string().describe("Staking pool contract address (0x...)"),
23
+ token: z
24
+ .string()
25
+ .optional()
26
+ .describe("Token symbol to stake (default: STRK). Supported: STRK, WBTC, tBTC, SolvBTC, LBTC"),
27
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleStakeTokens));
28
+ server.tool("unstake_tokens", "Unstake tokens from a pool. Unstaking is a TWO-STEP process: 1. call with action='intent', 2. wait for cooldown, 3. call with action='exit' to complete withdrawal.", {
29
+ action: z
30
+ .enum(["intent", "exit"])
31
+ .describe("'intent' strictly starts the unstaking process, 'exit' completes withdrawal after cooldown."),
32
+ pool: z.string().describe("Staking pool contract address (0x...)"),
33
+ amount: z
34
+ .string()
35
+ .optional()
36
+ .describe("Amount to unstake (ONLY required when action='intent')"),
37
+ token: z
38
+ .string()
39
+ .optional()
40
+ .describe("Token symbol (default: STRK). Must match the pool's token."),
41
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleUnstakeTokens));
42
+ server.tool("claim_rewards", "Extract earned rewards from a staking pool to the user's wallet.", {
43
+ pool: z.string().describe("Staking pool contract address (0x...)"),
44
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleClaimRewards));
45
+ server.tool("compound_rewards", "Atomically claim staking rewards and re-stake them recursively into the same pool in a single transaction (compound interest).", {
46
+ pool: z.string().describe("Staking pool contract address (0x...)"),
47
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleCompoundRewards));
48
+ return 8;
49
+ }
50
+ //# sourceMappingURL=staking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staking.js","sourceRoot":"","sources":["../../../src/mcp/tools/staking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerTradeTools(server: McpServer): number;
3
+ //# sourceMappingURL=trade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/trade.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAoG5D"}
@@ -0,0 +1,63 @@
1
+ import { z } from "zod";
2
+ import { handleGetSwapQuote, handleSwapTokens, handleGetMultiSwapQuote, handleMultiSwap, handleBatchExecute, } from "../handlers/index.js";
3
+ import { withErrorHandling } from "./error-handling.js";
4
+ export function registerTradeTools(server) {
5
+ server.tool("get_swap_quote", "Get an expected output and route from Fibrous *without* executing the swap. ALWAYS use this BEFORE calling swap_tokens so the user can review the expected output amount and slippage.", {
6
+ amount: z.string().describe("Amount to swap in (e.g. '0.1', '100')"),
7
+ from_token: z.string().describe("Source token symbol to sell (e.g. 'ETH', 'USDC')"),
8
+ to_token: z.string().describe("Destination token symbol to buy (e.g. 'STRK', 'DAI')"),
9
+ }, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetSwapQuote));
10
+ server.tool("swap_tokens", "Execute a token swap on Starknet using Fibrous aggregation. Finds optimal route and executes. Set simulate=true to estimate fees without executing. ONLY call this after showing the user a quote via get_swap_quote.", {
11
+ amount: z.string().describe("Amount to swap in (e.g. '0.1', '100')"),
12
+ from_token: z.string().describe("Source token symbol to sell (e.g. 'ETH', 'STRK')"),
13
+ to_token: z.string().describe("Destination token symbol to buy (e.g. 'USDC', 'DAI')"),
14
+ slippage: z.number().optional().describe("Slippage tolerance % (default: 1)"),
15
+ simulate: z
16
+ .boolean()
17
+ .optional()
18
+ .describe("Set true to simulate only — estimates fees without sending a transaction"),
19
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleSwapTokens));
20
+ const swapItemSchema = z.object({
21
+ amount: z.string().describe("Amount to swap in (e.g. '100', '0.5')"),
22
+ from_token: z.string().describe("Source token symbol (e.g. 'USDC', 'ETH')"),
23
+ to_token: z.string().describe("Destination token symbol (e.g. 'ETH', 'STRK')"),
24
+ });
25
+ server.tool("get_multi_swap_quote", "Get quotes for multiple token swaps at once (2-3 pairs). Uses Fibrous batch routing for optimal rates.", {
26
+ swaps: z
27
+ .array(swapItemSchema)
28
+ .min(2)
29
+ .max(3)
30
+ .describe("Array of swap pairs (2-3 items)"),
31
+ }, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetMultiSwapQuote));
32
+ server.tool("multi_swap", "Execute multiple token swaps in a single transaction (2-3 pairs). Uses Fibrous batch routing. Call get_multi_swap_quote first to preview.", {
33
+ swaps: z
34
+ .array(swapItemSchema)
35
+ .min(2)
36
+ .max(3)
37
+ .describe("Array of swap pairs (2-3 items)"),
38
+ slippage: z.number().optional().describe("Slippage tolerance % (default: 1)"),
39
+ simulate: z
40
+ .boolean()
41
+ .optional()
42
+ .describe("Set true to simulate only — estimates fees without executing"),
43
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleMultiSwap));
44
+ server.tool("batch_execute", "Execute multiple DeFi operations in a single Starknet transaction (multicall). Supports: swap, stake, supply, send. Requires at least 2 operations.", {
45
+ operations: z
46
+ .array(z.object({
47
+ type: z
48
+ .enum(["swap", "stake", "supply", "send"])
49
+ .describe("Operation type"),
50
+ params: z
51
+ .record(z.string(), z.string())
52
+ .describe("Operation params. swap: {amount, from_token, to_token}. stake: {amount, token?, pool? or validator?}. supply: {amount, token, pool}. send: {amount, token, to}."),
53
+ }))
54
+ .min(2)
55
+ .describe("Array of operations to batch (min 2)"),
56
+ simulate: z
57
+ .boolean()
58
+ .optional()
59
+ .describe("Set true to simulate only — estimates fees without executing"),
60
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleBatchExecute));
61
+ return 5;
62
+ }
63
+ //# sourceMappingURL=trade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade.js","sourceRoot":"","sources":["../../../src/mcp/tools/trade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerWalletTools(server: McpServer): number;
3
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA6D7D"}
@@ -0,0 +1,27 @@
1
+ import { z } from "zod";
2
+ import { handleGetTxStatus, handleGetBalance, handleDeployAccount, handleSendTokens, handleGetPortfolio, } from "../handlers/index.js";
3
+ import { withErrorHandling } from "./error-handling.js";
4
+ export function registerWalletTools(server) {
5
+ server.tool("get_tx_status", "Check Starknet transaction status by hash. Use this to verify if a recently submitted transaction has been accepted on L2 or L1.", {
6
+ hash: z.string().describe("Transaction hash (0x...)"),
7
+ }, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetTxStatus));
8
+ server.tool("get_balance", "Get native token and ERC-20 token balances on Starknet for the authorized user.", {
9
+ token: z
10
+ .string()
11
+ .optional()
12
+ .describe("Specific token symbol (e.g. 'STRK', 'ETH', 'USDC'). Omit to fetch all balances."),
13
+ }, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetBalance));
14
+ server.tool("deploy_account", "Deploy the Starknet smart contract account on-chain. Required once before sending transactions. Safe to call multiple times (idempotent) — returns status if already deployed.", {}, { readOnlyHint: false, destructiveHint: true, idempotentHint: true }, withErrorHandling(handleDeployAccount));
15
+ server.tool("send_tokens", "Transfer tokens to a recipient on Starknet. Set simulate=true to estimate fees without executing.", {
16
+ amount: z.string().describe("Amount to send (e.g. '0.1', '100')"),
17
+ token: z.string().describe("Token symbol (e.g. 'STRK', 'ETH', 'USDC')"),
18
+ recipient: z.string().describe("Recipient Starknet address (0x...)"),
19
+ simulate: z
20
+ .boolean()
21
+ .optional()
22
+ .describe("Set true to simulate only — estimates fees without sending a transaction"),
23
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: false }, withErrorHandling(handleSendTokens));
24
+ server.tool("get_portfolio", "Get complete DeFi portfolio overview: all token balances (with USD values), staking positions, and lending positions in one call.", {}, { readOnlyHint: true, destructiveHint: false }, withErrorHandling(handleGetPortfolio));
25
+ return 5;
26
+ }
27
+ //# sourceMappingURL=wallet.js.map