MadeOnSol — Solana memecoin intelligence
This server provides real-time Solana memecoin intelligence, accessible via Claude Desktop, Cursor, or any MCP-compatible client.
KOL Intelligence
Track buy/sell activity across 1,000+ KOL wallets with real-time market cap data
Detect multi-KOL coordination (0–100 score, peak-density windows, exit detection)
Leaderboards ranked by PnL, win rate, ROI, or early entry (up to 180 days)
First-touch events, hot/trending tokens, affinity matrix, timing profiles, and wallet comparisons
Deployer Intelligence
Real-time Pump.fun deployer launch alerts enriched with KOL buy data, filterable by tier
Deployer skill trajectories, streaks, bond/runner rates, and deployment cadence
Deshred sniper alerts surfacing deploys ~500ms before on-chain confirmation (PRO/ULTRA)
Token Quality & Risk
Buyer quality scores (0–100) with dump-cluster detection
Rug-risk scores with explainable factors and band labels (safe/caution/danger)
Cap tables, token directories, per-mint snapshots, and bulk scoring (up to 50 mints)
Wallet Analytics
FIFO cost-basis PnL (realized + unrealized), open positions, raw trades, win rate, ROI, and verdict
Alpha wallet leaderboard, per-wallet profiles, and behaviorally linked wallet detection (ULTRA)
Wallet Tracker
Watchlist management (Free: 10, Pro: 50, Ultra: 100 wallets)
120-day swap/transfer history and summary stats
Automation & Alerts
Copy-trade rules that fire signals via webhook or WebSocket when watched wallets trade
KOL coordination push alerts (~1s latency), first-touch webhook subscriptions, and price dip/recovery alerts
WebSocket streaming for KOL/deployer events and all-DEX trade streams
Scout & Consensus Tools
Scout leaderboard ranked by first-touch follow-on rate; KOL consensus scoring; coordination history and signal performance metrics
Account & Discovery
Inspect your tier, quota, and per-feature usage via
madeonsol_meList all endpoints with pricing and parameter docs (free, no auth required)
Enables access to Solana-based blockchain intelligence, including real-time tracking of Key Opinion Leader (KOL) trades, wallet performance leaderboards, and elite token launch alerts on the Solana network.
mcp-server-madeonsol
⚡ Install via Smithery · 🤖 Use in Claude Desktop · 🖱️ Use in Cursor · 📚 API docs · 💰 Free API key · 🔎 On Glama
MCP server for MadeOnSol Solana KOL intelligence API. Use from Claude Desktop, Cursor, or any MCP-compatible client.
Real-time Solana trading intelligence: track 1,069 KOL wallets with <3s latency on paid keys and x402 pay-per-call (free-tier live feeds are 5-min delayed), score 23,000+ Pump.fun deployers, surface deshred deploy signals ~500ms before on-chain confirmation, detect multi-KOL coordination, surface bundle-cohort holdings (which same-slot wallets still hold a token's supply), verify any wallet's CURRENT on-chain holdings straight from its token accounts, and stream every DEX trade across 9+ programs. Free tier: 200 requests/day across 40+ endpoints (live feeds 5-min delayed) — no signup payment. Get a key at madeonsol.com/pricing.
New in 1.27.0 — top traders, sniper watchlist management, and two update tools (104 tools total). Six additions found by an internal agentic-infra coverage audit.
madeonsol_token_top_traders(GET /tokens/{mint}/top-traders, PRO/ULTRA) ranks a token's wallets by realized PnL or ROI, enriched with KOL/alpha-wallet identity — this endpoint already existed on the REST API and x402 rail but had no MCP tool.madeonsol_sniper_watchlist_list/_add/_remove(PRO+/ULTRA) manage your custom sniper-deploy watchlist (madeonsol_sniper_recent(watchlist: true)narrows to it) — previously only reachable via raw HTTP.madeonsol_update_webhook(PATCH) changes a webhook's URL, events, or active state without deleting and recreating it.madeonsol_wallet_tracker_relabel(PATCH) renames or clears a tracked wallet's label.New in 1.26.0 — deployer reputation as-of a date, and creator-fee rewards. Two new tools (PRO+, keyed
msk_API only — no x402 route).madeonsol_deployer_as_ofbindsGET /deployer-hunter/{wallet}/as-of: the deployer's reputation exactly as it stood ondate(default today, UTC) — the latest write-on-change snapshot at or before it, so an agent backtests without look-ahead bias.snapshot.snapshot_datecan predatedate(write-on-change);snapshot.carried: truemarks that. No snapshot at or beforedate→as_of: false, snapshot: null— nothing is ever synthesized.datemust be ≥ 2026-04-07 and not in the future.madeonsol_deployer_rewardsbindsGET /deployer-hunter/{wallet}/rewards: pump.fun creator-fee rewards, answered two ways that are never merged —collected(what actually reached the wallet: direct vault claims kept 90 days, social-handle claims, shareholder payouts on any token) andattributed(every payout on the tokens it deployed, splitto_self/to_others+redirected_pct). Every money field is{sol, usdc, usd};usdisnull(never a silent 0) when a SOL amount exists and no SOL price was available.top_tokens/top_recipients(≤10, USD-sorted) show where attributed fees went. Works for non-deployers too (is_deployer: false,attributedempty).
New in 1.25.0 — token surges & revivals: momentum fires with the honest half attached. The new
madeonsol_tokens_surgestool bindsGET /tokens/surges(PRO+, keyedmsk_API only — no x402 route): every token momentum fire, newest first. Two kinds, one row shape.surge— a token < 30 min old whose market cap runs hard against its launch MC, in three tiers that each fire at most once per mint:early(≤10 min, ≥$12k, ≥3× launch),strong(≤30 min, ≥$30k, ≥6× launch and ≥2× the lowest sample of the last 3 min — it is climbing now),breakout(≤2 min, ≥$45k, ≥8×). A tier must be sustained (current tick and a sample ≥10 s older; nothing fires before 20 s of age) — a same-slot bundle marked to $475k at age 1 s is a spike, not a surge.revival— a token with no 1-minute trade candle for ≥24 h that starts trading again, confirmed only by the tape (≥5 buys, ≥$500 buy volume, MC ≥1.5× the pre-dormancy close), never by the price mark;tierisnull. Hard gates on both: liquidity ≥$1.5k and ≥2 % of MC, and the MC gained must be paid for by buy volume (a price mark in a spoof pool moves MC on ~$0). Every row carries the bursttape(sourcecandles / wallet_trades;unique_buyersonly where the mint is in trade coverage —wallet_data_available:falseotherwise, never an inferred zero),kolbuyers, the first-20early_buyerscohort (bundled / sold / sniper wallets),deployerreputation andrisk_flags[](bundled_launch,few_buyers,wash_pattern,thin_liquidity,cold_deployer,sniper_heavy,early_buyers_exiting,sell_pressure,no_tape_trades,no_prior_price,mint_authority_active,transfer_fee— empty means no flag raised, not verified clean). Rows ≥65 min old carry the +1 houtcome;stats=1prints per-(kind, tier) hit-rates (up_1h_pct,median_peak_multiple,doubled_1h_pct) — out-of-sample by construction. Filterskind,tier,mint,launchpad,deployer_tier,min_mc_usd/max_mc_usd,min_buys,exclude_flags,only_clean; cursorssince/before. Pushed live on the newtoken:surgesWS channel (eventstoken:surge/token:revival; subscribe filterskinds[],tiers[],launchpads[],exclude_flags[],min_mc_usd/max_mc_usd,deployer_tier[]) and accepted bymadeonsol_create_webhookas eventstoken:surge/token:revivalwith the same filters. The response echoes the live thresholds indefinitions.
New in 1.24.1 — stream tokens never expire.
madeonsol_stream_token(POST /stream/token) now returns the same token on every call, forever. It stops working only if your subscription lapses or you call the tool withrotate: trueto replace it (the previous value keeps working for 60 s).expires_atand the newnext_refresh_atare alwaysnull(kept for wire compatibility — do not schedule refreshes on them); the response gainsrotated(boolean) andlifetime(string). The server never rotates on its own and never sendstoken_refreshunless you rotated; a4001close means "mint again" (lapsed or rotated), never a timer. PreferAuthorization: Bearer <token>on the WebSocket handshake —?token=still works and is masked in access logs.
New in 1.24.0 — token locks & vesting, upcoming unlocks, and pump.fun creator-fee sharing / claims. Five new tools (all PRO+, keyed
msk_API only — no x402 route).madeonsol_token_locksbindsGET /tokens/{mint}/locks: every on-chain lock / vesting contract on a mint (Streamflow, Jupiter Lock, Bonfida vesting) with the schedule, the terms (cancelable_by_sender= the locker can pull it — funds are locked against the recipient, not the locker) and a live-derived view (locked_*,claimable_*,next_unlock) plus asummarywith 7d / 30d forward unlock totals.madeonsol_token_locks_feed(GET /tokens/locks) is the cross-token feed of NEW contracts (cursorpagination.next_since, or push on WS channeltoken:locks),madeonsol_token_unlocks(GET /tokens/unlocks) lists upcoming unlock EVENTS (cliff / period / final / tranche) inside a 1h–90d window sorted by soonest / largest_usd / largest_pct. LP locks are not included — token/vesting locks only.madeonsol_token_fee_shares(GET /tokens/{mint}/fee-shares) decodes a pump.fun coin's on-chainSharingConfig— shareholders withshare_bps,is_admin,is_social_pda(fees earmarked for an X identity:social.platform2 = X,user_id= the numeric platform id, not the handle),redirected_bps,is_default: true= 100% to the creator — plus a distributions rollup and config history;madeonsol_token_fee_claims(GET /tokens/fee-claims) is the fee-event feed (distributionwith per-addresspayouts[],social_claim,shares_created/updated/reset,creator_transferred,creator_claimonly when asked viatype=), pushed on WS channeltoken:fee_claims. Fee-event history starts 2026-08-17. All base-unit amounts are digit strings; ui / usd / pct arenullwhen decimals or price are unknown.
New in 1.23.0 — live holder census: exact holder count, labelled holders, and pools that are named, not just excluded. The new
madeonsol_token_holderstool bindsGET /tokens/{mint}/holders(PRO+): every token account of the mint read from the ledger atconfirmedand merged per owner, soconcentration.holder_countis EXACT (distinct non-zero owners minus pools / bonding curves / burns) — never a trade-derived estimate; it isnullonly when the provider refuses the census for a mega-cap, in which case you get the top-20 view andsource.census_fallback_reasonsays so. Each disclosed owner carries our labels (deployer/kol/early_buyer/bundle/bot/dump_cluster— empty means unknown to us, not clean), andexcluded[]NAMES what was taken out of the circulating denominator:reason=pool(withdex+pool_address),bonding_curve(pump.fun / LaunchLab),burn, orprogram_accountonly when we genuinely cannot attribute the PDA;pool_pct/burned_pct/program_pctsplit the exclusion. Amounts are raw u64 strings. Disclosure: PRO ranks 1–10, ULTRA 1–50, BUSINESS 1–100 — the maths is tier-independent. Big tokens take 5–30 s upstream: you get503 holder_scan_in_progresswithretry_after_seconds: 20while the scan finishes into the cache, and the retry is instant.
New in 1.22.0 — two prices on the trade tape, and the right one is now the default. The trade tape now tells you what a trade actually cost.
price_sol/price_usdon each trade are THIS trade's executed price —sol_amount / token_amount, reconciling exactly with the amounts on the same row and with the PnL endpoints. Becausesol_amountis the wallet's net SOL movement, that is the trader's all-in effective rate: swap fee and any account rent included, not the pool mid. The market-cap tracker's canonical pool price moved to the newmarket_price_sol/market_price_usdfields — it is sampled once per token per pool update, so every trade in the same slot shares it. Until nowprice_solcarried that canonical value and disagreed with the row's own amounts by a 7.9% median (p90 ~74%): a stale market price reads low in a pump and high in a dump, so anything you averaged out of the tape inherited the bias instead of cancelling it. Useprice_solfor cost basis, fills and PnL;market_price_solfor a per-token series independent of trade size and direction. Bothmadeonsol_token_tradesandmadeonsol_wallet_tradescarry all four fields, and both tool descriptions spell out which price to use so an agent does not average the wrong one.
New in 1.21.0 — the Deployer Hunter surface completed. Seven new operations that existed on the API but had no SDK binding:
madeonsol_deployer_leaderboard,madeonsol_deployer_stats,madeonsol_deployer_profile,madeonsol_deployer_tokens,madeonsol_deployer_alert_stats,madeonsol_deployer_best_tokensandmadeonsol_deployer_recent_bonds. Readbonding_rate(lifetime) againstrecent_bond_rate(rolling) — the gap between them is the signal, not either number alone.runner_rateonly means something oncelabeled_tokens >= 3, and an untracked wallet returns a profile with zeroed counters, not a 404, so checktotal_deployedbefore reading a 0% bond rate as a track record. Dependency ranges are now bounded to the versions actually tested (@x402/*^2.x,@solana/kit^5.5.1) instead of open-ended>=0.0.1, and the lazily-imported x402 peers are marked optional — a keyed install no longer pulls the whole Solana stack.
New in 1.20.0 — Token depth / price impact + deployer self-activity on risk. New tool
madeonsol_token_depth(GET /tokens/{mint}/depth) — per-pool price-impact / slippage: "how much SOL moves this token's price N%", per pool (NOT router-optimal). Pass up to 8 SOL buysizes(each >0 and ≤10000; default[0.5, 1, 5, 10]); every computable pool returnsspot_price_sol,fee_pct, aquotes[]entry per size (size_sol,tokens_out,avg_price_sol,price_impact_pct), andto_move_price— the SOL required to move price 1% / 5% / 10%. Constant-product AMMs are served from stream reserves (source: "stream"withreserves_age_ms); pump.fun/bonk bonding curves from a live read of the curve's virtual reserves (source: "live_rpc"). Pools that can't be priced honestly — concentrated CLMM/Orca/DLMM, Meteora-DBC curves, unclassified models — come back inunsupported_pools[]with areason(e.g.concentrated_liquidity_depth_not_supported,curve_graduated_use_amm_pool) instead of a wrong number;primary_poolnames the deepest computable pool,found: falsemeans no pools tracked. PRO/ULTRA only. Andmadeonsol_token_risknow returns a top-leveldevblock (deployer self-activity;nullwhen the mint has no deployer-pipeline row): the create-tx self-buy snapshot (buy_sol,buy_tokens,buy_supply_pct), the post-create rollup (bought_tokens_after— catches the same-second-separate-tx dev buy the create snapshot reads as 0 —sold_tokens,sold_sol,first_sell_at/last_sell_at), live on-chain holdings (holdings_tokens,holdings_supply_pct— pump.fun 1B denominator, null elsewhere —wallet_empty: is the dev wallet empty NOW), andtransferred_out(tokens left without a sell;null= unknown, never a guess), plusas_of.deployer:alertwebhook/WS payloads gaindev_buy_sol+dev_buy_supply_pct.New in 1.19.0 — Batch wallet classification + token trade tape + bigger keyless catalog. New tool
madeonsol_wallet_batch_classify— reputation flags for 1–100 wallets in one call (counts as one request): per walletis_sniper/is_bundler/is_dumper/is_kol(+kol_name),bot_confidence(string enumnone/low/medium/high,nullwhen not alpha-tracked), and adump_clusterblock (dump_cohorts,runner_cohorts,total_cohorts,as_of). Flags are pump.fun-pipeline scoped —false= not observed, NOT verified clean;is_bundleris lifetime,is_dumperis a rolling 42d window. New toolmadeonsol_token_trades— mint-scoped cursor-paginated trade tape (the backfill complement to the live firehose):tx_signature,wallet_address,action,sol_amount,token_amount,price_sol/price_usd,early_buyer_rank,slot,block_time,traded_at; filtersaction/wallet/since–until(default FULL history — capture starts 2026-04-12), plus acoveragehonesty block. Both PRO/ULTRA.madeonsol_wallet_statsflags gainis_sniper/is_bundler/is_dumper+dump_cluster, andbot_confidenceis now correctly typed as a string enum (it was documented as a number and always came backnulldue to a server bug — now returns real values).madeonsol_token_riskinputs andmadeonsol_sniper_recentdeploys gain the slot-windowsniper_footprint/footprintrollup (buys,buyers,sol,supply_pct,sniper_wallet_buys,data_available,as_of—null= not observable, not zero). The keyless x402 catalog grows 18 → 25 endpoints: token candles ($0.01), almost-bonded ($0.01), top-traders ($0.02), cap-table ($0.02), sniper recent ($0.01), token flow ($0.01), deployer trajectory ($0.01) —madeonsol_sniper_recentandmadeonsol_deployer_trajectorynow work keyless via x402 too.New in 1.18.0 — Verified on-chain wallet holdings. New tool
madeonsol_wallet_holdings— the wallet's CURRENT holdings read straight from chain: its actual SPL + Token-2022 token accounts and SOL balance, each enriched with ourprice_usd/value_usd/market_cap_usd/name/symbol/is_bonded, plustransfer_delta(on-chain amount − trade-derived net position — exposes non-swap flows like airdrops, insider funding, and wallet-hopping). Distinct frommadeonsol_wallet_positions(trade-derived FIFO): this is what the wallet actually holds right now. Params:limit(1–500, default 200),min_value_usd(default 0). Returns{ address, sol_balance, holdings[], summary, verified_at, trade_window_days, cache_hit, ttl_seconds }. ULTRA only.New in 1.17.0 — Bundle-cohort holdings. New tool
madeonsol_token_bundle— which same-slot "bundle" wallets bought a token and how much of supply they still hold (the incumbents' "current held %" rug/insider signal, from confirmed on-chain data). Returns abundleblock (wallet_count,bundle_kindatomic_tx/same_slot/none,held_ratio,held_pct_of_supply— the headline, net held / circulating supply, null if unknown —fully_exited,buy_volume,tokens_held) plus awallets[]array (rank,wallet,held_ratio,has_sold,atomic,is_kol). BASIC get the bundle block only (emptywallets[]); PRO adds top-10 flags-only wallets; ULTRA returns the full cohort with enriched identities (kol_name,win_rate,bot_confidence,tokens_held).New in 1.16.0 — Batch risk scoring + live stream-session control. New tool
madeonsol_tokens_batch_risk— bulk rug-risk/safety scoring for up to 50 mints in one call, returning the same per-mint shape asmadeonsol_token_risk(0–100 score,band, explainablefactors[], rawinputs) plus anas_oftimestamp; untracked mints come back as{ mint, error: "not_tracked" }without failing the batch, and the whole call counts as one request against quota. Plus two WebSocket session tools:madeonsol_stream_sessions_list(list your live sessions —id,service,tier,channels,connected_at,remote_ip,messages_sent) andmadeonsol_stream_session_kill(force-disconnect a session by id to free its connection slot, e.g. a ghost socket). PRO/ULTRA only.New in 1.15.0 — Almost-bonded discovery + trending sorts. New tool
madeonsol_almost_bonded— pre-bond pump.fun tokens near graduation, ranked by velocity (Δprogress/min): "95% and accelerating" beats "92% stalled". Each token carriesprogress_pct,velocity_pct_per_min,eta_minutes,stalled,real_sol_reserves,market_cap_usd,liquidity_usd,authorities_revoked,deployer_tier, andage_minutes. Params:min_progress,max_progress,min_velocity_pct_per_min,max_age_minutes,deployer_tier,authority_revoked,min_liq,sort(velocity_desc / progress_desc / eta_asc),limit. PRO/ULTRA only. Plusmadeonsol_tokens_listgains four momentum sorts —mc_change_5m_desc,mc_change_1h_desc,volume_1h_desc, andtrending(composite recent-volume × positive-momentum rank).New in 1.14.0 — Token trade flow. New tool
madeonsol_token_flow— a trade-flow aggregate (organic-vs-fake volume) over a1h/24hwindow:unique_wallets/unique_buyers/unique_sellers,buy_count/sell_count/total_trades,buy_sol/sell_sol/net_sol(sell − buy; positive = net SOL leaving the pool), andtrades_per_wallet(wash-trading proxy). PRO/ULTRA only. Deployer alerts (madeonsol_deployer_alerts) now carrydeployers.deployer_sol_balance— the deployer wallet's SOL balance at alert time (null for historical rows).New in 1.13.0 — Token OHLCV candles. New tool
madeonsol_token_candles— historical price candles (1m/5m/15m/1h/4h/1d) aggregated from the on-chain trade firehose. Each candle hast/open/high/low/close/volume_usd/trades/market_cap_usd. PRO returns OHLCV for the last 30 days; ULTRA adds buy/sell volume + count splits, net flow, MEV volume, open/close liquidity, high/low MC, and full history. PRO/ULTRA only.New in 1.12.0 — Token risk score. New tool
madeonsol_token_risk— a transparent 0–100 rug-risk/safety score (higher = riskier) with aband(safe/caution/danger), an explainablefactors[]array, and the rawinputs(mint/freeze authority, liquidity, liq-to-MC ratio, transfer fee, launch cohort, deployer bond rate, KOL signal, blacklist). PRO/ULTRA only.New in 1.11.0 —
madeonsol_tokens_listgains three new filter params:min_liq_mc_ratio,max_liq_mc_ratio, anddeployer_tier. Response items now includeliquidity_to_mc_ratioanddeployer_tier. New tool:madeonsol_signal_performance— evaluate signal efficacy (hit rate, sample size, median outcome) before acting on any signal. KOL leaderboard entries now includemedian_hold_minutes_30dandpercentile_early_entry_30d.New in 1.10.4 — Deployer alerts/profiles now expose
runner_rate+labeled_tokens(fraction of a deployer's labeled tokens that ran vs dumped, gate onlabeled_tokens≥3) plusavg_time_to_bond_minutes.
New in 1.10.3 — Dump-cluster detection.
madeonsol_token_buyer_qualitybreakdown now includesdump_cluster_count(3+ dump-cluster wallets in the first-20 → 94% historical dump rate vs 61% base) andrecycled_early_buyer_count. Full breakdown is returned on all tiers. Also: the API now pushes every pump.fun graduation in real time (token:graduationsWS channel).
New in 1.10 — Deshred Sniper Alerts.
madeonsol_sniper_recentsurfaces pump.fun deploys from shred-level data ~500ms before on-chain confirmation. PRO: elite/good deployers. ULTRA: all tiers + custom watchlist. Usesniper:deploysWebSocket orsniper:deploywebhook for live push.New in 1.9 — Price alerts, scout leaderboard, coordination history.
madeonsol_price_alerts_*CRUD (PRO=5, ULTRA=25).madeonsol_scout_leaderboardranks top scouts by first-touch follow-on rate.madeonsol_coordination_historyandmadeonsol_peak_historyexpose the historical record.madeonsol_wallet_statsnow returnsderived: win_rate, roi, verdict, biggest_miss.New in 1.8 — Universal Wallet API.
madeonsol_wallet_stats,madeonsol_wallet_pnl,madeonsol_wallet_positions,madeonsol_wallet_trades— FIFO cost-basis PnL and cursor-paginated raw trades for any Solana wallet. PRO+. Cache hits don't count against quota.New in 1.7.0 (2026-05-12) — Two new tools:
madeonsol_me(account/quota introspection — read tier, remaining requests, and per-feature usage without parsing rate-limit headers) andmadeonsol_tokens_list(PRO+ filtered, sortable token directory — MC band, liquidity floor, primary DEX, authority/safety flags, plus computed 1h volume / MEV-share / MC-change deltas). Token responses now expose velocity / MEV-share fields. Token directory defaults tomin_liq=2000to skip phantom-MC dust — passmin_liq=0to opt out./token/{mint}now returns structured 400 errors (code/reason/example/docs) instead of plain strings. Deprecatedavg_entry_mc_usdfield fully removed from KOL/alpha leaderboards.
Install via Smithery (one line)
Smithery is the easiest path — it writes the config for you and handles the install:
npx -y smithery mcp add madeonsol/solana-kol-intelligenceSmithery prompts for your MADEONSOL_API_KEY (free at madeonsol.com/pricing) and wires up Claude Desktop or your chosen MCP client. Restart the client and ask: "What are KOLs buying right now?"
You can also browse tools from the CLI:
npx -y smithery tool get madeonsol/solana-kol-intelligence madeonsol_kol_feedRelated MCP server: cryptoiz-mcp
Quick start — manual config (10 seconds)
npm install -g mcp-server-madeonsolAdd to claude_desktop_config.json or Cursor MCP settings (free tier at https://madeonsol.com/pricing):
{ "mcpServers": { "madeonsol": { "command": "mcp-server-madeonsol", "env": { "MADEONSOL_API_KEY": "msk_..." } } } }Restart Claude Desktop and ask: "What are KOLs buying right now?"
AI agent quickstart (x402 / pay-per-call)
Building an autonomous agent? Skip the signup. Point a funded Solana wallet at the server and every tool call auto-pays a micropayment over x402 — no API key, no account, no rate-limit dance.
{
"mcpServers": {
"madeonsol": {
"command": "mcp-server-madeonsol",
"env": {
"SVM_PRIVATE_KEY": "<base58 solana private key>"
}
}
}
}How it works:
The wallet behind
SVM_PRIVATE_KEYsettles each request as a USDC micropayment on Solana (~$0.005–$0.02 per call, settled on-chain). No subscription, no quota.The keyless catalog covers 25 endpoints — the latest additions: token candles ($0.01), almost-bonded ($0.01), top-traders ($0.02), cap-table ($0.02), sniper recent deploys ($0.01), token flow ($0.01), and deployer trajectory ($0.01).
The free
madeonsol_discoverytool needs no auth and returns every endpoint with its exact per-call price — call it first to see what each tool costs.Install the x402 peer deps alongside the server (only required for this mode):
npm install -g mcp-server-madeonsol @x402/fetch @x402/svm @x402/core @solana/kit @scure/base
Data only. MadeOnSol returns trading intelligence — it never trades, signs swaps, or takes custody of funds. The only thing your wallet ever pays for is the per-call data fee.
Prefer a fixed monthly bill, free tier, or no wallet? Use the developer path below.
Authentication
Two options (in priority order):
Method | Env var | Best for |
MadeOnSol API key (recommended) |
| Developers — get a free key |
x402 micropayments |
| AI agents with Solana wallets |
v1.0 breaking change: RapidAPI auth (
RAPIDAPI_KEY) has been removed. The MadeOnSol RapidAPI marketplace was retired on 2026-04-19. Get a freemsk_key at madeonsol.com/pricing.
Install
npm install -g mcp-server-madeonsolx402 peer deps (
@x402/fetch @x402/svm @x402/core @solana/kit @scure/base) are only needed when usingSVM_PRIVATE_KEY.
Configure
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"madeonsol": {
"command": "mcp-server-madeonsol",
"env": {
"MADEONSOL_API_KEY": "msk_your_api_key_here"
}
}
}
}Cursor
Add to MCP settings with the same command and env vars.
Tools
KOL Intelligence
Tool | Description |
| Real-time KOL trade feed (1,000+ wallets) |
| Multi-KOL convergence signals (v1.1) — peak-density window, exit detection, 0-100 score |
| First-KOL-touch events — backtested scout signal. Filter by scout tier, winrate, token age, mint suffix |
| KOL PnL and win rate rankings (180 days of history; periods: today, 7d, 30d, 90d, 180d) |
| KOL affinity matrix — which KOLs co-trade the same tokens |
| KOL momentum tokens — accelerating buy interest |
| Tokens ranked by KOL buy volume (5m–12h windows). ULTRA adds full KOL wallet addresses. |
| Deep per-wallet PnL: equity curve, risk metrics, closed positions. ULTRA adds open positions (tokens bought but not yet sold). |
| KOL entry/exit timing profile — available on all tiers |
Deployer Hunter
Tool | Description |
| Pump.fun deployer launches with KOL enrichment. Filter by tier (elite/good/moderate/rising/cold). ULTRA unlocks full pagination. Each alert's |
| Deployer skill curve — streaks, rolling bond rate, trend — available on all tiers |
| A pump.fun deployer's daily reputation time-series ( |
Deshred Sniper Alerts (new in 1.10 — Pro/Ultra)
Pre-confirm pump.fun deploy feed reconstructed from shred-level (deshred) data — launches surface ~500ms before they confirm on-chain. Pro sees elite/good deployers; Ultra sees every tier.
Tool | Description |
| Newest-first deshred deploy feed. Pro: elite/good · Ultra: all tiers · keyless x402: $0.01 (elite/good). |
| Deshred deploys for a single deployer wallet (Ultra) |
Wallet Tracker
Tool | Description |
| List your tracked wallets and remaining capacity (Free: 10, Pro: 50, Ultra: 100) |
| Add a wallet to your watchlist |
| Remove a wallet from your watchlist |
| Historical swap/transfer events for watched wallets (120-day retention) |
| Per-wallet stats: swap counts, SOL bought/sold, last event |
Universal Wallet (new in 1.8 — any wallet, not just curated KOLs, PRO+)
Tool | Description |
| Aggregate 90d stats + cross-product flags (is_kol, is_alpha_tracked + bot_confidence |
| New 1.19 · Bulk reputation flags for 1–100 wallets in one call — is_sniper/is_bundler/is_dumper/is_kol + kol_name, bot_confidence, dump_cluster. Pump.fun-pipeline scoped: |
| Full FIFO cost-basis PnL: realized + unrealized SOL, profit factor, max drawdown, avg + median hold minutes, daily UTC PnL curve, closed + open positions hydrated with live mc-tracker prices |
| Open positions only — lighter slice of /pnl. Shares the same cache. |
| New 1.18 · Verified CURRENT on-chain holdings (real SPL + Token-2022 accounts + SOL) enriched with price/MC/name, plus |
| Cursor-paginated raw trades with action / token / since-until filters |
Cached server-side with dynamic TTL (5min / 1h / 24h based on last activity). Cost basis observable only inside the 90-day window.
Alpha Wallet Intelligence
Scored from 1M+ early-buyer records (wallets seen in the first 20 buyers of Pump.fun tokens).
Tool | Tier | Description |
| All | Top profitable early-buyer wallets. Up to 100 on Free/Pro; ULTRA unlocks 500 + bot signals |
| ULTRA | Full per-token breakdown + bot_signals array |
| ULTRA | Wallets behaviorally linked (co-bought 3+ tokens within 2s) |
Token Quality
Tool | Tier | Description |
| PRO+ | Filtered, sortable token directory — MC band, liquidity floor, primary DEX, authority/safety flags, computed 1h volume / MEV-share / MC-change deltas, plus momentum sorts ( |
| PRO+ | Pre-bond pump.fun tokens near graduation, ranked by velocity (Δprogress/min) — |
| PRO+ | First non-deployer early buyers, enriched with PnL/KOL/bot flags. PRO=10, ULTRA=20 |
| All | 0–100 buyer-quality score + full breakdown (5-min cached) |
| PRO+ | Transparent 0–100 rug-risk/safety score with |
| All | Bundle-cohort holdings — which same-slot bundle wallets bought a token and how much of supply they still hold ( |
| PRO+ | Per-venue liquidity map — every DEX pool a token trades in (pump.fun/PumpSwap/Raydium/Meteora/Orca) with per-pool |
| New 1.20 · PRO+ | Per-pool price impact / slippage — |
| New · PRO+ | Live holder census + concentration — who holds NOW (vs |
| New 1.24 · PRO+ | Token locks & vesting on a mint — every Streamflow / Jupiter Lock / Bonfida contract: |
| New 1.24 · PRO+ | Cross-token feed of NEW lock / vesting contracts, newest first — same row shape + |
| New 1.24 · PRO+ | Upcoming unlock EVENTS across all active contracts inside |
| New 1.24 · PRO+ | pump.fun creator-fee |
| New 1.24 · PRO+ | pump.fun fee-event feed, newest first — |
| New 1.25 · PRO+ | Token momentum fires, newest first — |
| PRO+ | Bulk rug-risk/safety scoring for up to 50 mints — same shape as |
| PRO+ | Historical OHLCV candles (1m–1d). PRO=OHLCV 30d; ULTRA=+net flow, liquidity delta, MEV volume, full history |
| PRO+ | Trade-flow aggregate (organic-vs-fake volume) over a 1h/24h |
| New 1.19 · PRO+ | Mint-scoped trade tape — cursor-paginated raw trades for one token (action / wallet / since–until filters, default FULL history). History starts 2026-04-12; |
Copy-Trade Rules (PRO/ULTRA)
Server-side rules that fire signals when a watched source wallet trades. Delivered via webhook (HMAC-signed) and/or WebSocket.
Tool | Description |
| List your rules |
| Create a rule. Returns |
| Get one rule |
| Update fields or toggle |
| Delete permanently |
| Recent fired signals (up to 7 days) |
KOL Coordination Alerts (PRO/ULTRA — v1.1 push signals)
Real-time push alerts when a KOL cluster co-buys the same token. Fires within ~1s (pg_notify push). Delivered via WebSocket (kol:coordination channel, user-scoped) and/or HMAC-signed webhook.
Tool | Description |
| List your rules (PRO=5, ULTRA=20) |
| Create a rule. Returns |
| Get one rule |
| Update fields or toggle |
| Delete permanently |
KOL Scout Signal — first KOL touches (new in 1.3)
Every "first KOL buy on a token mint" event. Filterable by scout tier (S/A/B/C from mv_kol_scout_score), KOL winrate, token age, mint suffix.
Backtest: S-tier scouts attract ≥3 follow-on KOLs within 4h ~50% of the time vs ~14% baseline (38d / 491k buys / 72,549 events). Public leaderboard at madeonsol.com/kol/scouts.
Tool | Description |
| Recent first-KOL-touch events. Filters: |
| List your first-touch webhook subscriptions — ULTRA |
| Create a webhook rule (HMAC-signed). Returns |
| Get one subscription — ULTRA |
| Update fields or toggle |
| Delete permanently — ULTRA |
Don't poll — push. Median lead time before the second KOL is 12 seconds. WebSocket channel:
kol:first_touches(PRO+).
Price Alerts (new in 1.9)
CRUD for token dip/recovery price alerts. Fires when a token's market cap crosses your threshold. PRO=5 rules, ULTRA=25.
Tool | Description |
| List your price alert rules |
| Create a dip/recovery alert. Returns |
| Get one alert rule by ID |
| Update fields or toggle |
| Delete permanently |
Scout Leaderboard & KOL Consensus (new in 1.9)
Tool | Tier | Description |
| PRO+ | Top scout-tier KOLs ranked by first-touch follow-on rate, win rate, and ROI |
| PRO+ | Tokens with the strongest KOL agreement signal — weighted by scout score and recent PnL |
| PRO+ | Historical peak-density windows for a token — every coordination spike with KOL breakdown |
| PRO+ | Global coordination event log with token, KOL count, score, and outcome |
Wallet Derived Stats (new in 1.9)
madeonsol_wallet_stats now returns a stats object with derived fields: win_rate (0-1), roi, verdict ("strong" | "profitable" | "neutral" | "losing"), and biggest_miss (token with the highest post-exit gain the wallet missed).
Streaming & Webhooks
Tool | Description |
| Get your WebSocket token for KOL/deployer streaming and DEX trade stream — PRO/ULTRA. Never expires (1.24.1): same token on every call; |
| List your live WebSocket sessions — |
| Evict a live WebSocket session by id to free its connection slot (e.g. a ghost socket) — PRO/ULTRA |
| Register a webhook for real-time push notifications — PRO/ULTRA |
| List your registered webhooks — PRO/ULTRA |
| Delete a webhook by ID — PRO/ULTRA |
| Send a test payload to verify a webhook — PRO/ULTRA |
General
Tool | Description |
| List all endpoints and prices (free, no auth) |
| Inspect your account — tier, daily/burst quota state, remaining requests, subscription expiry, per-feature usage (webhooks, copy-trade wallets, coordination rules, etc.). Self-throttle without parsing rate-limit headers. |
Tiers
Tier | Price | Wallets tracked | Requests/day |
BASIC (free) | $0 | 10 | 200 |
PRO | €43/mo (€430/yr) ≈ $49 | 50 | 10,000 |
ULTRA | €131/mo (€1310/yr) ≈ $149 | 100 + WS events | 100,000 |
BUSINESS | €400/mo (€4000/yr) ≈ $449 | 500 + WS events | 500,000 |
Free tier returns the full REST response shape on 40+ endpoints — real wallets, TX signatures, full precision — with live feeds delayed 5 minutes (delayed responses carry delay/as_of and an X-Data-Delay header). Paid tiers are real-time and unlock webhooks, WebSockets, rule engines, and ULTRA-only data depth; x402 pay-per-call is always real-time. Get a key at madeonsol.com/pricing.
Also Available
Platform | Package |
TypeScript SDK |
|
Rust SDK |
|
Python (LangChain, CrewAI) |
|
ElizaOS | |
Solana Agent Kit |
License
MIT
Available Tools
51 toolsmadeonsol_alpha_leaderboardARead-onlyIdempotent
Top statistically profitable early-buyer wallets, scored from 47,000+ early-buyer records. BASIC=25 (truncated), PRO=100, ULTRA=500 + bot signals.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time window | 30d |
| min_tokens | No | Minimum tokens traded by wallet (1-20) | |
| sort | No | Sort axis | win_rate |
| exclude_bots | No | Exclude wallets flagged as bots |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds valuable behavioral context: results are truncated per tier (25/100/500) and ULTRA includes bot signals. This goes beyond annotations by disclosing data limitations and tier-dependent behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. First sentence defines the tool, second explains tier limits. Information is front-loaded and efficiently packaged.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although no output schema exists, the description explains the nature of the output (leaderboard of profitable wallets) and mentions tier-based data limitations. For a simple list-type tool, this is nearly complete; missing only explicit return fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters documented. The description adds no further meaning to parameters (sort, period, min_tokens, exclude_bots). Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool returns 'Top statistically profitable early-buyer wallets' from a large dataset, clearly distinguishing it from sibling leaderboards that focus on KOLs or scouts. The verb 'scored' and mention of tier limits add specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for analyzing early-buyer wallet profitability, but does not explicitly state when to use it over alternatives like 'madeonsol_kol_leaderboard' or 'madeonsol_scout_leaderboard'. No exclusions or context-aware guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_alpha_linkedARead-onlyIdempotent
Wallets behaviorally linked to a target wallet (co-bought 3+ tokens within 2 seconds). ULTRA only.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Wallet address (base58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, openWorld, idempotent, and non-destructive. The description adds behavioral detail (co-bought logic) and access restriction (ULTRA only), which goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single 11-word sentence that is front-loaded and compact. Every element earns its place, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, no output schema, and comprehensive annotations, the description provides sufficient context: input, logic, and access level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the description does not add new meaning to the wallet parameter beyond calling it a 'target wallet'. Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns wallets behaviorally linked to a target wallet via a specific heuristic (co-bought 3+ tokens within 2 seconds). It distinguishes from sibling alpha tools like madeonsol_alpha_wallet by focusing on linkage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for finding linked wallets but does not explicitly state when not to use or mention alternatives. However, the sibling list provides context for differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_alpha_walletARead-onlyIdempotent
Full alpha profile for one wallet — per-token breakdown + bot_signals array. ULTRA only.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Wallet address (base58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. Description adds that the output includes per-token breakdown and bot_signals, clarifying what the agent can expect. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with no wasted words; front-loaded with core purpose, then specifics. Perfectly sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool, the description is largely sufficient. However, 'ULTRA only' is ambiguous without context, and 'bot_signals array' could be explained further for clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with 'Wallet address (base58)' already described. Description doesn't add parameter meaning beyond what's in the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it provides a 'Full alpha profile for one wallet' with specific components ('per-token breakdown + bot_signals array'). The 'ULTRA only' qualifier distinguishes it from other wallet tools, though 'alpha profile' could be more precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only hints at usage with 'ULTRA only', implying a permission constraint, but provides no explicit guidance on when to use this versus sibling tools like wallet_stats or wallet_positions. No alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_coordination_alerts_createA
Create a coordination alert rule. Fires within ~1s when a KOL cluster meets thresholds (peak-density scored). Delivered via WebSocket (kol:coordination channel) and/or HMAC-signed webhook. Returns webhook_secret ONCE when delivery_mode includes 'webhook' — store it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional label | |
| min_kols | No | Minimum distinct KOLs in the window (default 3) | |
| window_minutes | No | Peak-density window size in minutes (default 15) | |
| min_score | No | Minimum composite score 0-100 (default 60) | |
| include_majors | No | Include WIF/BONK/POPCAT etc. Default false. | |
| cooldown_min | No | Silence per (rule, token) in minutes (default 60) | |
| score_jump_break | No | Re-fire early when score jumps by N points vs last fire (default 10) | |
| delivery_mode | No | Where to deliver fires | |
| webhook_url | No | Required when delivery_mode includes 'webhook' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: firing latency (~1s), delivery methods (WebSocket channel and HMAC-signed webhook), and the one-time return of webhook_secret. Annotations indicate write operation but non-destructive. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words, front-loading the purpose and adding essential behavioral details efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no required ones, and no output schema, the description covers key aspects: creation, firing condition, delivery, and return value. Missing error cases but acceptable given output schema absence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description adds context on overall behavior (peak-density scoring) but does not significantly enhance per-parameter meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a coordination alert rule, specifies firing condition (KOL cluster meets thresholds within ~1s), delivery methods (WebSocket and/or webhook), and return of webhook_secret. It distinguishes from sibling alert tools like price_alerts_create and coordination_alerts_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for setting up KOL coordination alerts with thresholds, but lacks explicit guidance on when to use this vs alternatives like price_alerts_create or first_touch_subscriptions_create. However, for a creation tool, the context is fairly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_coordination_alerts_deleteADestructiveIdempotent
Delete a coordination alert rule permanently.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Rule UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and readOnlyHint=false. Description adds 'permanently' aligning with destructiveness but no further behavioral details. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short single sentence, front-loaded. Every word earns its place, though 'permanently' is slightly redundant given annotations. Still concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple delete operation with one required parameter and no output schema. Description explains purpose and implies irreversibility. No missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'id' fully described in schema as 'Rule UUID'. Description adds no extra meaning beyond confirming the parameter is required and identifies the rule.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it deletes a coordination alert rule permanently. It uses a specific verb and resource, and differentiates itself from siblings like create, get, list, update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like update or other delete tools. Context is implied by the tool name and sibling set, but description lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_coordination_alerts_getARead-onlyIdempotent
Get one coordination alert rule by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Rule UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, clearly indicating safe, non-destructive, idempotent behavior. The description does not contradict these annotations but adds no further behavioral context beyond the 'by id' constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of six words, highly concise and front-loaded with the core action. Every word is necessary and no extraneous information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema, rich annotations), the description provides sufficient context for an agent to understand the tool's behavior. It is complete for a straightforward get-by-id operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'id,' which includes a description 'Rule UUID.' The tool description does not add additional meaning to this parameter beyond what the schema already provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get one coordination alert rule by id,' which clearly identifies the verb and resource. It distinguishes from sibling tools like list (get all) and create/delete/update, as it specifies retrieval of a single rule by its unique identifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as listing all rules or searching. The description lacks context about prerequisites, fallback options, or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_coordination_alerts_listARead-onlyIdempotent
List your coordination alert rules. PRO=5 rules, ULTRA=20.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, indicating a safe, non-destructive read operation. The description adds value by disclosing plan-specific rule limits (PRO=5, ULTRA=20), which is not in annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence and a clause with no unnecessary words. Every part is necessary and immediate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description provides the essential information: what it lists and plan limits. It is complete enough for an agent to use correctly, though it could optionally mention that it returns a list of rules.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the input schema has 100% coverage. The description does not need to add parameter semantics. Baseline score of 4 applies as the description is adequate for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists coordination alert rules, with the verb 'List' and resource 'coordination alert rules'. It also differentiates from siblings like create, delete, get, update by specifying the listing action and plan-specific limits (PRO=5, ULTRA=20).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like create or get. However, the context of the sibling tool names (e.g., _list, _create) implies that _list is for listing, but no when-not or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_coordination_alerts_updateC
Update fields on a coordination alert rule, including is_active toggle.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Rule UUID | |
| name | No | ||
| min_kols | No | ||
| window_minutes | No | ||
| min_score | No | ||
| include_majors | No | ||
| cooldown_min | No | ||
| score_jump_break | No | ||
| delivery_mode | No | ||
| webhook_url | No | ||
| is_active | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond the annotation's readOnlyHint=false, such as whether updates are partial or full replacement, or authentication requirements. The annotation provides minimal context, and the description adds little transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence, 12 words) and front-loaded with verb and resource. However, it sacrifices necessary detail for brevity, making it less informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters, no output schema, and sparse annotations, the description is incomplete. It does not explain return values, error cases, or how partial updates work, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 9% schema description coverage, the description adds very little meaning. It only mentions 'fields' and 'is_active toggle', leaving many parameters (e.g., min_kols, cooldown_min, delivery_mode) without explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'coordination alert rule', and mentions a specific field ('is_active toggle'). It effectively distinguishes from sibling tools like create, delete, get, and list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., when to update vs. create or delete). There is no discussion of prerequisites, context, or when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_copytrade_createA
Create a copy-trade rule. Returns webhook_secret ONCE on creation when delivery_mode includes 'webhook' — store it to verify HMAC signatures. PRO=5 source_wallets/rule, ULTRA=50.
| Name | Required | Description | Default |
|---|---|---|---|
| source_wallets | Yes | Wallets to mirror (base58) | |
| sizing_amount | Yes | Amount used by the chosen sizing_mode | |
| name | No | Optional human label | |
| min_trade_sol | No | Minimum source-wallet trade size to fire a signal | |
| only_action | No | Filter to one side (default 'both') | |
| sizing_mode | No | How sizing_amount is interpreted | |
| delivery_mode | No | Where to deliver fired signals | |
| webhook_url | No | Required when delivery_mode includes 'webhook' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that webhook_secret is returned only once, which is critical for HMAC signatures. Annotations already indicate a write operation (readOnlyHint=false), so this adds meaningful context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with purpose, followed by essential behavioral note and limits.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with 8 parameters and no output schema, the description covers purpose, return value caveat, and constraints. Missing error handling or activation details, but adequate overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal parameter context beyond schema, mainly the limit on source wallets. Does not explain each parameter's meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb and resource ('Create a copy-trade rule'), with specific constraints on webhook secret and limits. Does not explicitly differentiate from sibling copy-trade tools (delete, update, etc.), but the verb is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for creating rules, but no explicit guidance on when to use this versus alternatives like update or delete. No 'when not to use' or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_copytrade_deleteADestructiveIdempotent
Delete a copy-trade rule permanently.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Subscription id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and idempotentHint=true. Description adds 'permanently', confirming irreversibility, but provides no other behavioral traits like auth needs or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous information. Efficiently communicates the essential action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, clear annotations), the description is complete enough. No further information is necessary for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the 'id' parameter as 'Subscription id'. The description does not add additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (delete) and resource (copy-trade rule), and adds 'permanently' to indicate irreversibility. It distinguishes from sibling tools like create, get, list, and update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. While it is obvious as the only delete tool, there are no conditions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_copytrade_getARead-onlyIdempotent
Get one copy-trade rule by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Subscription id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds no additional behavioral context beyond what the annotations provide, which is adequate but not enhanced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that conveys the essential purpose without any extraneous words. It is optimally concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter retrieval tool with robust annotations, the description provides sufficient context. It could mention return value details, but the lack of an output schema does not detract significantly from completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the only parameter ('id' is 'Subscription id'). The description adds no further clarification about the parameter's format or usage, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('copy-trade rule') with a qualifier ('by id'). It effectively distinguishes this tool from siblings like 'list' or 'create'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'madeonsol_copytrade_list' or when not to use it. The usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_copytrade_listBRead-onlyIdempotent
List your copy-trade rules. PRO=3 rules, ULTRA=20 rules.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. Description adds plan limit info (PRO=3, ULTRA=20) which is useful behavioral context, but does not disclose other traits like pagination or sorting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise, single sentence with no wasted words. Front-loaded with action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and low complexity, the description is adequate but could be improved by mentioning the output format (e.g., returns an array of rules) or its relationship to plan limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in the schema, so description adds no parameter semantics. Baseline of 4 for 0 parameters is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists copy-trade rules, using a specific verb and resource. The plan limit info adds context, but it does not explicitly differentiate from sibling tools like madeonsol_copytrade_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like get, update, or create. The description merely states the function and plan limits without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_copytrade_signalsARead-onlyIdempotent
Recent fired copy-trade signals (up to 7 days). Filter by subscription_id, since (ISO8601), and limit (1–500).
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | No | Filter to one rule | |
| since | No | ISO8601 timestamp — only signals fired at-or-after this time | |
| limit | No | Max signals to return (1–500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: 7-day window and filtering capability. Annotations already indicate read-only, idempotent, and safe behavior; description aligns and complements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 18 words, front-loaded with core purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should detail return format. It mentions filters but not the structure of a signal object, leaving some incompleteness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description restates parameters as filters without adding new semantic details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Recent fired copy-trade signals (up to 7 days)', specifying the resource (signals) and scope. Differentiates from sibling tools like copytrade_list and signal_performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage via filters, but no explicit guidance on when to use vs alternatives like copytrade_list or signal_performance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_copytrade_updateC
Update fields on a copy-trade rule, including is_active toggle.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Subscription id | |
| name | No | ||
| source_wallets | No | ||
| min_trade_sol | No | ||
| only_action | No | ||
| sizing_mode | No | ||
| sizing_amount | No | ||
| delivery_mode | No | ||
| webhook_url | No | ||
| is_active | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false) and non-destructiveness (destructiveHint=false). The description adds only 'update fields', with no details on side effects, partial vs full update behavior, or constraints. Minimal additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but insufficiently informative given the tool's complexity. It is front-loaded with the action, but brevity sacrifices necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 10 parameters, no output schema, and no explanation of return values or error states. Missing context about required fields, defaults, or relationships to siblings. The description is far from complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 10% schema description coverage, the description should compensate but only mentions 'is_active' as an example. The other 9 parameters (including enums like only_action, sizing_mode, delivery_mode) are left unexplained. The description adds little meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'update' and the resource 'copy-trade rule', with an example field 'is_active toggle'. Among siblings like madeonsol_copytrade_create, get, list, this tool is unambiguously the update variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, prerequisites (e.g., requires an existing rule ID), or when not to use it. The description is silent on usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_create_webhookA
Register a webhook URL to receive real-time push notifications for KOL trades and deployer alerts. Requires Pro/Ultra subscription.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | HTTPS webhook URL to receive events | |
| events | Yes | Event types to subscribe to | |
| min_sol | No | Optional: minimum SOL amount filter (for kol:trade) | |
| action | No | Optional: filter by buy or sell only | |
| deployer_tier | No | Optional: filter by deployer tiers, e.g. ['elite', 'good'] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only, not destructive, open-world, and not idempotent. The description adds the subscription requirement but does not disclose other behavioral traits like side effects (e.g., external endpoint activation), idempotency behavior on duplicate URLs, or authentication details. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the purpose and requirement. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 5 parameters and no output schema, the description covers the basic purpose and prerequisite but lacks details on return values, error handling, or validation. With no output schema, the agent would benefit from knowing what response to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to repeat parameter details. It provides no additional meaning beyond the schema descriptions. The baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Register a webhook URL), the resource (webhook URL), and the purpose (receive real-time push notifications for KOL trades and deployer alerts). It distinguishes from sibling tools like list_webhooks or delete_webhook by specifying the creation action and event types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the Pro/Ultra subscription requirement but provides no guidance on when to use this tool vs alternatives like coordination_alerts_create or other webhook tools. There is no explicit when-to-use or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_delete_webhookBDestructiveIdempotent
Delete a webhook by ID. Permanently removes the webhook and its delivery history.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. Description adds minimal value by stating permanence, but lacks additional behavioral details (e.g., auth requirements, irreversibility beyond what annotations imply).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose, no superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with one parameter and no output schema. Mentions permanence, but could be slightly more explicit about irreversibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with param 'id' described as 'Webhook ID to delete'. Description aligns but adds no new semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action ('Delete a webhook by ID') and consequences ('Permanently removes the webhook and its delivery history'). Distinct from sibling tools like create, test, list, though sibling differentiation is not explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., other delete tools like coordination_alerts_delete, price_alerts_delete). No prerequisites or conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_deployer_alertsARead-onlyIdempotent
Get real-time alerts from Pump.fun deployers with KOL buy enrichment. Filters: deployer tier, alert_type, priority, and min_kol_buys to gate out noise. Cursor-paginated via 'before' (preferred over 'offset' at scale).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of deployer alerts to return (1-100) | |
| offset | No | Legacy offset pagination (prefer 'before' for polling) | |
| before | No | Cursor — ISO 8601 timestamp; returns alerts strictly older than this. Pass next_before from the previous response. | |
| since | No | Only alerts after this ISO 8601 timestamp. | |
| tier | No | Filter by deployer tier. PRO/ULTRA only — BASIC callers receive HTTP 403. | |
| alert_type | No | Filter by alert_type (e.g. 'new_deploy', 'bonded'). | |
| priority | No | Filter by alert priority. | |
| min_kol_buys | No | Only alerts where at least N KOLs bought the token (1-100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds value by specifying it's real-time with KOL enrichment, and that 'before' cursor is preferred for pagination at scale. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose and enrichment, second lists filters and pagination. Every sentence is informative with no fluff. Front-loaded with main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers core functionality, it lacks details on the output structure (e.g., which fields each alert contains, KOL enrichment specifics). Since no output schema is provided, the agent might need to infer response format. For a tool with real-time enrichment, more output context is beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% documented parameters. The description reinforces key filter meanings (noise gating) and highlights the tier access restriction, adding context beyond schema descriptions. It also explains pagination preference, which is not in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves real-time deployer alerts with KOL buy enrichment, listing specific filters and pagination method. The sibling list includes many alert tools, but this one is uniquely focused on deployers with KOL enrichment, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides filter tips and recommends cursor pagination over offset, but does not explicitly state when to use this tool versus alternatives like coordination alerts or KOL feed. No when-not or direct sibling differentiation is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_deployer_trajectoryARead-onlyIdempotent
Deployer skill curve — streaks, rolling bond rate, improvement trend, and deployment cadence for a Pump.fun deployer.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Deployer wallet address (base58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, etc.) already declare it safe and non-destructive. The description adds context about the specific metrics returned (streaks, bond rate, etc.), which is valuable beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single succinct sentence that front-loads key terms. No fluff or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analytics tool with one parameter and no output schema, the description adequately explains what the tool returns. No additional information is necessary given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'wallet' has a clear description in the schema ('Deployer wallet address (base58)'). Schema description coverage is 100%, so the description does not need to add more. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns a deployer's skill curve including streaks, rolling bond rate, improvement trend, and deployment cadence. It uses specific terms that differentiate it from sibling tools like madeonsol_deployer_alerts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for analyzing a deployer's performance over time, but does not explicitly state when to use this tool versus alternatives like madeonsol_deployer_alerts or other deployer-related tools. No exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_discoveryARead-onlyIdempotent
List all available MadeOnSol API endpoints with prices and parameter docs. Free, no auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, destructiveHint, idempotentHint. Description adds 'Free, no auth required' and implies a list return, going beyond annotations to detail cost and authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, highly efficient, no extraneous information. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description adequately describes what the tool returns (list of endpoints with prices and docs). Sufficient for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; input schema is empty. Per guidelines, 0 parameters yields baseline 4. Description adds no extra parameter info as none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List all available MadeOnSol API endpoints with prices and parameter docs,' specifying the verb 'List' and resource 'available MadeOnSol API endpoints'. This distinguishes it from sibling tools that perform specific operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes 'Free, no auth required,' providing clear context on when to use. Does not explicitly state when not to use or list alternatives, but the broad discovery nature is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_first_touch_subscriptions_createA
Create a first-touch webhook subscription. ULTRA only — up to 10 active. Filters: kol (wallet), mint_suffix, min_first_buy_sol, min_scout_tier (S/A/B/C), min_n_touches. Returns webhook_secret ONCE — store it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional label | |
| filters | No | ||
| delivery_mode | No | Default 'webhook' | |
| webhook_url | No | Required when delivery_mode includes 'webhook' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Explicitly states 'Returns webhook_secret ONCE — store it', a critical one-time behavior. Annotations (readOnlyHint=false) are consistent but the description adds essential behavioral detail beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, constraints/filters, return value. Front-loaded and efficient with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no output schema, the description covers parameters, constraints, and the secret's one-time nature. Could mention error implications but sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% but the description enumerates all filter parameters, compensating for missing schema descriptions. It adds practical meaning beyond the structured input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a first-touch webhook subscription' and lists specific filters. It distinguishes from sibling tools like delete, get, list, and update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'ULTRA only — up to 10 active', providing clear constraints and context for when to use. Although it doesn't explicitly list alternatives, the limitation is well communicated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_first_touch_subscriptions_deleteADestructiveIdempotent
Delete a first-touch subscription permanently. ULTRA only.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Subscription UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds 'permanently' which confirms irreversibility, but this does not add substantial new behavioral context beyond the annotations. It does not mention error handling, return values, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences. It front-loads the purpose and adds a restriction. No fluff or redundant information; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no output schema, the description is too minimal. It omits critical context such as success confirmation, failure modes (e.g., subscription not found), or any undo capability. The agent may not know what to expect after invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter 'id' described as 'Subscription UUID'. The description does not add any additional meaning or constraints beyond the schema, so it provides no extra value. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete'), the resource ('first-touch subscription'), and the effect ('permanently'). It also specifies a restriction ('ULTRA only'), distinguishing it from sibling tools like create, get, list, and update. The verb and target are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implicit context with 'ULTRA only' but does not explicitly state when to use this tool versus alternatives (e.g., update). No guidance on prerequisites or conditions for deletion is given. It fails to help the agent decide between deleting and other actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_first_touch_subscriptions_getARead-onlyIdempotent
Get one first-touch subscription by id. ULTRA only.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Subscription UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the ULTRA access constraint, which is a behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using two sentences to convey the core action and a usage constraint. No unnecessary words, and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-id tool with one parameter and strong annotations, the description is nearly complete. It covers the action and the ULTRA requirement. Lacking details about response format is acceptable given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema describes the 'id' parameter as 'Subscription UUID'. The description merely says 'by id', adding no further meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get one first-touch subscription by id', using a specific verb and resource. It distinguishes itself from sibling tools like 'list' and 'delete' by specifying retrieval of a single item by identifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by stating 'ULTRA only', indicating the tool's restricted audience. It implies use when a specific subscription ID is known, but does not explicitly contrast with alternative tools like 'list'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_first_touch_subscriptions_listARead-onlyIdempotent
List your first-touch webhook subscriptions. ULTRA only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds the 'ULTRA only' access constraint, which is a behavioral trait not covered by annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short but includes action, resource, scope, and a requirement. It's efficient, though 'first-touch' may be unclear without context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description doesn't hint at what the response contains (e.g., list of subscription objects). Annotations are good, but the missing return structure limits completeness. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description need not add parameter details. The schema coverage is 100% (empty). Baseline 4 is appropriate for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists first-touch webhook subscriptions and mentions 'ULTRA only' for plan context. However, it doesn't explain what 'first-touch' means or distinguish it from similar list tools like general webhook lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., madeonsol_list_webhooks or subscription CRUD siblings). Only 'ULTRA only' hints at access restriction, but no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_first_touch_subscriptions_updateC
Update fields on a first-touch subscription, including is_active toggle. ULTRA only.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Subscription UUID | |
| name | No | ||
| filters | No | ||
| delivery_mode | No | ||
| webhook_url | No | ||
| is_active | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only and not destructive, consistent with 'Update'. However, the description does not disclose potential side effects, such as whether updating is_active triggers notifications or other actions. The openWorldHint suggests possible side effects, but the description fails to elaborate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it concise and front-loaded, but it omits important details like a list of updatable fields or behavioral notes. It achieves conciseness at the expense of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the input schema's complexity (nested filters object, six parameters) and lack of output schema, the description is too sparse. It does not explain return values, validation rules, or the effect of parameters like webhook_url or delivery_mode. The tool requires more context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 17% schema description coverage, the description adds minimal value by highlighting the 'is_active' toggle. The other five parameters (name, filters, webhook_url, delivery_mode) remain undocumented in both schema and description, leaving the agent uncertain about their purpose and format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update fields') and the resource ('first-touch subscription'), and it distinguishes from sibling tools like create, delete, get, and list. It also specifies the 'is_active' toggle and an access restriction ('ULTRA only'), but could be more explicit about the full scope of updatable fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'ULTRA only' as an access constraint but does not explain prerequisites, typical use cases, or scenarios where another tool (e.g., create or delete) would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_kol_alerts_recentARead-onlyIdempotent
Live KOL alert feed — consensus clusters, fresh-token KOL buys, and heating-up wallets in one unified stream.
| Name | Required | Description | Default |
|---|---|---|---|
| window | No | Lookback window | 15m |
| types | No | Filter to specific alert types | |
| min_severity | No | Minimum severity to include | |
| limit | No | Max alerts to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint) already declare safe, read-only behavior. The description adds no further behavioral traits (e.g., ordering, freshness guarantees, rate limits), so it does not exceed what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence (18 words) that front-loads the core purpose. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with 100% schema coverage and no output schema, the description adequately conveys the nature (live feed, alert types) but could be more explicit about ordering or time range constraints. Annotations are rich, lowering the burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions (limit, types, window, min_severity) are already clear with enums. The description does not add new meaning beyond listing the alert types, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a 'Live KOL alert feed' and lists three specific alert types (consensus clusters, fresh-token KOL buys, heating-up wallets), distinguishing it from sibling tools like madeonsol_kol_feed or madeonsol_kol_consensus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With many sibling tools (e.g., madeonsol_kol_feed, madeonsol_kol_consensus), explicit context or when-not-to-use guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_kol_compare_walletsARead-onlyIdempotent
Side-by-side comparison of 2-5 KOL wallets — strategy, winrates, ROI, percentile. PRO+ adds 30d overlap tokens (bought by 2+ of the wallets).
| Name | Required | Description | Default |
|---|---|---|---|
| wallets | Yes | 2-5 wallet addresses. BASIC=2, PRO=4, ULTRA=5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows it's a safe read operation. The description adds the context of side-by-side comparison and tier-dependent overlap tokens, but does not disclose any additional behavioral traits (e.g., response size, auth requirements, or rate limits). Given annotations carry the safety burden, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences—with no extraneous words. The first sentence states the core function and metrics; the second adds the tier-specific feature. Information is front-loaded and easily scannable. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the purpose, metric types, and tier-based feature. However, it lacks details about the output format (e.g., is it a table, JSON, or plain text?) and does not mention any prerequisites for using the PRO+ overlap feature. Given the annotations already provide safety context, the description is nearly complete but could be slightly richer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, wallets, is described in the schema with min/max items and a brief description. The tool description adds clarity by mapping wallet counts to tiers (BASIC=2, PRO=4, ULTRA=5) and mentioning the PRO+ add-on feature. This adds meaningful context beyond the schema, compensating for the lack of parameter details elsewhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool does side-by-side comparison of 2-5 KOL wallets, listing metrics like strategy, winrates, ROI, percentile. The name 'compare_wallets' reinforces this purpose. Among many KOL sibling tools (e.g., kol_consensus, kol_leaderboard), it uniquely focuses on comparison, though it could better differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like madeonsol_kol_consensus or madeonsol_kol_leaderboard. It mentions tier-specific features (BASIC, PRO, ULTRA) but does not direct the agent toward or away from this tool. The agent must infer usage from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_kol_coordinationARead-onlyIdempotent
KOL convergence signals (v1.2) — tokens being accumulated by multiple KOLs. Response includes peak_kols/peak_buys (busiest window slice), exited_count (net-flow-negative wallets), 0-100 coordination_score, and (v1.2 / 2026-05-06) market_cap_usd_at_first_buy + market_cap_usd + last_price_usd so you can see whether the cluster formed at micro-cap or after the chart was already running. Blacklist filters WIF/BONK/stables by default.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time period for coordination analysis | 24h |
| min_kols | No | Minimum number of KOLs converging on the same token | |
| limit | No | Number of coordination signals to return | |
| min_avg_winrate | No | PRO+: require cluster avg winrate_7d >= N (0-100) | |
| unique_strategies | No | PRO+: require >= N distinct strategies in cluster | |
| include_majors | No | v1.1: include major memecoins (WIF/BONK/POPCAT). Default false. | |
| window_minutes | No | v1.1: peak-density window (1-60). Default 15. | |
| min_score | No | v1.1: minimum composite coordination_score (0-100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint as true/true/true/false, so the safety profile is clear. The description adds behavioral context beyond annotations, such as the response fields (peak_kols, exited_count, coordination_score), blacklisting behavior, and version details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but efficient, front-loading the main purpose and version, then detailing response fields and blacklisting. It is well-structured and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains key response fields (peak_kols, exited_count, coordination_score, market_cap fields) adequately. It covers the blacklist default and version, but could be more exhaustive given the complexity of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a description. The main description does not add significant meaning to the parameters themselves, though it mentions response fields that depend on parameters like min_kols and min_score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides 'KOL convergence signals (v1.2) — tokens being accumulated by multiple KOLs.' It lists specific response fields and distinguishes from other KOL tools by its focus on coordination signals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly guide when to use this tool versus alternatives, nor does it state when not to use it. While the purpose is clear, no exclusionary or comparative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_kol_feedARead-onlyIdempotent
Get real-time Solana KOL trades from 1,000+ tracked wallets. Each trade includes the token's market cap (USD) at the moment of trade — sourced from our in-memory price tracker, accurate to the millisecond, faster than Dexscreener spot. PRO+ adds size/age/strategy/winrate filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of trades to return (1-100) | |
| before | No | Cursor — ISO 8601 timestamp; returns trades strictly older than this. Pass next_before from the previous response for polling. | |
| action | No | Filter by trade type: buy or sell | |
| kol | No | Filter by specific KOL wallet address (base58) | |
| min_sol | No | PRO+: minimum SOL size per trade | |
| token_age_max_min | No | PRO+: max token age in minutes at time of trade | |
| exclude_sells | No | PRO+: drop sell-side trades | |
| min_kol_winrate | No | PRO+: minimum 7d winrate of the KOL (0-100) | |
| strategy | No | PRO+: filter by auto-tagged strategy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds behavioral context: real-time nature, data source (in-memory price tracker), speed comparison, and PRO+ filter limitations. This adds value beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences: first states core purpose and output details, second highlights PRO+ tiers and filters. No redundant information. Every sentence adds value and is front-loaded with essential info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so description must explain return values. It mentions each trade includes token's market cap but not other fields. Given 9 parameters and complexity, the description covers the key output aspect but could list more fields. Adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 9 parameters. The description groups PRO+ parameters (min_sol, strategy, exclude_sells, min_kol_winrate, token_age_max_min) under 'size/age/strategy/winrate filters', adding meaningful context about tier restrictions. This enhances understanding beyond individual parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves real-time Solana KOL trades from 1,000+ tracked wallets. The verb 'Get' and resource 'trades' are specific. However, it does not explicitly differentiate from sibling tools like kol_alerts_recent or kol_leaderboard, which might have overlapping purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description mentions PRO+ features but does not specify exclusions or contexts where other tools might be preferred. The user is left to infer use cases from the tool name and context signals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_kol_first_touchesARead-onlyIdempotent
Recent first-KOL-touch events — every time a tracked KOL was the first to buy a token mint. Filterable by scout tier (S/A/B/C from mv_kol_scout_score), KOL winrate, token age, etc. Backtest: top scouts attract ≥3 follow-on KOLs within 4h ~50% of the time vs ~14% baseline. Median lead time before second KOL is 12s — for trading this signal, use the WebSocket channel rather than polling.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of events to return (1-100, default 50) | |
| since | No | ISO timestamp — events strictly newer than this. Polling cursor. | |
| before | No | ISO timestamp — events strictly older than this. Pagination cursor. | |
| kol | No | Filter to a single KOL wallet address (base58) | |
| min_kol_winrate_7d | No | Minimum 7d winrate of the first-touch KOL (0-100) | |
| min_scout_tier | No | Restrict to first-touch KOLs of this scout tier or better. Requires n_first_touches_30d >= 30. | |
| min_n_touches | No | Lower the minimum sample size for scout scoring (default 30) | |
| strategy | No | Filter by first-touch KOL's auto-tagged strategy | |
| token_age_max_min | No | Only events on tokens younger than N minutes (uses token_first_seen) | |
| min_first_buy_sol | No | Minimum size of the first KOL buy in SOL | |
| mint_suffix | No | Suffix-filter the token mint (e.g. 'pump', 'bonk') | |
| preset | No | Shortcut filter: 'scout' = min_scout_tier=B + min_n_touches=30 + token_age_max_min=60. 'fresh_launch' = token_age_max_min=15. | |
| include | No | Comma-separated includes — currently 'followers_4h' (computed for events >=4h old) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, providing strong behavioral transparency. The description adds context like backtest stats and a WebSocket recommendation, but doesn't reveal additional behavioral traits beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with purpose and is well-structured. The backtest statistics add value but are slightly lengthy; however, every sentence contributes to understanding. Overall concise for the information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters and no output schema, the description covers purpose, filters, and usage guidance but does not describe the return fields or event structure. This leaves the agent somewhat uncertain about output format, making it less complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not add new meaning beyond the input schema. It summarizes filter options but does not clarify parameter usage beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description starts with 'Recent first-KOL-touch events — every time a tracked KOL was the first to buy a token mint', providing a clear verb+resource. It distinguishes from siblings like madeonsol_kol_feed and madeonsol_kol_consensus by focusing on first touches and includes filterable criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description includes backtest statistics and explicitly recommends using WebSocket for trading signals, guiding the agent on when to use this tool for historical analysis versus real-time alternatives. However, it does not explicitly state when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_kol_hot_tokensARead-onlyIdempotent
KOL momentum tokens — tokens with accelerating KOL buy interest, early signals before coordination triggers. PRO+ adds buyer-quality filters.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time period: 1h or 6h | 6h |
| min_kols | No | Minimum KOL buyers to include a token | |
| limit | No | Number of hot tokens to return | |
| min_avg_winrate | No | PRO+: require avg winrate_7d of buyers >= N (0-100) | |
| unique_strategies | No | PRO+: require >= N distinct strategies among buyers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds minimal behavioral context beyond the concept of 'accelerating interest', which is more about purpose than specific behaviors like rate limits or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two short, meaningful sentences. Every word adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description provides a high-level concept and parameter hints, it lacks details about return values, ordering, or pagination. Given the absence of an output schema, the description could be more complete, but it is adequate for a simple listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description mentions 'PRO+ adds buyer-quality filters', which maps to two parameters (min_avg_winrate and unique_strategies), adding slight context but not significantly enhancing the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning tokens with accelerating KOL buy interest, positioning it as an early signal tool distinct from other KOL tools like trending tokens or leaderboard. It uses specific language ('momentum tokens') and implies a unique value proposition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for early detection before coordination triggers, but does not explicitly state when to use this versus sibling tools or when to avoid it. No alternatives or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_kol_leaderboardARead-onlyIdempotent
Get KOL performance rankings by PnL and win rate. PRO+ can sort by alternative axes (winrate/roi/profit_factor/early_entry).
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time period (trade retention is 180d) | 7d |
| limit | No | Number of KOLs to return in ranking | |
| sort | No | PRO+: sort axis (default 'pnl') | |
| strategy | No | PRO+: filter by strategy tag | |
| min_winrate | No | PRO+: minimum winrate cutoff (0-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds the context that sorting by alternative axes (winrate, roi, etc.) requires a PRO+ subscription, which is a useful behavioral trait. However, it does not detail other aspects like data freshness or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences that front-load the primary purpose and quickly convey additional functionality (PRO+ sorting). No redundant or irrelevant information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple leaderboard query, the description covers the main functionality. However, with no output schema, it does not specify the structure of returned results (e.g., fields like KOL name, PnL, win rate). While the name implies a ranking list, the absence of output details slightly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all parameters with descriptions, achieving 100% coverage. The description supplements by clarifying that the default sort is by PnL/win rate and that alternative sort axes are PRO+-only, providing meaning beyond the schema's enum list. This adds value for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns KOL performance rankings by PnL and win rate, with a specific verb 'Get'. The name 'kol_leaderboard' further distinguishes it from sibling leaderboards like alpha_leaderboard or scout_leaderboard, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as madeonsol_alpha_leaderboard or madeonsol_scout_leaderboard. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_kol_pairsBRead-onlyIdempotent
KOL affinity matrix — discover which KOLs frequently co-trade the same tokens within a time window.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time period: 7d or 30d | 7d |
| min_shared | No | Minimum number of shared tokens to qualify as a pair | |
| limit | No | Number of KOL pairs to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint as false, which covers safety and idempotency. The description adds that the tool returns an 'affinity matrix' based on co-trading, but it does not detail how affinity is calculated, pagination behavior, or output structure. With annotations present, the description provides moderate added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core purpose efficiently. It is front-loaded with the key concept 'KOL affinity matrix.' However, it could be slightly more structured to include output hints or usage notes, but it is not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should hint at the return structure; it mentions 'affinity matrix' but doesn't specify fields like pair identifiers, score, or token counts. Given the tool's moderate complexity (3 optional parameters, no required ones) and rich annotations, the description is somewhat incomplete regarding output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters (limit, period, min_shared) have descriptions in the input schema, achieving 100% coverage. The description mentions 'time window' which aligns with the period parameter, but does not add new meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'KOL affinity matrix — discover which KOLs frequently co-trade the same tokens within a time window.' It uses a specific verb (discover) and resource (KOL pairs based on co-trading), distinguishing it from sibling tools like madeonsol_kol_leaderboard or madeonsol_kol_feed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus other KOL-related siblings (e.g., madeonsol_kol_consensus, madeonsol_kol_coordination). There is no explicit context or exclusion criteria, leaving the agent to infer when this is the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_kol_pnlARead-onlyIdempotent
Deep per-wallet PnL breakdown — realized PnL, win rate, profit factor, max drawdown, daily equity curve, closed/open positions. BASIC: summary only. PRO: + curve + closed. ULTRA: + open positions.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | KOL wallet address (base58) | |
| period | No | Time period for PnL calculation | 30d |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the description is not needed for safety traits. The description adds tier behavior (BASIC/PRO/ULTRA) and lists metrics, but does not disclose additional behavioral context like rate limits or data freshness. It is adequate but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is one sentence with a clear list of metrics and tier breakdown. It is concise and front-loaded with the purpose. However, the tier notation (— and : ) slightly clutters readability, and the list could be more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lists specific metrics but does not explain the output format (e.g., object structure, array), leaving ambiguity for the agent. The tier info helps but completeness is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both 'wallet' and 'period' parameters. The description does not add new semantic information beyond the schema, thus baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides 'Deep per-wallet PnL breakdown' with specific metrics (realized PnL, win rate, profit factor, max drawdown, daily equity curve, closed/open positions). It distinguishes from siblings by specifying 'KOL wallet' and tier system (BASIC, PRO, ULTRA), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for detailed PnL analysis of a KOL wallet but does not provide explicit guidance on when to use this tool versus alternatives like madeonsol_wallet_pnl or other sibling tools. The tier system is mentioned but lacks comparative context for when to choose each tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_kol_timingARead-onlyIdempotent
KOL entry/exit timing profile — hold duration, exit speed, and activity patterns for a specific KOL.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | KOL wallet address (base58) | |
| period | No | Time period: 7d or 30d | 30d |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, open-world, idempotent, and non-destructive. The description adds that it provides hold duration, exit speed, and activity patterns, which is consistent and adds minimal extra behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose and key outputs. No redundant or extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters and no output schema, the description explains the output concept (hold duration, exit speed, activity patterns), but could provide more detail on the output format given its absence in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description does not add new meaning beyond what the schema already provides for the wallet and period parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a KOL timing profile including hold duration, exit speed, and activity patterns. It distinguishes the tool from siblings like madeonsol_kol_consensus or madeonsol_kol_pnl by focusing specifically on timing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining timing profiles of a specific KOL, but does not provide explicit guidance on when to use this tool over alternatives, nor does it mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_kol_token_entry_orderARead-onlyIdempotent
Ranked KOL first-buyers for a specific token, ordered by entry timestamp. PRO+ adds percentile_pnl_7d per entry.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address (base58) | |
| limit | No | Max ranked entries to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds value by specifying ranking, ordering, and the PRO+ addition of percentile_pnl_7d, which annotations do not cover. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the main purpose and then mention the PRO+ feature. No superfluous text, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must convey return structure. It mentions 'entry timestamp' and 'percentile_pnl_7d per entry', but leaves out other possible fields (e.g., rank, KOL identity). Could be more complete for a ranked list output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters (mint and limit) with descriptions. The description does not add new semantic meaning beyond the schema, such as format or constraints, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns ranked KOL first-buyers for a specific token ordered by entry timestamp. The name and description differentiate it from sibling KOL tools like madeonsol_kol_first_touches, but no explicit differentiation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description implies it's for viewing first-buyers, but no exclusions or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_kol_trending_tokensARead-onlyIdempotent
Tokens ranked by KOL buy volume — pure capital-flow signal. Sub-hour periods (5m/15m/30m) require PRO/ULTRA.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time window | 1h |
| min_kols | No | Minimum KOL buyers | |
| limit | No | Number of trending tokens to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering safety. The description adds the subscription requirement for short periods but does not elaborate on ranking methodology or data behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and essential condition. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema, so description should compensate. Mentions return of tokens ranked by KOL buy volume but not expected fields or sorting order. Adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description adds no new parameter details beyond what is in the schema, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Tokens ranked by KOL buy volume — pure capital-flow signal', specifying the verb (ranked), resource (tokens), and the distinguishing signal type. This effectively differentiates it from other KOL tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage condition: 'Sub-hour periods (5m/15m/30m) require PRO/ULTRA.' However, it does not explicitly compare with sibling tools to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_list_webhooksARead-onlyIdempotent
List all your registered webhooks with delivery status and failure counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description adds only the output fields (delivery status, failure counts). This is adequate but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words, conveying all essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While there is no output schema, the description mentions key output fields (delivery status, failure counts) and annotations cover behavioral aspects. It lacks mention of pagination or response format, but is mostly complete for a simple list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so schema coverage is 100%. The description does not need to explain parameters, and the baseline is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all registered webhooks with delivery status and failure counts, using a specific verb and resource, and distinguishes from sibling tools that create, delete, or test webhooks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to view registered webhooks) but does not explicitly state when not to use or mention alternatives. However, the context of sibling tools makes the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_meARead-onlyIdempotent
Inspect your MadeOnSol API account — current tier, daily/burst quota state, remaining requests, subscription expiry, and per-feature usage (webhooks, copy-trade wallets, coordination rules, etc.). Use to self-throttle without parsing rate-limit headers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=False. The description adds behavioral details about the return fields (quota, expiry, per-feature usage), enhancing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Front-loaded with main verb and resource, then succinctly lists data and use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-output-schema read tool, the description fully covers what it does and why to use it. Annotations further assure safe behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description doesn't need to explain parameters but adds value by detailing return values, which is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Inspect' and the resource 'your MadeOnSol API account', listing specific data returned (tier, quota, remaining requests, etc.). It differentiates from sibling tools by being the only account inspection tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use case 'self-throttle without parsing rate-limit headers', but does not mention when not to use or alternatives. Still, it gives clear context for when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_stream_tokenA
Generate a 24h WebSocket streaming token. Includes ws_url for KOL/deployer streaming (Pro/Ultra) and dex_ws_url for all-DEX trade streaming (Ultra only).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false. The description adds behavioral context: the token is valid for 24 hours and which stream types are available. It does not contradict annotations. Additional details like rate limits or authentication are omitted, but the description complements the annotations adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the key purpose ('Generate a 24h WebSocket streaming token'), and efficiently details the two output URLs and their plan requirements. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and the absence of an output schema, the description covers the core functionality and output fields. It could mention authentication or token usage, but for this complexity level it is sufficiently complete to guide an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema coverage. Per rules, baseline is 4. The description does not need to explain parameters, and it adds no parameter-specific info, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a 24h WebSocket streaming token, distinguishing between ws_url for KOL/deployer streaming (Pro/Ultra) and dex_ws_url for all-DEX trade streaming (Ultra only). This specific verb-resource combination and scope differentiate it from sibling tools like madeonsol_stream_session_kill or madeonsol_stream_sessions_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly indicates when to use the tool (for generating a streaming token) and includes tier prerequisites (Pro/Ultra and Ultra only). However, it does not explicitly state alternatives or when not to use it, but given zero parameters, usage context is sufficiently clear without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_test_webhookARead-onlyIdempotent
Send a sample event payload to a webhook URL to verify it works. Returns status code and response time.
| Name | Required | Description | Default |
|---|---|---|---|
| webhook_id | Yes | ID of the webhook to test |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, destructiveHint) already indicate safety, and the description adds context about the test action and return values (status code, response time). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences communicate purpose and return value without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers purpose and return value. Could mention error handling (e.g., invalid webhook_id) but not required for basic completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage for webhook_id, the description adds no further semantic meaning beyond the schema's description ('ID of the webhook to test'). Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb ('send a sample event payload') and the resource ('webhook URL'), distinguishing it from sibling webhook tools like create_webhook, delete_webhook, and list_webhooks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies using this tool to test a webhook, but it lacks explicit guidance on prerequisites (e.g., webhook must exist) or when not to use it compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_token_batchARead-onlyIdempotent
Bulk lookup of up to 50 mints in one request. Returns the same per-mint shape as madeonsol_token_get. DB queries batched with IN(...); dex-stream + RPC fan-outs run in parallel. ~10-20× cheaper than N sequential calls — ideal for sniper pipelines scoring many tokens at once.
| Name | Required | Description | Default |
|---|---|---|---|
| mints | Yes | 1–50 base58 Solana token mints |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral details: 'DB queries batched with IN(...); dex-stream + RPC fan-outs run in parallel.' This explains the internal execution mechanism, which goes beyond the annotations. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with three sentences. It front-loads the core purpose in the first sentence, adds technical details in the second, and provides usage guidance with a cost comparison in the third. Every sentence is valuable and there is no redundancy or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description adequately explains the return shape: 'Returns the same per-mint shape as madeonsol_token_get.' It also covers input constraints, internal behavior, and performance characteristics. For a batch lookup tool with simple input, this is complete and leaves no major questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'mints', which has a clear description in the schema: '1–50 base58 Solana token mints.' The tool description does not add additional semantic meaning to this parameter beyond what the schema provides. Since schema coverage is high, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Bulk lookup of up to 50 mints in one request.' It specifies the action (lookup), resource (mints), and constraint (up to 50). It also distinguishes from the sibling tool madeonsol_token_get by stating 'Returns the same per-mint shape as madeonsol_token_get.' This provides clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Ideal for sniper pipelines scoring many tokens at once.' It also highlights the performance benefit: '~10-20× cheaper than N sequential calls.' While it doesn't explicitly state when not to use it (e.g., for single mint lookups), the comparison to the single-mint sibling implies the appropriate context. This is clear but could be more explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_token_buyer_qualityARead-onlyIdempotent
0–100 buyer-quality score for a token's first-buyer cohort. 5-min cached. BASIC: score+signal only. PRO/ULTRA: full breakdown.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address (base58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, open-world. Description adds valuable behavioral context: 5-minute caching and plan-dependent output detail (BASIC vs PRO/ULTRA). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first defines purpose, second adds caching and plan differentiation. No extraneous content; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity and rich annotations, the description covers core functionality and caching. However, missing output schema means the agent lacks details on return structure (e.g., shape of 'score+signal' or 'full breakdown'), which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage for the single parameter (mint). Description does not add extra parameter-level meaning beyond what schema already provides; it focuses on output behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it provides a 0–100 buyer-quality score for a token's first-buyer cohort, with plan-level output differentiation. This is specific and distinguishable from sibling `madeonsol_tokens_batch_buyer_quality` which does batch processing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for single-token analysis via contrast with batch sibling, and hints at plan-dependent output interpretation, but lacks explicit when-to-use or when-not-to-use guidance or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_token_cap_tableARead-onlyIdempotent
First non-deployer early buyers for a token, enriched with PnL, KOL identity, and bot flags. PRO=top 10 (truncated wallets), ULTRA=top 20 (full). BASIC: 403.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address (base58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (read-only, idempotent), the description reveals plan-dependent behavior (403 for BASIC, truncated vs full wallets), which is critical for an agent to understand before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with clear front-loading of purpose and key plan details. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input schema and no output schema, the description fully covers what the tool does, its limitations, and plan variations. No missing context for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'mint' with schema description 'Token mint address (base58)' is sufficient. Schema coverage is 100%, so description adds no extra meaning beyond what schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns 'first non-deployer early buyers for a token, enriched with PnL, KOL identity, and bot flags,' with specific plan-based outcomes (PRO/ULTRA/BASIC). This distinguishes it from sibling tools like KOL analysis or alerts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage by token mint address and indicates plan limitations (BASIC returns 403), but does not explicitly state when to prefer this over alternatives like madeonsol_token_buyer_quality or madeonsol_token_flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_token_getARead-onlyIdempotent
Comprehensive per-mint snapshot: price (VWAP), market cap, 24h volume, deployer reputation, KOL smart-money activity, first_seen_at + age_seconds, and blacklist status — all in one call. ULTRA adds individual KOL wallet addresses in top_buyers[].
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address (base58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, open-world, and not destructive. The description adds behavioral context by listing the specific data returned (e.g., VWAP, deployer reputation, KOL activity) and mentions an 'ULTRA' feature for KOL wallet addresses, enhancing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey the tool's purpose and key data fields, with critical details front-loaded. No superfluous words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input (single mint address) and lack of output schema, the description adequately covers expected return fields and the optional ULTRA addition. Missing details on error responses or pagination, but these are unlikely given the tool's nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with parameter 'mint' described as 'Token mint address (base58)'. The description reinforces that the tool operates per-mint but adds no new semantic information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Comprehensive per-mint snapshot' and enumerates specific data fields (price, market cap, volume, etc.), distinguishing it from sibling tools that focus on specific aspects (e.g., madeonsol_token_candles for candlestick data, madeonsol_token_risk for risk).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for a broad overview of a token's metrics but does not explicitly specify when to use this tool instead of specialized siblings like madeonsol_token_flow or madeonsol_token_buyer_quality. No 'when not to use' or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_tokens_batch_buyer_qualityARead-onlyIdempotent
Bulk buyer-quality scoring for up to 50 mints in one call. Shares the 5-min LRU cache with the single-mint endpoint — already-warm mints return at ~zero cost. Response includes cache_hits counter.
| Name | Required | Description | Default |
|---|---|---|---|
| mints | Yes | 1–50 base58 Solana token mints |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior. The description adds valuable context about the 5-minute LRU cache shared with the single-mint endpoint and the cache_hits counter in the response, enhancing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the core purpose. Every sentence provides specific value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, caching behavior, and a response detail (cache_hits counter). However, it does not specify the structure of the scoring output, which could be inferred but isn't explicitly stated. Given the simplicity of the tool, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of the 'mints' parameter. The description does not add new semantic meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Bulk buyer-quality scoring for up to 50 mints in one call.' It specifies the verb (scoring) and resource (mints), and distinguishes itself from the sibling single-mint endpoint by emphasizing bulk usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when scoring multiple mints up to 50) and mentions the shared cache with the single-mint endpoint, suggesting efficiency for warm mints. However, it doesn't explicitly state alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_tokens_listARead-onlyIdempotent
Filtered, sortable token directory. Browse all tracked Solana tokens by market-cap band, liquidity floor, recent-activity window, primary DEX, authority/safety flags, and computed 1h volume / MEV-share / MC-change deltas. Default min_liq=2000 skips phantom-MC dust (low-liquidity pools producing absurd VWAP×supply products) — pass min_liq=0 to opt out. Computed filters (min_volume_1h_usd, max_mev_share_pct, mc_change_1h_min_pct, mc_change_1h_max_pct) over-fetch and post-filter — pagination.post_filtered=true on the response means page size may be < limit. PRO+ only.
| Name | Required | Description | Default |
|---|---|---|---|
| min_mc | No | Minimum market cap in USD | |
| max_mc | No | Maximum market cap in USD | |
| min_liq | No | Minimum quote-side liquidity in USD (default 2000 — pass 0 to opt out of phantom-MC filter) | |
| active_h | No | Only tokens with a trade in the last N hours | |
| primary_dex | No | Filter by primary DEX | |
| authority_revoked | No | Only tokens whose mint+freeze authority is revoked | |
| exclude_token2022 | No | Exclude Token-2022 mints (transfer-fee / hook risk) | |
| min_lp_burnt_pct | No | Minimum % of LP supply burned (0-100) | |
| min_volume_1h_usd | No | Minimum trailing 1h volume in USD (post-filter — may shrink page size) | |
| max_mev_share_pct | No | Maximum MEV-share % of 1h volume (post-filter) | |
| mc_change_1h_min_pct | No | Minimum 1h MC change % (post-filter; negative allowed) | |
| mc_change_1h_max_pct | No | Maximum 1h MC change % (post-filter) | |
| sort | No | Sort axis (default mc_desc) | |
| limit | No | Page size (max 100) | |
| offset | No | Pagination offset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it read-only, idempotent, non-destructive, and open world. The description goes beyond by detailing the over-fetching mechanism for computed filters, that pagination.post_filtered=true indicates page size may be smaller than limit, and explains the rationale behind the min_liq default. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, starting with a clear one-line summary. It efficiently lists all filter types and behaviors in two sentences. While comprehensive, it could be slightly more structured (e.g., bullet points) but is not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description could explain the full response structure. It mentions pagination behavior and computed deltas but does not specify what fields each token object contains. An agent might need to infer the common token schema from other tools. This is a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 15 parameters have descriptions in the schema (100% coverage). The description adds value by explaining the default min_liq, the over-fetching behavior for computed filters, and the default sort axis. It clarifies the meaning of 'phantom-MC dust' and provides context for using filters together.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies it as a filtered, sortable token directory for Solana tokens, listing specific filters and defaults. It distinguishes from siblings like madeonsol_token_get (single token) and madeonsol_discovery (likely different criteria) by focusing on broad directory browsing with advanced filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage guidance on the default min_liq=2000 (to avoid phantom-MC dust) and explains the over-fetching and post-filtering behavior. It tells users to pass min_liq=0 to opt out. However, it does not explicitly contrast this tool with other token listing siblings like madeonsol_discovery or madeonsol_kol_hot_tokens.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_wallet_tracker_addA
Add a Solana wallet to your watchlist. Returns 409 if already tracked or limit reached.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | Solana wallet address (base58) to track | |
| label | No | Optional human-readable label for this wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate not read-only and not destructive. The description adds behavioral detail by mentioning the 409 conflict response for duplicates or limit reached, which is beyond annotation info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the essential information with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple add tool without an output schema, the description covers the primary action and a notable error case. It does not describe the success response, but the annotations provide safety context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes both parameters. The description adds no additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a Solana wallet to your watchlist') with a specific verb and resource, and distinguishes from sibling tools like remove and summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adding wallets but lacks explicit guidance on when to use this vs alternatives like wallet_tracker_remove. The mention of 409 provides some context on limits but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_wallet_tracker_removeADestructiveIdempotent
Remove a wallet from your watchlist.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_address | Yes | Solana wallet address to remove from watchlist |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=true. The description does not add behavioral context beyond stating the action, such as being irreversible or what happens if the wallet is not in the list. It is adequate but not enriching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. Every part is essential and earned its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple removal tool with no output schema, the description should explain the result (e.g., wallet is no longer tracked) or any side effects. It fails to provide this, leaving the agent to infer outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'wallet_address' is fully described in the schema (100% coverage). The description does not add additional semantic meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove a wallet from your watchlist' clearly states the verb (remove), resource (wallet), and context (from watchlist). It effectively distinguishes from the sibling tool 'madeonsol_wallet_tracker_add' which performs the opposite operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a user wants to stop tracking a wallet, but it lacks explicit guidance on prerequisites (e.g., wallet must be in watchlist) or when not to use it. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_wallet_tracker_summaryARead-onlyIdempotent
Per-wallet stats: swap counts, SOL bought/sold, and last activity time across your watchlist.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time window for stats | 7d |
| wallet | No | Filter to a specific wallet address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds that it returns specific stats, but does not disclose other behavioral traits like rate limits or pagination. With strong annotation coverage, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key purpose ('Per-wallet stats'), and no redundant information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given annotations, full schema coverage, and no output schema, the description sufficiently covers the tool's purpose and return data. Could mention watchlist context more explicitly, but overall complete for a simple non-destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions already explain 'period' (time window) and 'wallet' (filter). The description does not add new meaning beyond what schema provides, so baseline score of 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns per-wallet stats (swap counts, SOL bought/sold, last activity) for wallets on watchlist. It uses specific verb (implied 'get') and resource (watchlist wallet stats), distinguishing it from other wallet tools like wallet_pnl or wallet_positions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for watchlist wallets, but does not explicitly state when to use this versus alternatives like wallet_stats or wallet_tracker_trades. No exclusion criteria or when-not-to-use guidance is provided, though context signals help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_wallet_tracker_tradesARead-onlyIdempotent
Historical swap and transfer events for all your watched wallets. BASIC: truncated wallets, no tx_signature.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | No | Filter to a specific wallet address | |
| action | No | Filter by action type | |
| event_type | No | Filter by event type: swap (token trade) or transfer (SOL moved) | |
| limit | No | Max results (1–200) | |
| before | No | Pagination cursor: block_time of the last event from previous page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral info beyond annotations: data is truncated and no tx_signature is included. Annotations already indicate read-only, open-world, idempotent, non-destructive, so no contradiction. The truncation disclosure is helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that capture the core purpose and a key limitation. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with good schema and annotations, the description is adequate but lacks details on what 'truncated wallets' means, pagination behavior beyond the before parameter, and expected output structure (no output schema). Could be slightly more comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with parameter descriptions, so the description does not need to add much. The tool description only adds a general limitation (truncated data), not per-parameter detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns historical swap and transfer events for watched wallets, and it adds a specific limitation note (BASIC: truncated wallets, no tx_signature), distinguishing it from similar tools like madeonsol_wallet_trades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (for watched wallets) but does not explicitly state when to use this tool versus alternatives like madeonsol_wallet_trades or other wallet tools. No when-not or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
madeonsol_wallet_tracker_watchlistARead-onlyIdempotent
List your tracked wallets with labels and remaining watchlist capacity. BASIC=10, PRO=50, ULTRA=100.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds specific behavioral context: it returns labels and capacity limits (BASIC=10, PRO=50, ULTRA=100), which is beyond the annotations and helps the agent understand output scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the tool's purpose and a key detail (plan capacities).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is complete: it tells the agent what the tool does, what it returns (wallets with labels and capacity), and the capacity limits per plan. No further information is needed for this simple list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema coverage is 100%. The description adds meaning by specifying that the output includes labels and remaining watchlist capacity, which is not detailed elsewhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List your tracked wallets with labels and remaining watchlist capacity.' This is a specific verb and resource, and it distinguishes the tool from siblings like wallet_tracker_add and wallet_tracker_remove by focusing on listing existing watchlist entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing tracked wallets but does not explicitly state when to use this tool versus alternatives like wallet_tracker_summary or other list tools. It provides no guidance on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
51 tool updates
v1.7.4- First observed
madeonsol_alpha_leaderboard - First observed
madeonsol_alpha_linked - First observed
madeonsol_alpha_wallet - First observed
madeonsol_coordination_alerts_create - First observed
madeonsol_coordination_alerts_delete - First observed
madeonsol_coordination_alerts_get - First observed
madeonsol_coordination_alerts_list - First observed
madeonsol_coordination_alerts_update - First observed
madeonsol_copytrade_create - First observed
madeonsol_copytrade_delete - First observed
madeonsol_copytrade_get - First observed
madeonsol_copytrade_list - First observed
madeonsol_copytrade_signals - First observed
madeonsol_copytrade_update - First observed
madeonsol_create_webhook - First observed
madeonsol_delete_webhook - First observed
madeonsol_deployer_alerts - First observed
madeonsol_deployer_trajectory - First observed
madeonsol_discovery - First observed
madeonsol_first_touch_subscriptions_create - First observed
madeonsol_first_touch_subscriptions_delete - First observed
madeonsol_first_touch_subscriptions_get - First observed
madeonsol_first_touch_subscriptions_list - First observed
madeonsol_first_touch_subscriptions_update - First observed
madeonsol_kol_alerts_recent - First observed
madeonsol_kol_compare_wallets - First observed
madeonsol_kol_coordination - First observed
madeonsol_kol_feed - First observed
madeonsol_kol_first_touches - First observed
madeonsol_kol_hot_tokens - First observed
madeonsol_kol_leaderboard - First observed
madeonsol_kol_pairs - First observed
madeonsol_kol_pnl - First observed
madeonsol_kol_timing - First observed
madeonsol_kol_token_entry_order - First observed
madeonsol_kol_trending_tokens - First observed
madeonsol_list_webhooks - First observed
madeonsol_me - First observed
madeonsol_stream_token - First observed
madeonsol_test_webhook - First observed
madeonsol_token_batch - First observed
madeonsol_token_buyer_quality - First observed
madeonsol_token_cap_table - First observed
madeonsol_token_get - First observed
madeonsol_tokens_batch_buyer_quality - First observed
madeonsol_tokens_list - First observed
madeonsol_wallet_tracker_add - First observed
madeonsol_wallet_tracker_remove - First observed
madeonsol_wallet_tracker_summary - First observed
madeonsol_wallet_tracker_trades - First observed
madeonsol_wallet_tracker_watchlist
TDQS
Scored across 51 tools
The 51 tools are grouped by domain (alpha, coordination, copytrade, webhook, deployer, discovery, first_touch, kol, token, wallet_tracker) with distinct purposes within each group. For instance, kol_feed, kol_leaderboard, kol_pnl, and kol_timing each target different aspects of KOL analysis. CRUD operations for alerts, subscriptions, and webhooks are clearly separated. No two tools appear to do the same thing.
All tools follow the prefix 'madeonsol_' followed by lowercase snake_case names that describe the action and resource (e.g., madeonsol_kol_leaderboard, madeonsol_token_get). The pattern is strictly consistent, with no mixing of conventions like camelCase or abbreviations. Even multi-word names like 'madeonsol_first_touch_subscriptions_create' maintain uniformity.
With 51 tools, the server far exceeds the typical 3-15 range for a well-scoped MCP server. While the domain of Solana memecoin intelligence is broad, the count feels excessive for a single server, including many CRUD operations and multiple similar endpoints (e.g., 6 subscription tools). It would benefit from consolidation or modularization.
The toolset covers the full lifecycle of the domain: KOL discovery, analysis, alerts, copy-trading, webhook management, token data, wallet tracking, and account inspection. There are no obvious missing operations—CRUD is present for all managed resources, and even a discovery endpoint is provided. The surface is well-rounded for its stated purpose.
Maintenance
Related MCP Connectors
KOL, smart money & whale wallets API on Solana, BNB, Base, ETH: Wallet tracker, Leaderboard
Solana address risk grades and token scans for AI agents. Pay-per-call via x402 (USDC on Base).
Pre-trade token safety checks for AI agents on Solana and Base. x402 USDC per call, no key.
Pay-per-call Solana token risk intelligence: 8 tools via x402. From $0.005 USDC, no API key.
Related MCP Servers
- AlicenseAqualityDmaintenanceReal-time radar for Solana memecoins, Pump.fun launches, and KOL trades.82MIT
- AlicenseNot gradedqualityCmaintenanceAI-powered Solana DEX smart money signals. Detects whale/dolphin accumulation, divergence patterns, and market phase across 170+ tokens. Pay-per-call via x402 USDC micropayments.30 npm1MIT
- AlicenseNot gradedqualityDmaintenanceSolana on-chain intelligence API — token scans, wallet PnL, bundle detection, fresh wallets, dev profiling. MCP server for Claude, Cursor & AI agents. Live PumpFun/Raydium streams1MIT
- FlicenseNot gradedqualityAmaintenanceKOL, smart money & whale wallets API on Solana, BNB, Base, ETH: Wallet tracker, Leaderboard-