Buy, copy-trade, and cash out on Solana without your wallet showing up in the tx. MCP server + Telegram bot + TypeScript SDK.
Stealth-trader has 7 tools with basic schemas and descriptions, but significant gaps prevent production use. All tools have descriptions (10-80 chars, mostly short), and input schemas are present with type definitions. However, descriptions lack depth, most are single-clause statements without context on WHEN to use the tool, prerequisites, or error recovery. Parameters lack descriptions entirely (e.g., 'mint' and 'sol' in private_buy have no guidance on format, range, or constraints). Output schemas are not documented, LLMs cannot predict what fields to expect. Error handling is absent: no guidance on retryability, user-fixable vs fatal errors, or recovery paths. The three WRITE tools (private_buy, private_lend, cashout) perform irreversible financial operations but lack confirmation/dry-run patterns. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Naming is verb-forward (good), but parameter names are cryptic ('mint', 'sol', 'candidates') without type suffixes.
Unshield tokens to a recipient address with no on-chain link to deposit wallet
Score candidate wallets by trading activity and PnL over a lookback window
Get the current SOL balance
Get shielded token holdings
Get the deposit wallet address for funding the bot
Execute a private buy: shield SOL, swap to token, receive shielded note
Lend shielded tokens into Kamino, receive voucher as new shielded note
No parameter descriptions. 'mint', 'sol', 'amount', 'candidates', 'lookback_hours' lack guidance on format, constraints, or valid ranges. LLMs cannot infer whether 'mint' is a base58 string, hex, or pubkey object.
Output schemas not documented. Tools return data but LLMs have no schema to predict fields. E.g., does get_balance return {balance: number} or {balance: string, unit: string}? Undocumented outputs force LLMs to guess and risk parsing errors.
No error handling guidance. WRITE tools (private_buy, private_lend, cashout) perform irreversible financial operations but provide no recovery hints. If a transaction fails, LLM has no guidance on retry, compensation, or user notification.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
No confirmation/dry-run for destructive operations. cashout transfers tokens to an external recipient with no on-chain link to deposit wallet, irreversible. No dry-run, confirmation step, or undo mechanism.
Tool annotations missing. private_buy, private_lend, cashout have explicit risk levels (WRITE) but no destructiveHint or idempotentHint annotations in schema. Agents cannot infer safety properties from tool definitions alone.