mcp-server-tld 1.0.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 (100) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +285 -0
  3. package/bin/cli.js +25 -0
  4. package/build/core/abis.d.ts +101 -0
  5. package/build/core/abis.d.ts.map +1 -0
  6. package/build/core/abis.js +152 -0
  7. package/build/core/abis.js.map +1 -0
  8. package/build/core/chains.d.ts +54 -0
  9. package/build/core/chains.d.ts.map +1 -0
  10. package/build/core/chains.js +149 -0
  11. package/build/core/chains.js.map +1 -0
  12. package/build/core/prompts.d.ts +8 -0
  13. package/build/core/prompts.d.ts.map +1 -0
  14. package/build/core/prompts.js +271 -0
  15. package/build/core/prompts.js.map +1 -0
  16. package/build/core/resources.d.ts +6 -0
  17. package/build/core/resources.d.ts.map +1 -0
  18. package/build/core/resources.js +47 -0
  19. package/build/core/resources.js.map +1 -0
  20. package/build/core/services/account.d.ts +65 -0
  21. package/build/core/services/account.d.ts.map +1 -0
  22. package/build/core/services/account.js +157 -0
  23. package/build/core/services/account.js.map +1 -0
  24. package/build/core/services/address.d.ts +24 -0
  25. package/build/core/services/address.d.ts.map +1 -0
  26. package/build/core/services/address.js +56 -0
  27. package/build/core/services/address.js.map +1 -0
  28. package/build/core/services/balance.d.ts +28 -0
  29. package/build/core/services/balance.d.ts.map +1 -0
  30. package/build/core/services/balance.js +59 -0
  31. package/build/core/services/balance.js.map +1 -0
  32. package/build/core/services/blocks.d.ts +24 -0
  33. package/build/core/services/blocks.d.ts.map +1 -0
  34. package/build/core/services/blocks.js +43 -0
  35. package/build/core/services/blocks.js.map +1 -0
  36. package/build/core/services/clients.d.ts +11 -0
  37. package/build/core/services/clients.d.ts.map +1 -0
  38. package/build/core/services/clients.js +40 -0
  39. package/build/core/services/clients.js.map +1 -0
  40. package/build/core/services/contracts.d.ts +82 -0
  41. package/build/core/services/contracts.d.ts.map +1 -0
  42. package/build/core/services/contracts.js +300 -0
  43. package/build/core/services/contracts.js.map +1 -0
  44. package/build/core/services/index.d.ts +16 -0
  45. package/build/core/services/index.d.ts.map +1 -0
  46. package/build/core/services/index.js +18 -0
  47. package/build/core/services/index.js.map +1 -0
  48. package/build/core/services/lending.d.ts +96 -0
  49. package/build/core/services/lending.d.ts.map +1 -0
  50. package/build/core/services/lending.js +203 -0
  51. package/build/core/services/lending.js.map +1 -0
  52. package/build/core/services/markets.d.ts +42 -0
  53. package/build/core/services/markets.d.ts.map +1 -0
  54. package/build/core/services/markets.js +134 -0
  55. package/build/core/services/markets.js.map +1 -0
  56. package/build/core/services/multicall-abi.d.ts +56 -0
  57. package/build/core/services/multicall-abi.d.ts.map +1 -0
  58. package/build/core/services/multicall-abi.js +61 -0
  59. package/build/core/services/multicall-abi.js.map +1 -0
  60. package/build/core/services/staking.d.ts +20 -0
  61. package/build/core/services/staking.d.ts.map +1 -0
  62. package/build/core/services/staking.js +60 -0
  63. package/build/core/services/staking.js.map +1 -0
  64. package/build/core/services/tokens.d.ts +23 -0
  65. package/build/core/services/tokens.d.ts.map +1 -0
  66. package/build/core/services/tokens.js +63 -0
  67. package/build/core/services/tokens.js.map +1 -0
  68. package/build/core/services/transactions.d.ts +19 -0
  69. package/build/core/services/transactions.d.ts.map +1 -0
  70. package/build/core/services/transactions.js +39 -0
  71. package/build/core/services/transactions.js.map +1 -0
  72. package/build/core/services/transfer.d.ts +26 -0
  73. package/build/core/services/transfer.d.ts.map +1 -0
  74. package/build/core/services/transfer.js +58 -0
  75. package/build/core/services/transfer.js.map +1 -0
  76. package/build/core/services/utils.d.ts +23 -0
  77. package/build/core/services/utils.d.ts.map +1 -0
  78. package/build/core/services/utils.js +28 -0
  79. package/build/core/services/utils.js.map +1 -0
  80. package/build/core/services/wallet.d.ts +25 -0
  81. package/build/core/services/wallet.d.ts.map +1 -0
  82. package/build/core/services/wallet.js +82 -0
  83. package/build/core/services/wallet.js.map +1 -0
  84. package/build/core/tools.d.ts +9 -0
  85. package/build/core/tools.d.ts.map +1 -0
  86. package/build/core/tools.js +388 -0
  87. package/build/core/tools.js.map +1 -0
  88. package/build/index.d.ts +2 -0
  89. package/build/index.d.ts.map +1 -0
  90. package/build/index.js +19 -0
  91. package/build/index.js.map +1 -0
  92. package/build/server/http-server.d.ts +2 -0
  93. package/build/server/http-server.d.ts.map +1 -0
  94. package/build/server/http-server.js +41 -0
  95. package/build/server/http-server.js.map +1 -0
  96. package/build/server/server.d.ts +4 -0
  97. package/build/server/server.d.ts.map +1 -0
  98. package/build/server/server.js +33 -0
  99. package/build/server/server.js.map +1 -0
  100. package/package.json +59 -0
@@ -0,0 +1,388 @@
1
+ import { z } from "zod";
2
+ import { getJustLendAddresses, getAllJTokens, getJTokenInfo, getSupportedNetworks, } from "./chains.js";
3
+ import * as services from "./services/index.js";
4
+ /**
5
+ * Register all JustLend MCP tools.
6
+ *
7
+ * SECURITY: Private keys are read from environment variables, never passed as tool arguments.
8
+ * Write operations require TRON_PRIVATE_KEY or TRON_MNEMONIC to be set.
9
+ */
10
+ export function registerJustLendTools(server) {
11
+ // ============================================================================
12
+ // WALLET & NETWORK (Read-only)
13
+ // ============================================================================
14
+ server.registerTool("get_wallet_address", {
15
+ description: "Get the configured wallet address. This wallet is used for all lending operations.",
16
+ inputSchema: {},
17
+ annotations: { title: "Get Wallet Address", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
18
+ }, async () => {
19
+ try {
20
+ const address = services.getWalletAddress();
21
+ return { content: [{ type: "text", text: JSON.stringify({ address, message: "This wallet will be used for all JustLend operations" }, null, 2) }] };
22
+ }
23
+ catch (error) {
24
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
25
+ }
26
+ });
27
+ server.registerTool("get_supported_networks", {
28
+ description: "List all supported TRON networks for JustLend.",
29
+ inputSchema: {},
30
+ annotations: { title: "Get Supported Networks", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
31
+ }, async () => ({
32
+ content: [{ type: "text", text: JSON.stringify({ networks: getSupportedNetworks(), default: "mainnet" }, null, 2) }],
33
+ }));
34
+ server.registerTool("get_supported_markets", {
35
+ description: "List all available JustLend lending markets (jTokens) with their addresses and underlying assets.",
36
+ inputSchema: {
37
+ network: z.string().optional().describe("Network (mainnet, nile). Default: mainnet"),
38
+ },
39
+ annotations: { title: "Get Supported Markets", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
40
+ }, async ({ network = "mainnet" }) => {
41
+ try {
42
+ const tokens = getAllJTokens(network);
43
+ const addresses = getJustLendAddresses(network);
44
+ return {
45
+ content: [{
46
+ type: "text",
47
+ text: JSON.stringify({
48
+ comptroller: addresses.comptroller,
49
+ oracle: addresses.priceOracle,
50
+ markets: tokens.map((t) => ({
51
+ symbol: t.symbol,
52
+ underlyingSymbol: t.underlyingSymbol,
53
+ jTokenAddress: t.address,
54
+ underlyingAddress: t.underlying || "native TRX",
55
+ decimals: t.decimals,
56
+ underlyingDecimals: t.underlyingDecimals,
57
+ })),
58
+ totalMarkets: tokens.length,
59
+ }, null, 2),
60
+ }],
61
+ };
62
+ }
63
+ catch (error) {
64
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
65
+ }
66
+ });
67
+ // ============================================================================
68
+ // MARKET DATA (Read-only)
69
+ // ============================================================================
70
+ server.registerTool("get_market_data", {
71
+ description: "Get detailed market data for a specific JustLend market: supply/borrow APY, TVL, utilization, " +
72
+ "collateral factor, price, and status. Use jToken symbol like 'jUSDT' or 'jTRX'.",
73
+ inputSchema: {
74
+ market: z.string().describe("jToken symbol (e.g. 'jUSDT', 'jTRX') or jToken address"),
75
+ network: z.string().optional().describe("Network. Default: mainnet"),
76
+ },
77
+ annotations: { title: "Get Market Data", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
78
+ }, async ({ market, network = "mainnet" }) => {
79
+ try {
80
+ const info = getJTokenInfo(market, network);
81
+ if (!info)
82
+ throw new Error(`Unknown market: ${market}. Use get_supported_markets to see available markets.`);
83
+ const data = await services.getMarketData(info, network);
84
+ return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
85
+ }
86
+ catch (error) {
87
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
88
+ }
89
+ });
90
+ server.registerTool("get_all_markets", {
91
+ description: "Get overview data for ALL JustLend markets at once: APYs, TVL, utilization rates, prices.",
92
+ inputSchema: {
93
+ network: z.string().optional().describe("Network. Default: mainnet"),
94
+ },
95
+ annotations: { title: "Get All Markets", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
96
+ }, async ({ network = "mainnet" }) => {
97
+ try {
98
+ const markets = await services.getAllMarketData(network);
99
+ return {
100
+ content: [{
101
+ type: "text",
102
+ text: JSON.stringify({
103
+ totalMarkets: markets.length,
104
+ markets: markets.map((m) => ({
105
+ symbol: m.symbol,
106
+ underlyingSymbol: m.underlyingSymbol,
107
+ supplyAPY: `${m.supplyAPY}%`,
108
+ borrowAPY: `${m.borrowAPY}%`,
109
+ totalSupply: m.totalSupply,
110
+ totalBorrows: m.totalBorrows,
111
+ availableLiquidity: m.availableLiquidity,
112
+ utilizationRate: `${m.utilizationRate}%`,
113
+ collateralFactor: `${m.collateralFactor}%`,
114
+ priceUSD: m.underlyingPriceUSD,
115
+ mintPaused: m.mintPaused,
116
+ borrowPaused: m.borrowPaused,
117
+ })),
118
+ }, null, 2),
119
+ }],
120
+ };
121
+ }
122
+ catch (error) {
123
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
124
+ }
125
+ });
126
+ server.registerTool("get_protocol_summary", {
127
+ description: "Get JustLend protocol-level info: Comptroller config, close factor, liquidation incentive, total markets.",
128
+ inputSchema: {
129
+ network: z.string().optional().describe("Network. Default: mainnet"),
130
+ },
131
+ annotations: { title: "Get Protocol Summary", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
132
+ }, async ({ network = "mainnet" }) => {
133
+ try {
134
+ const summary = await services.getProtocolSummary(network);
135
+ return { content: [{ type: "text", text: JSON.stringify(summary, null, 2) }] };
136
+ }
137
+ catch (error) {
138
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
139
+ }
140
+ });
141
+ // ============================================================================
142
+ // ACCOUNT / POSITION (Read-only)
143
+ // ============================================================================
144
+ server.registerTool("get_account_summary", {
145
+ description: "Get a comprehensive view of a user's JustLend positions: supply balances, borrow balances, " +
146
+ "collateral status, health factor, liquidation risk, and USD values for each market.",
147
+ inputSchema: {
148
+ address: z.string().describe("TRON address (Base58 T... format) to check. Leave empty to use configured wallet.").optional(),
149
+ network: z.string().optional().describe("Network. Default: mainnet"),
150
+ },
151
+ annotations: { title: "Get Account Summary", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
152
+ }, async ({ address, network = "mainnet" }) => {
153
+ try {
154
+ const userAddress = address || services.getWalletAddress();
155
+ const summary = await services.getAccountSummary(userAddress, network);
156
+ return { content: [{ type: "text", text: JSON.stringify(summary, null, 2) }] };
157
+ }
158
+ catch (error) {
159
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
160
+ }
161
+ });
162
+ server.registerTool("check_allowance", {
163
+ description: "Check if the underlying TRC20 token has been approved for a jToken market. " +
164
+ "Must be approved before supply() or repay() for TRC20 markets. Not needed for jTRX.",
165
+ inputSchema: {
166
+ market: z.string().describe("jToken symbol (e.g. 'jUSDT')"),
167
+ address: z.string().optional().describe("Address to check. Default: configured wallet"),
168
+ network: z.string().optional().describe("Network. Default: mainnet"),
169
+ },
170
+ annotations: { title: "Check Allowance", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
171
+ }, async ({ market, address, network = "mainnet" }) => {
172
+ try {
173
+ const userAddress = address || services.getWalletAddress();
174
+ const result = await services.checkAllowance(userAddress, market, network);
175
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
176
+ }
177
+ catch (error) {
178
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
179
+ }
180
+ });
181
+ server.registerTool("get_trx_balance", {
182
+ description: "Get TRX balance for an address.",
183
+ inputSchema: {
184
+ address: z.string().optional().describe("TRON address. Default: configured wallet"),
185
+ network: z.string().optional().describe("Network. Default: mainnet"),
186
+ },
187
+ annotations: { title: "Get TRX Balance", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
188
+ }, async ({ address, network = "mainnet" }) => {
189
+ try {
190
+ const userAddress = address || services.getWalletAddress();
191
+ const balance = await services.getTRXBalance(userAddress, network);
192
+ return { content: [{ type: "text", text: JSON.stringify({ address: userAddress, balance: `${balance} TRX` }, null, 2) }] };
193
+ }
194
+ catch (error) {
195
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
196
+ }
197
+ });
198
+ server.registerTool("get_token_balance", {
199
+ description: "Get TRC20 token balance for an address.",
200
+ inputSchema: {
201
+ tokenAddress: z.string().describe("TRC20 token contract address"),
202
+ address: z.string().optional().describe("TRON address. Default: configured wallet"),
203
+ network: z.string().optional().describe("Network. Default: mainnet"),
204
+ },
205
+ annotations: { title: "Get Token Balance", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
206
+ }, async ({ tokenAddress, address, network = "mainnet" }) => {
207
+ try {
208
+ const userAddress = address || services.getWalletAddress();
209
+ const result = await services.getTokenBalance(userAddress, tokenAddress, network);
210
+ return { content: [{ type: "text", text: JSON.stringify({ address: userAddress, ...result }, null, 2) }] };
211
+ }
212
+ catch (error) {
213
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
214
+ }
215
+ });
216
+ // ============================================================================
217
+ // LENDING OPERATIONS (Write — require private key)
218
+ // ============================================================================
219
+ server.registerTool("supply", {
220
+ description: "Supply (deposit) assets into a JustLend market to earn interest. " +
221
+ "For TRC20 markets, you must first call approve_underlying. For jTRX, TRX is sent directly. " +
222
+ "Returns a jToken balance representing your deposit.",
223
+ inputSchema: {
224
+ market: z.string().describe("jToken symbol (e.g. 'jUSDT', 'jTRX')"),
225
+ amount: z.string().describe("Amount of underlying to supply (e.g. '1000' for 1000 USDT)"),
226
+ network: z.string().optional().describe("Network. Default: mainnet"),
227
+ },
228
+ annotations: { title: "Supply Assets", readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
229
+ }, async ({ market, amount, network = "mainnet" }) => {
230
+ try {
231
+ const privateKey = services.getConfiguredPrivateKey();
232
+ const result = await services.supply(privateKey, market, amount, network);
233
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
234
+ }
235
+ catch (error) {
236
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
237
+ }
238
+ });
239
+ server.registerTool("withdraw", {
240
+ description: "Withdraw (redeem) supplied assets from a JustLend market. " +
241
+ "Specify the amount in underlying units. May fail if assets are used as collateral for active borrows.",
242
+ inputSchema: {
243
+ market: z.string().describe("jToken symbol (e.g. 'jUSDT', 'jTRX')"),
244
+ amount: z.string().describe("Amount of underlying to withdraw (e.g. '500')"),
245
+ network: z.string().optional().describe("Network. Default: mainnet"),
246
+ },
247
+ annotations: { title: "Withdraw Assets", readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
248
+ }, async ({ market, amount, network = "mainnet" }) => {
249
+ try {
250
+ const privateKey = services.getConfiguredPrivateKey();
251
+ const result = await services.withdraw(privateKey, market, amount, network);
252
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
253
+ }
254
+ catch (error) {
255
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
256
+ }
257
+ });
258
+ server.registerTool("withdraw_all", {
259
+ description: "Withdraw ALL supplied assets from a JustLend market by redeeming all jTokens.",
260
+ inputSchema: {
261
+ market: z.string().describe("jToken symbol (e.g. 'jUSDT')"),
262
+ network: z.string().optional().describe("Network. Default: mainnet"),
263
+ },
264
+ annotations: { title: "Withdraw All", readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
265
+ }, async ({ market, network = "mainnet" }) => {
266
+ try {
267
+ const privateKey = services.getConfiguredPrivateKey();
268
+ const result = await services.withdrawAll(privateKey, market, network);
269
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
270
+ }
271
+ catch (error) {
272
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
273
+ }
274
+ });
275
+ server.registerTool("borrow", {
276
+ description: "Borrow assets from a JustLend market against your collateral. " +
277
+ "You must have entered a market as collateral (enter_market) and have sufficient liquidity. " +
278
+ "Check your account_summary and health_factor before borrowing.",
279
+ inputSchema: {
280
+ market: z.string().describe("jToken symbol (e.g. 'jUSDT', 'jTRX')"),
281
+ amount: z.string().describe("Amount of underlying to borrow (e.g. '500')"),
282
+ network: z.string().optional().describe("Network. Default: mainnet"),
283
+ },
284
+ annotations: { title: "Borrow Assets", readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
285
+ }, async ({ market, amount, network = "mainnet" }) => {
286
+ try {
287
+ const privateKey = services.getConfiguredPrivateKey();
288
+ const result = await services.borrow(privateKey, market, amount, network);
289
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
290
+ }
291
+ catch (error) {
292
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
293
+ }
294
+ });
295
+ server.registerTool("repay", {
296
+ description: "Repay borrowed assets to a JustLend market. " +
297
+ "For TRC20 markets, must have approved underlying first. " +
298
+ "Use amount='max' to repay the full outstanding borrow.",
299
+ inputSchema: {
300
+ market: z.string().describe("jToken symbol (e.g. 'jUSDT', 'jTRX')"),
301
+ amount: z.string().describe("Amount to repay (e.g. '500'), or 'max' for full repayment"),
302
+ network: z.string().optional().describe("Network. Default: mainnet"),
303
+ },
304
+ annotations: { title: "Repay Borrow", readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
305
+ }, async ({ market, amount, network = "mainnet" }) => {
306
+ try {
307
+ const privateKey = services.getConfiguredPrivateKey();
308
+ const result = await services.repay(privateKey, market, amount, network);
309
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
310
+ }
311
+ catch (error) {
312
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
313
+ }
314
+ });
315
+ server.registerTool("enter_market", {
316
+ description: "Enable a jToken market as collateral. Required before borrowing against supplied assets. " +
317
+ "Once entered, your supply in this market counts towards your borrowing capacity.",
318
+ inputSchema: {
319
+ market: z.string().describe("jToken symbol (e.g. 'jUSDT', 'jTRX')"),
320
+ network: z.string().optional().describe("Network. Default: mainnet"),
321
+ },
322
+ annotations: { title: "Enter Market (Enable Collateral)", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
323
+ }, async ({ market, network = "mainnet" }) => {
324
+ try {
325
+ const privateKey = services.getConfiguredPrivateKey();
326
+ const result = await services.enterMarket(privateKey, market, network);
327
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
328
+ }
329
+ catch (error) {
330
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
331
+ }
332
+ });
333
+ server.registerTool("exit_market", {
334
+ description: "Disable a jToken market as collateral. Will fail if doing so would make your account undercollateralized. " +
335
+ "Check account_summary first to ensure safety.",
336
+ inputSchema: {
337
+ market: z.string().describe("jToken symbol (e.g. 'jUSDT')"),
338
+ network: z.string().optional().describe("Network. Default: mainnet"),
339
+ },
340
+ annotations: { title: "Exit Market (Disable Collateral)", readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
341
+ }, async ({ market, network = "mainnet" }) => {
342
+ try {
343
+ const privateKey = services.getConfiguredPrivateKey();
344
+ const result = await services.exitMarket(privateKey, market, network);
345
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
346
+ }
347
+ catch (error) {
348
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
349
+ }
350
+ });
351
+ server.registerTool("approve_underlying", {
352
+ description: "Approve the jToken contract to spend your underlying TRC20 tokens. " +
353
+ "Required before supply() or repay() for TRC20-backed markets (not needed for jTRX). " +
354
+ "Use amount='max' for unlimited approval.",
355
+ inputSchema: {
356
+ market: z.string().describe("jToken symbol (e.g. 'jUSDT')"),
357
+ amount: z.string().optional().describe("Amount to approve, or 'max' for unlimited. Default: max"),
358
+ network: z.string().optional().describe("Network. Default: mainnet"),
359
+ },
360
+ annotations: { title: "Approve Underlying Token", readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
361
+ }, async ({ market, amount = "max", network = "mainnet" }) => {
362
+ try {
363
+ const privateKey = services.getConfiguredPrivateKey();
364
+ const result = await services.approveUnderlying(privateKey, market, amount, network);
365
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
366
+ }
367
+ catch (error) {
368
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
369
+ }
370
+ });
371
+ server.registerTool("claim_rewards", {
372
+ description: "Claim accrued JustLend mining rewards for the configured wallet.",
373
+ inputSchema: {
374
+ network: z.string().optional().describe("Network. Default: mainnet"),
375
+ },
376
+ annotations: { title: "Claim Rewards", readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
377
+ }, async ({ network = "mainnet" }) => {
378
+ try {
379
+ const privateKey = services.getConfiguredPrivateKey();
380
+ const result = await services.claimRewards(privateKey, network);
381
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
382
+ }
383
+ catch (error) {
384
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
385
+ }
386
+ });
387
+ }
388
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/build/index.js ADDED
@@ -0,0 +1,19 @@
1
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
2
+ import startServer from "./server/server.js";
3
+ async function main() {
4
+ try {
5
+ const server = await startServer();
6
+ const transport = new StdioServerTransport();
7
+ await server.connect(transport);
8
+ console.error("mcp-server-TLD running on stdio");
9
+ }
10
+ catch (error) {
11
+ console.error("Error starting MCP server:", error);
12
+ process.exit(1);
13
+ }
14
+ }
15
+ main().catch((error) => {
16
+ console.error("Fatal error in main():", error);
17
+ process.exit(1);
18
+ });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=http-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../src/server/http-server.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import express from "express";
2
+ import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
3
+ import startServer from "./server.js";
4
+ const PORT = parseInt(process.env.PORT || "3001", 10);
5
+ async function main() {
6
+ const server = await startServer();
7
+ const app = express();
8
+ // Store active transports for cleanup
9
+ const transports = new Map();
10
+ app.get("/sse", async (_req, res) => {
11
+ const transport = new SSEServerTransport("/messages", res);
12
+ const sessionId = transport.sessionId;
13
+ transports.set(sessionId, transport);
14
+ res.on("close", () => {
15
+ transports.delete(sessionId);
16
+ });
17
+ await server.connect(transport);
18
+ });
19
+ app.post("/messages", async (req, res) => {
20
+ const sessionId = req.query.sessionId;
21
+ const transport = transports.get(sessionId);
22
+ if (!transport) {
23
+ res.status(404).json({ error: "Session not found" });
24
+ return;
25
+ }
26
+ await transport.handlePostMessage(req, res);
27
+ });
28
+ app.get("/health", (_req, res) => {
29
+ res.json({ status: "ok", server: "mcp-server-TLD", version: "1.0.0" });
30
+ });
31
+ app.listen(PORT, () => {
32
+ console.error(`mcp-server-TLD HTTP server listening on port ${PORT}`);
33
+ console.error(`SSE endpoint: http://localhost:${PORT}/sse`);
34
+ console.error(`Health check: http://localhost:${PORT}/health`);
35
+ });
36
+ }
37
+ main().catch((error) => {
38
+ console.error("Fatal error:", error);
39
+ process.exit(1);
40
+ });
41
+ //# sourceMappingURL=http-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../src/server/http-server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,WAAW,MAAM,aAAa,CAAC;AAEtC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAEtD,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IAEtB,sCAAsC;IACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEzD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QACtC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAErC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAAmB,CAAC;QAChD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QACD,MAAM,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,gDAAgD,IAAI,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,MAAM,CAAC,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,SAAS,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ declare function startServer(): Promise<McpServer>;
3
+ export default startServer;
4
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,iBAAe,WAAW,uBA8BzB;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { registerJustLendResources } from "../core/resources.js";
3
+ import { registerJustLendTools } from "../core/tools.js";
4
+ import { registerJustLendPrompts } from "../core/prompts.js";
5
+ import { getSupportedNetworks } from "../core/chains.js";
6
+ async function startServer() {
7
+ try {
8
+ const server = new McpServer({
9
+ name: "mcp-server-TLD",
10
+ version: "1.0.0",
11
+ }, {
12
+ capabilities: {
13
+ tools: { listChanged: true },
14
+ resources: { subscribe: false, listChanged: true },
15
+ prompts: { listChanged: true },
16
+ logging: {},
17
+ },
18
+ });
19
+ registerJustLendResources(server);
20
+ registerJustLendTools(server);
21
+ registerJustLendPrompts(server);
22
+ console.error("mcp-server-TLD v1.0.0 initialized");
23
+ console.error(`Supported networks: ${getSupportedNetworks().join(", ")}`);
24
+ console.error("Server is ready to handle requests");
25
+ return server;
26
+ }
27
+ catch (error) {
28
+ console.error("Failed to initialize server:", error);
29
+ process.exit(1);
30
+ }
31
+ }
32
+ export default startServer;
33
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,KAAK,UAAU,WAAW;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;YACE,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;gBAC5B,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;gBAClD,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;gBAC9B,OAAO,EAAE,EAAE;aACZ;SACF,CACF,CAAC;QAEF,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAClC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC9B,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEhC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,uBAAuB,oBAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,eAAe,WAAW,CAAC"}
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "mcp-server-tld",
3
+ "version": "1.0.0",
4
+ "description": "MCP server for JustLend DAO (TLD) on TRON blockchain. Supports supply, borrow, repay, withdraw, market data, general TRON chain utilities, and AI-guided DeFi prompts.",
5
+ "type": "module",
6
+ "module": "src/index.ts",
7
+ "main": "build/index.js",
8
+ "bin": {
9
+ "mcp-server-tld": "./bin/cli.js"
10
+ },
11
+ "files": [
12
+ "build/",
13
+ "bin/",
14
+ "README.md",
15
+ "LICENSE"
16
+ ],
17
+ "scripts": {
18
+ "start": "tsx src/index.ts",
19
+ "build": "tsc",
20
+ "dev": "tsx watch src/index.ts",
21
+ "start:http": "tsx src/server/http-server.ts",
22
+ "dev:http": "tsx watch src/server/http-server.ts",
23
+ "test": "vitest run",
24
+ "lint": "eslint .",
25
+ "lint:fix": "eslint . --fix",
26
+ "prepublishOnly": "npm run build"
27
+ },
28
+ "dependencies": {
29
+ "@modelcontextprotocol/sdk": "^1.22.0",
30
+ "@scure/bip32": "^2.0.1",
31
+ "@scure/bip39": "^2.0.1",
32
+ "express": "^4.21.2",
33
+ "tronweb": "^6.1.1",
34
+ "zod": "^3.24.3"
35
+ },
36
+ "devDependencies": {
37
+ "@types/express": "^5.0.0",
38
+ "@types/node": "^22.19.7",
39
+ "tsx": "^4.21.0",
40
+ "typescript": "^5.9.3",
41
+ "vitest": "^4.0.17"
42
+ },
43
+ "engines": {
44
+ "node": ">=20.0.0"
45
+ },
46
+ "keywords": [
47
+ "mcp",
48
+ "model-context-protocol",
49
+ "tron",
50
+ "justlend",
51
+ "defi",
52
+ "lending",
53
+ "borrowing",
54
+ "ai",
55
+ "agent",
56
+ "jtoken"
57
+ ],
58
+ "license": "MIT"
59
+ }