@gala-chain/launchpad-mcp-server 1.22.4 → 1.23.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 (120) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/README.md +83 -8
  3. package/dist/constants/mcpToolNames.d.ts +69 -11
  4. package/dist/constants/mcpToolNames.d.ts.map +1 -1
  5. package/dist/constants/mcpToolNames.js +47 -9
  6. package/dist/constants/mcpToolNames.js.map +1 -1
  7. package/dist/generated/version.d.ts +1 -1
  8. package/dist/generated/version.js +1 -1
  9. package/dist/prompts/balances.d.ts +24 -0
  10. package/dist/prompts/balances.d.ts.map +1 -0
  11. package/dist/prompts/balances.js +191 -0
  12. package/dist/prompts/balances.js.map +1 -0
  13. package/dist/prompts/creation-utils.d.ts +20 -0
  14. package/dist/prompts/creation-utils.d.ts.map +1 -0
  15. package/dist/prompts/creation-utils.js +115 -0
  16. package/dist/prompts/creation-utils.js.map +1 -0
  17. package/dist/prompts/index.d.ts +9 -2
  18. package/dist/prompts/index.d.ts.map +1 -1
  19. package/dist/prompts/index.js +23 -2
  20. package/dist/prompts/index.js.map +1 -1
  21. package/dist/prompts/pools.d.ts +64 -0
  22. package/dist/prompts/pools.d.ts.map +1 -0
  23. package/dist/prompts/pools.js +548 -0
  24. package/dist/prompts/pools.js.map +1 -0
  25. package/dist/prompts/social.d.ts +16 -0
  26. package/dist/prompts/social.d.ts.map +1 -0
  27. package/dist/prompts/social.js +97 -0
  28. package/dist/prompts/social.js.map +1 -0
  29. package/dist/prompts/trading-calculations.d.ts +52 -0
  30. package/dist/prompts/trading-calculations.d.ts.map +1 -0
  31. package/dist/prompts/trading-calculations.js +479 -0
  32. package/dist/prompts/trading-calculations.js.map +1 -0
  33. package/dist/prompts/transfers.d.ts +16 -0
  34. package/dist/prompts/transfers.d.ts.map +1 -0
  35. package/dist/prompts/transfers.js +100 -0
  36. package/dist/prompts/transfers.js.map +1 -0
  37. package/dist/prompts/utility-tools.d.ts +56 -0
  38. package/dist/prompts/utility-tools.d.ts.map +1 -0
  39. package/dist/prompts/utility-tools.js +338 -0
  40. package/dist/prompts/utility-tools.js.map +1 -0
  41. package/docs/AI-AGENT-PATTERNS.md +555 -0
  42. package/docs/CONSTRAINTS-REFERENCE.md +454 -0
  43. package/docs/PROMPT-TOOL-MAPPING.md +352 -0
  44. package/docs/examples/default-values-pattern.md +240 -0
  45. package/docs/examples/tool-factory-pattern.md +217 -0
  46. package/jest.config.js +94 -0
  47. package/package.json +1 -1
  48. package/src/__tests__/integration/fetchTokenDetails.integration.test.ts +258 -0
  49. package/src/__tests__/integration/poolTools.integration.test.ts +185 -0
  50. package/src/__tests__/server.test.ts +256 -0
  51. package/src/constants/mcpToolNames.ts +181 -0
  52. package/src/index.ts +19 -0
  53. package/src/prompts/__tests__/promptStructure.test.ts +137 -0
  54. package/src/prompts/__tests__/registry.test.ts +359 -0
  55. package/src/prompts/analysis.ts +429 -0
  56. package/src/prompts/balances.ts +198 -0
  57. package/src/prompts/create-token.ts +123 -0
  58. package/src/prompts/creation-utils.ts +118 -0
  59. package/src/prompts/dex-trading.ts +86 -0
  60. package/src/prompts/discover-tokens.ts +86 -0
  61. package/src/prompts/index.ts +175 -0
  62. package/src/prompts/liquidity-positions.ts +270 -0
  63. package/src/prompts/pools.ts +571 -0
  64. package/src/prompts/portfolio.ts +242 -0
  65. package/src/prompts/social.ts +100 -0
  66. package/src/prompts/trading-calculations.ts +499 -0
  67. package/src/prompts/trading.ts +191 -0
  68. package/src/prompts/transfers.ts +103 -0
  69. package/src/prompts/utility-tools.ts +349 -0
  70. package/src/prompts/utility.ts +92 -0
  71. package/src/prompts/utils/workflowTemplates.ts +511 -0
  72. package/src/schemas/common-schemas.ts +393 -0
  73. package/src/scripts/test-all-prompts.ts +184 -0
  74. package/src/server.ts +367 -0
  75. package/src/tools/__tests__/dex-tools.test.ts +562 -0
  76. package/src/tools/__tests__/liquidity-positions.test.ts +673 -0
  77. package/src/tools/balance/index.ts +174 -0
  78. package/src/tools/creation/index.ts +182 -0
  79. package/src/tools/dex/index.ts +226 -0
  80. package/src/tools/dex/liquidity-positions.ts +547 -0
  81. package/src/tools/index.ts +94 -0
  82. package/src/tools/pools/fetchAllPools.ts +47 -0
  83. package/src/tools/pools/fetchAllPriceHistory.ts +119 -0
  84. package/src/tools/pools/fetchPoolDetails.ts +27 -0
  85. package/src/tools/pools/fetchPoolDetailsForCalculation.ts +22 -0
  86. package/src/tools/pools/fetchPools.ts +47 -0
  87. package/src/tools/pools/fetchPriceHistory.ts +124 -0
  88. package/src/tools/pools/fetchTokenDetails.ts +77 -0
  89. package/src/tools/pools/index.ts +284 -0
  90. package/src/tools/social/index.ts +64 -0
  91. package/src/tools/trading/index.ts +605 -0
  92. package/src/tools/transfers/index.ts +75 -0
  93. package/src/tools/utils/clearCache.ts +36 -0
  94. package/src/tools/utils/createWallet.ts +19 -0
  95. package/src/tools/utils/explainSdkUsage.ts +1446 -0
  96. package/src/tools/utils/getAddress.ts +12 -0
  97. package/src/tools/utils/getCacheInfo.ts +14 -0
  98. package/src/tools/utils/getConfig.ts +21 -0
  99. package/src/tools/utils/getEnvironment.ts +17 -0
  100. package/src/tools/utils/getEthereumAddress.ts +12 -0
  101. package/src/tools/utils/getUrlByTokenName.ts +12 -0
  102. package/src/tools/utils/getVersion.ts +25 -0
  103. package/src/tools/utils/getWallet.ts +25 -0
  104. package/src/tools/utils/hasWallet.ts +15 -0
  105. package/src/tools/utils/index.ts +37 -0
  106. package/src/tools/utils/isTokenGraduated.ts +16 -0
  107. package/src/tools/utils/setWallet.ts +41 -0
  108. package/src/tools/utils/switchEnvironment.ts +28 -0
  109. package/src/types/mcp.ts +72 -0
  110. package/src/utils/__tests__/validation.test.ts +147 -0
  111. package/src/utils/constraints.ts +155 -0
  112. package/src/utils/default-values.ts +208 -0
  113. package/src/utils/error-handler.ts +69 -0
  114. package/src/utils/error-templates.ts +273 -0
  115. package/src/utils/response-formatter.ts +51 -0
  116. package/src/utils/tool-factory.ts +303 -0
  117. package/src/utils/tool-registry.ts +296 -0
  118. package/src/utils/validation.ts +371 -0
  119. package/tests/wallet-management-integration.test.ts +284 -0
  120. package/tsconfig.json +23 -0
@@ -0,0 +1,571 @@
1
+ /**
2
+ * Pool Management Prompts
3
+ *
4
+ * Slash commands for pool management, pricing, and token data operations
5
+ */
6
+
7
+ import type { MCPPrompt } from '../types/mcp.js';
8
+ import { MCP_TOOLS } from '../constants/mcpToolNames.js';
9
+ import { validateTokenName, validatePaginationLimit } from '../utils/validation.js';
10
+
11
+ /**
12
+ * Fetch Pools - Paginated pool fetching with filters
13
+ */
14
+ export const fetchPoolsPrompt: MCPPrompt = {
15
+ name: 'galachain-launchpad:fetch-pools',
16
+ description: 'Fetch token pools with pagination and optional filters',
17
+ arguments: [
18
+ {
19
+ name: 'type',
20
+ description: 'Pool type: recent, popular (default: recent)',
21
+ required: false,
22
+ },
23
+ {
24
+ name: 'page',
25
+ description: 'Page number (default: 1)',
26
+ required: false,
27
+ },
28
+ {
29
+ name: 'limit',
30
+ description: 'Results per page (default: 20, max: 100)',
31
+ required: false,
32
+ },
33
+ ],
34
+ handler: (args) => {
35
+ if (args.limit) {
36
+ validatePaginationLimit(args.limit, 100);
37
+ }
38
+
39
+ return [
40
+ {
41
+ role: 'user',
42
+ content: {
43
+ type: 'text',
44
+ text: `Fetch token pools from Gala Launchpad.
45
+
46
+ Use ${MCP_TOOLS.FETCH_POOLS} with parameters:
47
+ - type: ${args.type || 'recent'}
48
+ - page: ${args.page || 1}
49
+ - limit: ${args.limit || 20}
50
+
51
+ Display the results showing token names, symbols, and key metrics.`,
52
+ },
53
+ },
54
+ ];
55
+ },
56
+ };
57
+
58
+ /**
59
+ * Fetch Pool Details for Calculation - Optimized pool details
60
+ */
61
+ export const fetchPoolDetailsForCalculationPrompt: MCPPrompt = {
62
+ name: 'galachain-launchpad:fetch-pool-details-for-calculation',
63
+ description: 'Get optimized pool details for local bonding curve calculations',
64
+ arguments: [
65
+ {
66
+ name: 'tokenName',
67
+ description: 'Token name (e.g., anime, test216253)',
68
+ required: true,
69
+ },
70
+ ],
71
+ handler: (args) => {
72
+ validateTokenName(args.tokenName);
73
+
74
+ return [
75
+ {
76
+ role: 'user',
77
+ content: {
78
+ type: 'text',
79
+ text: `Fetch optimized pool details for bonding curve calculations.
80
+
81
+ Token: ${args.tokenName}
82
+
83
+ Use ${MCP_TOOLS.FETCH_POOL_DETAILS_FOR_CALCULATION} to get:
84
+ - currentSupply (computed with full precision)
85
+ - remainingTokens
86
+ - maxSupply
87
+ - reverseBondingCurveMaxFeeFactor
88
+ - reverseBondingCurveMinFeeFactor
89
+
90
+ This data is optimized for use with local calculation tools.`,
91
+ },
92
+ },
93
+ ];
94
+ },
95
+ };
96
+
97
+ /**
98
+ * Fetch Token Details - Complete token metadata
99
+ */
100
+ export const fetchTokenDetailsPrompt: MCPPrompt = {
101
+ name: 'galachain-launchpad:fetch-token-details',
102
+ description: 'Fetch comprehensive token metadata from DEX API',
103
+ arguments: [
104
+ {
105
+ name: 'tokenId',
106
+ description: 'Token ID (e.g., Token|Unit|GUSDC|eth:0x...)',
107
+ required: true,
108
+ },
109
+ ],
110
+ handler: (args) => {
111
+ return [
112
+ {
113
+ role: 'user',
114
+ content: {
115
+ type: 'text',
116
+ text: `Fetch complete token metadata from the DEX API.
117
+
118
+ Token ID: ${args.tokenId}
119
+
120
+ Use ${MCP_TOOLS.FETCH_TOKEN_DETAILS} to retrieve:
121
+ - Symbol, decimals, name, image
122
+ - Description and verification status
123
+ - Network information (chainId, contractAddress)
124
+ - Trading enabled status
125
+
126
+ Display the complete token information.`,
127
+ },
128
+ },
129
+ ];
130
+ },
131
+ };
132
+
133
+ /**
134
+ * Fetch Token Distribution - Holder analysis
135
+ */
136
+ export const fetchTokenDistributionPrompt: MCPPrompt = {
137
+ name: 'galachain-launchpad:fetch-token-distribution',
138
+ description: 'Get token holder distribution and supply metrics',
139
+ arguments: [
140
+ {
141
+ name: 'tokenName',
142
+ description: 'Token name (e.g., anime, test216253)',
143
+ required: true,
144
+ },
145
+ ],
146
+ handler: (args) => {
147
+ validateTokenName(args.tokenName);
148
+
149
+ return [
150
+ {
151
+ role: 'user',
152
+ content: {
153
+ type: 'text',
154
+ text: `Analyze token holder distribution.
155
+
156
+ Token: ${args.tokenName}
157
+
158
+ Use ${MCP_TOOLS.FETCH_TOKEN_DISTRIBUTION} to get:
159
+ - Complete holder list with addresses, balances, and ownership percentages
160
+ - Total supply (computed from holder balances)
161
+ - Total holder count
162
+ - Last updated timestamp
163
+
164
+ Identify top holders and concentration risk.`,
165
+ },
166
+ },
167
+ ];
168
+ },
169
+ };
170
+
171
+ /**
172
+ * Fetch Token Badges - Achievement badges
173
+ */
174
+ export const fetchTokenBadgesPrompt: MCPPrompt = {
175
+ name: 'galachain-launchpad:fetch-token-badges',
176
+ description: 'Get achievement badges for volume and engagement',
177
+ arguments: [
178
+ {
179
+ name: 'tokenName',
180
+ description: 'Token name (e.g., anime, test216253)',
181
+ required: true,
182
+ },
183
+ ],
184
+ handler: (args) => {
185
+ validateTokenName(args.tokenName);
186
+
187
+ return [
188
+ {
189
+ role: 'user',
190
+ content: {
191
+ type: 'text',
192
+ text: `Fetch achievement badges for token.
193
+
194
+ Token: ${args.tokenName}
195
+
196
+ Use ${MCP_TOOLS.FETCH_TOKEN_BADGES} to retrieve badges for:
197
+ - Trading volume milestones
198
+ - Community engagement
199
+ - Other achievements
200
+
201
+ Display all earned badges.`,
202
+ },
203
+ },
204
+ ];
205
+ },
206
+ };
207
+
208
+ /**
209
+ * Fetch Volume Data - OHLCV candlestick data
210
+ */
211
+ export const fetchVolumeDataPrompt: MCPPrompt = {
212
+ name: 'galachain-launchpad:fetch-volume-data',
213
+ description: 'Get OHLCV (candlestick) data for charting',
214
+ arguments: [
215
+ {
216
+ name: 'tokenName',
217
+ description: 'Token name (e.g., anime, test216253)',
218
+ required: true,
219
+ },
220
+ {
221
+ name: 'from',
222
+ description: 'Start date (ISO 8601 format)',
223
+ required: false,
224
+ },
225
+ {
226
+ name: 'to',
227
+ description: 'End date (ISO 8601 format)',
228
+ required: false,
229
+ },
230
+ {
231
+ name: 'resolution',
232
+ description: 'Time resolution: 1m, 5m, 15m, 1h, 4h, 1d (default: 1h)',
233
+ required: false,
234
+ },
235
+ ],
236
+ handler: (args) => {
237
+ validateTokenName(args.tokenName);
238
+
239
+ return [
240
+ {
241
+ role: 'user',
242
+ content: {
243
+ type: 'text',
244
+ text: `Fetch OHLCV candlestick data for charting.
245
+
246
+ Token: ${args.tokenName}
247
+ ${args.from ? `From: ${args.from}` : ''}
248
+ ${args.to ? `To: ${args.to}` : ''}
249
+ Resolution: ${args.resolution || '1h'}
250
+
251
+ Use ${MCP_TOOLS.FETCH_VOLUME_DATA} to get candlestick data suitable for price charts.`,
252
+ },
253
+ },
254
+ ];
255
+ },
256
+ };
257
+
258
+ /**
259
+ * Fetch GALA Spot Price - Current GALA USD price
260
+ */
261
+ export const fetchGalaSpotPricePrompt: MCPPrompt = {
262
+ name: 'galachain-launchpad:fetch-gala-spot-price',
263
+ description: 'Fetch current GALA USD spot price',
264
+ handler: () => {
265
+ return [
266
+ {
267
+ role: 'user',
268
+ content: {
269
+ type: 'text',
270
+ text: `Fetch the current GALA USD spot price.
271
+
272
+ Use ${MCP_TOOLS.FETCH_GALA_SPOT_PRICE} to get the latest GALA price in USD.
273
+
274
+ Display the price in a clear format.`,
275
+ },
276
+ },
277
+ ];
278
+ },
279
+ };
280
+
281
+ /**
282
+ * Fetch Token Spot Price - Current USD price for any token
283
+ */
284
+ export const fetchTokenSpotPricePrompt: MCPPrompt = {
285
+ name: 'galachain-launchpad:fetch-token-spot-price',
286
+ description: 'Fetch USD spot price for any token (launchpad or DEX)',
287
+ arguments: [
288
+ {
289
+ name: 'tokenName',
290
+ description: 'Token name (e.g., anime, gala, demonkpop)',
291
+ required: true,
292
+ },
293
+ ],
294
+ handler: (args) => {
295
+ validateTokenName(args.tokenName);
296
+
297
+ return [
298
+ {
299
+ role: 'user',
300
+ content: {
301
+ type: 'text',
302
+ text: `Fetch current USD spot price for token.
303
+
304
+ Token: ${args.tokenName}
305
+
306
+ Use ${MCP_TOOLS.FETCH_TOKEN_SPOT_PRICE} to get:
307
+ - Current USD price with smart routing (launchpad or DEX)
308
+ - Real-time pricing data
309
+ - Unified interface for all token types
310
+
311
+ Display the current price clearly.`,
312
+ },
313
+ },
314
+ ];
315
+ },
316
+ };
317
+
318
+ /**
319
+ * Fetch Price History - Paginated historical prices
320
+ */
321
+ export const fetchPriceHistoryPrompt: MCPPrompt = {
322
+ name: 'galachain-launchpad:fetch-price-history',
323
+ description: 'Fetch historical token prices with pagination',
324
+ arguments: [
325
+ {
326
+ name: 'tokenId',
327
+ description: 'Token ID (e.g., Token|Unit|GUSDC|eth:0x...) OR tokenName (e.g., demonkpop)',
328
+ required: true,
329
+ },
330
+ {
331
+ name: 'from',
332
+ description: 'Start date (ISO 8601 format)',
333
+ required: false,
334
+ },
335
+ {
336
+ name: 'to',
337
+ description: 'End date (ISO 8601 format)',
338
+ required: false,
339
+ },
340
+ {
341
+ name: 'page',
342
+ description: 'Page number (default: 1)',
343
+ required: false,
344
+ },
345
+ {
346
+ name: 'limit',
347
+ description: 'Results per page (default: 10, max: 50)',
348
+ required: false,
349
+ },
350
+ ],
351
+ handler: (args) => {
352
+ if (args.limit) {
353
+ validatePaginationLimit(args.limit, 50);
354
+ }
355
+
356
+ return [
357
+ {
358
+ role: 'user',
359
+ content: {
360
+ type: 'text',
361
+ text: `Fetch historical price snapshots for token.
362
+
363
+ Token: ${args.tokenId}
364
+ ${args.from ? `From: ${args.from}` : ''}
365
+ ${args.to ? `To: ${args.to}` : ''}
366
+ Page: ${args.page || 1}
367
+ Limit: ${args.limit || 10}
368
+
369
+ Use ${MCP_TOOLS.FETCH_PRICE_HISTORY} to retrieve historical price data from the DEX Backend API.
370
+
371
+ Display price snapshots with timestamps.`,
372
+ },
373
+ },
374
+ ];
375
+ },
376
+ };
377
+
378
+ /**
379
+ * Fetch All Price History - Auto-paginated complete history
380
+ */
381
+ export const fetchAllPriceHistoryPrompt: MCPPrompt = {
382
+ name: 'galachain-launchpad:fetch-all-price-history',
383
+ description: 'Fetch complete historical token prices (auto-paginated)',
384
+ arguments: [
385
+ {
386
+ name: 'tokenId',
387
+ description: 'Token ID (e.g., Token|Unit|GUSDC|eth:0x...) OR tokenName (e.g., demonkpop)',
388
+ required: true,
389
+ },
390
+ {
391
+ name: 'from',
392
+ description: 'Start date (ISO 8601 format)',
393
+ required: false,
394
+ },
395
+ {
396
+ name: 'to',
397
+ description: 'End date (ISO 8601 format)',
398
+ required: false,
399
+ },
400
+ ],
401
+ handler: (args) => {
402
+ return [
403
+ {
404
+ role: 'user',
405
+ content: {
406
+ type: 'text',
407
+ text: `Fetch ALL historical price snapshots for token (automatic pagination).
408
+
409
+ Token: ${args.tokenId}
410
+ ${args.from ? `From: ${args.from}` : ''}
411
+ ${args.to ? `To: ${args.to}` : ''}
412
+
413
+ Use ${MCP_TOOLS.FETCH_ALL_PRICE_HISTORY} to retrieve complete historical data.
414
+
415
+ This automatically handles pagination and returns all available snapshots.`,
416
+ },
417
+ },
418
+ ];
419
+ },
420
+ };
421
+
422
+ /**
423
+ * Check Token Name - Name availability check
424
+ */
425
+ export const checkTokenNamePrompt: MCPPrompt = {
426
+ name: 'galachain-launchpad:check-token-name',
427
+ description: 'Check if a token name is available',
428
+ arguments: [
429
+ {
430
+ name: 'tokenName',
431
+ description: 'Token name to check (3-20 alphanumeric characters)',
432
+ required: true,
433
+ },
434
+ ],
435
+ handler: (args) => {
436
+ validateTokenName(args.tokenName);
437
+
438
+ return [
439
+ {
440
+ role: 'user',
441
+ content: {
442
+ type: 'text',
443
+ text: `Check if token name is available.
444
+
445
+ Token Name: ${args.tokenName}
446
+
447
+ Use ${MCP_TOOLS.CHECK_TOKEN_NAME} to verify availability.
448
+
449
+ Display whether the name is available or already taken.`,
450
+ },
451
+ },
452
+ ];
453
+ },
454
+ };
455
+
456
+ /**
457
+ * Check Token Symbol - Symbol availability check
458
+ */
459
+ export const checkTokenSymbolPrompt: MCPPrompt = {
460
+ name: 'galachain-launchpad:check-token-symbol',
461
+ description: 'Check if a token symbol is available',
462
+ arguments: [
463
+ {
464
+ name: 'symbol',
465
+ description: 'Token symbol to check (1-8 uppercase characters)',
466
+ required: true,
467
+ },
468
+ ],
469
+ handler: (args) => {
470
+ return [
471
+ {
472
+ role: 'user',
473
+ content: {
474
+ type: 'text',
475
+ text: `Check if token symbol is available.
476
+
477
+ Token Symbol: ${args.symbol}
478
+
479
+ Use ${MCP_TOOLS.CHECK_TOKEN_SYMBOL} to verify availability.
480
+
481
+ Display whether the symbol is available or already taken.`,
482
+ },
483
+ },
484
+ ];
485
+ },
486
+ };
487
+
488
+ /**
489
+ * Resolve Vault Address - GalaChain vault lookup
490
+ */
491
+ export const resolveVaultAddressPrompt: MCPPrompt = {
492
+ name: 'galachain-launchpad:resolve-vault-address',
493
+ description: 'Get GalaChain vault address for a token',
494
+ arguments: [
495
+ {
496
+ name: 'tokenName',
497
+ description: 'Token name (e.g., anime, test216253)',
498
+ required: true,
499
+ },
500
+ ],
501
+ handler: (args) => {
502
+ validateTokenName(args.tokenName);
503
+
504
+ return [
505
+ {
506
+ role: 'user',
507
+ content: {
508
+ type: 'text',
509
+ text: `Resolve GalaChain vault address for token.
510
+
511
+ Token: ${args.tokenName}
512
+
513
+ Use ${MCP_TOOLS.RESOLVE_VAULT_ADDRESS} to get the vault address.
514
+
515
+ This is useful for debugging and direct GalaChain operations.`,
516
+ },
517
+ },
518
+ ];
519
+ },
520
+ };
521
+
522
+ /**
523
+ * Resolve Token Class Key - TokenClassKey resolution
524
+ */
525
+ export const resolveTokenClassKeyPrompt: MCPPrompt = {
526
+ name: 'galachain-launchpad:resolve-token-class-key',
527
+ description: 'Get GalaChain TokenClassKey for a launchpad token',
528
+ arguments: [
529
+ {
530
+ name: 'tokenName',
531
+ description: 'Token name (e.g., anime, test216253)',
532
+ required: true,
533
+ },
534
+ ],
535
+ handler: (args) => {
536
+ validateTokenName(args.tokenName);
537
+
538
+ return [
539
+ {
540
+ role: 'user',
541
+ content: {
542
+ type: 'text',
543
+ text: `Resolve GalaChain TokenClassKey for launchpad token.
544
+
545
+ Token: ${args.tokenName}
546
+
547
+ Use ${MCP_TOOLS.RESOLVE_TOKEN_CLASS_KEY} to get the TokenClassKey.
548
+
549
+ This is useful for direct GalaChain operations.`,
550
+ },
551
+ },
552
+ ];
553
+ },
554
+ };
555
+
556
+ export const poolPrompts: MCPPrompt[] = [
557
+ fetchPoolsPrompt,
558
+ fetchPoolDetailsForCalculationPrompt,
559
+ fetchTokenDetailsPrompt,
560
+ fetchTokenDistributionPrompt,
561
+ fetchTokenBadgesPrompt,
562
+ fetchVolumeDataPrompt,
563
+ fetchGalaSpotPricePrompt,
564
+ fetchTokenSpotPricePrompt,
565
+ fetchPriceHistoryPrompt,
566
+ fetchAllPriceHistoryPrompt,
567
+ checkTokenNamePrompt,
568
+ checkTokenSymbolPrompt,
569
+ resolveVaultAddressPrompt,
570
+ resolveTokenClassKeyPrompt,
571
+ ];