@gala-chain/launchpad-mcp-server 1.22.4 → 1.23.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.
- package/CHANGELOG.md +118 -0
- package/DRY_REFACTORING_GUIDE.md +272 -0
- package/README.md +83 -8
- package/dist/constants/mcpToolNames.d.ts +69 -11
- package/dist/constants/mcpToolNames.d.ts.map +1 -1
- package/dist/constants/mcpToolNames.js +47 -9
- package/dist/constants/mcpToolNames.js.map +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/prompts/analysis.d.ts.map +1 -1
- package/dist/prompts/analysis.js +14 -63
- package/dist/prompts/analysis.js.map +1 -1
- package/dist/prompts/balances.d.ts +24 -0
- package/dist/prompts/balances.d.ts.map +1 -0
- package/dist/prompts/balances.js +167 -0
- package/dist/prompts/balances.js.map +1 -0
- package/dist/prompts/creation-utils.d.ts +20 -0
- package/dist/prompts/creation-utils.d.ts.map +1 -0
- package/dist/prompts/creation-utils.js +92 -0
- package/dist/prompts/creation-utils.js.map +1 -0
- package/dist/prompts/index.d.ts +9 -2
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +23 -2
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/liquidity-positions.d.ts.map +1 -1
- package/dist/prompts/liquidity-positions.js +9 -44
- package/dist/prompts/liquidity-positions.js.map +1 -1
- package/dist/prompts/pools.d.ts +64 -0
- package/dist/prompts/pools.d.ts.map +1 -0
- package/dist/prompts/pools.js +445 -0
- package/dist/prompts/pools.js.map +1 -0
- package/dist/prompts/portfolio.d.ts.map +1 -1
- package/dist/prompts/portfolio.js +13 -48
- package/dist/prompts/portfolio.js.map +1 -1
- package/dist/prompts/social.d.ts +16 -0
- package/dist/prompts/social.d.ts.map +1 -0
- package/dist/prompts/social.js +87 -0
- package/dist/prompts/social.js.map +1 -0
- package/dist/prompts/trading-calculations.d.ts +52 -0
- package/dist/prompts/trading-calculations.d.ts.map +1 -0
- package/dist/prompts/trading-calculations.js +390 -0
- package/dist/prompts/trading-calculations.js.map +1 -0
- package/dist/prompts/trading.d.ts.map +1 -1
- package/dist/prompts/trading.js +23 -60
- package/dist/prompts/trading.js.map +1 -1
- package/dist/prompts/transfers.d.ts +16 -0
- package/dist/prompts/transfers.d.ts.map +1 -0
- package/dist/prompts/transfers.js +90 -0
- package/dist/prompts/transfers.js.map +1 -0
- package/dist/prompts/utility-tools.d.ts +56 -0
- package/dist/prompts/utility-tools.d.ts.map +1 -0
- package/dist/prompts/utility-tools.js +219 -0
- package/dist/prompts/utility-tools.js.map +1 -0
- package/dist/prompts/utility.d.ts.map +1 -1
- package/dist/prompts/utility.js +5 -20
- package/dist/prompts/utility.js.map +1 -1
- package/dist/prompts/utils/handlerHelpers.d.ts +35 -0
- package/dist/prompts/utils/handlerHelpers.d.ts.map +1 -0
- package/dist/prompts/utils/handlerHelpers.js +53 -0
- package/dist/prompts/utils/handlerHelpers.js.map +1 -0
- package/dist/prompts/utils/textTemplates.d.ts +42 -0
- package/dist/prompts/utils/textTemplates.d.ts.map +1 -0
- package/dist/prompts/utils/textTemplates.js +51 -0
- package/dist/prompts/utils/textTemplates.js.map +1 -0
- package/dist/utils/validation.d.ts +38 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +52 -0
- package/dist/utils/validation.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,123 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.23.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 2bab95b: feat: Add 50 new slash commands to achieve complete 1:1 MCP tool-to-command mapping
|
|
8
|
+
|
|
9
|
+
Complete implementation of user requirement: "every MCP tool should have a corresponding slash
|
|
10
|
+
command."
|
|
11
|
+
|
|
12
|
+
## Changes
|
|
13
|
+
|
|
14
|
+
### New Slash Commands (50 total)
|
|
15
|
+
|
|
16
|
+
**Pool Management (15 commands):**
|
|
17
|
+
- fetch-pools, fetch-all-pools, fetch-pool-details, fetch-pool-details-for-calculation
|
|
18
|
+
- fetch-token-details, fetch-token-distribution, fetch-token-badges, fetch-volume-data
|
|
19
|
+
- fetch-gala-spot-price, fetch-token-spot-price, fetch-launchpad-token-spot-price
|
|
20
|
+
- fetch-price-history, fetch-all-price-history
|
|
21
|
+
- check-token-name, check-token-symbol, resolve-vault-address, resolve-token-class-key
|
|
22
|
+
|
|
23
|
+
**Trading Calculations (11 commands):**
|
|
24
|
+
- calculate-buy-amount, calculate-sell-amount, fetch-trades, calculate-initial-buy
|
|
25
|
+
- get-bundler-transaction-result, calculate-graduation-cost
|
|
26
|
+
- calculate-buy-amount-local, calculate-buy-amount-external
|
|
27
|
+
- calculate-sell-amount-local, calculate-sell-amount-external
|
|
28
|
+
- is-token-graduated
|
|
29
|
+
|
|
30
|
+
**Balance & Portfolio (4 commands):**
|
|
31
|
+
- fetch-gala-balance, fetch-token-balance, fetch-tokens-created, update-profile
|
|
32
|
+
|
|
33
|
+
**Creation Utilities (3 commands):**
|
|
34
|
+
- upload-profile-image, upload-token-image, fetch-launch-token-fee
|
|
35
|
+
|
|
36
|
+
**Social & Comments (2 commands):**
|
|
37
|
+
- post-comment, fetch-comments
|
|
38
|
+
|
|
39
|
+
**Token Transfers (2 commands):**
|
|
40
|
+
- transfer-gala, transfer-token
|
|
41
|
+
|
|
42
|
+
**Utility & System (12 commands):**
|
|
43
|
+
- create-wallet, get-address, get-ethereum-address, get-config
|
|
44
|
+
- get-url-by-token-name, explain-sdk-usage, get-cache-info, clear-cache
|
|
45
|
+
- has-wallet, get-wallet, set-wallet, get-environment
|
|
46
|
+
|
|
47
|
+
### Tool Constants
|
|
48
|
+
|
|
49
|
+
**Updated `src/constants/mcpToolNames.ts`:**
|
|
50
|
+
- Added 14 new tool constants to POOL_TOOLS (moved FETCH_TOKEN_DETAILS, FETCH_PRICE_HISTORY,
|
|
51
|
+
FETCH_ALL_PRICE_HISTORY, and resolved vault/token class key tools)
|
|
52
|
+
- Expanded UTILITY_TOOLS from 6 to 14 tools (added cache management, wallet management,
|
|
53
|
+
environment/version tools)
|
|
54
|
+
- Updated comments to reflect "72 tools across 8 categories"
|
|
55
|
+
|
|
56
|
+
### New Prompt Files
|
|
57
|
+
|
|
58
|
+
Created 7 new prompt files with comprehensive handler functions:
|
|
59
|
+
- `src/prompts/pools.ts` - Pool management commands
|
|
60
|
+
- `src/prompts/trading-calculations.ts` - Trading calculation commands
|
|
61
|
+
- `src/prompts/balances.ts` - Balance query commands
|
|
62
|
+
- `src/prompts/creation-utils.ts` - Creation utility commands
|
|
63
|
+
- `src/prompts/social.ts` - Social/comments commands
|
|
64
|
+
- `src/prompts/transfers.ts` - Token transfer commands
|
|
65
|
+
- `src/prompts/utility-tools.ts` - Utility and system commands
|
|
66
|
+
|
|
67
|
+
### Documentation Updates
|
|
68
|
+
|
|
69
|
+
**Updated `packages/mcp-server/README.md`:**
|
|
70
|
+
- Updated tool count from 70 to 72 across all sections
|
|
71
|
+
- Updated slash command count from 23 to 72 (was only 18 original commands + 24 new ones = 42
|
|
72
|
+
documented, now 72 total)
|
|
73
|
+
- Added comprehensive documentation for all 48 new slash commands organized by category
|
|
74
|
+
- Added emphasis on "1:1 tool-to-command mapping" - core design philosophy
|
|
75
|
+
- Complete tool listings now include all utility tools (cache, wallet, environment management)
|
|
76
|
+
|
|
77
|
+
### Architecture Achievement
|
|
78
|
+
|
|
79
|
+
The implementation completes the core design goal: **Every MCP tool now has exactly one
|
|
80
|
+
corresponding slash command**, enabling users to interact with all backend functionality through
|
|
81
|
+
the familiar slash command interface.
|
|
82
|
+
|
|
83
|
+
**Tool-to-Command Mapping:**
|
|
84
|
+
- 72 MCP tools → 72 slash commands (perfect 1:1 ratio)
|
|
85
|
+
- 9 tool categories → 9 command category sections in documentation
|
|
86
|
+
- Consistent naming patterns for easy discovery (tool names match command names)
|
|
87
|
+
|
|
88
|
+
### Code Organization Improvements
|
|
89
|
+
|
|
90
|
+
**Updated MCP_TOOLS spread operator order in `src/constants/mcpToolNames.ts`:**
|
|
91
|
+
- Reordered to place UTILITY_TOOLS before DEX_TOOLS and LIQUIDITY_TOOLS
|
|
92
|
+
- New order: POOL → TRADING → BALANCE → CREATION → SOCIAL → TRANSFER → UTILITY → DEX → LIQUIDITY
|
|
93
|
+
- Improves code consistency and follows logical category ordering
|
|
94
|
+
|
|
95
|
+
### Validation Improvements
|
|
96
|
+
|
|
97
|
+
Fixed validation function calls in all new prompt files to use correct function signatures:
|
|
98
|
+
- `validateTokenName(name, fieldName)` - Added fieldName parameter
|
|
99
|
+
- `validateAddress(address, fieldName)` - Added fieldName parameter
|
|
100
|
+
- `validateNumericAmount(amount, fieldName)` - Added required fieldName parameter
|
|
101
|
+
- Improved error messages when validation fails
|
|
102
|
+
|
|
103
|
+
### Test Coverage
|
|
104
|
+
|
|
105
|
+
All tests passing:
|
|
106
|
+
- TypeScript compilation: 0 errors
|
|
107
|
+
- Jest test suite: 1401 tests across 30 test suites
|
|
108
|
+
- ESLint: 0 linting issues
|
|
109
|
+
- Registry tests: Validates all 72 prompts are registered and discoverable
|
|
110
|
+
|
|
111
|
+
## Why This Matters
|
|
112
|
+
|
|
113
|
+
User's explicit requirement: _"why would a functionality be worth of a 'tool' that the mcp can
|
|
114
|
+
use, but not a / command I can use? It just seems like slashes should be mainly for exposing mcp
|
|
115
|
+
tools for quick consumption"_
|
|
116
|
+
|
|
117
|
+
This implementation fulfills that philosophy by ensuring complete parity between available tools
|
|
118
|
+
and available commands. Users never encounter a capability they can't access from the slash
|
|
119
|
+
command interface.
|
|
120
|
+
|
|
3
121
|
## 1.22.4
|
|
4
122
|
|
|
5
123
|
### Patch Changes
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
# DRY Refactoring Guide for MCP Server Prompts
|
|
2
|
+
|
|
3
|
+
This guide documents the DRY (Don't Repeat Yourself) refactoring improvements made to the MCP server codebase.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The refactoring reduces code duplication across 72 prompt handlers by introducing reusable utilities while maintaining 100% API compatibility.
|
|
8
|
+
|
|
9
|
+
**Potential Impact:** ~526 LOC reduction with zero breaking changes
|
|
10
|
+
|
|
11
|
+
## Utility Files Created
|
|
12
|
+
|
|
13
|
+
### 1. `src/prompts/utils/handlerHelpers.ts`
|
|
14
|
+
|
|
15
|
+
Provides reusable helpers for creating standardized MCP prompt handlers.
|
|
16
|
+
|
|
17
|
+
**Functions:**
|
|
18
|
+
- `createPromptResponse(text: string)` - Creates a standard MCP message response
|
|
19
|
+
- `createValidatedHandler<T>(validator, textGenerator)` - Creates a handler with validation + response generation
|
|
20
|
+
|
|
21
|
+
**Benefit:** Eliminates ~360 lines of boilerplate (5 lines per handler × 72 handlers)
|
|
22
|
+
|
|
23
|
+
### 2. `src/prompts/utils/textTemplates.ts`
|
|
24
|
+
|
|
25
|
+
Provides template generators for common prompt patterns.
|
|
26
|
+
|
|
27
|
+
**Functions:**
|
|
28
|
+
- `createSimpleOperationText(config)` - Generates text for simple operation prompts following standard format
|
|
29
|
+
|
|
30
|
+
**Benefit:** Eliminates ~120 lines of template code (~3 lines per simple prompt × 40 prompts)
|
|
31
|
+
|
|
32
|
+
### 3. Updated `src/utils/validation.ts`
|
|
33
|
+
|
|
34
|
+
Added optional validation convenience wrappers.
|
|
35
|
+
|
|
36
|
+
**New Functions:**
|
|
37
|
+
- `validateOptional<T>(value, validator)` - Generic optional field validator
|
|
38
|
+
- `validateOptionalSlippage(slippage?)` - Optional slippage validation
|
|
39
|
+
- `validateOptionalLimit(limit?, max)` - Optional limit validation
|
|
40
|
+
- `validateOptionalAddress(address?)` - Optional address validation
|
|
41
|
+
|
|
42
|
+
**Benefit:** Eliminates ~46 lines of conditional validation (2 lines × 23 instances)
|
|
43
|
+
|
|
44
|
+
## Refactoring Patterns
|
|
45
|
+
|
|
46
|
+
### Pattern 1: Standardized Handler Response
|
|
47
|
+
|
|
48
|
+
**Before:**
|
|
49
|
+
```typescript
|
|
50
|
+
handler: (args) => {
|
|
51
|
+
validateTokenName(args.tokenName);
|
|
52
|
+
return [
|
|
53
|
+
{
|
|
54
|
+
role: 'user',
|
|
55
|
+
content: {
|
|
56
|
+
type: 'text',
|
|
57
|
+
text: `Fetch token ${args.tokenName}...`,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**After:**
|
|
65
|
+
```typescript
|
|
66
|
+
import { createPromptResponse } from './utils/handlerHelpers.js';
|
|
67
|
+
|
|
68
|
+
handler: (args) => {
|
|
69
|
+
validateTokenName(args.tokenName);
|
|
70
|
+
return createPromptResponse(`Fetch token ${args.tokenName}...`);
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Where to Apply:**
|
|
75
|
+
- All 72 prompt handlers across all prompt files
|
|
76
|
+
- Any prompt file in `src/prompts/*.ts`
|
|
77
|
+
|
|
78
|
+
### Pattern 2: Optional Validation
|
|
79
|
+
|
|
80
|
+
**Before:**
|
|
81
|
+
```typescript
|
|
82
|
+
if (args.slippage) {
|
|
83
|
+
validateSlippage(args.slippage);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (args.limit) {
|
|
87
|
+
validatePaginationLimit(args.limit, 100);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (args.address) {
|
|
91
|
+
validateAddress(args.address);
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**After:**
|
|
96
|
+
```typescript
|
|
97
|
+
import { validateOptionalSlippage, validateOptionalLimit, validateOptionalAddress } from '../utils/validation.js';
|
|
98
|
+
|
|
99
|
+
validateOptionalSlippage(args.slippage);
|
|
100
|
+
validateOptionalLimit(args.limit, 100);
|
|
101
|
+
validateOptionalAddress(args.address);
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Where to Apply:**
|
|
105
|
+
- `trading.ts` - 6 slippage validations
|
|
106
|
+
- `portfolio.ts` - 3 limit validations
|
|
107
|
+
- `analysis.ts` - 4 limit validations, 3 tokenName optional checks
|
|
108
|
+
- `balances.ts` - 4 address validations
|
|
109
|
+
- Other prompt files with optional parameters
|
|
110
|
+
|
|
111
|
+
### Pattern 3: Simple Operation Text Templates
|
|
112
|
+
|
|
113
|
+
**Before:**
|
|
114
|
+
```typescript
|
|
115
|
+
text: `Fetch GALA balance for wallet.
|
|
116
|
+
|
|
117
|
+
${args.address ? `Address: ${args.address}` : 'Using default wallet'}
|
|
118
|
+
|
|
119
|
+
Use ${MCP_TOOLS.FETCH_GALA_BALANCE} to retrieve the GALA balance.
|
|
120
|
+
|
|
121
|
+
Display the balance in a clear format.`
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**After:**
|
|
125
|
+
```typescript
|
|
126
|
+
import { createSimpleOperationText } from './utils/textTemplates.js';
|
|
127
|
+
|
|
128
|
+
text: createSimpleOperationText({
|
|
129
|
+
operation: 'Fetch GALA balance for wallet.',
|
|
130
|
+
parameters: {
|
|
131
|
+
address: args.address ? `Address: ${args.address}` : 'Using default wallet'
|
|
132
|
+
},
|
|
133
|
+
toolName: MCP_TOOLS.FETCH_GALA_BALANCE,
|
|
134
|
+
actionDescription: 'retrieve the GALA balance',
|
|
135
|
+
displayFormat: 'Display the balance in a clear format.'
|
|
136
|
+
})
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Where to Apply:**
|
|
140
|
+
- All 40+ simple operation prompts across prompt files
|
|
141
|
+
- Prompts that follow the operation → parameters → tool usage → display format structure
|
|
142
|
+
|
|
143
|
+
## Implementation Checklist
|
|
144
|
+
|
|
145
|
+
### Phase 1: Handler Boilerplate (Highest Priority)
|
|
146
|
+
- [ ] Update all imports in prompt files to include `createPromptResponse`
|
|
147
|
+
- [ ] Replace all `return [{ role: 'user', content: { type: 'text', text: ... } }]` with `return createPromptResponse(...)`
|
|
148
|
+
- [ ] Files to update:
|
|
149
|
+
- [ ] `pools.ts` (14 handlers)
|
|
150
|
+
- [ ] `trading-calculations.ts` (11 handlers)
|
|
151
|
+
- [ ] `balances.ts` (4 handlers)
|
|
152
|
+
- [ ] `creation-utils.ts` (3 handlers)
|
|
153
|
+
- [ ] `social.ts` (2 handlers)
|
|
154
|
+
- [ ] `transfers.ts` (2 handlers)
|
|
155
|
+
- [ ] `utility-tools.ts` (12 handlers)
|
|
156
|
+
- [ ] All other prompt files (existing, not listed)
|
|
157
|
+
|
|
158
|
+
### Phase 2: Optional Validation (High Priority)
|
|
159
|
+
- [ ] Update imports in prompt files
|
|
160
|
+
- [ ] Replace conditional validation patterns with new optional validators
|
|
161
|
+
- [ ] High-impact files:
|
|
162
|
+
- [ ] `trading.ts` (6 instances)
|
|
163
|
+
- [ ] `portfolio.ts` (7 instances)
|
|
164
|
+
- [ ] `analysis.ts` (7 instances)
|
|
165
|
+
- [ ] `balances.ts` (4 instances)
|
|
166
|
+
|
|
167
|
+
### Phase 3: Text Templates (Medium Priority)
|
|
168
|
+
- [ ] Identify all simple operation prompts
|
|
169
|
+
- [ ] Update imports
|
|
170
|
+
- [ ] Replace template code with `createSimpleOperationText()`
|
|
171
|
+
- [ ] Estimated 40 prompts across multiple files
|
|
172
|
+
|
|
173
|
+
### Phase 4: Verification
|
|
174
|
+
- [ ] Run TypeScript compilation: `npx tsc --noEmit`
|
|
175
|
+
- [ ] Run tests: `npm test`
|
|
176
|
+
- [ ] Run linting: `npm run lint`
|
|
177
|
+
- [ ] Verify no regression in test count (should remain 1401+ passing)
|
|
178
|
+
- [ ] Verify all prompts produce identical output
|
|
179
|
+
|
|
180
|
+
## Code Sample: Complete Refactored Handler
|
|
181
|
+
|
|
182
|
+
### Before:
|
|
183
|
+
```typescript
|
|
184
|
+
export const fetchGalaSpotPricePrompt: MCPPrompt = {
|
|
185
|
+
name: 'galachain-launchpad:fetch-gala-spot-price',
|
|
186
|
+
description: 'Fetch current GALA USD spot price',
|
|
187
|
+
handler: () => {
|
|
188
|
+
return [
|
|
189
|
+
{
|
|
190
|
+
role: 'user',
|
|
191
|
+
content: {
|
|
192
|
+
type: 'text',
|
|
193
|
+
text: `Fetch the current GALA USD spot price.
|
|
194
|
+
|
|
195
|
+
Use ${MCP_TOOLS.FETCH_GALA_SPOT_PRICE} to get the latest GALA price in USD.
|
|
196
|
+
|
|
197
|
+
Display the price in a clear format.`,
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
];
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### After:
|
|
206
|
+
```typescript
|
|
207
|
+
import { createPromptResponse } from './utils/handlerHelpers.js';
|
|
208
|
+
import { createSimpleOperationText } from './utils/textTemplates.js';
|
|
209
|
+
|
|
210
|
+
export const fetchGalaSpotPricePrompt: MCPPrompt = {
|
|
211
|
+
name: 'galachain-launchpad:fetch-gala-spot-price',
|
|
212
|
+
description: 'Fetch current GALA USD spot price',
|
|
213
|
+
handler: () =>
|
|
214
|
+
createPromptResponse(
|
|
215
|
+
createSimpleOperationText({
|
|
216
|
+
operation: 'Fetch the current GALA USD spot price.',
|
|
217
|
+
toolName: MCP_TOOLS.FETCH_GALA_SPOT_PRICE,
|
|
218
|
+
actionDescription: 'get the latest GALA price in USD',
|
|
219
|
+
displayFormat: 'Display the price in a clear format.'
|
|
220
|
+
})
|
|
221
|
+
),
|
|
222
|
+
};
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## Benefits
|
|
226
|
+
|
|
227
|
+
| Aspect | Benefit |
|
|
228
|
+
|--------|---------|
|
|
229
|
+
| **Maintainability** | Single point of change for response structure, validation logic, and text formatting |
|
|
230
|
+
| **Consistency** | All prompts follow identical patterns, easier to understand and predict behavior |
|
|
231
|
+
| **Testability** | Utility functions can be tested independently |
|
|
232
|
+
| **Scalability** | Adding new prompts is faster and less error-prone |
|
|
233
|
+
| **LOC Reduction** | ~526 lines of boilerplate eliminated |
|
|
234
|
+
| **API Compatibility** | Zero breaking changes, 100% backward compatible |
|
|
235
|
+
|
|
236
|
+
## Testing Strategy
|
|
237
|
+
|
|
238
|
+
1. **Unit Tests:** Add tests for utility functions if not present
|
|
239
|
+
2. **Integration Tests:** Verify all 72 prompts still produce identical output
|
|
240
|
+
3. **Regression Tests:** Ensure no prompt behavior changes
|
|
241
|
+
4. **Type Safety:** Full TypeScript compilation with strict checks
|
|
242
|
+
|
|
243
|
+
## Timeline
|
|
244
|
+
|
|
245
|
+
- **Phase 1 (Handler Boilerplate):** ~1 hour (72 handlers, mechanical change)
|
|
246
|
+
- **Phase 2 (Optional Validation):** ~30 minutes (23 instances)
|
|
247
|
+
- **Phase 3 (Text Templates):** ~45 minutes (40 prompts)
|
|
248
|
+
- **Phase 4 (Testing/Verification):** ~15 minutes
|
|
249
|
+
- **Total:** ~2.5 hours for complete refactoring
|
|
250
|
+
|
|
251
|
+
## Risk Assessment
|
|
252
|
+
|
|
253
|
+
| Phase | Risk | Mitigation |
|
|
254
|
+
|-------|------|-----------|
|
|
255
|
+
| 1 | **LOW** | Pure mechanical change, output unchanged | Full test coverage |
|
|
256
|
+
| 2 | **LOW** | Logic preservation via wrappers | Verify validation behavior |
|
|
257
|
+
| 3 | **LOW** | Template-based generation | Compare output strings |
|
|
258
|
+
| Overall | **LOW** | No API changes, well-tested utilities | Comprehensive testing |
|
|
259
|
+
|
|
260
|
+
## Notes
|
|
261
|
+
|
|
262
|
+
- All changes are internal implementation details
|
|
263
|
+
- No MCP tool signatures change
|
|
264
|
+
- All changes follow DRY principle without adding unnecessary complexity
|
|
265
|
+
- Utilities are properly documented with JSDoc comments
|
|
266
|
+
- Both new utility files include comprehensive examples
|
|
267
|
+
|
|
268
|
+
## See Also
|
|
269
|
+
|
|
270
|
+
- `src/prompts/utils/handlerHelpers.ts` - Handler utilities
|
|
271
|
+
- `src/prompts/utils/textTemplates.ts` - Template utilities
|
|
272
|
+
- `src/utils/validation.ts` - Validation utilities (updated)
|
package/README.md
CHANGED
|
@@ -4,8 +4,8 @@ MCP (Model Context Protocol) server for Gala Launchpad SDK - Enables AI agents t
|
|
|
4
4
|
|
|
5
5
|
## 🚀 Features
|
|
6
6
|
|
|
7
|
-
- **
|
|
8
|
-
- **
|
|
7
|
+
- **72 AI-accessible tools** for complete Gala Launchpad integration (includes 18 pool management tools, 13 trading operation tools, 6 balance & portfolio tools, 5 token creation tools, 2 transfer tools, 2 social/comment tools, 14 utility tools, 5 GSwap DEX trading tools, 8 liquidity position tools)
|
|
8
|
+
- **72 slash commands** (prompts) for 1:1 mapping to all MCP tools - every tool has a corresponding slash command
|
|
9
9
|
- **Type-safe** - Full TypeScript support with validated inputs
|
|
10
10
|
- **Production-ready** - Built on [@gala-chain/launchpad-sdk ](https://www.npmjs.com/package/@gala-chain/launchpad-sdk)
|
|
11
11
|
- **Easy setup** - Works with Claude Desktop and other MCP clients
|
|
@@ -98,7 +98,7 @@ Use the wallet management tools to upgrade or switch wallets at runtime:
|
|
|
98
98
|
- `gala_launchpad_set_wallet` - Upgrade from read-only to full-access mode
|
|
99
99
|
- `gala_launchpad_get_wallet` - Retrieve wallet information
|
|
100
100
|
|
|
101
|
-
## 🛠️ Available Tools (
|
|
101
|
+
## 🛠️ Available Tools (72 Total)
|
|
102
102
|
|
|
103
103
|
### Pool Management (17 tools)
|
|
104
104
|
- `gala_launchpad_fetch_pools` - Fetch token pools with filtering
|
|
@@ -413,12 +413,20 @@ Ask Claude:
|
|
|
413
413
|
- `gala_launchpad_transfer_gala` - Transfer GALA tokens
|
|
414
414
|
- `gala_launchpad_transfer_token` - Transfer launchpad tokens
|
|
415
415
|
|
|
416
|
-
### Utility Tools (
|
|
416
|
+
### Utility Tools (14 tools)
|
|
417
417
|
- `gala_launchpad_create_wallet` - Create new GalaChain wallet
|
|
418
418
|
- `gala_launchpad_get_address` - Get user's GalaChain address
|
|
419
419
|
- `gala_launchpad_get_ethereum_address` - Get user's Ethereum address
|
|
420
420
|
- `gala_launchpad_get_config` - Get current SDK configuration
|
|
421
421
|
- `gala_launchpad_get_url_by_token_name` - Generate frontend URL for a token
|
|
422
|
+
- `gala_launchpad_explain_sdk_usage` - Get SDK code examples for specific topics
|
|
423
|
+
- `gala_launchpad_get_cache_info` - Get token metadata cache statistics
|
|
424
|
+
- `gala_launchpad_clear_cache` - Clear token metadata cache
|
|
425
|
+
- `gala_launchpad_has_wallet` - Check if wallet is configured
|
|
426
|
+
- `gala_launchpad_get_wallet` - Get currently configured wallet instance
|
|
427
|
+
- `gala_launchpad_set_wallet` - Configure wallet for signing operations
|
|
428
|
+
- `gala_launchpad_get_environment` - Get current MCP server environment
|
|
429
|
+
- `gala_launchpad_switch_environment` - Switch MCP server environment
|
|
422
430
|
- `gala_launchpad_get_version` - Get SDK and MCP server version information
|
|
423
431
|
|
|
424
432
|
## 💡 Example Usage
|
|
@@ -435,9 +443,9 @@ Ask Claude (or your AI assistant):
|
|
|
435
443
|
|
|
436
444
|
> "Show me all tokens I'm holding"
|
|
437
445
|
|
|
438
|
-
## ⚡ Slash Commands (Prompts)
|
|
446
|
+
## ⚡ Slash Commands (Prompts) - 1:1 Tool Mapping
|
|
439
447
|
|
|
440
|
-
The MCP server exposes **
|
|
448
|
+
The MCP server exposes **72 slash commands** (prompts) for complete 1:1 mapping to all MCP tools - every tool has a corresponding slash command for quick access. These appear as `/galachain-launchpad:<<method>>` in Claude Desktop.
|
|
441
449
|
|
|
442
450
|
### Trading Commands (4 commands)
|
|
443
451
|
|
|
@@ -493,7 +501,7 @@ The MCP server exposes **18 slash commands** that provide quick access to common
|
|
|
493
501
|
- **Arguments**: None
|
|
494
502
|
- Displays profile info, wallet addresses, activity metrics, and current balance
|
|
495
503
|
|
|
496
|
-
### Analysis Commands (
|
|
504
|
+
### Analysis Commands (6 commands)
|
|
497
505
|
|
|
498
506
|
**`/galachain-launchpad:compare-tokens`**
|
|
499
507
|
- Side-by-side comparison of two tokens
|
|
@@ -544,7 +552,74 @@ The MCP server exposes **18 slash commands** that provide quick access to common
|
|
|
544
552
|
- **Example**: `/galachain-launchpad:discover-tokens type=near-graduation minProgress=90 limit=10`
|
|
545
553
|
- Helps find investment opportunities with filtering and analysis
|
|
546
554
|
|
|
547
|
-
###
|
|
555
|
+
### Pool Management Commands (13 commands)
|
|
556
|
+
|
|
557
|
+
**`/galachain-launchpad:fetch-pools`** - Fetch token pools with filtering
|
|
558
|
+
**`/galachain-launchpad:fetch-pool-details-for-calculation`** - Get optimized pool details for local calculations
|
|
559
|
+
**`/galachain-launchpad:fetch-token-details`** - Fetch comprehensive token metadata
|
|
560
|
+
**`/galachain-launchpad:fetch-token-distribution`** - Get holder distribution and supply metrics
|
|
561
|
+
**`/galachain-launchpad:fetch-token-badges`** - Get achievement badges for volume and engagement
|
|
562
|
+
**`/galachain-launchpad:fetch-volume-data`** - Get OHLCV (candlestick) data for charting
|
|
563
|
+
**`/galachain-launchpad:fetch-gala-spot-price`** - Fetch current GALA USD spot price
|
|
564
|
+
**`/galachain-launchpad:fetch-price-history`** - Fetch historical price snapshots with pagination
|
|
565
|
+
**`/galachain-launchpad:fetch-all-price-history`** - Fetch all historical price data (auto-paginated)
|
|
566
|
+
**`/galachain-launchpad:check-token-name`** - Check if token name is available
|
|
567
|
+
**`/galachain-launchpad:check-token-symbol`** - Check if token symbol is available
|
|
568
|
+
**`/galachain-launchpad:resolve-vault-address`** - Get GalaChain vault address for a token
|
|
569
|
+
**`/galachain-launchpad:resolve-token-class-key`** - Get GalaChain TokenClassKey for a token
|
|
570
|
+
|
|
571
|
+
### Trading Calculation Commands (11 commands)
|
|
572
|
+
|
|
573
|
+
**`/galachain-launchpad:calculate-buy-amount`** - Calculate token amounts for buying
|
|
574
|
+
**`/galachain-launchpad:calculate-sell-amount`** - Calculate GALA amounts for selling
|
|
575
|
+
**`/galachain-launchpad:fetch-trades`** - Query trading history with optional filters
|
|
576
|
+
**`/galachain-launchpad:calculate-initial-buy`** - Calculate pre-buy amounts during token creation
|
|
577
|
+
**`/galachain-launchpad:get-bundler-transaction-result`** - Check bundler transaction status by ID
|
|
578
|
+
**`/galachain-launchpad:calculate-graduation-cost`** - Calculate cost to graduate a token pool
|
|
579
|
+
**`/galachain-launchpad:calculate-buy-amount-local`** - Calculate buy amount using LOCAL bonding curve (instant)
|
|
580
|
+
**`/galachain-launchpad:calculate-buy-amount-external`** - Calculate buy amount using EXTERNAL GalaChain call
|
|
581
|
+
**`/galachain-launchpad:calculate-sell-amount-local`** - Calculate sell amount using LOCAL bonding curve
|
|
582
|
+
**`/galachain-launchpad:calculate-sell-amount-external`** - Calculate sell amount using EXTERNAL GalaChain call
|
|
583
|
+
**`/galachain-launchpad:is-token-graduated`** - Check if token has completed bonding curve and graduated to DEX
|
|
584
|
+
|
|
585
|
+
### Balance & Portfolio Commands (4 commands)
|
|
586
|
+
|
|
587
|
+
**`/galachain-launchpad:fetch-gala-balance`** - Get your GALA balance
|
|
588
|
+
**`/galachain-launchpad:fetch-token-balance`** - Get balance for a specific token
|
|
589
|
+
**`/galachain-launchpad:fetch-tokens-created`** - List tokens you've created with status
|
|
590
|
+
**`/galachain-launchpad:update-profile`** - Update your user profile information
|
|
591
|
+
|
|
592
|
+
### Creation Utility Commands (2 commands)
|
|
593
|
+
|
|
594
|
+
**`/galachain-launchpad:upload-profile-image`** - Upload profile image from filesystem
|
|
595
|
+
**`/galachain-launchpad:fetch-launch-token-fee`** - Get current GALA fee required to launch a token
|
|
596
|
+
|
|
597
|
+
### Social & Comments Commands (2 commands)
|
|
598
|
+
|
|
599
|
+
**`/galachain-launchpad:post-comment`** - Post a comment on a token pool
|
|
600
|
+
**`/galachain-launchpad:fetch-comments`** - Get comments for a token pool
|
|
601
|
+
|
|
602
|
+
### Transfer Commands (2 commands)
|
|
603
|
+
|
|
604
|
+
**`/galachain-launchpad:transfer-gala`** - Transfer GALA tokens to another wallet
|
|
605
|
+
**`/galachain-launchpad:transfer-token`** - Transfer launchpad tokens to another wallet
|
|
606
|
+
|
|
607
|
+
### Utility & System Commands (12 commands)
|
|
608
|
+
|
|
609
|
+
**`/galachain-launchpad:create-wallet`** - Generate a new wallet with random private key
|
|
610
|
+
**`/galachain-launchpad:get-address`** - Get the GalaChain format address of authenticated wallet
|
|
611
|
+
**`/galachain-launchpad:get-ethereum-address`** - Get the standard Ethereum address format of authenticated wallet
|
|
612
|
+
**`/galachain-launchpad:get-config`** - View current SDK and MCP server configuration
|
|
613
|
+
**`/galachain-launchpad:get-url-by-token-name`** - Get the launchpad frontend URL for a token
|
|
614
|
+
**`/galachain-launchpad:explain-sdk-usage`** - Get detailed SDK usage examples for a topic
|
|
615
|
+
**`/galachain-launchpad:get-cache-info`** - Get token metadata cache statistics
|
|
616
|
+
**`/galachain-launchpad:clear-cache`** - Clear token metadata cache
|
|
617
|
+
**`/galachain-launchpad:has-wallet`** - Check if a wallet is configured in the MCP server
|
|
618
|
+
**`/galachain-launchpad:get-wallet`** - Get the currently configured wallet instance
|
|
619
|
+
**`/galachain-launchpad:set-wallet`** - Configure a wallet for signing operations
|
|
620
|
+
**`/galachain-launchpad:get-environment`** - Get the current MCP server environment
|
|
621
|
+
|
|
622
|
+
### Version Command (1 command)
|
|
548
623
|
|
|
549
624
|
**`/galachain-launchpad:version`**
|
|
550
625
|
- Display SDK and MCP server version information
|