Skip to main content
Glama
MadeOnSol

MadeOnSol — Solana memecoin intelligence

by MadeOnSol

mcp-server-madeonsol

npm version npm downloads Smithery Glama MCP License: MIT

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.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_of binds GET /deployer-hunter/{wallet}/as-of: the deployer's reputation exactly as it stood on date (default today, UTC) — the latest write-on-change snapshot at or before it, so an agent backtests without look-ahead bias. snapshot.snapshot_date can predate date (write-on-change); snapshot.carried: true marks that. No snapshot at or before dateas_of: false, snapshot: null — nothing is ever synthesized. date must be ≥ 2026-04-07 and not in the future. madeonsol_deployer_rewards binds GET /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) and attributed (every payout on the tokens it deployed, split to_self/to_others + redirected_pct). Every money field is {sol, usdc, usd}; usd is null (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, attributed empty).

New in 1.25.0 — token surges & revivals: momentum fires with the honest half attached. The new madeonsol_tokens_surges tool binds GET /tokens/surges (PRO+, keyed msk_ 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; tier is null. 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 burst tape (source candles / wallet_trades; unique_buyers only where the mint is in trade coverage — wallet_data_available:false otherwise, never an inferred zero), kol buyers, the first-20 early_buyers cohort (bundled / sold / sniper wallets), deployer reputation and risk_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 h outcome; stats=1 prints per-(kind, tier) hit-rates (up_1h_pct, median_peak_multiple, doubled_1h_pct) — out-of-sample by construction. Filters kind, tier, mint, launchpad, deployer_tier, min_mc_usd / max_mc_usd, min_buys, exclude_flags, only_clean; cursors since / before. Pushed live on the new token:surges WS channel (events token:surge / token:revival; subscribe filters kinds[], tiers[], launchpads[], exclude_flags[], min_mc_usd / max_mc_usd, deployer_tier[]) and accepted by madeonsol_create_webhook as events token:surge / token:revival with the same filters. The response echoes the live thresholds in definitions.

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 with rotate: true to replace it (the previous value keeps working for 60 s). expires_at and the new next_refresh_at are always null (kept for wire compatibility — do not schedule refreshes on them); the response gains rotated (boolean) and lifetime (string). The server never rotates on its own and never sends token_refresh unless you rotated; a 4001 close means "mint again" (lapsed or rotated), never a timer. Prefer Authorization: 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_locks binds GET /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 a summary with 7d / 30d forward unlock totals. madeonsol_token_locks_feed (GET /tokens/locks) is the cross-token feed of NEW contracts (cursor pagination.next_since, or push on WS channel token: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-chain SharingConfig — shareholders with share_bps, is_admin, is_social_pda (fees earmarked for an X identity: social.platform 2 = 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 (distribution with per-address payouts[], social_claim, shares_created/updated/reset, creator_transferred, creator_claim only when asked via type=), pushed on WS channel token:fee_claims. Fee-event history starts 2026-08-17. All base-unit amounts are digit strings; ui / usd / pct are null when 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_holders tool binds GET /tokens/{mint}/holders (PRO+): every token account of the mint read from the ledger at confirmed and merged per owner, so concentration.holder_count is EXACT (distinct non-zero owners minus pools / bonding curves / burns) — never a trade-derived estimate; it is null only when the provider refuses the census for a mega-cap, in which case you get the top-20 view and source.census_fallback_reason says so. Each disclosed owner carries our labels (deployer / kol / early_buyer / bundle / bot / dump_cluster — empty means unknown to us, not clean), and excluded[] NAMES what was taken out of the circulating denominator: reason = pool (with dex + pool_address), bonding_curve (pump.fun / LaunchLab), burn, or program_account only when we genuinely cannot attribute the PDA; pool_pct / burned_pct / program_pct split 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 get 503 holder_scan_in_progress with retry_after_seconds: 20 while 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_usd on 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. Because sol_amount is 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 new market_price_sol/market_price_usd fields — it is sampled once per token per pool update, so every trade in the same slot shares it. Until now price_sol carried 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. Use price_sol for cost basis, fills and PnL; market_price_sol for a per-token series independent of trade size and direction. Both madeonsol_token_trades and madeonsol_wallet_trades carry 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_tokens and madeonsol_deployer_recent_bonds. Read bonding_rate (lifetime) against recent_bond_rate (rolling) — the gap between them is the signal, not either number alone. runner_rate only means something once labeled_tokens >= 3, and an untracked wallet returns a profile with zeroed counters, not a 404, so check total_deployed before 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.0Token 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 buy sizes (each >0 and ≤10000; default [0.5, 1, 5, 10]); every computable pool returns spot_price_sol, fee_pct, a quotes[] entry per size (size_sol, tokens_out, avg_price_sol, price_impact_pct), and to_move_price — the SOL required to move price 1% / 5% / 10%. Constant-product AMMs are served from stream reserves (source: "stream" with reserves_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 in unsupported_pools[] with a reason (e.g. concentrated_liquidity_depth_not_supported, curve_graduated_use_amm_pool) instead of a wrong number; primary_pool names the deepest computable pool, found: false means no pools tracked. PRO/ULTRA only. And madeonsol_token_risk now returns a top-level dev block (deployer self-activity; null when 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), and transferred_out (tokens left without a sell; null = unknown, never a guess), plus as_of. deployer:alert webhook/WS payloads gain dev_buy_sol + dev_buy_supply_pct.

New in 1.19.0Batch 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 wallet is_sniper / is_bundler / is_dumper / is_kol (+ kol_name), bot_confidence (string enum none/low/medium/high, null when not alpha-tracked), and a dump_cluster block (dump_cohorts, runner_cohorts, total_cohorts, as_of). Flags are pump.fun-pipeline scoped — false = not observed, NOT verified clean; is_bundler is lifetime, is_dumper is a rolling 42d window. New tool madeonsol_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; filters action / wallet / sinceuntil (default FULL history — capture starts 2026-04-12), plus a coverage honesty block. Both PRO/ULTRA. madeonsol_wallet_stats flags gain is_sniper/is_bundler/is_dumper + dump_cluster, and bot_confidence is now correctly typed as a string enum (it was documented as a number and always came back null due to a server bug — now returns real values). madeonsol_token_risk inputs and madeonsol_sniper_recent deploys gain the slot-window sniper_footprint/footprint rollup (buys, buyers, sol, supply_pct, sniper_wallet_buys, data_available, as_ofnull = 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_recent and madeonsol_deployer_trajectory now work keyless via x402 too.

New in 1.18.0Verified 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 our price_usd / value_usd / market_cap_usd / name / symbol / is_bonded, plus transfer_delta (on-chain amount − trade-derived net position — exposes non-swap flows like airdrops, insider funding, and wallet-hopping). Distinct from madeonsol_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.0Bundle-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 a bundle block (wallet_count, bundle_kind atomic_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 a wallets[] array (rank, wallet, held_ratio, has_sold, atomic, is_kol). BASIC get the bundle block only (empty wallets[]); 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.0Batch 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 as madeonsol_token_risk (0–100 score, band, explainable factors[], raw inputs) plus an as_of timestamp; 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) and madeonsol_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.0Almost-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 carries progress_pct, velocity_pct_per_min, eta_minutes, stalled, real_sol_reserves, market_cap_usd, liquidity_usd, authorities_revoked, deployer_tier, and age_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. Plus madeonsol_tokens_list gains four momentum sorts — mc_change_5m_desc, mc_change_1h_desc, volume_1h_desc, and trending (composite recent-volume × positive-momentum rank).

New in 1.14.0Token trade flow. New tool madeonsol_token_flow — a trade-flow aggregate (organic-vs-fake volume) over a 1h/24h window: 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), and trades_per_wallet (wash-trading proxy). PRO/ULTRA only. Deployer alerts (madeonsol_deployer_alerts) now carry deployers.deployer_sol_balance — the deployer wallet's SOL balance at alert time (null for historical rows).

New in 1.13.0Token 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 has t/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.0Token risk score. New tool madeonsol_token_risk — a transparent 0–100 rug-risk/safety score (higher = riskier) with a band (safe/caution/danger), an explainable factors[] array, and the raw inputs (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.0madeonsol_tokens_list gains three new filter params: min_liq_mc_ratio, max_liq_mc_ratio, and deployer_tier. Response items now include liquidity_to_mc_ratio and deployer_tier. New tool: madeonsol_signal_performance — evaluate signal efficacy (hit rate, sample size, median outcome) before acting on any signal. KOL leaderboard entries now include median_hold_minutes_30d and percentile_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 on labeled_tokens ≥3) plus avg_time_to_bond_minutes.

New in 1.10.3Dump-cluster detection. madeonsol_token_buyer_quality breakdown now includes dump_cluster_count (3+ dump-cluster wallets in the first-20 → 94% historical dump rate vs 61% base) and recycled_early_buyer_count. Full breakdown is returned on all tiers. Also: the API now pushes every pump.fun graduation in real time (token:graduations WS channel).

New in 1.10Deshred Sniper Alerts. madeonsol_sniper_recent surfaces pump.fun deploys from shred-level data ~500ms before on-chain confirmation. PRO: elite/good deployers. ULTRA: all tiers + custom watchlist. Use sniper:deploys WebSocket or sniper:deploy webhook for live push.

New in 1.9Price alerts, scout leaderboard, coordination history. madeonsol_price_alerts_* CRUD (PRO=5, ULTRA=25). madeonsol_scout_leaderboard ranks top scouts by first-touch follow-on rate. madeonsol_coordination_history and madeonsol_peak_history expose the historical record. madeonsol_wallet_stats now returns derived: win_rate, roi, verdict, biggest_miss.

New in 1.8Universal 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) and madeonsol_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 to min_liq=2000 to skip phantom-MC dust — pass min_liq=0 to opt out. /token/{mint} now returns structured 400 errors (code / reason / example / docs) instead of plain strings. Deprecated avg_entry_mc_usd field 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-intelligence

Smithery 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_feed

Related MCP server: cryptoiz-mcp

Quick start — manual config (10 seconds)

npm install -g mcp-server-madeonsol

Add 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_KEY settles 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_discovery tool 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)

MADEONSOL_API_KEY

Developers — get a free key

x402 micropayments

SVM_PRIVATE_KEY

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 free msk_ key at madeonsol.com/pricing.

Install

npm install -g mcp-server-madeonsol

x402 peer deps (@x402/fetch @x402/svm @x402/core @solana/kit @scure/base) are only needed when using SVM_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

madeonsol_kol_feed

Real-time KOL trade feed (1,000+ wallets)

madeonsol_kol_coordination

Multi-KOL convergence signals (v1.1) — peak-density window, exit detection, 0-100 score

madeonsol_kol_first_touches

First-KOL-touch events — backtested scout signal. Filter by scout tier, winrate, token age, mint suffix

madeonsol_kol_leaderboard

KOL PnL and win rate rankings (180 days of history; periods: today, 7d, 30d, 90d, 180d)

madeonsol_kol_pairs

KOL affinity matrix — which KOLs co-trade the same tokens

madeonsol_kol_hot_tokens

KOL momentum tokens — accelerating buy interest

madeonsol_kol_trending_tokens

Tokens ranked by KOL buy volume (5m–12h windows). ULTRA adds full KOL wallet addresses.

madeonsol_kol_pnl

Deep per-wallet PnL: equity curve, risk metrics, closed positions. ULTRA adds open positions (tokens bought but not yet sold).

madeonsol_kol_timing

KOL entry/exit timing profile — available on all tiers

Deployer Hunter

Tool

Description

madeonsol_deployer_alerts

Pump.fun deployer launches with KOL enrichment. Filter by tier (elite/good/moderate/rising/cold). ULTRA unlocks full pagination. Each alert's deployers now includes deployer_sol_balance — the deployer wallet's SOL balance at alert time (null for historical rows).

madeonsol_deployer_trajectory

Deployer skill curve — streaks, rolling bond rate, trend — available on all tiers

madeonsol_deployer_history

A pump.fun deployer's daily reputation time-series (bonding_rate, recent_bond_rate, tier, avg_peak_mc per day) — backtest deployer signals at launch time without look-ahead bias. limit 1–365 (default 90)

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

madeonsol_sniper_recent

Newest-first deshred deploy feed. Pro: elite/good · Ultra: all tiers · keyless x402: $0.01 (elite/good). watchlist: true (Ultra) narrows to your custom deployer watchlist. New 1.19: each deploy carries footprint — the slot-window snipe rollup (buys, buyers, sol, supply_pct, sniper_wallet_buys, data_available, as_of) or null when not yet settled/observable

madeonsol_sniper_by_deployer

Deshred deploys for a single deployer wallet (Ultra)

Wallet Tracker

Tool

Description

madeonsol_wallet_tracker_watchlist

List your tracked wallets and remaining capacity (Free: 10, Pro: 50, Ultra: 100)

madeonsol_wallet_tracker_add

Add a wallet to your watchlist

madeonsol_wallet_tracker_remove

Remove a wallet from your watchlist

madeonsol_wallet_tracker_trades

Historical swap/transfer events for watched wallets (120-day retention)

madeonsol_wallet_tracker_summary

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

madeonsol_wallet_stats

Aggregate 90d stats + cross-product flags (is_kol, is_alpha_tracked + bot_confidence none/low/medium/high, is_deployer + tokens_deployed, new 1.19: is_sniper / is_bundler / is_dumper + dump_cluster cohorts) — quick sizing-up of an unknown wallet

madeonsol_wallet_batch_classify

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: false = not observed, not verified clean

madeonsol_wallet_pnl

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

madeonsol_wallet_positions

Open positions only — lighter slice of /pnl. Shares the same cache.

madeonsol_wallet_holdings

New 1.18 · Verified CURRENT on-chain holdings (real SPL + Token-2022 accounts + SOL) enriched with price/MC/name, plus transfer_delta vs trade-derived position. ULTRA only.

madeonsol_wallet_trades

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

madeonsol_alpha_leaderboard

All

Top profitable early-buyer wallets. Up to 100 on Free/Pro; ULTRA unlocks 500 + bot signals

madeonsol_alpha_wallet

ULTRA

Full per-token breakdown + bot_signals array

madeonsol_alpha_linked

ULTRA

Wallets behaviorally linked (co-bought 3+ tokens within 2s)

Token Quality

Tool

Tier

Description

madeonsol_tokens_list

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 (mc_change_5m_desc, mc_change_1h_desc, volume_1h_desc, trending). Default min_liq=2000 skips phantom-MC dust.

madeonsol_almost_bonded

PRO+

Pre-bond pump.fun tokens near graduation, ranked by velocity (Δprogress/min) — progress_pct, velocity_pct_per_min, eta_minutes, stalled, deployer_tier, age_minutes

madeonsol_token_cap_table

PRO+

First non-deployer early buyers, enriched with PnL/KOL/bot flags. PRO=10, ULTRA=20

madeonsol_token_buyer_quality

All

0–100 buyer-quality score + full breakdown (5-min cached)

madeonsol_token_risk

PRO+

Transparent 0–100 rug-risk/safety score with band, explainable factors[], and raw inputs (new 1.19: inputs.sniper_footprint — slot-window snipe rollup, null = not observable; new 1.20: top-level dev block — deployer self-buy at create, sells rollup, live on-chain holdings, wallet_empty, transferred_out)

madeonsol_token_bundle

All

Bundle-cohort holdings — which same-slot bundle wallets bought a token and how much of supply they still hold (held_pct_of_supply headline, plus bundle_kind, held_ratio, fully_exited). BASIC: bundle block only. PRO: top-10 flags. ULTRA: full cohort + identities

madeonsol_token_pools

PRO+

Per-venue liquidity map — every DEX pool a token trades in (pump.fun/PumpSwap/Raydium/Meteora/Orca) with per-pool liquidity_usd, is_active (live vs parked), plus a summary (pool/DEX counts, total_liquidity_usd, primary_pool, top_pool_share_pct concentration)

madeonsol_token_depth

New 1.20 · PRO+

Per-pool price impact / slippage — quotes[] per SOL buy size (tokens_out, avg_price_sol, price_impact_pct) + to_move_price (SOL to move price 1%/5%/10%). sizes max 8, default [0.5, 1, 5, 10]; unsupported pools (CLMM/DLMM/DBC) flagged with a reason

madeonsol_token_holders

New · PRO+

Live holder census + concentration — who holds NOW (vs madeonsol_token_cap_table = who bought first). concentration.holder_count is EXACT (mint-scoped getProgramAccounts census merged per owner; null only when the provider refuses a mega-cap → top-20 fallback with source.census_fallback_reason, never trade-estimated). Each disclosed owner labelled deployer / kol / early_buyer / bundle / bot / dump_cluster (empty = unknown, not clean). Pools / bonding curves / burns EXCLUDED from the circulating denominator and NAMED in excluded[] (reason: pool + dex + pool_address, bonding_curve, burn, program_account); amount_raw is a raw u64 STRING. Disclosure PRO 10 / ULTRA 50 / BUSINESS 100. Big tokens: first call may be HTTP 503 holder_scan_in_progress (retry_after_seconds: 20) — scan continues + cached, retry is instant

madeonsol_token_locks

New 1.24 · PRO+

Token locks & vesting on a mint — every Streamflow / Jupiter Lock / Bonfida contract: program, kind (lock / vesting), derived status, sender / recipient, schedule (start_at / cliff_at / end_at, period_seconds), terms (cancelable_by_sender — the locker can pull it), live locked_* / claimable_* / next_unlock, plus summary (locked / deposited totals, unlocking_7d_* / unlocking_30d_*, nearest next_unlock, active_cancelable_by_sender). Filters status, program, limit ≤500. Base-unit amounts are STRINGS; ui/usd/pct null when unknown. LP locks not included

madeonsol_token_locks_feed

New 1.24 · PRO+

Cross-token feed of NEW lock / vesting contracts, newest first — same row shape + token {symbol, price_usd, market_cap_usd}. Cursors since / before (pagination.next_since / next_before); filters mint, sender, recipient, program, kind, status, min_usd, min_pct_of_supply, include_estimated (backfilled Jupiter rows). Push: WS channel token:locks (event token:lock)

madeonsol_token_unlocks

New 1.24 · PRO+

Upcoming unlock EVENTS across all active contracts inside within = 1h–90d — one entry per contract = its next event (cliff / period / final / tranche) with amount_* + window_amount_* (total release over the window), token, lock. sort soonest / largest_usd / largest_pct; filters mint, program, kind, min_usd, min_pct_of_supply; limit ≤200, offset

madeonsol_token_fee_shares

New 1.24 · PRO+

pump.fun creator-fee SharingConfig on a coin — shareholders[] (share_bps, is_admin, is_social_pda + social {platform (2 = X), user_id, lifetime_claimed}, received_*), redirected_bps, social_bps, is_default (100% to creator), source stream / chain; distributions rollup (recipients, past_recipients), history[], recent_distributions[]. Amounts in quote base units (lamports) as STRINGS. Event history starts 2026-08-17

madeonsol_token_fee_claims

New 1.24 · PRO+

pump.fun fee-event feed, newest first — type distribution (with payouts[] per shareholder) / social_claim (X identity → wallet, mint null) / shares_created / shares_updated / shares_reset / creator_transferred / creator_claim (excluded unless type= asks). Filters type (comma list), mint, recipient, actor, social_platform, social_user_id, min_sol, since / before. Push: WS channel token:fee_claims (event token:fee_claim). History starts 2026-08-17

madeonsol_tokens_surges

New 1.25 · PRO+

Token momentum fires, newest first — kind surge (token < 30 min old vs its LAUNCH MC; tier early ≤10 min ≥$12k ≥3× · strong ≤30 min ≥$30k ≥6× and ≥2× the 3-min low · breakout ≤2 min ≥$45k ≥8×; each once per mint, sustained ≥10 s) or revival (no trade candle ≥24 h, then ≥5 buys / ≥$500 buy volume / ≥1.5× the pre-dormancy MC on the tape — never a price mark; tier null). Each row: burst tape (unique_buyers null outside trade coverage), kol, early_buyers (bundled / sold / sniper), deployer, risk_flags[] (empty = no flag raised, not verified clean), and outcome (+1 h MC / peak / low) once ≥65 min old. stats=1 = per-(kind, tier) hit-rates over days. Filters kind, tier, mint, launchpad, deployer_tier, min_mc_usd / max_mc_usd, min_buys, exclude_flags (comma list), only_clean; cursors since / before; limit ≤200. Push: WS channel token:surges (events token:surge / token:revival) + webhook registry. Retention 60 d

madeonsol_tokens_batch_risk

PRO+

Bulk rug-risk/safety scoring for up to 50 mints — same shape as madeonsol_token_risk + as_of. Untracked mints return { mint, error: "not_tracked" } without failing the batch; counts as one request

madeonsol_token_candles

PRO+

Historical OHLCV candles (1m–1d). PRO=OHLCV 30d; ULTRA=+net flow, liquidity delta, MEV volume, full history

madeonsol_token_flow

PRO+

Trade-flow aggregate (organic-vs-fake volume) over a 1h/24h window — unique wallets/buyers/sellers, buy/sell counts + SOL, net_sol, trades_per_wallet wash-trading proxy

madeonsol_token_trades

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; coverage block marks scope

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

madeonsol_copytrade_list

List your rules

madeonsol_copytrade_create

Create a rule. Returns webhook_secret once — store it

madeonsol_copytrade_get

Get one rule

madeonsol_copytrade_update

Update fields or toggle is_active

madeonsol_copytrade_delete

Delete permanently

madeonsol_copytrade_signals

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

madeonsol_coordination_alerts_list

List your rules (PRO=5, ULTRA=20)

madeonsol_coordination_alerts_create

Create a rule. Returns webhook_secret once — store it

madeonsol_coordination_alerts_get

Get one rule

madeonsol_coordination_alerts_update

Update fields or toggle is_active

madeonsol_coordination_alerts_delete

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

madeonsol_kol_first_touches

Recent first-KOL-touch events. Filters: min_scout_tier, min_kol_winrate_7d, token_age_max_min, mint_suffix, preset, etc.

madeonsol_first_touch_subscriptions_list

List your first-touch webhook subscriptions — ULTRA

madeonsol_first_touch_subscriptions_create

Create a webhook rule (HMAC-signed). Returns webhook_secret once — store it. Up to 10/user — ULTRA

madeonsol_first_touch_subscriptions_get

Get one subscription — ULTRA

madeonsol_first_touch_subscriptions_update

Update fields or toggle is_active — ULTRA

madeonsol_first_touch_subscriptions_delete

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

madeonsol_price_alerts_list

List your price alert rules

madeonsol_price_alerts_create

Create a dip/recovery alert. Returns webhook_secret once — store it

madeonsol_price_alerts_get

Get one alert rule by ID

madeonsol_price_alerts_update

Update fields or toggle is_active

madeonsol_price_alerts_delete

Delete permanently

Scout Leaderboard & KOL Consensus (new in 1.9)

Tool

Tier

Description

madeonsol_scout_leaderboard

PRO+

Top scout-tier KOLs ranked by first-touch follow-on rate, win rate, and ROI

madeonsol_kol_consensus

PRO+

Tokens with the strongest KOL agreement signal — weighted by scout score and recent PnL

madeonsol_peak_history

PRO+

Historical peak-density windows for a token — every coordination spike with KOL breakdown

madeonsol_coordination_history

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

madeonsol_stream_token

Get your WebSocket token for KOL/deployer streaming and DEX trade stream — PRO/ULTRA. Never expires (1.24.1): same token on every call; rotate: true replaces it (old value works 60 s more); expires_at / next_refresh_at always null. Channels now also include token:locks (new lock/vesting contracts, event token:lock), token:fee_claims (pump.fun fee events, event token:fee_claim) and token:surges (new 1.25 — token momentum fires, events token:surge / token:revival, with risk_flags[]; subscribe filters kinds[], tiers[], launchpads[], exclude_flags[], min_mc_usd / max_mc_usd, deployer_tier[])

madeonsol_stream_sessions_list

List your live WebSocket sessions — id, service, tier, channels, connected_at, remote_ip, messages_sent — PRO/ULTRA

madeonsol_stream_session_kill

Evict a live WebSocket session by id to free its connection slot (e.g. a ghost socket) — PRO/ULTRA

madeonsol_create_webhook

Register a webhook for real-time push notifications — PRO/ULTRA

madeonsol_list_webhooks

List your registered webhooks — PRO/ULTRA

madeonsol_delete_webhook

Delete a webhook by ID — PRO/ULTRA

madeonsol_test_webhook

Send a test payload to verify a webhook — PRO/ULTRA

General

Tool

Description

madeonsol_discovery

List all endpoints and prices (free, no auth)

madeonsol_me

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

madeonsol on npm

Rust SDK

madeonsol on crates.io

Python (LangChain, CrewAI)

madeonsol-x402 on PyPI

ElizaOS

@madeonsol/plugin-madeonsol

Solana Agent Kit

solana-agent-kit-plugin-madeonsol

License

MIT

Available Tools

51 tools
madeonsol_alpha_leaderboardA
Read-onlyIdempotent

Top statistically profitable early-buyer wallets, scored from 47,000+ early-buyer records. BASIC=25 (truncated), PRO=100, ULTRA=500 + bot signals.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime window30d
min_tokensNoMinimum tokens traded by wallet (1-20)
sortNoSort axiswin_rate
exclude_botsNoExclude wallets flagged as bots

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already denote a safe read-only operation (readOnlyHint=true, destructiveHint=false). The description adds behavioral context about data size (47,000+ records) and tier-based truncation, which helps set expectations 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and every word adds value. No unnecessary filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description provides data source and tier limits, there is no output schema and the description omits what fields each wallet entry includes. Given the tool has 4 parameters, the description could be more complete about return structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the input schema fully documents all four parameters. The description does not add any additional parameter semantics, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns 'Top statistically profitable early-buyer wallets' and mentions scoring from a large dataset, effectively conveying the tool's purpose as a leaderboard. It distinguishes itself from sibling tools like madeonsol_kol_leaderboard by specifying 'early-buyer' focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions tiers (BASIC, PRO, ULTRA) and truncation, implying usage limits but does not explicitly provide when-to-use or when-not-to-use guidance. No alternatives are mentioned, leaving the agent to infer context from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_alpha_linkedA
Read-onlyIdempotent

Wallets behaviorally linked to a target wallet (co-bought 3+ tokens within 2 seconds). ULTRA only.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesWallet address (base58)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already show readOnly, idempotent; description adds specific behavioral context (co-buying heuristic, time window). 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with key info, no filler words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains linkage condition well, but lacks expected output format (likely a list of wallets). Adequate for a simple tool with one input and no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema provides full description of 'wallet' parameter; description does not add extra meaning beyond listing the linkage criteria.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it finds wallets behaviorally linked to a target wallet via co-buying 3+ tokens within 2 seconds, distinguishing from siblings like madeonsol_alpha_wallet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for linked wallet discovery but lacks explicit when-to-use vs alternatives or when-not-to-use; mentions 'ULTRA only' but no further guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_alpha_walletA
Read-onlyIdempotent

Full alpha profile for one wallet — per-token breakdown + bot_signals array. ULTRA only.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesWallet address (base58)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent. Description adds detail about return content (per-token breakdown, bot signals) but no additional behavioral traits beyond annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence efficiently communicates purpose, content, and access restriction. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple input schema, robust annotations, and no output schema, the description adequately covers what the tool returns and its access tier. Could mention platform context but not necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with description 'Wallet address (base58)'. Description adds no extra meaning beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides a full alpha profile for one wallet including per-token breakdown and bot signals, and distinguishes from sibling tools like leaderboard and comparison tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It mentions 'ULTRA only' implying a usage constraint, but does not explicitly guide when to use this tool versus alternatives or provide when-not-to-use advice.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional label
min_kolsNoMinimum distinct KOLs in the window (default 3)
window_minutesNoPeak-density window size in minutes (default 15)
min_scoreNoMinimum composite score 0-100 (default 60)
include_majorsNoInclude WIF/BONK/POPCAT etc. Default false.
cooldown_minNoSilence per (rule, token) in minutes (default 60)
score_jump_breakNoRe-fire early when score jumps by N points vs last fire (default 10)
delivery_modeNoWhere to deliver fires
webhook_urlNoRequired when delivery_mode includes 'webhook'

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds key behavioral details: ~1s latency, WebSocket delivery, HMAC-signed webhook, one-time return of webhook_secret. Annotations (readOnlyHint=false, destructiveHint=false) are consistent; description enhances transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each essential. First sentence states purpose, second describes triggers and delivery, third explains output handling. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains key output (webhook_secret once) and behavior. Could mention error conditions or prerequisites, but adequate for creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage; description adds context about delivery modes and the one-time webhook_secret behavior, which are not in schema descriptions. Adds value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'Create a coordination alert rule'. Immediately distinguishes from sibling tools like delete, 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes when to use (creation) and provides details on delivery modes, but not explicit exclusions or alternatives; however, sibling context makes it 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_deleteA
DestructiveIdempotent

Delete a coordination alert rule permanently.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRule UUID

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as destructive and idempotent. The description adds 'permanently,' reinforcing the irreversible nature. No contradiction with annotations; the extra context is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler words. It is concise and effectively communicates the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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, and sufficient annotations), the description provides complete context for an agent to understand the action and its permanence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage and a single parameter (id, described as 'Rule UUID'), the description does not add additional meaning beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete a coordination alert rule permanently,' using a specific verb and resource. It is well-distinguished 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for deleting a rule but provides no explicit guidance on when to use this vs. alternatives such as update. Sibling tools suggest related operations, but no when-not or context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_coordination_alerts_getA
Read-onlyIdempotent

Get one coordination alert rule by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRule UUID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description ('Get') is consistent but adds no additional behavioral context beyond 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action and resource. Every word is necessary and there is no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-id operation, the description is fairly complete given the tool's simplicity and the presence of annotations. However, it could mention what the return contains or any error conditions, which are not covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter (id) is fully described in the schema as 'Rule UUID' (100% coverage). The description does not add extra meaning beyond that, but the schema already provides adequate semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get'), the resource ('coordination alert rule'), and the scope ('one by id'). It distinguishes from sibling tools like list, create, delete, and update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. For example, it does not mention that this should be used when a specific rule id is known, as opposed to listing all rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_coordination_alerts_listA
Read-onlyIdempotent

List your coordination alert rules. PRO=5 rules, ULTRA=20.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, non-destructive, idempotent, open world. The description adds context about plan limits, which is useful but not extensive. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short, front-loaded, and every word is meaningful. No unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks details about the return format (e.g., structure of alert rule objects). For a listing tool, this omission impacts completeness, especially without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist; schema coverage is 100%. The description adds no parameter information beyond baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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, and specifies plan limits, distinguishing it from siblings like get, create, delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly provide guidance on when to use list vs get or other alternatives. The mention of plan limits is helpful but not a usage guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_coordination_alerts_updateB

Update fields on a coordination alert rule, including is_active toggle.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRule UUID
nameNo
min_kolsNo
window_minutesNo
min_scoreNo
include_majorsNo
cooldown_minNo
score_jump_breakNo
delivery_modeNo
webhook_urlNo
is_activeNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-readonly and non-destructive behavior. The description adds minimal behavioral insight beyond mentioning the is_active toggle. It does not disclose side effects, required permissions, or constraints like whether updates are atomic or partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, making it concise. However, it is too brief to be informative, lacking structure or organization that would help an agent quickly parse key points.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, constraints like min/max, enums) and no output schema, the description is woefully incomplete. It fails to cover parameter semantics, update behavior for partial fields, validation rules, or any return value, making it difficult for an AI agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 9% (only the 'id' field has a description). The description does not explain the meaning or usage of the 10 other parameters, such as min_kols, window_minutes, or delivery_mode, leaving the AI agent with little guidance on how to use them correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it updates a coordination alert rule and highlights the is_active toggle. However, it does not explicitly differentiate from sibling tools like create or delete, but the verb 'update' and context of siblings imply it modifies existing rules.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied by the action (update) and the sibling set (create, delete, list, get). The description offers no explicit guidance on when to use this tool versus alternatives, such as preferring create for new rules or delete for removal.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_walletsYesWallets to mirror (base58)
sizing_amountYesAmount used by the chosen sizing_mode
nameNoOptional human label
min_trade_solNoMinimum source-wallet trade size to fire a signal
only_actionNoFilter to one side (default 'both')
sizing_modeNoHow sizing_amount is interpreted
delivery_modeNoWhere to deliver fired signals
webhook_urlNoRequired when delivery_mode includes 'webhook'

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations by noting the one-time return of webhook_secret and wallet limits (PRO=5, ULTRA=50). It does not contradict annotations, which are non-conflicting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The first sentence states the purpose, and the second sentence adds critical usage info. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description lacks details about the return value (e.g., the rule object) beyond the webhook_secret condition. It covers purpose and key behaviors but is incomplete for a full understanding of the tool's response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add significant per-parameter details beyond the schema; it only provides high-level context about wallet limits and secret handling.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a copy-trade rule', which is a specific verb+resource. It differentiates from sibling tools like update/delete via the create action and mentions unique return behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that webhook_secret is returned once on creation and must be stored, indicating when to use this tool. However, it does not explicitly state when not to use it or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_copytrade_deleteA
DestructiveIdempotent

Delete a copy-trade rule permanently.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSubscription id

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, and description adds 'permanently' which aligns. No additional behavioral details beyond annotations, but 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is direct and without any unnecessary words or information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with one required parameter and annotations providing behavioral hints, the description is sufficient. No output schema is needed for a delete operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema describes the parameter 'id' as 'Subscription id' with 100% coverage. The description adds no extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Delete' and the resource 'copy-trade rule', with the qualifier 'permanently'. This distinguishes it from sibling tools like create, update, and list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, no prerequisites or conditions for deletion, and no mention of what happens after deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_copytrade_getA
Read-onlyIdempotent

Get one copy-trade rule by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSubscription id

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations (readOnlyHint=true, destructiveHint=false, idempotentHint=true) already indicate a safe, non-destructive operation. The description adds no additional behavioral traits such as authentication needs, rate limits, or return format. With annotations covering safety, this scores a baseline 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately conveys the tool's function. There is no superfluous information; every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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, rich annotations), the description is adequate. However, it could hint at the response structure (e.g., 'Returns the full copy-trade rule object') to improve completeness, but the current version is minimally sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with the parameter 'id' described as 'Subscription id'. The description does not add any additional meaning beyond what the schema provides, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get one copy-trade rule by id,' specifying the action (get) and the resource (copy-trade rule) with a clear identifier (id). It distinguishes the tool from siblings like create, delete, list, and update by focusing on retrieval of a single rule.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 like list or signals. While the purpose implies its use for fetching a specific rule, there is no explicit context or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_copytrade_listA
Read-onlyIdempotent

List your copy-trade rules. PRO=3 rules, ULTRA=20 rules.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true, so the description adds value by noting plan limits. No contradictions. The behavioral traits are well-covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately conveys the action and includes essential plan context. No wasted words, well front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 provides sufficient context for a simple list tool. It includes plan limits for expected results. Could be slightly improved by stating that no input is required, but the schema already implies that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters with 100% coverage. The description adds no parameter info, but none is needed. Baseline score of 4 applies for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 and differentiates by mentioning plan limits (PRO=3, ULTRA=20). It distinguishes from sibling tools like madeonsol_copytrade_create and madeonsol_copytrade_get which are for creating or retrieving individual rules.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by stating what the tool does and includes plan-specific limits, which helps in understanding expected output. However, it does not explicitly mention when not to use it or compare with other list tools, though the usage is straightforward.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_copytrade_signalsA
Read-onlyIdempotent

Recent fired copy-trade signals (up to 7 days). Filter by subscription_id, since (ISO8601), and limit (1–500).

ParametersJSON Schema
NameRequiredDescriptionDefault
subscription_idNoFilter to one rule
sinceNoISO8601 timestamp — only signals fired at-or-after this time
limitNoMax signals to return (1–500)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. The description adds the 7-day recency constraint and filtering options, providing useful 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded purpose, no superfluous words. Efficiently conveys core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description does not explain return format (e.g., structure of signals, pagination). Leaves agents guessing about response shape, which is a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the baseline is 3. The description mentions 'since (ISO8601)' and 'limit (1–500)' but these details are already in the schema. No significant extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns 'recent fired copy-trade signals' with a specific time bound of 7 days, distinguishing it from sibling tools like copytrade_list which lists rules.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists filter parameters but does not explicitly state when to use this tool versus alternatives or provide exclusions. It implies use for reading signals but lacks depth.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSubscription id
nameNo
source_walletsNo
min_trade_solNo
only_actionNo
sizing_modeNo
sizing_amountNo
delivery_modeNo
webhook_urlNo
is_activeNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide basic info (non-read-only, non-destructive, non-idempotent), but the description adds little beyond stating it updates fields. No disclosure of side effects, permission requirements, or whether updates are partial or full replacements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single concise sentence that conveys the core purpose without fluff. Could be slightly more structured, but effective for its brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, 3 enums, no output schema), the description lacks completeness. It does not explain update behavior (e.g., partial updates, validation rules, response format), which is critical for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 10 parameters with only 10% description coverage (only 'id' described). The description mentions 'fields... including is_active toggle' but fails to explain the meaning or constraints of the other 9 parameters, leaving the agent with minimal guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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', and it distinguishes from sibling tools like create, delete, get, list by focusing on modification. The mention of 'including is_active toggle' adds specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., create or delete). No prerequisites, exclusions, or context about when to update vs recreate a rule.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesHTTPS webhook URL to receive events
eventsYesEvent types to subscribe to
min_solNoOptional: minimum SOL amount filter (for kol:trade)
actionNoOptional: filter by buy or sell only
deployer_tierNoOptional: filter by deployer tiers, e.g. ['elite', 'good']

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutation (readOnlyHint=false) and non-idempotence (idempotentHint=false). The description adds the subscription requirement but fails to disclose risk of duplicate webhooks, side effects, or required authentication beyond subscription. Minimal value added over annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first explains purpose and benefit, second adds a critical prerequisite. No redundant or filler content. Front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is functional but lacks return value details (no output schema). It doesn't mention management via related tools (list, delete, test). Given the tool's complexity and sibling context, it could provide more guidance on expected behavior after creation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema provides 100% parameter descriptions, and the tool description does not add extra meaning beyond the schema. Since schema coverage is high, a baseline of 3 is appropriate. No parameter-level enrichment in description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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') and the specific purpose ('receive real-time push notifications for KOL trades and deployer alerts'). It distinguishes from sibling webhook tools (delete, list, test) by being the creation operation, and from other alert creation tools by its subscription scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the subscription prerequisite but does not explicitly guide when to use this tool versus siblings like 'madeonsol_coordination_alerts_create' or 'madeonsol_deployer_alerts'. No when-not or alternative references, leaving the agent to infer from event type options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_delete_webhookA
DestructiveIdempotent

Delete a webhook by ID. Permanently removes the webhook and its delivery history.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWebhook ID to delete

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true, but the description adds the behavioral detail that delivery history is also permanently removed. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action, and every sentence adds value. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple 1-parameter tool with annotations, the description adequately covers purpose and permanent nature. No output schema, but return value is implicit for a delete operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the description only adds 'by ID' which is redundant with the required 'id' parameter. No new meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete a webhook by ID' with the verb 'Delete' and resource 'webhook'. It distinguishes itself from sibling webhook tools like create, list, and test by specifying the delete action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (to delete a webhook) and signals permanence, though it doesn't explicitly exclude alternative actions. The sibling list confirms this is the only delete tool, making usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_deployer_alertsA
Read-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).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of deployer alerts to return (1-100)
offsetNoLegacy offset pagination (prefer 'before' for polling)
beforeNoCursor — ISO 8601 timestamp; returns alerts strictly older than this. Pass next_before from the previous response.
sinceNoOnly alerts after this ISO 8601 timestamp.
tierNoFilter by deployer tier. PRO/ULTRA only — BASIC callers receive HTTP 403.
alert_typeNoFilter by alert_type (e.g. 'new_deploy', 'bonded').
priorityNoFilter by alert priority.
min_kol_buysNoOnly alerts where at least N KOLs bought the token (1-100).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds value by explaining KOL enrichment, filter purpose ('gate out noise'), and pagination preference (cursor over offset), providing context beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no redundancy. The first sentence covers purpose and enrichment; the second details filters and pagination. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters and no output schema, the description covers the main purpose, key filters, pagination method, and enrichment. It is complete enough for an agent to understand usage, though output format details are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 summarizes filters and pagination but does not add significant semantic detail beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'real-time alerts from Pump.fun deployers with KOL buy enrichment', distinguishing this tool from siblings that focus on other aspects like deployer trajectories or KOL alerts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implicit usage context via filters and pagination, but lacks explicit when-to-use or when-not-to-use guidance compared to sibling tools such as madeonsol_kol_alerts_recent or madeonsol_deployer_trajectory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_deployer_trajectoryA
Read-onlyIdempotent

Deployer skill curve — streaks, rolling bond rate, improvement trend, and deployment cadence for a Pump.fun deployer.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesDeployer wallet address (base58)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive behavior. Description adds specifics about the returned metrics (streaks, bond rate, trend, cadence) and platform (Pump.fun), providing 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, clear sentence of 20 words. No fluff, front-loaded with the purpose. Very concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 1-param tool with no output schema, the description lists key returned metrics adequately. Missing details like whether data is historical or current, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter description. The tool description does not add extra information about the wallet parameter, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a deployer's skill curve including specific metrics (streaks, rolling bond rate, improvement trend, deployment cadence) for a Pump.fun deployer. It distinguishes it from siblings like madeonsol_deployer_alerts which handles alerts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this vs. other deployer or analytics tools. Does not mention prerequisites or context for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_discoveryA
Read-onlyIdempotent

List all available MadeOnSol API endpoints with prices and parameter docs. Free, no auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, non-destructive, idempotent; description adds 'Free, no auth required' which is 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences, front-loaded with key information, no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple discovery tool with no parameters and no output schema, the description fully explains what the tool returns and its constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%; description need not add parameter details. Baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists all available MadeOnSol API endpoints with prices and parameter docs, which distinguishes it from specific endpoint tools like madeonsol_token_get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose is self-evident as a discovery tool, but no explicit when-not-to-use 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_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional label
filtersNo
delivery_modeNoDefault 'webhook'
webhook_urlNoRequired when delivery_mode includes 'webhook'

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate it is a mutation (readOnlyHint=false). The description adds valuable behavioral info: returns webhook_secret only once and must be stored. No contradictions with annotations. Could mention behavior when limit exceeded or validation fails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loading the action and key constraints. The list of filters is clear but could benefit from bullet points for readability. No superfluous sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple filters, no output schema), the description covers purpose, constraints, and a key behavioral trait. However, it lacks details on response structure (beyond secret) and error handling, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75% with descriptions for name, delivery_mode, and webhook_url. The description lists filters (kol, mint_suffix, etc.) but does not explain their meanings or usage beyond names, leaving some ambiguity for nested properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a first-touch webhook subscription and lists key filters. However, it does not explicitly distinguish from sibling tools like 'madeonsol_create_webhook' or other subscription creation tools, which would elevate it to a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies that it is 'ULTRA only' and has a limit of 10 active subscriptions, giving usage constraints. It does not provide guidance on when to use this over alternatives like coordination or copytrade subscriptions, lacking exclusionary context.

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_deleteA
DestructiveIdempotent

Delete a first-touch subscription permanently. ULTRA only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSubscription UUID

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. Description adds 'permanently' and 'ULTRA only' as additional behavioral constraints, providing extra 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action and resource, no extraneous words. Maximally concise for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Sufficient for a simple delete-by-ID tool. Annotations cover idempotency, and description adds permanence and privilege requirement. Missing info on error behavior (e.g., if ID not found) but that is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage for the single parameter 'id' described as 'Subscription UUID'. Description adds no further parameter details beyond what schema provides, so baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action ('Delete') and resource ('first-touch subscription') with the permanent nature. Differentiates from sibling tools (create, get, list, update) by verb and added restriction ('ULTRA only').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly restricts usage to 'ULTRA only', indicating authorization level. The permanence is stated, but no explicit when-not-to-use or comparison to update/suspend. Still clear enough given sibling tool names.

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_getA
Read-onlyIdempotent

Get one first-touch subscription by id. ULTRA only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSubscription UUID

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds the plan restriction 'ULTRA only', which is a behavioral trait not covered by annotations. However, it doesn't disclose other behaviors like error handling or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (6 words), front-loaded with the action, and contains no unnecessary information. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get operation with one parameter, the description covers the core purpose and plan restriction. However, there is no output schema or mention of what the response contains, leaving some completeness gap. The context is adequate but not fully rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the id parameter described as 'Subscription UUID'. The description does not add further meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get one first-touch subscription by id', specifying the action, resource, and identifier. It also includes 'ULTRA only', which hints at a limitation and distinguishes it from sibling tools like list, create, delete, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear usage context ('ULTRA only') indicating when it applies, but does not explicitly state when not to use it nor provide alternatives (e.g., list vs get). The context is helpful but lacks exclusion guidance.

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_listA
Read-onlyIdempotent

List your first-touch webhook subscriptions. ULTRA only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds value by specifying 'ULTRA only,' indicating an access restriction not captured 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence contains all necessary information with no unnecessary words or structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description is mostly sufficient. However, it assumes domain knowledge of what 'first-touch webhook subscriptions' are, and does not explain the return format, which could be improved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters (100% schema coverage means nothing to add). A baseline of 4 is appropriate since there are no parameters to describe.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List your first-touch webhook subscriptions' with a specific verb and resource, and adds the qualifier 'ULTRA only,' which distinguishes it from other subscription operations like create/delete/get/update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. While it mentions 'ULTRA only,' there is no context on when it's appropriate or when not to use it, nor any mention of alternatives among the many sibling tools.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSubscription UUID
nameNo
filtersNo
delivery_modeNo
webhook_urlNo
is_activeNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false (modifies data) and destructiveHint=false, but the description does not elaborate beyond 'update'. It fails to disclose whether the update is partial or full, what happens to unspecified fields, or if there are side effects. The 'ULTRA only' note is helpful but insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no redundant words. It effectively communicates the core action and a key feature. However, it could be slightly restructured to front-load the most critical information, such as the access restriction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, nested objects, no output schema), the description is far from complete. It does not specify the update semantics (e.g., replace all fields or merge), possible return values, or prerequisites beyond 'ULTRA'. This leaves significant ambiguity for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17% (only 'id' has a description). The description adds no details about parameters like 'name', 'filters', 'delivery_mode', or 'webhook_url'. It only mentions 'is_active', leaving the agent without guidance on how to use the other parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update fields on a first-touch subscription', which identifies the action and resource. It also mentions the 'is_active toggle' as a specific capability, distinguishing it from other CRUD operations. However, it could be more precise about which fields are updatable (e.g., name, filters, delivery_mode).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes 'ULTRA only', which hints at access restrictions but does not provide explicit guidance on when to use this tool versus alternatives like recreate or patch. There is no comparison with sibling tools such as 'madeonsol_first_touch_subscriptions_create' or 'delete'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_kol_alerts_recentA
Read-onlyIdempotent

Live KOL alert feed — consensus clusters, fresh-token KOL buys, and heating-up wallets in one unified stream.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNoLookback window15m
typesNoFilter to specific alert types
min_severityNoMinimum severity to include
limitNoMax alerts to return

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already specify readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds 'live' and 'unified stream', providing useful 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that communicates the core purpose without redundancy or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, and the description does not explain the return format, ordering, or pagination. With many sibling tools, more context about what the agent can expect would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter well-described. The description reinforces the alert types from the 'types' enum but does not add new semantic details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Live KOL alert feed' and enumerates 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_coordination.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for real-time alerts but offers no explicit guidance on when to choose this tool over alternatives like madeonsol_kol_feed or madeonsol_deployer_alerts. The agent must infer usage from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_kol_compare_walletsA
Read-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).

ParametersJSON Schema
NameRequiredDescriptionDefault
walletsYes2-5 wallet addresses. BASIC=2, PRO=4, ULTRA=5.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant context beyond annotations by detailing the output content (metrics compared and PRO+ overlap tokens). Annotations already indicate readOnlyHint and idempotentHint, so the behavioral disclosure is adequately enhanced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the core function, and every sentence adds value. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains what the tool returns (comparison metrics and optional overlap tokens). It omits format details but covers essential outcome. Annotations provide safety context, so overall completeness is good.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a description for the 'wallets' parameter (count limits by plan). The description repeats the count range and adds plan-dependent behavior (PRO+ overlap tokens), adding marginal value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the tool's function: side-by-side comparison of 2-5 KOL wallets, listing specific metrics (strategy, winrates, ROI, percentile) and an additional PRO+ feature. This distinguishes it from sibling tools like madeonsol_kol_leaderboard or madeonsol_kol_pnl.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for comparing multiple KOL wallets but does not explicitly state when to use this tool versus alternatives. No when-not or exclusions are provided, though the plan-based feature (PRO+) offers some context on limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_kol_coordinationA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime period for coordination analysis24h
min_kolsNoMinimum number of KOLs converging on the same token
limitNoNumber of coordination signals to return
min_avg_winrateNoPRO+: require cluster avg winrate_7d >= N (0-100)
unique_strategiesNoPRO+: require >= N distinct strategies in cluster
include_majorsNov1.1: include major memecoins (WIF/BONK/POPCAT). Default false.
window_minutesNov1.1: peak-density window (1-60). Default 15.
min_scoreNov1.1: minimum composite coordination_score (0-100).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint. The description adds substantive behavioral context: default blacklist of stables/majors, response fields (peak_kols, exited_count, coordination_score, market caps), and version info. This goes beyond annotations by detailing what the tool returns and filtering behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose, then efficiently lists response fields, filtering defaults, and version info in two sentences. No superfluous words; each phrase adds value. It is concise yet comprehensive for a tool of this complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately covers the response fields (peak_kols, coordination_score, market caps) and default filtering. It could mention sort order or whether the list is deterministic, but the `limit` parameter implies top signals. Overall, it is sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with each parameter having a clear description. The description does not add significant meaning beyond what the schema already provides. For example, 'period' is described in the schema, and the description does not elaborate further. The baseline of 3 is appropriate since the schema handles semantics well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific verb phrase 'KOL convergence signals' and elaborates with what the tool does: tokens accumulated by multiple KOLs. It clearly distinguishes from siblings like madeonsol_kol_feed (individual actions) and madeonsol_kol_hot_tokens (ranking) by focusing on multiple KOLs converging.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly differentiates from sibling tools by specifying 'convergence' and response fields (coordination_score, market cap data). It mentions the default blacklist and optional inclusion of majors, providing context for when to adjust parameters. However, it does not explicitly state when not to use this tool or name alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_kol_feedA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of trades to return (1-100)
beforeNoCursor — ISO 8601 timestamp; returns trades strictly older than this. Pass next_before from the previous response for polling.
actionNoFilter by trade type: buy or sell
kolNoFilter by specific KOL wallet address (base58)
min_solNoPRO+: minimum SOL size per trade
token_age_max_minNoPRO+: max token age in minutes at time of trade
exclude_sellsNoPRO+: drop sell-side trades
min_kol_winrateNoPRO+: minimum 7d winrate of the KOL (0-100)
strategyNoPRO+: filter by auto-tagged strategy

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds context about real-time data from an in-memory price tracker with millisecond accuracy and mentions PRO+ filters, but does not disclose rate limits or any limitations. It adds some value beyond annotations but is not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences), front-loaded with the core purpose in the first sentence, and uses the second sentence to add context about speed and PRO+ features. Every sentence earns its place without wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters and no output schema, the description provides the key output detail (market cap at trade time) but omits the full structure of returned trades. While annotations are good, more detail on the response format would improve completeness for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with all 9 parameters described in the input schema. The description mentions PRO+ filters for some parameters but adds no additional meaning to the schema descriptions. Baseline score of 3 is appropriate since the schema already does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves real-time KOL trades from over 1,000 tracked wallets, with market cap data. This distinguishes it from sibling tools like madeonsol_kol_hot_tokens or madeonsol_kol_leaderboard, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for real-time trade monitoring and mentions speed advantages, but does not explicitly state when to use this tool versus alternatives like madeonsol_kol_alerts_recent or madeonsol_kol_hot_tokens. No 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_kol_first_touchesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of events to return (1-100, default 50)
sinceNoISO timestamp — events strictly newer than this. Polling cursor.
beforeNoISO timestamp — events strictly older than this. Pagination cursor.
kolNoFilter to a single KOL wallet address (base58)
min_kol_winrate_7dNoMinimum 7d winrate of the first-touch KOL (0-100)
min_scout_tierNoRestrict to first-touch KOLs of this scout tier or better. Requires n_first_touches_30d >= 30.
min_n_touchesNoLower the minimum sample size for scout scoring (default 30)
strategyNoFilter by first-touch KOL's auto-tagged strategy
token_age_max_minNoOnly events on tokens younger than N minutes (uses token_first_seen)
min_first_buy_solNoMinimum size of the first KOL buy in SOL
mint_suffixNoSuffix-filter the token mint (e.g. 'pump', 'bonk')
presetNoShortcut filter: 'scout' = min_scout_tier=B + min_n_touches=30 + token_age_max_min=60. 'fresh_launch' = token_age_max_min=15.
includeNoComma-separated includes — currently 'followers_4h' (computed for events >=4h old)

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds valuable behavioral context: events are recent, includes backtest stats about follow-on KOLs, and advises against polling for trading. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences: purpose, filters, backtest stat, usage warning. Front-loaded and concise, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description explains purpose, filters, and provides usage guidance and a backtest stat. However, it lacks details about the structure of returned events (e.g., fields per event) since there is no output schema. This omission reduces completeness for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% parameter descriptions. The description lists some filters in prose but does not add significant meaning beyond schema. With full coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it returns 'recent first-KOL-touch events' with a specific verb (get events) and resource (first touches by KOLs). The name and description make it distinct from siblings like 'kol_feed' by focusing exclusively on first touch events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides good context: lists filters, gives backtest statistic to indicate usefulness, and advises to use WebSocket rather than polling for trading signals. However, it does not explicitly compare to sibling tools or state when not to use it aside from the polling caveat.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_kol_hot_tokensA
Read-onlyIdempotent

KOL momentum tokens — tokens with accelerating KOL buy interest, early signals before coordination triggers. PRO+ adds buyer-quality filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime period: 1h or 6h6h
min_kolsNoMinimum KOL buyers to include a token
limitNoNumber of hot tokens to return
min_avg_winrateNoPRO+: require avg winrate_7d of buyers >= N (0-100)
unique_strategiesNoPRO+: require >= N distinct strategies among buyers

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds context about PRO+ filters but does not disclose additional behavioral traits such as rate limits, pagination, or handling of empty results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and efficiently conveys the tool's value and the PRO+ enhancement. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 optional parameters, no output schema, and moderate complexity, the description covers the essential idea but lacks details on how 'accelerating' is measured or the format of returned data. It is adequate but could be more comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with property descriptions. The description adds value by explaining that 'min_avg_winrate' and 'unique_strategies' are PRO+ features, providing context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 early signals. It uses specific terms like 'momentum' and 'accelerating', which distinguishes it from sibling tools like 'madeonsol_kol_trending_tokens'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 tool over alternatives or when not to use it. No 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_leaderboardA
Read-onlyIdempotent

Get KOL performance rankings by PnL and win rate. PRO+ can sort by alternative axes (winrate/roi/profit_factor/early_entry).

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime period (trade retention is 180d)7d
limitNoNumber of KOLs to return in ranking
sortNoPRO+: sort axis (default 'pnl')
strategyNoPRO+: filter by strategy tag
min_winrateNoPRO+: minimum winrate cutoff (0-100)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds only PRO+ feature context. No contradictions. The description does not detail side effects or restrictions beyond schema, which is acceptable given safe annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, directly front-loaded with purpose. Every word is necessary and efficient. No redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so description could explain return format (e.g., list of KOLs with PnL, win rate, rank). It does not, leaving some ambiguity. However, tool name implies leaderboard. Adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear enum descriptions. The description adds that sorting defaults to 'pnl' and that certain parameters are PRO+ features. This adds value beyond the schema, though minor.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves KOL performance rankings by PnL and win rate, with explicit reference to PRO+ sorting options. This distinguishes it from siblings like madeonsol_alpha_leaderboard and 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for KOL rankings but does not explicitly state when to use vs alternatives (e.g., KOL feed, pnl, etc.). No guidance on when not to use. Adequate but lacks explicit when-to/when-not.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_kol_pairsA
Read-onlyIdempotent

KOL affinity matrix — discover which KOLs frequently co-trade the same tokens within a time window.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime period: 7d or 30d7d
min_sharedNoMinimum number of shared tokens to qualify as a pair
limitNoNumber of KOL pairs to return

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds context that it provides an 'affinity matrix' of co-trading KOLs, but annotations already indicate safe read operation; no new behavioral traits beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with key phrase front-loaded, no redundancy; could benefit from structure but very efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks output format details and context for interpreting the affinity matrix; with many sibling tools and no output schema, more explanation is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so description adds no extra parameter meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'discover' and resource 'KOL pairs' based on co-trading tokens, clearly distinguishing from sibling KOL tools like feeds or leaderboards.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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_feed or madeonsol_kol_hot_tokens; usage is implied but not clarified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_kol_pnlA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesKOL wallet address (base58)
periodNoTime period for PnL calculation30d

TDQS

A4/5.0
Behavior4/5

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 valuable context about tier-dependent output (BASIC, PRO, ULTRA) and specific metrics (realized PnL, win rate, etc.), which annotates the behavior beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loads the primary purpose, and every sentence adds value (first states purpose and metrics, second explains tier differences). No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 key metrics but does not specify return format or error conditions. However, annotations cover safety (read-only, idempotent), and parameters are simple. It is complete enough for a typical read tool, though a note on response shape would improve it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both 'wallet' and 'period' described in the schema. The description does not add new semantic information about the parameters; it simply restates the purpose. A score of 3 is baseline given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Deep per-wallet PnL breakdown' with specific metrics listed, and it distinguishes from sibling tools—none of which focus on PnL breakdown. The verb 'break down' plus resource 'PnL' is precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. It implies usage for wallet PnL analysis but lacks exclusion criteria or comparison to siblings like madeonsol_kol_leaderboard or madeonsol_kol_compare_wallets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_kol_timingA
Read-onlyIdempotent

KOL entry/exit timing profile — hold duration, exit speed, and activity patterns for a specific KOL.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesKOL wallet address (base58)
periodNoTime period: 7d or 30d30d

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description adds detail on the returned data (hold duration, exit speed, activity patterns), enriching beyond annotations. No contradictions or extra behavioral notes on edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence that front-loads the purpose with no extraneous words. Every part adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 params, no output schema) and rich annotations, the description adequately covers what the tool returns and its scope. It is complete for an agent to understand the tool's function without needing further details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters (wallet, period) are well-documented in the schema with enums and descriptions. The description adds no new parameter-level meaning beyond the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves entry/exit timing profile including hold duration, exit speed, and activity patterns for a specific KOL. It uses specific verbs and resources, and distinguishes from sibling tools by focusing on timing rather than other aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for a specific KOL (requires wallet address) but provides no guidance on when to choose this tool over alternatives like madeonsol_kol_pnl or madeonsol_kol_feed. Given many siblings, explicit when-to-use advice would improve clarity.

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_orderA
Read-onlyIdempotent

Ranked KOL first-buyers for a specific token, ordered by entry timestamp. PRO+ adds percentile_pnl_7d per entry.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58)
limitNoMax ranked entries to return

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate safety and idempotency. The description adds value by disclosing ranking order (by entry timestamp) and the PRO+ addition of percentile_pnl_7d, which are beyond annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the core purpose and adding an optional feature. No extraneous content, very efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description clarifies the return structure (ranked entries with entry timestamp, and optionally PnL). It is sufficiently complete for a list-based tool, though it omits details like pagination or error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 does not add new semantic information beyond what the schema already provides (mint and limit descriptions).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns ranked KOL first-buyers for a specific token, ordered by entry timestamp. It distinguishes from sibling tools like kol_leaderboard or kol_feed by focusing on first-buyer ranking and entry order.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving KOL entry order data but does not explicitly state when to use this tool over alternatives, nor does it provide exclusions or context about PRO+ feature availability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_list_webhooksA
Read-onlyIdempotent

List all your registered webhooks with delivery status and failure counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds behavioral context by specifying the return content (delivery status and failure counts), which is beyond 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that delivers the essential purpose without extraneous information. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description provides enough information about what the tool returns (list of webhooks with delivery status and failure counts). However, it does not mention potential pagination or sorting, but with zero parameters these are likely irrelevant. Completeness is good for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, and the schema description coverage is 100% (trivially). Per guidelines, baseline for 0 parameters is 4. The description adds no parameter information, which is acceptable since there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List', the resource 'registered webhooks', and includes specifics about the data returned ('delivery status and failure counts'). It effectively distinguishes from sibling tools like create, delete, and test webhooks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternatives (e.g., test_webhook or other list tools). There is no mention of context, prerequisites, or exclusions, leaving the agent without decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_meA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the tool's behavioral traits are clear. The description adds specific context about what data is returned (tier, quotas, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, well-structured sentence that front-loads the purpose and provides useful details without redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 remarkably complete. It lists all expected return fields and the intended use case, leaving no ambiguity for the AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has no parameters (100% coverage). Description adds meaning by enumerating the output fields: tier, daily/burst quota, remaining requests, subscription expiry, per-feature usage. This compensates for the lack of an output schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Inspect your MadeOnSol API account' with specific fields (tier, quotas, expiry, usage), distinguishing it from sibling tools that deal with specific features like webhooks, copy-trade, or KOL data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage guidance: 'Use to self-throttle without parsing rate-limit headers.' Provides clear context for when to use this tool, though does not explicitly state when not to use it (but that is implied by its self-contained nature).

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).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide minimal behavioral info (openWorldHint=true). The description adds context about the 24h token expiry and the purpose of each URL, which goes beyond annotations. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action verb 'Generate', and no extraneous words. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 adequately covers what the tool does and what it returns. It could mention that the token is used for subsequent WebSocket connections, but the current description is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters, so per instructions baseline is 4. No parameter explanations needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it generates a 24h WebSocket streaming token and specifies the included URLs and their purposes (ws_url for KOL/deployer streaming, dex_ws_url for all-DEX trade streaming). This differentiates it from all sibling tools, none of which are streaming token generators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for setting up WebSocket streams, and the description mentions tier restrictions (Pro/Ultra vs Ultra only). However, it does not explicitly state when to use this tool versus alternatives or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_test_webhookB
Read-onlyIdempotent

Send a sample event payload to a webhook URL to verify it works. Returns status code and response time.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_idYesID of the webhook to test

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, non-destructive, idempotent nature. The description adds that it sends a sample payload to an external URL and returns status, which is a useful behavioral trait. However, it does not detail the contents of the sample payload or any potential side effects on the webhook endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that conveys purpose and return value without any fluff. Every part is necessary and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one parameter, full annotations, no output schema), the description is fairly complete. It explains the action, what is returned, and implies the pre-requisite of an existing webhook. Could mention the sample event format, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the parameter description matching the tool description. The description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it sends a sample event to test a webhook, specifying what it does (send event) and what it returns (status code and response time). This distinguishes it from sibling webhook CRUD tools, though it could be slightly more explicit about testing connectivity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., create_webhook, list_webhooks). It is implied for testing after creation, but no explicit when-to-use or when-not-to context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_token_batchA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintsYes1–50 base58 Solana token mints

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive. The description adds implementation details: DB queries batched as IN(...), dex-stream + RPC fan-outs run in parallel. This reveals performance characteristics without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. First sentence states core purpose and output shape. Second sentence provides implementation insight and use case. Information is front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains return shape (same as token_get). It covers input limits, parallel execution, cost savings, and use case. All necessary context for an agent to use this batch retrieval tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema fully documents the parameter. The description adds value by clarifying the return shape matches madeonsol_token_get and restating the input range (up to 50 mints), reinforcing schema constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it performs bulk lookup of up to 50 mints, returning per-mint data identical to madeonsol_token_get. It distinguishes itself from the single-lookup sibling by emphasizing batch capability and efficiency.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (scoring many tokens at once) and why (10-20x cheaper than sequential calls). It provides a concrete use case (sniper pipelines) and implies the alternative (madeonsol_token_get for single mints).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_token_buyer_qualityA
Read-onlyIdempotent

0–100 buyer-quality score for a token's first-buyer cohort. 5-min cached. BASIC: score+signal only. PRO/ULTRA: full breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58)

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_tableA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark as read-only/idempotent. Description adds tier-based access restrictions ('PRO=top 10 truncated, ULTRA=top 20 full, BASIC: 403'), indicating different responses per plan, and filters out deployer wallets. This is valuable 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with core purpose, followed by tier details. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Describes returned data (PnL, KOL identity, bot flags) and tier variations. However, 'BASIC: 403' is ambiguous (rejection? error? unclear). No output schema exists, so description mostly suffices but could clarify the BASIC behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the single parameter 'mint' with description 'Token mint address (base58)'. Description does not add further meaning; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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', and specifies output levels by tier (PRO/ULTRA/BASIC). It distinguishes itself from siblings by focusing on early buyer enrichment, a unique aspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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_token_buyer_quality. Usage is implied by its focus on early buyers, but no exclusions or context are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_token_getA
Read-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[].

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58)

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent behavior. The description adds value by listing specific data points returned (price, market cap, volume, deployer reputation, KOL activity, blacklist status) and mentions an 'ULTRA' variant that adds wallet addresses. However, it does not explain how to access the ULTRA data or clarify if there are any rate limits or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence with a bullet-like list. It is concise and front-loaded with the main purpose. However, the mention of 'ULTRA' could be clarified further without much overhead.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, so the description compensates by listing many return fields. It covers the essential data points for a token snapshot. However, it does not mention error cases (e.g., invalid mint address) or response format, which would be helpful for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage (the only parameter 'mint' is well-described). The description does not add any additional parameter semantics 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides a 'Comprehensive per-mint snapshot' with specific data fields, and the verb 'get' matches the resource (token info for a mint address). It distinguishes itself from sibling tools like token_batch or token_buyer_quality by focusing on a single token snapshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternatives. It lacks context about when not to use it or what other tools might be more appropriate for different use cases, such as batch queries or buyer quality analysis.

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_qualityA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintsYes1–50 base58 Solana token mints

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Provides valuable behavioral details beyond annotations: LRU cache with 5-min TTL, shared cache with single-mint endpoint, zero-cost for warm mints, and response includes cache_hits counter. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, each adding value: purpose, cache behavior, response detail. No redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key points: batch size, cache, response element. Lacks output format details but given no output schema and low complexity, is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes 'mints' parameter with constraints and description (1–50 base58). Description adds no new parameter info beyond cache context, so baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it performs bulk buyer-quality scoring on up to 50 mints, distinguishing it from the single-mint sibling tool 'madeonsol_token_buyer_quality' via cache sharing note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use when scoring multiple mints in one call, and mentions cache sharing with single endpoint. However, lacks explicit when-not-to-use or detailed alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_tokens_listA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
min_mcNoMinimum market cap in USD
max_mcNoMaximum market cap in USD
min_liqNoMinimum quote-side liquidity in USD (default 2000 — pass 0 to opt out of phantom-MC filter)
active_hNoOnly tokens with a trade in the last N hours
primary_dexNoFilter by primary DEX
authority_revokedNoOnly tokens whose mint+freeze authority is revoked
exclude_token2022NoExclude Token-2022 mints (transfer-fee / hook risk)
min_lp_burnt_pctNoMinimum % of LP supply burned (0-100)
min_volume_1h_usdNoMinimum trailing 1h volume in USD (post-filter — may shrink page size)
max_mev_share_pctNoMaximum MEV-share % of 1h volume (post-filter)
mc_change_1h_min_pctNoMinimum 1h MC change % (post-filter; negative allowed)
mc_change_1h_max_pctNoMaximum 1h MC change % (post-filter)
sortNoSort axis (default mc_desc)
limitNoPage size (max 100)
offsetNoPagination offset

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_addressYesSolana wallet address (base58) to track
labelNoOptional human-readable label for this wallet

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations show it's not read-only and not destructive; description adds value by mentioning that a 409 error occurs if already tracked or limit reached, which is useful for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with the core action. Highly concise and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple add operation, the description covers the action and a key error condition. Could potentially mention return value, but lacking output schema makes this acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 does not add any extra meaning beyond what the schema already provides for the two parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Add a Solana wallet to your watchlist' with a specific verb and resource, differentiating it from sibling tools like remove, summary, and trades.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (add wallets), but does not explicitly discuss when to use this tool versus alternatives like watchlist, remove, etc., 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_wallet_tracker_removeA
DestructiveIdempotent

Remove a wallet from your watchlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_addressYesSolana wallet address to remove from watchlist

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructive and idempotent behavior. The description matches but adds no additional context (e.g., what happens if wallet not in watchlist).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that directly states the tool's function with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 is sufficient to convey the core action. It covers the essential need but could mention response behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with a clear description. The tool description does not add extra 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (remove) and the resource (wallet from watchlist). This distinguishes it from sibling tools like 'add' or 'summary'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 the purpose is clear, there is no mention of prerequisites or situations where removal might be inappropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_wallet_tracker_summaryA
Read-onlyIdempotent

Per-wallet stats: swap counts, SOL bought/sold, and last activity time across your watchlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime window for stats7d
walletNoFilter to a specific wallet address

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds that it works across the user's watchlist, but doesn't disclose behavior like empty watchlist handling or rate limits. Adequate given annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with key information, no wasted words. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two optional params and no output schema, the description lists the output metrics (swap counts, SOL amounts, last activity). Could mention default period or that wallet filters to one wallet, but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are described in the schema (period and wallet). Description does not add significant new meaning beyond the schema, but the phrase 'across your watchlist' clarifies scope. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'provides per-wallet stats' and lists specific metrics (swap counts, SOL bought/sold, last activity time). Distinguishes from siblings like madeonsol_wallet_tracker_trades which gives detailed trade logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives mentioned. But the name and description imply it's for aggregated stats over a period, while siblings like 'trades' are for detailed transactions. Lacks clear exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_wallet_tracker_tradesA
Read-onlyIdempotent

Historical swap and transfer events for all your watched wallets. BASIC: truncated wallets, no tx_signature.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletNoFilter to a specific wallet address
actionNoFilter by action type
event_typeNoFilter by event type: swap (token trade) or transfer (SOL moved)
limitNoMax results (1–200)
beforeNoPagination cursor: block_time of the last event from previous page

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and idempotentHint=true, and the description adds useful context: 'truncated wallets, no tx_signature'. This addresses output limitations beyond the annotations, enhancing transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the core purpose. Every word serves a purpose, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and 5 well-described parameters, the description covers the essential behavior and limitation. Pagination is implied by the 'before' parameter but not detailed; still adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions, so the baseline is 3. The description does not add any new meaning or guidance for parameters; it focuses on tool purpose and output limitation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool provides 'historical swap and transfer events' for watched wallets, distinguishing it from sibling tools like wallet_tracker_summary. The 'BASIC' qualifier adds specificity about output limitations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates when to use the tool for historical trade events, but does not explicitly mention when not to use it or provide alternatives, though the sibling set suggests no direct overlap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

madeonsol_wallet_tracker_watchlistA
Read-onlyIdempotent

List your tracked wallets with labels and remaining watchlist capacity. BASIC=10, PRO=50, ULTRA=100.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, non-destructive, idempotent, and open-world. The description adds no behavioral information beyond what annotations provide (e.g., no details on pagination or response format). 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with 13 words, no fluff. It efficiently conveys the purpose and key information (labels, capacity). Front-loaded with the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no output schema, and simple purpose, the description sufficiently covers what the tool returns (list of wallets with labels and capacity). It could detail the response format more, but for a simple list tool, it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so schema coverage is 100%. The description does not need to add parameter info. Per guidelines, baseline is 4 for no parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as listing tracked wallets with labels and remaining capacity. It uses a specific verb ('List') and resource ('tracked wallets'), and the mention of capacity limits differentiates it from other wallet tracker tools like add, remove, or trades.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for viewing the watchlist and provides capacity limits, which gives context for when to use it. However, it does not explicitly state when not to use it or mention alternatives, leaving some gap for agents to infer usage.

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. Dates show when Glama detected each change.

  1. 51 tool updatesv1.7.4
    • First observedmadeonsol_alpha_leaderboard
    • First observedmadeonsol_alpha_linked
    • First observedmadeonsol_alpha_wallet
    • First observedmadeonsol_coordination_alerts_create
    • First observedmadeonsol_coordination_alerts_delete
    • First observedmadeonsol_coordination_alerts_get
    • First observedmadeonsol_coordination_alerts_list
    • First observedmadeonsol_coordination_alerts_update
    • First observedmadeonsol_copytrade_create
    • First observedmadeonsol_copytrade_delete
    • First observedmadeonsol_copytrade_get
    • First observedmadeonsol_copytrade_list
    • First observedmadeonsol_copytrade_signals
    • First observedmadeonsol_copytrade_update
    • First observedmadeonsol_create_webhook
    • First observedmadeonsol_delete_webhook
    • First observedmadeonsol_deployer_alerts
    • First observedmadeonsol_deployer_trajectory
    • First observedmadeonsol_discovery
    • First observedmadeonsol_first_touch_subscriptions_create
    • First observedmadeonsol_first_touch_subscriptions_delete
    • First observedmadeonsol_first_touch_subscriptions_get
    • First observedmadeonsol_first_touch_subscriptions_list
    • First observedmadeonsol_first_touch_subscriptions_update
    • First observedmadeonsol_kol_alerts_recent
    • First observedmadeonsol_kol_compare_wallets
    • First observedmadeonsol_kol_coordination
    • First observedmadeonsol_kol_feed
    • First observedmadeonsol_kol_first_touches
    • First observedmadeonsol_kol_hot_tokens
    • First observedmadeonsol_kol_leaderboard
    • First observedmadeonsol_kol_pairs
    • First observedmadeonsol_kol_pnl
    • First observedmadeonsol_kol_timing
    • First observedmadeonsol_kol_token_entry_order
    • First observedmadeonsol_kol_trending_tokens
    • First observedmadeonsol_list_webhooks
    • First observedmadeonsol_me
    • First observedmadeonsol_stream_token
    • First observedmadeonsol_test_webhook
    • First observedmadeonsol_token_batch
    • First observedmadeonsol_token_buyer_quality
    • First observedmadeonsol_token_cap_table
    • First observedmadeonsol_token_get
    • First observedmadeonsol_tokens_batch_buyer_quality
    • First observedmadeonsol_tokens_list
    • First observedmadeonsol_wallet_tracker_add
    • First observedmadeonsol_wallet_tracker_remove
    • First observedmadeonsol_wallet_tracker_summary
    • First observedmadeonsol_wallet_tracker_trades
    • First observedmadeonsol_wallet_tracker_watchlist

TDQS

A3.7/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count2/5

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.

Completeness5/5

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

ActivityActive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MadeOnSol/mcp-server-madeonsol'

If you have feedback or need assistance with the MCP directory API, please join our Discord server