@gala-chain/gala-mcp-server
Version: 1.0.0 release candidate (dist-tag next). Supersedes @gala-chain/launchpad-mcp-server
(last release 8.1.0): same tools, same names, same environment variables; the bin is now gala-mcp.
MCP (Model Context Protocol) server for GalaChain: wallets, bridging and wrapping (gala-core-sdk), the Gala Launchpad backend (launchpad-sdk) and the GSwap DEX (gswap-sdk), in toolsets you select.
Setting this up for Claude Code, Claude Desktop or Cursor, or using the omni-tool Claude Code plugin:
Use Gala from AI tools.
🚀 Features
- 324 tools and 286 prompts (slash commands) in four toolsets you select: load only the part of the Gala stack you use, so the model's context does not carry tools it will never call
- Type-safe - TypeScript, with every input validated against the schema the tool publishes
- Built on the Gala SDKs - @gala-chain/gala-core-sdk, @gala-chain/launchpad-sdk and @gala-chain/gswap-sdk
- Read-only and full-access modes - without
PRIVATE_KEYevery read works and writes say they need a wallet - Real-time monitoring - WebSocket-based watchers for pool and token creation events
- Works with Claude Desktop, Claude Code and any MCP client over stdio
🧰 Toolsets
The server is one package with tools grouped by the SDK they use. GALA_TOOLSETS (or --toolsets) picks the
groups; the default is all of them. A toolset you do not select is never loaded: its tools are not listed, and
its SDK is not even imported (a launchpad-only run never loads gswap-sdk).
| Toolset | Tools | Prompts | SDKs | What is in it |
|---|---|---|---|---|
core | 47 | 30 | gala-core-sdk | Wallet and key tools (create wallet, addresses, key derivation), the session wallet and environment (set_wallet, switch_environment), versions, the GALA balance and GALA transfers (fetch_gala_balance, transfer_gala), cross-chain bridging (GalaChain, Ethereum, Solana), wrap/unwrap, external chain balances, explain_sdk_usage |
launchpad | 242 | 213 | gala-core-sdk + launchpad-sdk | The launchpad backend: pools and bonding-curve trading, token creation, launchpad token balances and transfers, locks and burns, NFTs, holders, streaming, chat, auth, moderation, overseers, API keys, content flags, WebSocket events |
gswap | 32 | 34 | gala-core-sdk + gswap-sdk | The GSwap DEX: swap quotes and swaps, pools, liquidity positions and fees, market prices, leaderboard and seasons, pool-creation watcher |
composite | 3 | 9 | launchpad-sdk + gswap-sdk | Launchpad token prices and price history from the DEX market. Not selectable: enabled exactly when launchpad and gswap both are |
Tool names do not change with the toolset (they all keep the gala_launchpad_ prefix, DEX tools included), so
prompts, docs and plugins refer to the same names whichever toolsets run. The full per-tool classification,
with the reason each tool is in its group, is in docs/TOOLSET-CLASSIFICATION.md.
Selecting toolsets
GALA_TOOLSETS=core,gswap gala-mcp # environment variable
gala-mcp --toolsets launchpad # command line (wins over the variable)
| Selection | Tools | Prompts |
|---|---|---|
core,launchpad,gswap (default) | 324 | 286 |
launchpad | 242 | 209 |
gswap | 32 | 34 |
core | 47 | 30 |
core,launchpad | 289 | 243 |
core,gswap | 79 | 64 |
launchpad,gswap (+ composite) | 277 | 250 |
- Names are comma separated and case-insensitive; order does not matter. An unknown name, an empty entry
(
core,,gswap), an empty--toolsetsorcompositeis a startup error that names the valid toolsets: a typo never silently turns tools off. - A prompt is listed only when every tool its text names is in the selection, and
explain_sdk_usageonly offers the topics whose tools are in the selection. That is whylaunchpadalone lists 209 of its 213 prompts: the others also name acoretool (for example the bridge tools, or the GALA balance).explain_sdk_usageis acoretool; addcoreto get it. - The GALA balance and GALA transfers (
gala_launchpad_fetch_gala_balance,gala_launchpad_transfer_gala) arecoretools (since 1.0.0-rc.1; they werelaunchpad's in 1.0.0-rc.0): a launchpad user who needs them selectscore,launchpad. - The wallet, environment and settings (
PRIVATE_KEY,ENVIRONMENT, ...) are shared by every toolset and read the same way whichever toolsets run.set_walletandswitch_environmentlive incore: withoutcorethe wallet is the one from the environment for the whole run. - At startup the server logs the enabled toolsets and the tool and prompt counts to stderr.
Which install line
# everything (default)
claude mcp add "gala" -- env PRIVATE_KEY=0x... ENVIRONMENT=prod npx -y @gala-chain/gala-mcp-server@next
# launchpad only (plus the core tools: wallet, GALA balance and transfer, bridge)
claude mcp add "gala-launchpad" -- env GALA_TOOLSETS=core,launchpad PRIVATE_KEY=0x... ENVIRONMENT=prod npx -y @gala-chain/gala-mcp-server@next
# DEX only (plus the core tools: wallet, GALA balance and transfer, bridge)
claude mcp add "gala-swap" -- env GALA_TOOLSETS=core,gswap PRIVATE_KEY=0x... ENVIRONMENT=prod npx -y @gala-chain/gala-mcp-server@next
@next (or the exact version, 1.0.0-rc.9, as @gala-chain/gala-mcp-server@<version>) is required while 1.0.0 is a release candidate:
^1.0.0 matches no prerelease, and the latest dist-tag can still name an older release candidate.
📦 Installation
npm install -g @gala-chain/gala-mcp-server@next
1.0.0 is published as a release candidate under the next dist-tag: install @next or the exact version
(the exact version, 1.0.0-rc.9, as @gala-chain/gala-mcp-server@<version>); a range such as ^1.0.0 matches no release candidate.
Module Format
The server is an ES module (dist/index.js, "type": "module", bin gala-mcp) for Node.js 20 or newer. The three
Gala SDKs are regular dependencies, installed once each; @solana/web3.js and @solana/spl-token are dependencies
too, because the bridge and wrap tools (core's ./bridge) need them. Without them the server still starts and lists
every tool; only the bridge and wrap tools answer with an error that names the missing package.
🏁 Quick Start
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"gala": {
"command": "npx",
"args": ["-y", "@gala-chain/gala-mcp-server@next"],
"env": {
"PRIVATE_KEY": "0x1234567890abcdef...",
"ENVIRONMENT": "prod"
}
}
}
}
Environment Variables:
GALA_TOOLSETS(optional) - comma list ofcore,launchpad,gswap(default: all; see Toolsets)PRIVATE_KEY(optional) - Your Ethereum wallet private key (omit for read-only mode)ENVIRONMENT(optional) -prodorstage(default:prod)TIMEOUT(optional) - Request timeout in milliseconds (default: 30000)ETHEREUM_RPC_URL(optional) - Custom Ethereum RPC URL (default: the SDK's built-in endpoints)SOLANA_RPC_URL(optional) - Custom Solana RPC URL for bridge operations (default: public Solana endpoints)SOLANA_PRIVATE_KEY(optional) - Solana key for bridge operationsSTREAM_WEBSOCKET_URL(optional) - Custom stream WebSocket endpointSTREAM_ADMIN_API_KEY(optional) - Stream administration accessUSER_API_KEY(optional) - User API authenticationDEBUG(optional) -trueto enable debug loggingGALA_DOCS_BASE_URL(optional) - the docs site the documentation tools read (default:https://docs.gala.com)GALA_DOCS_CACHE_DIR(optional) - where the fetched docs index is kept (default: the user cache directory)GALA_DOCS_CACHE_TTL_SECONDS(optional) - how long the cached docs index is fresh (default: 3600)GALA_DOCS_OFFLINE(optional) -1never asks the docs site; the bundled index answers
The documentation tools (gala_launchpad_search_gala_docs, and the docs field of
gala_launchpad_explain_sdk_usage) search the docs site's index and work without it: a bundled copy
(at most 300 KB compressed) answers when the site cannot be reached. The site lists every package's
agent guide in /llms.txt; the machine-readable tool reference is at /mcp/tools.json.
Using with Claude Desktop
- Install:
npm install -g @gala-chain/gala-mcp-server@next - Configure: Add server to
claude_desktop_config.json(see above) - Restart Claude Desktop
- Use tools: Ask Claude to interact with Gala Launchpad!
🔐 Operational Modes
The MCP server supports two operational modes with dynamic wallet configuration:
Full-Access Mode (with PRIVATE_KEY)
- Execute token trades (buy/sell)
- Create new tokens
- Transfer GALA and tokens
- Update profile information
- All read operations (fetch pools, prices, balances, etc.)
Setup:
claude mcp add "gala" -- env PRIVATE_KEY=0x... ENVIRONMENT=prod npx -y @gala-chain/gala-mcp-server@next
Read-Only Mode (without PRIVATE_KEY)
- Fetch token pools and details
- Get real-time prices and price history
- Check balances and portfolio
- Explore token metadata and distributions
- Cannot: Execute trades, create tokens, transfer funds (operations requiring wallet signatures)
Setup:
claude mcp add "gala-readonly" -- env ENVIRONMENT=prod npx -y @gala-chain/gala-mcp-server@next
Dynamic Wallet Configuration
Use the wallet management tools to upgrade or switch wallets at runtime:
gala_launchpad_has_wallet- Check current wallet statusgala_launchpad_set_wallet- Upgrade from read-only to full-access modegala_launchpad_get_wallet- Retrieve wallet information
🛠️ Available Tools
Pool Management, Pricing & Event Watchers
gala_launchpad_fetch_pools- Fetch token pools with filteringgala_launchpad_fetch_all_pools- Fetch all available pools with automatic paginationgala_launchpad_fetch_pool_details- Get detailed pool stategala_launchpad_fetch_pool_details_for_calculation- Get optimized pool details for local calculationsgala_launchpad_fetch_composite_pool_data- NEW v2.0 - Fetch a raw GSwap pool snapshotgala_launchpad_fetch_token_distribution- Get holder distributiongala_launchpad_fetch_volume_data- Get OHLCV charting datagala_launchpad_fetch_token_spot_price- Fetch USD spot price for DEX tokensgala_launchpad_fetch_gala_spot_price- Fetch current GALA USD spot pricegala_launchpad_fetch_launchpad_token_spot_price- Fetch USD spot price for launchpad tokengala_launchpad_fetch_price_history- Fetch historical price snapshots from DEX Backend APIgala_launchpad_fetch_all_price_history- Fetch all historical price snapshots with auto-paginationgala_launchpad_fetch_token_details- Fetch comprehensive token metadatagala_launchpad_check_token_name- Check name availabilitygala_launchpad_check_token_symbol- Check symbol availabilitygala_launchpad_resolve_vault_address- Get GalaChain vault addressgala_launchpad_resolve_token_class_key- Get GalaChain TokenClassKeygala_launchpad_on_dex_pool_creation- Watch for new DEX pool creation eventsgala_launchpad_on_launchpad_token_creation- Watch for new launchpad token creation events
🔔 Event Watchers - Real-Time Monitoring
Real-time pool and token discovery with WebSocket-based watchers:
gala_launchpad_on_dex_pool_creation - Watch for DEX Pool Creation
Monitor new liquidity pool creation on GalaSwap DEX with optional filtering:
-
Parameters:
minTVL(optional, decimal string) - Only report pools with TVL above this threshold (e.g., "100000" for 100k GALA)tokens(optional, array of strings) - Only report pools containing these token symbols (e.g., ["GALA", "GUSDC"])intervalMs(optional, number) - Polling interval in milliseconds (default: 2000, minimum: 1000)durationSeconds(optional, number) - How long to poll (default: 300 seconds = 5 minutes)
-
Returns:
poolsDetected(number) - Count of new pools found matching criteriadurationSeconds(number) - How long the watcher ran (in seconds)pools(array of DexPoolData) - Array of detected pool objects with:poolPair- Pool identifier (e.g., "GALA|Unit|none|none/GUSDC|Unit|none|none/10000")token0/token1- Token symbols (e.g., "GALA", "GUSDC")tvl- Total value locked in pool (number)fee- Fee percentage as string (e.g., "0.3", "1")volume1d/volume30d- Trading volume metricsapr1d- 1-day APR percentage
-
Use Cases:
- Monitor high-value pool creation for opportunities
- Track specific token pair pools
- Real-time liquidity discovery
- Automated opportunity alerts
-
Example:
// Watch for new high-TVL pools with GALA
const result = await gala_launchpad_on_dex_pool_creation({
minTVL: "500000", // Only pools with 500k+ GALA TVL
tokens: ["GALA"], // Only GALA pairs
intervalMs: 3000, // Check every 3 seconds
durationSeconds: 600 // Poll for 10 minutes
});
console.log(`Found ${result.poolsDetected} new GALA pools`);
result.pools.forEach(pool => {
console.log(`${pool.tokenA} / ${pool.tokenB}: $${pool.tvl} TVL`);
});
gala_launchpad_on_launchpad_token_creation - Watch for Launchpad Token Creation
Monitor new token launches on Gala Launchpad with optional creator filtering:
-
Parameters:
creatorAddress(optional, string) - Only report tokens created by this address (e.g., "eth|...")intervalMs(optional, number) - Polling interval in milliseconds (default: 2000, minimum: 1000)durationSeconds(optional, number) - How long to poll (default: 300 seconds = 5 minutes)
-
Returns:
tokensDetected(number) - Count of new tokens founddurationSeconds(number) - How long the watcher ran (in seconds)tokens(array of PoolData) - Array of detected token objects with:tokenName- Token name/symbol (e.g., "anime", "dragon")tokenSymbol- Token symbol if different from namecreatorAddress- Creator's wallet address (eth| format)totalRaised- GALA amount raised in bonding curveremainingSupply- Tokens still available to purchasesaleStatus- "Ongoing" or "Completed" (graduated to DEX)
-
Use Cases:
- Track specific creators' new token launches
- Monitor all token creation activity
- Early opportunity discovery
- Creator relationship tracking
-
Example:
// Watch for tokens from a specific creator
const result = await gala_launchpad_on_launchpad_token_creation({
creatorAddress: "eth|1234567890abcdef1234567890abcdef12345678",
intervalMs: 2000, // Check every 2 seconds
durationSeconds: 300 // Poll for 5 minutes
});
console.log(`Found ${result.tokensDetected} new tokens from creator`);
result.tokens.forEach(token => {
console.log(`${token.tokenName}: ${token.totalRaised} GALA raised`);
});
Key Characteristics
- Polling-based Architecture - Uses client-side polling (no WebSocket), configurable intervals
- Automatic Deduplication - Never reports the same pool/token twice within a single watch session
- Client-side Filtering - Optional minTVL and tokens parameters reduce API load
- Long-running Support - Safely polls for extended periods without memory leaks
- Error Resilience - Continues polling after transient errors (network timeouts, API errors)
- Interval Validation - Enforces minimum 1000ms interval to prevent API spam
- Return Values - Both detect count and full objects for flexible usage
Trading Operations
gala_launchpad_calculate_buy_amount- Calculate buy amounts (network call)gala_launchpad_calculate_sell_amount- Calculate sell amounts (network call)gala_launchpad_calculate_buy_amount_local- Calculate buy amounts (local, instant)gala_launchpad_calculate_buy_amount_external- Calculate buy amounts (explicit network call)gala_launchpad_calculate_sell_amount_local- Calculate sell amounts (local, instant)gala_launchpad_calculate_sell_amount_external- Calculate sell amounts (explicit network call)gala_launchpad_buy- Execute token purchasegala_launchpad_sell- Execute token salegala_launchpad_fetch_trades- Get trade historygala_launchpad_calculate_initial_buy- Calculate initial buygala_launchpad_get_bundler_transaction_result- Get transaction status by IDgala_launchpad_calculate_buy_amount_for_graduation- Calculate cost to graduate poolgala_launchpad_graduate_token- One-step pool graduation
🎓 Understanding Graduation Calculations
CRITICAL: The amount field in gala_launchpad_calculate_buy_amount_for_graduation represents GALA cost, NOT token quantity!
// Example response
{
"amount": "1594263.41948877",
"transactionFee": "1594.26341949",
"gasFee": "1"
}
// ❌ WRONG INTERPRETATION:
// "Need to buy 1,594,263 tokens"
// ✅ CORRECT INTERPRETATION:
// "Need to spend 1,594,263.42 GALA to buy all remaining tokens and graduate the pool"
Amount Field Reference:
| Tool | amount Field Represents | Example | Meaning |
|---|---|---|---|
calculate_buy_amount | Token quantity received | "16843.758" | 16,843.76 tokens |
calculate_sell_amount | GALA amount received | "125.50" | 125.50 GALA |
calculate_buy_amount_for_graduation | GALA cost to graduate | "1594263.419" | 1,594,263.42 GALA |
calculate_initial_buy | Token quantity from pre-buy | "3663321.363" | 3,663,321.36 tokens |
Key Points:
- Read the full number as-is - decimal point is NOT shifted
- Graduation amounts are typically in the hundreds of thousands to millions of GALA
- Always use
graduate_tokenfor convenience - it handles calculations internally - Pool status changes from "Ongoing" to "Completed" upon successful graduation
⚡ Performance Optimization for AI Agents
The following tools now support optional performance parameters to reduce network calls by 66% and speed up operations by ~70%:
gala_launchpad_fetch_launchpad_token_spot_pricegala_launchpad_calculate_buy_amount_for_graduationgala_launchpad_graduate_token
New Optional Parameters:
calculateAmountMode(enum:'local'|'external') - Calculation strategycurrentSupply(string) - Pre-fetched current token supply
Optimization Pattern:
// ❌ WITHOUT OPTIMIZATION (3 network calls)
const spotPrice1 = await gala_launchpad_fetch_launchpad_token_spot_price({ tokenName: "tinyevil" });
// → Network call #1
const graduation1 = await gala_launchpad_calculate_buy_amount_for_graduation({ tokenName: "tinyevil" });
// → Network call #2
const result1 = await gala_launchpad_graduate_token({ tokenName: "tinyevil" });
// → Network call #3
// ✅ WITH OPTIMIZATION (1 network call + instant local calculations)
// Step 1: Fetch pool details once
const poolDetails = await gala_launchpad_fetch_pool_details_for_calculation({ tokenName: "tinyevil" });
const currentSupply = poolDetails.currentSupply;
// Step 2: Reuse currentSupply for instant local calculations
const spotPrice2 = await gala_launchpad_fetch_launchpad_token_spot_price({
tokenName: "tinyevil",
calculateAmountMode: "local",
currentSupply: currentSupply
});
// → Instant (no network call)
const graduation2 = await gala_launchpad_calculate_buy_amount_for_graduation({
tokenName: "tinyevil",
calculateAmountMode: "local",
currentSupply: currentSupply
});
// → Instant (no network call)
const result2 = await gala_launchpad_graduate_token({
tokenName: "tinyevil",
calculateAmountMode: "local",
currentSupply: currentSupply,
slippageToleranceFactor: 0.01
});
// → Uses local calculation (no redundant pool fetch)
Performance Impact:
| Pattern | Network Calls | Speed | Best For |
|---|---|---|---|
| Without optimization | 3 calls | ~600-900ms | One-off operations |
| With optimization | 1 call | ~200ms | Batch operations, analytics |
| Reduction | 66% fewer | ~70% faster |
When to Use Optimization:
- ✅ Multiple calculations on the same token
- ✅ Price discovery and analytics
- ✅ Trading bot logic with frequent calculations
- ✅ Simulations and backtests
- ❌ Single one-off calculations (not worth the complexity)
Accuracy: Local calculations match external (network) with <0.01% difference.
DEX Pool Discovery
Discover and explore GalaSwap DEX liquidity pools with filtering, sorting, and pagination:
gala_launchpad_fetch_dex_pools- Discover DEX liquidity pools with pagination, sorting, and search filteringgala_launchpad_fetch_all_dex_pools- Discover ALL DEX liquidity pools with automatic pagination
Features:
- 🔍 Search filtering - Find pools by token symbol (GALA, GUSDC, etc.)
- 📊 Sorting options - Sort by TVL, 24h volume, or 30d volume
- 📄 Pagination - Browse large pool datasets efficiently (max 20 per page)
- 🚀 Auto-pagination - Fetch all pools automatically with
fetchAllDexPools - 💰 Complete pool data - TVL, fees, APR, volume metrics, and token pricing
GSwap DEX Trading
Real-time DEX trading for graduated tokens with slippage protection:
The DEX tools run @gala-chain/gswap-sdk's GSwap client (launchpad-sdk has no DEX client),
built from the same environment, swap backend and PRIVATE_KEY as the launchpad SDK and rebuilt
when the wallet or the environment changes. Without PRIVATE_KEY it is read-only.
gala_launchpad_get_swap_quote_exact_input- Get swap quote for exact input amountgala_launchpad_get_swap_quote_exact_output- Get swap quote for exact desired outputgala_launchpad_execute_swap- Execute token swap on GalaSwap DEX with slippage protection (queued on chain; waits for the applied result)gala_launchpad_get_swap_result- Resolve a queued swap by itsuniqueKeywhen the outcome was unknown, without resubmittinggala_launchpad_get_swap_user_assets- Get user token balances across all DEX poolsgala_launchpad_get_all_swap_user_assets- NEW v2.0 - Get all user assets with auto-paginationgala_launchpad_get_swap_pool_info- Get liquidity and fee tier information for token pairsgala_launchpad_get_swap_pool_price- NEW v2.0 - Get current price for token pair in DEX poolgala_launchpad_fetch_composite_pool_data- NEW v2.0 - Fetch a raw pool snapshot (liquidity, ticks, price, positions) for pool inspectiongala_launchpad_calculate_dex_pool_quote_local- NEW v2.0 - DEX quote via the live GSwap quoting service (legacy naming; not offline)gala_launchpad_calculate_dex_pool_quote_external- NEW v2.0 - DEX quote via the live GSwap quoting service (real-time)- Liquidity position tools - Add, remove, collect fees, query positions
- Leaderboard tools - Top traders, tokens, volume rankings
- Volume tool - DEX trading volume metrics
Complete DEX Trading Workflow Example:
// Step 1: Get a quote (how much output for 100 GALA input?)
const quote = await gala_launchpad_get_swap_quote_exact_input({
fromToken: 'GALA',
toToken: 'GUSDC',
amount: '100'
});
// Returns: { estimatedOutput: "100.50", feeTier: 3000, priceImpact: "0.23", ... }
// Step 2: Check pool liquidity before large trades
const pool = await gala_launchpad_get_swap_pool_info({
tokenA: 'GALA',
tokenB: 'GUSDC'
});
// Returns: { liquidity: "5000000", feeTiers: [500, 3000, 10000], swapCount: 1234 }
// Step 3: Execute the swap with slippage protection
const result = await gala_launchpad_execute_swap({
fromToken: 'GALA',
toToken: 'GUSDC',
inputAmount: '100',
estimatedOutput: quote.estimatedOutput, // Use quoted amount!
feeTier: quote.feeTier, // Use quoted fee tier!
slippageTolerance: 0.01 // 1% slippage tolerance
});
// Waits for the queued RequestTrade to apply, then returns:
// { submission: { method: "RequestTrade", uniqueKey, transactionId, mode: "queued" },
// confirmation: { transactionId, blockNumber, requestTransactionId,
// result: { token0, token1, fee, sell0Qty, buy1Qty, totalFees, ... } }, ... }
// A chain rejection (e.g. VALIDATION_FAILED slippage) is returned as a tool error.
// Step 4: Check user portfolio after swap
const assets = await gala_launchpad_get_swap_user_assets({
walletAddress: 'eth|...'
});
// Returns: [{ symbol: 'GALA', balance: '900', decimals: 8 }, { symbol: 'GUSDC', balance: '100.45', decimals: 6 }]
Key Characteristics:
- ✅ Real-time - Integrated with unified WebSocket for instant transaction monitoring
- ✅ Slippage Protection - Automatic minimum output calculation
- ✅ Multi-format tokens - Supports simple names ('GALA') or full token IDs ('GALA|Unit|none|none')
- ✅ Fee Tiers - Automatic detection of available liquidity pools (0.05%, 0.3%, 1.0%)
- ✅ Environment-aligned - Uses same URLs as LaunchpadSDK (STAGE/PROD cannot be mixed)
- ✅ Live Quote Calculation - NEW v2.0 - Fresh DEX quotes from the GSwap quoting service on every call
📊 Historical Price Analysis
gala_launchpad_fetch_price_history - Fetch historical price snapshots for DEX tokens
This tool queries the DEX Backend API for historical token price data, enabling trend analysis and volatility assessment.
Requirements:
- DEX Backend API must be configured and accessible (automatic with environment configuration)
- Node.js environment only (not available in browser)
- Only works for DEX tokens with recorded price snapshots
Parameters:
tokenId(required) - Token identifier (string format: "collection|category|type|additionalKey" or object with collection, category, type, additionalKey)from(optional) - Start date (ISO 8601, defaults to 30 days ago)to(optional) - End date (ISO 8601, defaults to now)sortOrder(optional) - Sort order: 'ASC' or 'DESC' (default: DESC for newest-first)page(optional) - Page number for pagination (default: 1)limit(optional) - Results per page, max 50 (default: 10)
Use Cases:
- Historical price analysis and charting
- Price trend identification
- Volatility analysis over time periods
- Data export for external analytics
Example:
Ask Claude:
"Fetch the last 30 days of hourly price data for GUSDC token"
"Show me GALA token price history from the last 7 days with daily snapshots"
📊 All Historical Price Data (Auto-Paginated)
gala_launchpad_fetch_all_price_history - Fetch all historical price snapshots (auto-paginated)
Automatically fetches all pages of historical price data and returns complete dataset in single result.
Use Cases:
- Complete volatility analysis
- Full historical trend analysis
- Statistical calculations on entire dataset
- Data export for backtesting
Example:
Ask Claude:
"Get all price history for GUSDC token from January 2024 and calculate volatility"
Balance & Portfolio
gala_launchpad_fetch_gala_balance- Get GALA balance (coretoolset)gala_launchpad_fetch_token_balance- Get token balancegala_launchpad_fetch_tokens_held- Get portfolio holdingsgala_launchpad_fetch_tokens_created- Get created tokensgala_launchpad_fetch_profile- Get user profilegala_launchpad_update_profile- Update profilegala_launchpad_get_swap_user_assets- Get user token balances from DEXgala_launchpad_get_all_swap_user_assets- NEW v2.0 - Get all user assets with auto-pagination
Wallet Management
gala_launchpad_has_wallet- Check if wallet is configuredgala_launchpad_get_wallet- Get currently configured wallet instancegala_launchpad_set_wallet- Configure wallet for signing operations (upgrade from read-only mode)
Token Creation
gala_launchpad_launch_token- Create new token poolgala_launchpad_upload_token_image- Upload token image from filesystemgala_launchpad_upload_profile_image- Upload profile image from filesystemgala_launchpad_fetch_launch_token_fee- Get current GALA fee to launch a token
Token Transfers
gala_launchpad_transfer_gala- Transfer GALA tokens (coretoolset)gala_launchpad_transfer_token- Transfer launchpad tokens
Utility Tools
gala_launchpad_create_wallet- Create new GalaChain walletgala_launchpad_get_address- Get user's GalaChain addressgala_launchpad_get_ethereum_address- Get user's Ethereum addressgala_launchpad_get_public_key_from_private_key- NEW v4.0.15 - Derive public key from private key (secp256k1)gala_launchpad_get_ethereum_address_from_private_key- NEW v4.0.15 - Derive Ethereum address from private keygala_launchpad_get_config- Get current SDK configurationgala_launchpad_get_url_by_token_name- Generate frontend URL for a tokengala_launchpad_explain_sdk_usage- Get SDK code examples for specific topicsgala_launchpad_get_cache_info- Get token metadata cache statisticsgala_launchpad_clear_cache- Clear token metadata cachegala_launchpad_has_wallet- Check if wallet is configuredgala_launchpad_get_wallet- Get currently configured wallet instancegala_launchpad_set_wallet- Configure wallet for signing operationsgala_launchpad_get_environment- Get current MCP server environmentgala_launchpad_switch_environment- Switch MCP server environmentgala_launchpad_get_version- Get SDK and MCP server version informationgala_launchpad_is_token_graduated- Check if token has completed bonding curvegala_launchpad_cleanup- SDK lifecycle cleanup utility
Overseer Tools
gala_launchpad_create_overseer_invite- Create an overseer invite (Admin OR Overseer)gala_launchpad_list_overseer_invites- List all overseer invites with paginationgala_launchpad_get_overseer_invite- Get invite details by code (public endpoint)gala_launchpad_claim_overseer_invite- Claim an overseer invite (JWT)gala_launchpad_revoke_overseer_invite- Revoke an overseer invitegala_launchpad_list_overseers- List all overseers with paginationgala_launchpad_revoke_overseer- Revoke an overseer's accessgala_launchpad_get_my_overseer_status- Check own overseer status (JWT)gala_launchpad_get_overseer_summary- Get platform summary for CCTV dashboard (active streams, viewers, pending flags, total pools)gala_launchpad_flush_cache_by_address- Flush cache for a wallet address (Admin OR Overseer)gala_launchpad_flush_cache_by_token- Flush cache for a token (Admin OR Overseer)gala_launchpad_flush_all_cache- Flush ALL cache (Admin OR Overseer, requires confirmation)
Content Flag Tools
gala_launchpad_create_flag- Flag content (chat message, stream, etc.)gala_launchpad_list_flags- List flags for a token with paginationgala_launchpad_dismiss_flag- Dismiss a flag as not actionablegala_launchpad_action_flag- Take action on flagged content
💡 Example Usage
Ask Claude (or your AI assistant):
"Fetch the 10 most recent token pools on Gala Launchpad"
"What's my GALA balance?"
"Calculate how many tokens I'd get if I buy with 100 GALA on dragnrkti"
"Buy 50 GALA worth of rocketri tokens with 5% slippage"
"Show me all tokens I'm holding"
"Watch for new DEX pool creation for the next 5 minutes"
"Get the current GALA/GUSDC price from the DEX pool"
"Get the platform summary for the CCTV dashboard"
"Create an overseer invite for the new platform team member"
⚡ Slash Commands (Prompts)
The MCP server exposes 286 slash commands (prompts) for streamlined workflows - every major operation has a corresponding slash command for quick access. These appear as /galachain-launchpad:<<method>> in Claude Desktop.
Trading Commands
/galachain-launchpad:analyze-token
- Comprehensive token analysis (pool details, spot price, graduation cost)
- Arguments:
tokenName(required) - Example:
/galachain-launchpad:analyze-token tokenName=anime - Uses optimized LOCAL calculations for speed
/galachain-launchpad:buy-tokens
- Guided token purchase with slippage protection
- Arguments:
tokenName(required),galaAmount(required),slippage(optional, default 1%) - Example:
/galachain-launchpad:buy-tokens tokenName=anime galaAmount=100 slippage=2 - Shows breakdown and asks for confirmation before executing
/galachain-launchpad:sell-tokens
- Guided token sale with slippage protection
- Arguments:
tokenName(required),tokenAmount(required),slippage(optional, default 1%) - Example:
/galachain-launchpad:sell-tokens tokenName=anime tokenAmount=1000 - Checks balance and shows breakdown before executing
/galachain-launchpad:graduate-token
- One-step pool graduation workflow
- Arguments:
tokenName(required),slippage(optional, default 1%) - Example:
/galachain-launchpad:graduate-token tokenName=anime - Checks if already graduated, calculates cost, and executes with confirmation
Portfolio Commands
/galachain-launchpad:portfolio
- Complete portfolio analysis with USD values
- Arguments: None
- Shows GALA balance, all token holdings, total portfolio value, and top holdings
/galachain-launchpad:tokens-held
- List all tokens currently held
- Arguments:
search(optional fuzzy filter),limit(optional, default 20) - Example:
/galachain-launchpad:tokens-held search=dragon limit=10
/galachain-launchpad:tokens-created
- Show tokens created by the user with status
- Arguments:
search(optional),limit(optional, default 20) - Shows graduation status and progress for each token
/galachain-launchpad:balance
- Check GALA and optional token balance
- Arguments:
tokenName(optional) - Example:
/galachain-launchpad:balance tokenName=anime - Displays both token amounts and USD values
/galachain-launchpad:profile
- Show user profile and activity summary
- Arguments: None
- Displays profile info, wallet addresses, activity metrics, and current balance
Analysis Commands
/galachain-launchpad:compare-tokens
- Side-by-side comparison of two tokens
- Arguments:
token1(required),token2(required) - Example:
/galachain-launchpad:compare-tokens token1=anime token2=test216253 - Shows comparison table with metrics, holders, and investment analysis
/galachain-launchpad:graduation-status
- Check graduation readiness for multiple tokens
- Arguments:
tokens(required, comma-separated) - Example:
/galachain-launchpad:graduation-status tokens=anime,test216253,dragnrkti - Shows progress table and identifies graduation opportunities
/galachain-launchpad:spot-prices
- Batch spot price lookup for multiple tokens
- Arguments:
tokens(required, comma-separated) - Example:
/galachain-launchpad:spot-prices tokens=anime,test216253 - Uses optimized LOCAL calculations for instant results
/galachain-launchpad:pool-details
- Comprehensive pool information with badges and distribution
- Arguments:
tokenName(required) - Example:
/galachain-launchpad:pool-details tokenName=anime - Shows complete pool metrics, achievements, and recent activity
/galachain-launchpad:trade-history
- View recent trades with filtering
- Arguments:
tokenName(optional),userAddress(optional),tradeType(optional: BUY/SELL),limit(optional, default 20) - Example:
/galachain-launchpad:trade-history tokenName=anime tradeType=BUY limit=10
/galachain-launchpad:fetch-all-pools
- Fetch all available pools with auto-pagination
- Arguments: None
- Retrieves complete list of all token pools on Launchpad
Creation & Discovery Commands
/galachain-launchpad:create-token
- Guided token creation workflow
- Arguments:
tokenName(required),tokenSymbol(required),description(required),websiteUrl(optional),twitterUrl(optional),telegramUrl(optional),imagePath(optional),preBuyGala(optional) - Example:
/galachain-launchpad:create-token tokenName=mytoken tokenSymbol=MTK description="My awesome token" websiteUrl=https://example.com - Validates availability, checks fees, uploads image, and guides through launch process
- Note: At least one social URL (website, Twitter, or Telegram) is required
/galachain-launchpad:discover-tokens
- Discover new tokens on Gala Launchpad
- Arguments:
type(optional: recent/popular/near-graduation, default: recent),limit(optional, default: 10),minProgress(optional: graduation %),maxPrice(optional: max USD price) - Example:
/galachain-launchpad:discover-tokens type=near-graduation minProgress=90 limit=10 - Helps find investment opportunities with filtering and analysis
Real-Time Monitoring Commands - NEW v2.0
/galachain-launchpad:watch-dex-pools - NEW v2.0
- Monitor new DEX pool creation events in real-time via WebSocket
- Arguments:
duration(optional: seconds, default 60),minTVL(optional: minimum TVL filter),tokens(optional: comma-separated token symbols) - Example:
/galachain-launchpad:watch-dex-pools duration=300 minTVL=100000 tokens=GALA,GUSDC - Real-time alerts as new liquidity pools are created
/galachain-launchpad:watch-token-launches - NEW v2.0
- Monitor new token launch events in real-time via WebSocket
- Arguments:
duration(optional: seconds, default 60),creatorAddress(optional: filter by creator) - Example:
/galachain-launchpad:watch-token-launches duration=300 creatorAddress=eth|... - Discover new tokens immediately as they launch
DEX Pool Discovery Commands
/galachain-launchpad:fetch-dex-pools
- Discover DEX liquidity pools with pagination and filtering
- Arguments:
search(optional: token symbol filter),sortBy(optional: tvl/volume30d/volume1d, default: tvl),sortOrder(optional: asc/desc, default: desc),page(optional, default: 1),limit(optional, default: 10, max: 20) - Example:
/galachain-launchpad:fetch-dex-pools search=GALA sortBy=volume30d limit=10 - Browse DEX pools with complete metrics: TVL, trading volume, APR, and fee data
/galachain-launchpad:fetch-all-dex-pools
- Discover ALL available DEX liquidity pools with automatic pagination
- Arguments:
search(optional: token symbol filter),sortBy(optional: tvl/volume30d/volume1d, default: tvl),sortOrder(optional: asc/desc, default: desc) - Example:
/galachain-launchpad:fetch-all-dex-pools search=GUSDC sortBy=volume1d sortOrder=asc - Retrieves the complete list of all DEX pools - perfect for comprehensive analysis and discovery
Pool Management Commands
/galachain-launchpad:fetch-pools - Fetch token pools with filtering
/galachain-launchpad:fetch-pool-details - NEW v2.0 - Get comprehensive bonding curve pool analytics
/galachain-launchpad:fetch-pool-details-for-calculation - Get optimized pool details for local calculations
/galachain-launchpad:fetch-token-details - Fetch comprehensive token metadata
/galachain-launchpad:fetch-token-distribution - Get holder distribution and supply metrics
/galachain-launchpad:fetch-volume-data - Get OHLCV (candlestick) data for charting
/galachain-launchpad:fetch-gala-spot-price - Fetch current GALA USD spot price
/galachain-launchpad:fetch-price-history - Fetch historical price snapshots with pagination
/galachain-launchpad:fetch-all-price-history - Fetch all historical price data (auto-paginated)
/galachain-launchpad:check-token-name - Check if token name is available
/galachain-launchpad:check-token-symbol - Check if token symbol is available
/galachain-launchpad:resolve-vault-address - Get GalaChain vault address for a token
/galachain-launchpad:resolve-token-class-key - Get GalaChain TokenClassKey for a token
Trading Calculation Commands
/galachain-launchpad:calculate-buy-amount - Calculate token amounts for buying
/galachain-launchpad:calculate-sell-amount - Calculate GALA amounts for selling
/galachain-launchpad:fetch-trades - Query trading history with optional filters
/galachain-launchpad:calculate-initial-buy - Calculate pre-buy amounts during token creation
/galachain-launchpad:get-bundler-transaction-result - Check bundler transaction status by ID
/galachain-launchpad:calculate-graduation-cost - Calculate cost to graduate a token pool
/galachain-launchpad:calculate-buy-amount-local - Calculate buy amount using LOCAL bonding curve (instant)
/galachain-launchpad:calculate-buy-amount-external - Calculate buy amount using EXTERNAL GalaChain call
/galachain-launchpad:calculate-sell-amount-local - Calculate sell amount using LOCAL bonding curve
/galachain-launchpad:calculate-sell-amount-external - Calculate sell amount using EXTERNAL GalaChain call
/galachain-launchpad:is-token-graduated - Check if token has completed bonding curve and graduated to DEX
Balance & Portfolio Commands
/galachain-launchpad:fetch-gala-balance - Get your GALA balance
/galachain-launchpad:fetch-token-balance - Get balance for a specific token
/galachain-launchpad:fetch-tokens-created - List tokens you've created with status
/galachain-launchpad:update-profile - Update your user profile information
Creation Utility Commands
/galachain-launchpad:upload-profile-image - Upload profile image from filesystem
/galachain-launchpad:fetch-launch-token-fee - Get current GALA fee required to launch a token
Transfer Commands
/galachain-launchpad:transfer-gala - Transfer GALA tokens to another wallet
/galachain-launchpad:transfer-token - Transfer launchpad tokens to another wallet
Utility & System Commands
/galachain-launchpad:create-wallet - Generate a new wallet with random private key
/galachain-launchpad:get-address - Get the GalaChain format address of authenticated wallet
/galachain-launchpad:get-ethereum-address - Get the standard Ethereum address format of authenticated wallet
/galachain-launchpad:get-config - View current SDK and MCP server configuration
/galachain-launchpad:get-url-by-token-name - Get the launchpad frontend URL for a token
/galachain-launchpad:explain-sdk-usage - Get detailed SDK usage examples for a topic
/galachain-launchpad:get-cache-info - Get token metadata cache statistics
/galachain-launchpad:clear-cache - Clear token metadata cache
/galachain-launchpad:has-wallet - Check if a wallet is configured in the MCP server
/galachain-launchpad:get-wallet - Get the currently configured wallet instance
/galachain-launchpad:set-wallet - Configure a wallet for signing operations
/galachain-launchpad:get-environment - Get the current MCP server environment
Version Command
/galachain-launchpad:version
- Display SDK and MCP server version information
- Arguments: None
- Shows current version numbers and release information
Slash Command Benefits
✅ Quick access - Type /galachain-launchpad: to see all available commands
✅ Guided workflows - Each command provides step-by-step execution
✅ Optimized - Uses LOCAL calculations for maximum performance
✅ Safe - Asks for confirmation before executing transactions
✅ Educational - Shows what MCP tools are being used behind the scenes
✅ Real-time monitoring - NEW v2.0 - WebSocket watchers for pools and token launches
Example Slash Command Usage
User: /galachain-launchpad:analyze-token tokenName=anime
Claude: I'll analyze the token "anime" using the Gala Launchpad MCP server:
1. Fetching optimized pool details...
✅ Current supply: 510,379.79
✅ Remaining tokens: 9,489,620.21
✅ Max supply: 10,000,000
2. Calculating USD spot price (LOCAL mode - instant!)...
✅ Spot price: $0.000153
3. Calculating graduation cost (LOCAL mode - instant!)...
✅ GALA required: 1,640,974.33 GALA
✅ Transaction fee: 1,640.97 GALA
✅ Total cost: 1,642,615.30 GALA
4. Pool progress: 5.10% complete
Analysis:
- Current price is relatively low (early stage token)
- Requires significant GALA (~1.6M) to graduate
- Only 5% through bonding curve - high risk, high potential reward
- Good opportunity for early entry if you believe in the project
📚 SDK Usage Reference
The MCP server includes a built-in SDK documentation tool that provides complete, runnable code examples for using the SDK directly instead of through MCP tools. This is perfect for developers who want to integrate the SDK into their applications.
Ask Claude for SDK code examples:
"Explain how to buy tokens using the SDK"
"Show me the SDK code for selling tokens"
"How do I use multiple wallets with the SDK?"
"Show me all MCP tools and their SDK method equivalents"
Available topics:
buy-tokens- Complete buying workflowsell-tokens- Complete selling workflowpool-graduation- Graduate bonding curve poolsfetch-pools- Query pool databalances- Check GALA and token balancestoken-creation- Launch new tokensmulti-wallet- Multi-wallet patternstransfers- Transfer tokens between walletserror-handling- Handle exceptionsinstallation- Install and configure SDKlocal-calculations- Local vs external bonding curve calculationsmcp-to-sdk-mapping- Complete tool-to-method mapping
Each topic returns complete TypeScript code with explanations, making it easy to transition from MCP tools to direct SDK integration.
🔐 Multi-Wallet Support
All signing operations support an optional privateKey parameter for per-operation wallet overrides. This enables:
- Testing multi-wallet workflows
- Simulating different user behaviors
- Building multi-agent trading systems
- Operating multiple wallets from a single MCP server
Tools Supporting privateKey Override
Trading Operations:
gala_launchpad_buy- Buy tokens from different walletgala_launchpad_sell- Sell tokens from different wallet
Token Creation:
gala_launchpad_launch_token- Create token from different walletgala_launchpad_upload_token_image- Upload image for tokengala_launchpad_upload_profile_image- Upload profile image
Transfer Operations:
gala_launchpad_transfer_gala- Transfer GALA from different wallet (the key signs that one transfer and is never stored)gala_launchpad_transfer_tokentakes no override: aprivateKeyis refused (configure the session wallet,set_wallet)
Profile:
gala_launchpad_update_profile- Update profile for different wallet
Example: Multi-Wallet Trading Scenario
Ask Claude:
"Create a scenario where Buster's wallet buys and sells tokens:
- Send Buster 1000 GALA from the main wallet
- Have Buster buy 100 GALA worth of tinyevil tokens using his private key: 0x1234...
- Have Buster sell 50 GALA worth back
- Check both wallets' final balances"
Claude will use:
// 1. Main wallet sends GALA to Buster
gala_launchpad_transfer_gala({
recipientAddress: "0xBusterAddress...",
amount: "1000"
// No privateKey - uses main wallet
});
// 2. Buster buys tokens with his wallet
gala_launchpad_buy({
tokenName: "tinyevil",
amount: "100",
type: "native",
expectedAmount: "50000",
slippageToleranceFactor: 0.05,
privateKey: "0x1234..." // Buster's wallet
});
// 3. Buster sells tokens
gala_launchpad_sell({
tokenName: "tinyevil",
amount: "50",
type: "native",
expectedAmount: "48",
slippageToleranceFactor: 0.05,
privateKey: "0x1234..." // Buster's wallet
});
Private Key Format Requirements
The privateKey parameter must be:
- Format:
'0x' + 64 hexadecimal characters - Example:
'0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' - Invalid: Raw hex without '0x', mnemonics, or addresses
Security Considerations
When using privateKey overrides:
- Never expose private keys in prompts or logs
- Use test wallets for development and testing
- Limit fund amounts in test wallets
- Monitor operations when testing multi-wallet scenarios
- Validate addresses before transfers
🔧 Development
Local Development
# From the root of the repository checkout (core, the product SDKs and this server are one pnpm workspace)
# Install dependencies
pnpm install
# Build the SDKs this server resolves through their dist/, then the server
pnpm --filter @gala-chain/gala-core-sdk run build
pnpm --filter @gala-chain/gswap-sdk run build
pnpm --filter @gala-chain/launchpad-sdk run build
pnpm --filter @gala-chain/gala-mcp-server run build
# Run in development mode
pnpm --filter @gala-chain/gala-mcp-server run dev
Layout
src/session/ wallet, environment and settings, shared by every toolset (the env contract lives here)
src/toolsets/core/ tools, prompts and the client that need only gala-core-sdk
src/toolsets/launchpad/ ... gala-core-sdk + launchpad-sdk
src/toolsets/gswap/ ... gala-core-sdk + gswap-sdk
src/toolsets/composite/ ... launchpad-sdk + gswap-sdk (enabled with both)
src/toolsets/shared/ SDK-free helpers (tool factory, handler factories)
src/toolsets/registry.ts, selection.ts load the enabled toolsets (a dynamic import each), parse GALA_TOOLSETS / --toolsets
src/manifests/ generated tool and prompt manifests (pnpm generate:manifest; CI runs validate:manifest)
A tool belongs to the toolset whose SDKs its handler needs. launchpad and gswap never import each other or
composite, core imports no product SDK, and the shared code and src/schemas import none; boundary.test.ts
reads the import graph and fails on a violation, and module-graph.test.ts checks what a run actually loads.
Testing
pnpm --filter @gala-chain/gala-mcp-server exec vitest run --maxWorkers=4 # unit tests (SDKs built first)
pnpm --filter @gala-chain/gala-mcp-server run validate:manifest # manifests current
pnpm --filter @gala-chain/gala-mcp-server run smoke:stdio # starts each selection over stdio, tools/list, clean exit
📚 Documentation
- AI Agent Guide - Integration patterns
- Launchpad SDK documentation - Underlying SDK reference
🔐 Security
Important Security Notes:
- Private Keys - Never commit private keys to version control
- Environment Variables - Store credentials in
claude_desktop_config.jsonsecurely - Wallet Safety - Use separate wallets for development and production
- Amount Limits - Consider setting up trading limits for automated agents
🐛 Troubleshooting
"SDK not initialized"
- Ensure
PRIVATE_KEYis set in environment variables - Check that private key format is valid (0x + 64 hex characters)
"Tool not found"
- Restart Claude Desktop after configuration changes
- Verify server is listed in Claude Desktop settings
"Connection failed"
- Check DEBUG=true logs for detailed error messages
- Verify network connectivity to Gala Launchpad backends
📄 License
MIT License - see the LICENSE file in the package for details.
🤝 Contributing
Contributions welcome! Please read CONTRIBUTING.md in the monorepo root for guidelines.
📞 Support
- Documentation: Full Documentation
- SDK Package: @gala-chain/launchpad-sdk
Built with ❤️ for the Gala ecosystem