Token launchpad service for OpenCode.ai - Deploy EVM and Solana tokens with AI assistance
Single tool 'launch-token' has significant definition quality gaps. While the tool has a lengthy description (527 chars, within acceptable range), the parameter definitions lack proper JSON Schema structure with explicit type enforcement and per-parameter descriptions. The schema shows type hints ('string', 'number') but parameters lack individual descriptions explaining their purpose, format constraints, or valid values, critical for LLM reasoning. All parameters are marked optional, which is problematic for an interactive wizard that guides users step-by-step; this makes it unclear which parameters are actually required at each stage. No output schema is documented. The tool handles an IRREVERSIBLE operation (token deployment with blockchain transactions) but lacks error handling guidance, recovery paths, or confirmation patterns. While the description is enthusiastic and detailed about the wizard flow, it doesn't adequately warn about the security implications of handling private keys/keypairs as parameters.
🚀 Interactive Token Launch Wizard - Guides you through deploying your token step by step This wizard will ask you: 1. Which blockchain (EVM or Solana) 2. Which network (Ethereum, BSC, Polygon, Solana mainnet, etc.) 3. Token details (name, symbol, decimals, supply) 4. Deployment credentials At the end, you'll get: - Contract/Mint address - Transaction hash - Block explorer link ⚠️ Service Fee: 1% of all transfers goes to the launchpad service
No per-parameter descriptions in input schema. Parameters like 'credentials', 'blockchain', 'network', 'solanaDex' have type hints but no descriptions explaining format, constraints, or valid values. LLMs cannot infer whether 'blockchain' accepts 'evm'/'solana', 'EVM'/'SOLANA', 'ethereum'/'bitcoin', etc.
Secrets exposed as tool parameters. The 'credentials' parameter accepts private keys (EVM) and keypairs (Solana) directly. These must NEVER be tool parameters, use server-side secret injection via environment variables or vault. Agent traces and logs capture all parameters; storing secrets here violates security best practices and compliance requirements.
No output schema documented. The execute() function returns natural-language strings guiding the user through wizard steps, but final deployment output (contract address, transaction hash, block explorer link) structure is not defined. LLMs cannot parse or chain the final result.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 41 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 29 | - | v1 |
All parameters marked optional, but the wizard requires sequential filling. This obscures the actual required parameters at each stage. The tool should either enforce required params per blockchain type or document the mandatory sequence explicitly.
No error handling or recovery guidance. IRREVERSIBLE operation (token deployment) with no confirmation pattern, dry-run option, or error categorization. If blockchain interaction fails, the LLM receives no guidance on retry strategy, user-fixable vs. fatal errors, or next steps.
Enum constraints not formalized in schema. Parameters like 'blockchain' (accepts 'evm' or 'solana'), 'solanaDex' (accepts 'raydium', 'meteora', 'jupiter'), 'createPool' (accepts 'yes' or 'no') should be JSON Schema enums, not free-form strings. Current schema invites hallucinated values.
No permission gates or audit trail. Tool executes irreversible blockchain transactions (deploying tokens, creating liquidity pools, consuming gas) with no permission checks, scope declarations, or logging of who called it, when, with what args, and what happened.
Interactive wizard design conflicts with MCP tool semantics. The execute() function returns prompt strings asking for user input and expects LLM to re-invoke with additional parameters. This is not a standard tool pattern and conflicts with Multi Round-Trip Request semantics (result: 'input_required') if intended as such. Protocol handling unclear.