@gala-chain/launchpad-mcp-server 1.22.0 → 1.22.1

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 (73) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/generated/version.d.ts +1 -1
  3. package/dist/generated/version.js +1 -1
  4. package/package.json +2 -2
  5. package/docs/AI-AGENT-PATTERNS.md +0 -555
  6. package/docs/CONSTRAINTS-REFERENCE.md +0 -454
  7. package/docs/PROMPT-TOOL-MAPPING.md +0 -352
  8. package/docs/examples/default-values-pattern.md +0 -240
  9. package/docs/examples/tool-factory-pattern.md +0 -217
  10. package/jest.config.js +0 -94
  11. package/src/__tests__/integration/fetchTokenDetails.integration.test.ts +0 -258
  12. package/src/__tests__/integration/poolTools.integration.test.ts +0 -185
  13. package/src/constants/mcpToolNames.ts +0 -141
  14. package/src/index.ts +0 -19
  15. package/src/prompts/__tests__/promptStructure.test.ts +0 -137
  16. package/src/prompts/__tests__/registry.test.ts +0 -191
  17. package/src/prompts/analysis.ts +0 -429
  18. package/src/prompts/create-token.ts +0 -123
  19. package/src/prompts/dex-trading.ts +0 -86
  20. package/src/prompts/discover-tokens.ts +0 -86
  21. package/src/prompts/index.ts +0 -154
  22. package/src/prompts/liquidity-positions.ts +0 -270
  23. package/src/prompts/portfolio.ts +0 -242
  24. package/src/prompts/trading.ts +0 -191
  25. package/src/prompts/utility.ts +0 -43
  26. package/src/prompts/utils/workflowTemplates.ts +0 -511
  27. package/src/schemas/common-schemas.ts +0 -393
  28. package/src/scripts/test-all-prompts.ts +0 -184
  29. package/src/server.ts +0 -277
  30. package/src/tools/__tests__/dex-tools.test.ts +0 -562
  31. package/src/tools/__tests__/liquidity-positions.test.ts +0 -673
  32. package/src/tools/balance/index.ts +0 -174
  33. package/src/tools/creation/index.ts +0 -182
  34. package/src/tools/dex/index.ts +0 -226
  35. package/src/tools/dex/liquidity-positions.ts +0 -547
  36. package/src/tools/index.ts +0 -86
  37. package/src/tools/pools/fetchAllPools.ts +0 -47
  38. package/src/tools/pools/fetchAllPriceHistory.ts +0 -119
  39. package/src/tools/pools/fetchPoolDetails.ts +0 -27
  40. package/src/tools/pools/fetchPoolDetailsForCalculation.ts +0 -22
  41. package/src/tools/pools/fetchPools.ts +0 -47
  42. package/src/tools/pools/fetchPriceHistory.ts +0 -124
  43. package/src/tools/pools/fetchTokenDetails.ts +0 -77
  44. package/src/tools/pools/index.ts +0 -284
  45. package/src/tools/social/index.ts +0 -64
  46. package/src/tools/trading/index.ts +0 -605
  47. package/src/tools/transfers/index.ts +0 -75
  48. package/src/tools/utils/clearCache.ts +0 -36
  49. package/src/tools/utils/createWallet.ts +0 -19
  50. package/src/tools/utils/explainSdkUsage.ts +0 -1446
  51. package/src/tools/utils/getAddress.ts +0 -12
  52. package/src/tools/utils/getCacheInfo.ts +0 -14
  53. package/src/tools/utils/getConfig.ts +0 -11
  54. package/src/tools/utils/getEthereumAddress.ts +0 -12
  55. package/src/tools/utils/getUrlByTokenName.ts +0 -12
  56. package/src/tools/utils/getVersion.ts +0 -25
  57. package/src/tools/utils/getWallet.ts +0 -25
  58. package/src/tools/utils/hasWallet.ts +0 -15
  59. package/src/tools/utils/index.ts +0 -33
  60. package/src/tools/utils/isTokenGraduated.ts +0 -16
  61. package/src/tools/utils/setWallet.ts +0 -41
  62. package/src/types/mcp.ts +0 -72
  63. package/src/utils/__tests__/validation.test.ts +0 -147
  64. package/src/utils/constraints.ts +0 -155
  65. package/src/utils/default-values.ts +0 -208
  66. package/src/utils/error-handler.ts +0 -69
  67. package/src/utils/error-templates.ts +0 -273
  68. package/src/utils/response-formatter.ts +0 -51
  69. package/src/utils/tool-factory.ts +0 -257
  70. package/src/utils/tool-registry.ts +0 -296
  71. package/src/utils/validation.ts +0 -371
  72. package/tests/wallet-management-integration.test.ts +0 -284
  73. package/tsconfig.json +0 -23
@@ -1,429 +0,0 @@
1
- /**
2
- * Analysis Prompts
3
- *
4
- * Slash commands for token analysis and comparison on Gala Launchpad
5
- */
6
-
7
- import type { MCPPrompt } from '../types/mcp.js';
8
- import { MCP_TOOLS } from '../constants/mcpToolNames.js';
9
- import { validateTokenName, validateTokenList, validatePaginationLimit } from '../utils/validation.js';
10
-
11
- /**
12
- * Compare Tokens - Side-by-side comparison
13
- */
14
- export const compareTokensPrompt: MCPPrompt = {
15
- name: 'galachain-launchpad:compare-tokens',
16
- description: 'Compare two Launchpad tokens side-by-side with detailed metrics',
17
- arguments: [
18
- {
19
- name: 'token1',
20
- description: 'First token to compare (e.g., anime)',
21
- required: true,
22
- },
23
- {
24
- name: 'token2',
25
- description: 'Second token to compare (e.g., test216253)',
26
- required: true,
27
- },
28
- ],
29
- handler: (args) => {
30
- // Validate inputs
31
- validateTokenName(args.token1, 'token1');
32
- validateTokenName(args.token2, 'token2');
33
-
34
- return [
35
- {
36
- role: 'user',
37
- content: {
38
- type: 'text',
39
- text: `Compare two Launchpad tokens side-by-side:
40
-
41
- Token 1: ${args.token1}
42
- Token 2: ${args.token2}
43
-
44
- For EACH token, use the optimized pattern:
45
-
46
- 1. Fetch pool details using ${MCP_TOOLS.FETCH_POOL_DETAILS_FOR_CALCULATION}
47
-
48
- 2. Calculate metrics using LOCAL mode:
49
- - Spot price: ${MCP_TOOLS.FETCH_LAUNCHPAD_TOKEN_SPOT_PRICE}
50
- - Graduation cost: ${MCP_TOOLS.CALCULATE_BUY_AMOUNT_FOR_GRADUATION}
51
- - Is graduated: ${MCP_TOOLS.IS_TOKEN_GRADUATED}
52
-
53
- 3. Get additional data:
54
- - Full pool details: ${MCP_TOOLS.FETCH_POOL_DETAILS}
55
- - Token distribution: ${MCP_TOOLS.FETCH_TOKEN_DISTRIBUTION}
56
- - Badges: ${MCP_TOOLS.FETCH_TOKEN_BADGES}
57
-
58
- Present a comparison table:
59
-
60
- | Metric | ${args.token1} | ${args.token2} |
61
- |--------|--------|--------|
62
- | Spot Price (USD) | ... | ... |
63
- | Market Cap Estimate | ... | ... |
64
- | Pool Status | ... | ... |
65
- | Progress to Graduation | ... | ... |
66
- | Remaining Tokens | ... | ... |
67
- | GALA to Graduate | ... | ... |
68
- | Holder Count | ... | ... |
69
- | Creator Status | ... | ... |
70
-
71
- Provide analysis:
72
- - Which token is closer to graduation?
73
- - Which has better liquidity?
74
- - Which might be a better investment and why?
75
- - Any notable badges or achievements?`,
76
- },
77
- },
78
- ];
79
- },
80
- };
81
-
82
- /**
83
- * Graduation Status - Check multiple tokens for graduation readiness
84
- */
85
- export const graduationStatusPrompt: MCPPrompt = {
86
- name: 'galachain-launchpad:graduation-status',
87
- description: 'Check graduation status and readiness for multiple tokens',
88
- arguments: [
89
- {
90
- name: 'tokens',
91
- description: 'Comma-separated token names (e.g., anime,test216253,dragnrkti)',
92
- required: true,
93
- },
94
- ],
95
- handler: (args) => {
96
- // Validate inputs
97
- const tokenArray = validateTokenList(args.tokens);
98
-
99
- return [
100
- {
101
- role: 'user',
102
- content: {
103
- type: 'text',
104
- text: `Check graduation status for multiple tokens:
105
-
106
- Tokens: ${args.tokens}
107
-
108
- For EACH token in the list:
109
-
110
- 1. Check if graduated: ${MCP_TOOLS.IS_TOKEN_GRADUATED}
111
-
112
- 2. If not graduated, use optimized pattern:
113
- a. Fetch pool details: ${MCP_TOOLS.FETCH_POOL_DETAILS_FOR_CALCULATION}
114
- b. Calculate graduation cost: ${MCP_TOOLS.CALCULATE_BUY_AMOUNT_FOR_GRADUATION} (LOCAL mode)
115
- c. Calculate progress: (currentSupply / maxSupply * 100)
116
-
117
- 3. Get full pool details: ${MCP_TOOLS.FETCH_POOL_DETAILS}
118
-
119
- Present a table:
120
-
121
- | Token | Status | Progress | Remaining Tokens | GALA to Graduate | Frontend URL |
122
- |-------|--------|----------|------------------|------------------|--------------|
123
- | ... | ... | ... | ... | ... | ... |
124
-
125
- Summary:
126
- - Total tokens analyzed: ${tokenArray.length}
127
- - Already graduated: [count]
128
- - Close to graduation (>90%): [count]
129
- - Mid-progress (50-90%): [count]
130
- - Early stage (<50%): [count]
131
-
132
- Provide recommendations:
133
- - Which tokens are good graduation opportunities?
134
- - Which tokens might be undervalued?`,
135
- },
136
- },
137
- ];
138
- },
139
- };
140
-
141
- /**
142
- * Spot Prices - Batch spot price lookup
143
- */
144
- export const spotPricesPrompt: MCPPrompt = {
145
- name: 'galachain-launchpad:spot-prices',
146
- description: 'Get spot prices for multiple Launchpad tokens efficiently',
147
- arguments: [
148
- {
149
- name: 'tokens',
150
- description: 'Comma-separated token names (e.g., anime,test216253,dragnrkti)',
151
- required: true,
152
- },
153
- ],
154
- handler: (args) => {
155
- // Validate inputs
156
- validateTokenList(args.tokens);
157
-
158
- return [
159
- {
160
- role: 'user',
161
- content: {
162
- type: 'text',
163
- text: `Get spot prices for multiple Launchpad tokens:
164
-
165
- Tokens: ${args.tokens}
166
-
167
- Use the optimized batch pattern for EACH token:
168
-
169
- 1. Fetch pool details: ${MCP_TOOLS.FETCH_POOL_DETAILS_FOR_CALCULATION}
170
- 2. Calculate spot price: ${MCP_TOOLS.FETCH_LAUNCHPAD_TOKEN_SPOT_PRICE} (LOCAL mode)
171
-
172
- Also get GALA spot price: ${MCP_TOOLS.FETCH_GALA_SPOT_PRICE}
173
-
174
- Present results:
175
-
176
- **GALA Spot Price:** $[price]
177
-
178
- **Launchpad Token Prices:**
179
- | Token | USD Price | GALA Price | Market Cap Est. |
180
- |-------|-----------|------------|-----------------|
181
- | ... | ... | ... | ... |
182
-
183
- Performance note: Using LOCAL calculations - instant results with <0.01% difference from external!
184
-
185
- Sort by USD price (highest to lowest).`,
186
- },
187
- },
188
- ];
189
- },
190
- };
191
-
192
- /**
193
- * Pool Details - Comprehensive pool information
194
- */
195
- export const poolDetailsPrompt: MCPPrompt = {
196
- name: 'galachain-launchpad:pool-details',
197
- description: 'Get comprehensive pool information including distribution and badges',
198
- arguments: [
199
- {
200
- name: 'tokenName',
201
- description: 'Token to analyze (e.g., anime)',
202
- required: true,
203
- },
204
- ],
205
- handler: (args) => {
206
- // Validate inputs
207
- validateTokenName(args.tokenName);
208
-
209
- return [
210
- {
211
- role: 'user',
212
- content: {
213
- type: 'text',
214
- text: `Get comprehensive pool information for "${args.tokenName}":
215
-
216
- 1. Full pool details: ${MCP_TOOLS.FETCH_POOL_DETAILS}
217
- 2. Token distribution: ${MCP_TOOLS.FETCH_TOKEN_DISTRIBUTION}
218
- 3. Achievement badges: ${MCP_TOOLS.FETCH_TOKEN_BADGES}
219
- 4. Recent volume data (last 24h): ${MCP_TOOLS.FETCH_VOLUME_DATA} with 1h resolution
220
- 5. Check if graduated: ${MCP_TOOLS.IS_TOKEN_GRADUATED}
221
- 6. Frontend URL: ${MCP_TOOLS.GET_URL_BY_TOKEN_NAME}
222
-
223
- Display organized sections:
224
-
225
- **Basic Info:**
226
- - Token name and symbol
227
- - Pool status
228
- - Created by
229
- - Frontend URL
230
-
231
- **Supply Metrics:**
232
- - Current supply
233
- - Maximum supply
234
- - Remaining tokens
235
- - Progress percentage
236
-
237
- **Distribution:**
238
- - Total holders
239
- - Top holders (if available)
240
- - Distribution metrics
241
-
242
- **Achievements:**
243
- - Volume badges
244
- - Engagement badges
245
- - Other achievements
246
-
247
- **Recent Activity (24h):**
248
- - Trading volume
249
- - Price movement
250
- - Number of trades
251
-
252
- **Reverse Bonding Curve:**
253
- - Max fee factor
254
- - Min fee factor
255
- - Current fee structure`,
256
- },
257
- },
258
- ];
259
- },
260
- };
261
-
262
- /**
263
- * Trade History - Recent trades with filters
264
- */
265
- export const tradeHistoryPrompt: MCPPrompt = {
266
- name: 'galachain-launchpad:trade-history',
267
- description: 'View recent trades for a token or user with filtering options',
268
- arguments: [
269
- {
270
- name: 'tokenName',
271
- description: 'Token to view trades for (optional)',
272
- required: false,
273
- },
274
- {
275
- name: 'userAddress',
276
- description: 'User address to filter by (optional)',
277
- required: false,
278
- },
279
- {
280
- name: 'tradeType',
281
- description: 'Trade type filter: BUY or SELL (optional)',
282
- required: false,
283
- },
284
- {
285
- name: 'limit',
286
- description: 'Number of trades to show (default: 20)',
287
- required: false,
288
- },
289
- ],
290
- handler: (args) => {
291
- // Validate inputs
292
- if (args.tokenName) {
293
- validateTokenName(args.tokenName);
294
- }
295
- if (args.limit) {
296
- validatePaginationLimit(args.limit, 20);
297
- }
298
- if (args.tradeType && args.tradeType !== 'BUY' && args.tradeType !== 'SELL') {
299
- throw new Error('tradeType must be either BUY or SELL');
300
- }
301
-
302
- const limit = args.limit || '20';
303
-
304
- return [
305
- {
306
- role: 'user',
307
- content: {
308
- type: 'text',
309
- text: `Show recent trade history:
310
-
311
- ${args.tokenName ? `Token: ${args.tokenName}` : 'All tokens'}
312
- ${args.userAddress ? `User: ${args.userAddress}` : 'All users'}
313
- ${args.tradeType ? `Type: ${args.tradeType}` : 'All trade types'}
314
- Limit: ${limit}
315
-
316
- Use ${MCP_TOOLS.FETCH_TRADES} with:
317
- ${args.tokenName ? `- tokenName: "${args.tokenName}"` : ''}
318
- ${args.userAddress ? `- userAddress: "${args.userAddress}"` : ''}
319
- ${args.tradeType ? `- tradeType: "${args.tradeType}"` : ''}
320
- - limit: ${limit}
321
- - sortOrder: "DESC" (newest first)
322
-
323
- For each trade, display:
324
- - Timestamp (formatted)
325
- - Token name
326
- - Trade type (BUY/SELL)
327
- - Amount (tokens)
328
- - Price (GALA)
329
- - User address (truncated)
330
- - Transaction ID
331
-
332
- Calculate summary:
333
- - Total trades shown
334
- - Total volume (GALA)
335
- - Average trade size
336
- - Buy vs Sell ratio (if not filtered)`,
337
- },
338
- },
339
- ];
340
- },
341
- };
342
-
343
- /**
344
- * Fetch All Pools - Get all available pools with automatic pagination
345
- */
346
- export const fetchAllPoolsPrompt: MCPPrompt = {
347
- name: 'galachain-launchpad:fetch-all-pools',
348
- description: 'Fetch all available Launchpad pools with automatic pagination (no limit needed)',
349
- arguments: [
350
- {
351
- name: 'search',
352
- description: 'Optional search filter for token names (fuzzy match)',
353
- required: false,
354
- },
355
- {
356
- name: 'type',
357
- description: 'Pool type filter: recent or popular (optional, default: recent)',
358
- required: false,
359
- },
360
- ],
361
- handler: (args) => {
362
- // Validate type if provided
363
- if (args.type && args.type !== 'recent' && args.type !== 'popular') {
364
- throw new Error('type must be either "recent" or "popular"');
365
- }
366
-
367
- const searchFilter = args.search
368
- ? `- search: "${args.search}" (fuzzy match filter)`
369
- : '- No search filter';
370
- const typeFilter = args.type ? args.type : 'recent';
371
-
372
- return [
373
- {
374
- role: 'user',
375
- content: {
376
- type: 'text',
377
- text: `Fetch ALL available Launchpad pools with automatic pagination:
378
-
379
- Use ${MCP_TOOLS.FETCH_ALL_POOLS} with:
380
- ${searchFilter}
381
- - type: "${typeFilter}"
382
-
383
- This tool automatically:
384
- - Fetches the first page to determine total available pools
385
- - Concurrently fetches remaining pages (up to 5 at a time)
386
- - Returns ALL matching pools in a single result
387
-
388
- For each pool, display:
389
- - Token name and symbol
390
- - Pool status (Ongoing/Completed)
391
- - Current price (if available)
392
- - Progress percentage
393
- - Creator address (truncated)
394
- - Frontend URL (use ${MCP_TOOLS.GET_URL_BY_TOKEN_NAME})
395
-
396
- Provide summary:
397
- - Total pools found
398
- - How many are graduated (Completed)
399
- - How many are active (Ongoing)
400
- - Distribution by progress stage:
401
- * Early (<25%)
402
- * Growing (25-75%)
403
- * Near graduation (75-99%)
404
- * Graduated (100%)
405
-
406
- Performance note:
407
- - Uses concurrent fetching with ${MCP_TOOLS.FETCH_ALL_POOLS}
408
- - Max 5 concurrent requests to avoid rate limiting
409
- - Automatic cache warming for token metadata
410
- - Much faster than manual pagination!
411
-
412
- Sort pools by creation date (newest first) or progress (closest to graduation first).`,
413
- },
414
- },
415
- ];
416
- },
417
- };
418
-
419
- /**
420
- * Export all analysis prompts
421
- */
422
- export const analysisPrompts: MCPPrompt[] = [
423
- compareTokensPrompt,
424
- graduationStatusPrompt,
425
- spotPricesPrompt,
426
- poolDetailsPrompt,
427
- tradeHistoryPrompt,
428
- fetchAllPoolsPrompt,
429
- ];
@@ -1,123 +0,0 @@
1
- /**
2
- * Token Creation Prompts
3
- *
4
- * Slash commands for creating new tokens on Gala Launchpad
5
- */
6
-
7
- import type { MCPPrompt } from '../types/mcp.js';
8
- import { createCreateTokenWorkflow } from './utils/workflowTemplates.js';
9
- import {
10
- validateTokenName,
11
- validateTokenSymbol,
12
- validateUrl,
13
- validateNumericAmount,
14
- } from '../utils/validation.js';
15
-
16
- /**
17
- * Create Token - Guided token creation workflow
18
- */
19
- export const createTokenPrompt: MCPPrompt = {
20
- name: 'galachain-launchpad:create-token',
21
- description:
22
- 'Guide user through creating a new token on Gala Launchpad with metadata, image upload, and optional pre-buy',
23
- arguments: [
24
- {
25
- name: 'tokenName',
26
- description:
27
- 'Name for the new token - must be 3-20 lowercase alphanumeric characters (e.g., "mytoken")',
28
- required: true,
29
- },
30
- {
31
- name: 'tokenSymbol',
32
- description: 'Token symbol - must be 1-8 uppercase letters (e.g., "MTK")',
33
- required: true,
34
- },
35
- {
36
- name: 'description',
37
- description: 'Token description - brief description of what the token is for (1-500 chars)',
38
- required: true,
39
- },
40
- {
41
- name: 'websiteUrl',
42
- description: 'Optional website URL (e.g., "https://mytoken.com") - at least one social URL required',
43
- required: false,
44
- },
45
- {
46
- name: 'twitterUrl',
47
- description:
48
- 'Optional Twitter profile URL (e.g., "https://twitter.com/mytoken") - at least one social URL required',
49
- required: false,
50
- },
51
- {
52
- name: 'telegramUrl',
53
- description:
54
- 'Optional Telegram channel URL (e.g., "https://t.me/mytoken") - at least one social URL required',
55
- required: false,
56
- },
57
- {
58
- name: 'imagePath',
59
- description:
60
- 'Optional path to token image file - will be uploaded to IPFS (e.g., "/path/to/image.png")',
61
- required: false,
62
- },
63
- {
64
- name: 'preBuyGala',
65
- description:
66
- 'Optional GALA amount for initial token purchase (e.g., "100" for 100 GALA) - helps bootstrap liquidity',
67
- required: false,
68
- },
69
- ],
70
- handler: (args) => {
71
- // Validate inputs
72
- validateTokenName(args.tokenName);
73
- validateTokenSymbol(args.tokenSymbol);
74
-
75
- // Validate at least one social URL
76
- const hasSocialUrl = args.websiteUrl || args.twitterUrl || args.telegramUrl;
77
- if (!hasSocialUrl) {
78
- throw new Error(
79
- 'At least one social URL is required: websiteUrl, twitterUrl, or telegramUrl'
80
- );
81
- }
82
-
83
- // Validate social URLs if provided
84
- if (args.websiteUrl) {
85
- validateUrl(args.websiteUrl, 'websiteUrl');
86
- }
87
- if (args.twitterUrl) {
88
- validateUrl(args.twitterUrl, 'twitterUrl');
89
- }
90
- if (args.telegramUrl) {
91
- validateUrl(args.telegramUrl, 'telegramUrl');
92
- }
93
-
94
- // Validate pre-buy amount if provided
95
- if (args.preBuyGala) {
96
- validateNumericAmount(args.preBuyGala, 'preBuyGala');
97
- }
98
-
99
- return [
100
- {
101
- role: 'user',
102
- content: {
103
- type: 'text',
104
- text: createCreateTokenWorkflow({
105
- tokenName: args.tokenName,
106
- tokenSymbol: args.tokenSymbol,
107
- description: args.description,
108
- websiteUrl: args.websiteUrl,
109
- twitterUrl: args.twitterUrl,
110
- telegramUrl: args.telegramUrl,
111
- imagePath: args.imagePath,
112
- preBuyGala: args.preBuyGala,
113
- }),
114
- },
115
- },
116
- ];
117
- },
118
- };
119
-
120
- /**
121
- * Export all token creation prompts
122
- */
123
- export const creationPrompts: MCPPrompt[] = [createTokenPrompt];
@@ -1,86 +0,0 @@
1
- /**
2
- * DEX Trading Prompts
3
- *
4
- * Slash commands for GalaSwap DEX trading operations (for graduated tokens)
5
- */
6
-
7
- import type { MCPPrompt } from '../types/mcp.js';
8
- import { validateNumericAmount, validateSlippage } from '../utils/validation.js';
9
-
10
- /**
11
- * DEX Swap - Guided swap workflow for graduated tokens
12
- *
13
- * This prompt guides users through swapping tokens on GalaSwap DEX.
14
- * It's designed for tokens that have graduated from bonding curves.
15
- */
16
- export const dexSwapPrompt: MCPPrompt = {
17
- name: 'galachain-launchpad:dex-swap',
18
- description:
19
- 'Execute a token swap on GalaSwap DEX for graduated tokens. Get a quote first, then execute with slippage protection.',
20
- arguments: [
21
- {
22
- name: 'fromToken',
23
- description: 'Source token symbol (e.g., GALA, GUSDC)',
24
- required: true,
25
- },
26
- {
27
- name: 'toToken',
28
- description: 'Destination token symbol (e.g., GUSDC, GALA)',
29
- required: true,
30
- },
31
- {
32
- name: 'amount',
33
- description: 'Amount to swap (e.g., 100)',
34
- required: true,
35
- },
36
- {
37
- name: 'slippage',
38
- description: 'Slippage tolerance percentage (default: 1)',
39
- required: false,
40
- },
41
- ],
42
- handler: (args) => {
43
- // Validate inputs
44
- validateNumericAmount(args.amount, 'amount');
45
- if (args.slippage) {
46
- validateSlippage(args.slippage);
47
- }
48
-
49
- const slippageValue = args.slippage || '1';
50
-
51
- return [
52
- {
53
- role: 'user',
54
- content: {
55
- type: 'text',
56
- text: `I want to swap tokens on GalaSwap DEX:
57
-
58
- **Swap Details:**
59
- - From Token: ${args.fromToken}
60
- - To Token: ${args.toToken}
61
- - Amount: ${args.amount} ${args.fromToken}
62
- - Slippage Tolerance: ${slippageValue}%
63
-
64
- **Workflow:**
65
- 1. Get a swap quote for ${args.amount} ${args.fromToken} → ${args.toToken}
66
- 2. Review the estimated output and price impact
67
- 3. Execute the swap with ${slippageValue}% slippage protection
68
-
69
- Please use the following MCP tools to complete this workflow:
70
- - gala_launchpad_get_swap_quote_exact_input: Get initial quote before swapping
71
- - gala_launchpad_get_swap_quote_exact_output: Get quote for specific desired output
72
- - gala_launchpad_execute_swap: Execute the swap after review
73
- - gala_launchpad_get_swap_user_assets: Check wallet balances
74
- - gala_launchpad_get_swap_pool_info: Get pool details and fee tiers
75
-
76
- Please proceed with getting the quote first, then guide me through the execution.`,
77
- },
78
- },
79
- ];
80
- },
81
- };
82
-
83
- /**
84
- * Export all DEX trading prompts
85
- */
86
- export const dexTradingPrompts: MCPPrompt[] = [dexSwapPrompt];