Server data from the Official MCP Registry
Solana memecoin intelligence: KOL trades, deployer reputation, token & wallet scoring
About
Solana memecoin intelligence: KOL trades, deployer reputation, token & wallet scoring
Security Report
This MCP server properly handles authentication through environment variables and provides reasonable permission scoping for a developer tool. However, there are several code quality concerns including missing input validation on wallet addresses, hardcoded API paths that could be misused, and potential issues with error handling that could leak sensitive information. The x402 payment integration introduces complexity but is appropriately gated behind optional peer dependencies. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue (1 critical, 0 high severity).
3 files analyzed · 12 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
Unverified package source
We couldn't verify that the installable package matches the reviewed source code. Proceed with caution.
What You'll Need
Set these up before or after installing:
Environment variable: MADEONSOL_API_KEY
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-lambopoewert-madeonsol": {
"env": {
"MADEONSOL_API_KEY": "your-madeonsol-api-key-here"
},
"args": [
"-y",
"mcp-server-madeonsol"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
mcp-server-madeonsol
⚡ Install via Smithery · 🤖 Use in Claude Desktop · 🖱️ Use in Cursor · 📚 API docs · 💰 Free API key · 🔎 On Glama
MCP server for MadeOnSol Solana KOL intelligence API. Use from Claude Desktop, Cursor, or any MCP-compatible client.
Real-time Solana trading intelligence: track 1,069 KOL wallets with <3s latency, 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, every endpoint — no signup payment. Get a key at madeonsol.com/pricing.
New in 1.25.0 — token surges & revivals: momentum fires with the honest half attached. The new
madeonsol_tokens_surgestool bindsGET /tokens/surges(PRO+, keyedmsk_API only — no x402 route): every token momentum fire, newest first. Two kinds, one row shape.surge— a token < 30 min old whose market cap runs hard against its launch MC, in three tiers that each fire at most once per mint:early(≤10 min, ≥$12k, ≥3× launch),strong(≤30 min, ≥$30k, ≥6× launch and ≥2× the lowest sample of the last 3 min — it is climbing now),breakout(≤2 min, ≥$45k, ≥8×). A tier must be sustained (current tick and a sample ≥10 s older; nothing fires before 20 s of age) — a same-slot bundle marked to $475k at age 1 s is a spike, not a surge.revival— a token with no 1-minute trade candle for ≥24 h that starts trading again, confirmed only by the tape (≥5 buys, ≥$500 buy volume, MC ≥1.5× the pre-dormancy close), never by the price mark;tierisnull. Hard gates on both: liquidity ≥$1.5k and ≥2 % of MC, and the MC gained must be paid for by buy volume (a price mark in a spoof pool moves MC on ~$0). Every row carries the bursttape(sourcecandles / wallet_trades;unique_buyersonly where the mint is in trade coverage —wallet_data_available:falseotherwise, never an inferred zero),kolbuyers, the first-20early_buyerscohort (bundled / sold / sniper wallets),deployerreputation andrisk_flags[](bundled_launch,few_buyers,wash_pattern,thin_liquidity,cold_deployer,sniper_heavy,early_buyers_exiting,sell_pressure,no_tape_trades,no_prior_price,mint_authority_active,transfer_fee— empty means no flag raised, not verified clean). Rows ≥65 min old carry the +1 houtcome;stats=1prints per-(kind, tier) hit-rates (up_1h_pct,median_peak_multiple,doubled_1h_pct) — out-of-sample by construction. Filterskind,tier,mint,launchpad,deployer_tier,min_mc_usd/max_mc_usd,min_buys,exclude_flags,only_clean; cursorssince/before. Pushed live on the newtoken:surgesWS channel (eventstoken:surge/token:revival; subscribe filterskinds[],tiers[],launchpads[],exclude_flags[],min_mc_usd/max_mc_usd,deployer_tier[]) and accepted bymadeonsol_create_webhookas eventstoken:surge/token:revivalwith the same filters. The response echoes the live thresholds indefinitions.
New in 1.24.1 — stream tokens never expire.
madeonsol_stream_token(POST /stream/token) now returns the same token on every call, forever. It stops working only if your subscription lapses or you call the tool withrotate: trueto replace it (the previous value keeps working for 60 s).expires_atand the newnext_refresh_atare alwaysnull(kept for wire compatibility — do not schedule refreshes on them); the response gainsrotated(boolean) andlifetime(string). The server never rotates on its own and never sendstoken_refreshunless you rotated; a4001close means "mint again" (lapsed or rotated), never a timer. PreferAuthorization: Bearer <token>on the WebSocket handshake —?token=still works and is masked in access logs.
New in 1.24.0 — token locks & vesting, upcoming unlocks, and pump.fun creator-fee sharing / claims. Five new tools (all PRO+, keyed
msk_API only — no x402 route).madeonsol_token_locksbindsGET /tokens/{mint}/locks: every on-chain lock / vesting contract on a mint (Streamflow, Jupiter Lock, Bonfida vesting) with the schedule, the terms (cancelable_by_sender= the locker can pull it — funds are locked against the recipient, not the locker) and a live-derived view (locked_*,claimable_*,next_unlock) plus asummarywith 7d / 30d forward unlock totals.madeonsol_token_locks_feed(GET /tokens/locks) is the cross-token feed of NEW contracts (cursorpagination.next_since, or push on WS channeltoken:locks),madeonsol_token_unlocks(GET /tokens/unlocks) lists upcoming unlock EVENTS (cliff / period / final / tranche) inside a 1h–90d window sorted by soonest / largest_usd / largest_pct. LP locks are not included — token/vesting locks only.madeonsol_token_fee_shares(GET /tokens/{mint}/fee-shares) decodes a pump.fun coin's on-chainSharingConfig— shareholders withshare_bps,is_admin,is_social_pda(fees earmarked for an X identity:social.platform2 = X,user_id= the numeric platform id, not the handle),redirected_bps,is_default: true= 100% to the creator — plus a distributions rollup and config history;madeonsol_token_fee_claims(GET /tokens/fee-claims) is the fee-event feed (distributionwith per-addresspayouts[],social_claim,shares_created/updated/reset,creator_transferred,creator_claimonly when asked viatype=), pushed on WS channeltoken:fee_claims. Fee-event history starts 2026-08-17. All base-unit amounts are digit strings; ui / usd / pct arenullwhen decimals or price are unknown.
New in 1.23.0 — live holder census: exact holder count, labelled holders, and pools that are named, not just excluded. The new
madeonsol_token_holderstool bindsGET /tokens/{mint}/holders(PRO+): every token account of the mint read from the ledger atconfirmedand merged per owner, soconcentration.holder_countis EXACT (distinct non-zero owners minus pools / bonding curves / burns) — never a trade-derived estimate; it isnullonly when the provider refuses the census for a mega-cap, in which case you get the top-20 view andsource.census_fallback_reasonsays so. Each disclosed owner carries our labels (deployer/kol/early_buyer/bundle/bot/dump_cluster— empty means unknown to us, not clean), andexcluded[]NAMES what was taken out of the circulating denominator:reason=pool(withdex+pool_address),bonding_curve(pump.fun / LaunchLab),burn, orprogram_accountonly when we genuinely cannot attribute the PDA;pool_pct/burned_pct/program_pctsplit the exclusion. Amounts are raw u64 strings. Disclosure: PRO ranks 1–10, ULTRA 1–50, BUSINESS 1–100 — the maths is tier-independent. Big tokens take 5–30 s upstream: you get503 holder_scan_in_progresswithretry_after_seconds: 20while the scan finishes into the cache, and the retry is instant.
New in 1.22.0 — two prices on the trade tape, and the right one is now the default. The trade tape now tells you what a trade actually cost.
price_sol/price_usdon each trade are THIS trade's executed price —sol_amount / token_amount, reconciling exactly with the amounts on the same row and with the PnL endpoints. Becausesol_amountis the wallet's net SOL movement, that is the trader's all-in effective rate: swap fee and any account rent included, not the pool mid. The market-cap tracker's canonical pool price moved to the newmarket_price_sol/market_price_usdfields — it is sampled once per token per pool update, so every trade in the same slot shares it. Until nowprice_solcarried that canonical value and disagreed with the row's own amounts by a 7.9% median (p90 ~74%): a stale market price reads low in a pump and high in a dump, so anything you averaged out of the tape inherited the bias instead of cancelling it. Useprice_solfor cost basis, fills and PnL;market_price_solfor a per-token series independent of trade size and direction. Bothmadeonsol_token_tradesandmadeonsol_wallet_tradescarry all four fields, and both tool descriptions spell out which price to use so an agent does not average the wrong one.
New in 1.21.0 — the Deployer Hunter surface completed. Seven new operations that existed on the API but had no SDK binding:
madeonsol_deployer_leaderboard,madeonsol_deployer_stats,madeonsol_deployer_profile,madeonsol_deployer_tokens,madeonsol_deployer_alert_stats,madeonsol_deployer_best_tokensandmadeonsol_deployer_recent_bonds. Readbonding_rate(lifetime) againstrecent_bond_rate(rolling) — the gap between them is the signal, not either number alone.runner_rateonly means something oncelabeled_tokens >= 3, and an untracked wallet returns a profile with zeroed counters, not a 404, so checktotal_deployedbefore reading a 0% bond rate as a track record. Dependency ranges are now bounded to the versions actually tested (@x402/*^2.x,@solana/kit^5.5.1) instead of open-ended>=0.0.1, and the lazily-imported x402 peers are marked optional — a keyed install no longer pulls the whole Solana stack.
New in 1.20.0 — Token depth / price impact + deployer self-activity on risk. New tool
madeonsol_token_depth(GET /tokens/{mint}/depth) — per-pool price-impact / slippage: "how much SOL moves this token's price N%", per pool (NOT router-optimal). Pass up to 8 SOL buysizes(each >0 and ≤10000; default[0.5, 1, 5, 10]); every computable pool returnsspot_price_sol,fee_pct, aquotes[]entry per size (size_sol,tokens_out,avg_price_sol,price_impact_pct), andto_move_price— the SOL required to move price 1% / 5% / 10%. Constant-product AMMs are served from stream reserves (source: "stream"withreserves_age_ms); pump.fun/bonk bonding curves from a live read of the curve's virtual reserves (source: "live_rpc"). Pools that can't be priced honestly — concentrated CLMM/Orca/DLMM, Meteora-DBC curves, unclassified models — come back inunsupported_pools[]with areason(e.g.concentrated_liquidity_depth_not_supported,curve_graduated_use_amm_pool) instead of a wrong number;primary_poolnames the deepest computable pool,found: falsemeans no pools tracked. PRO/ULTRA only. Andmadeonsol_token_risknow returns a top-leveldevblock (deployer self-activity;nullwhen the mint has no deployer-pipeline row): the create-tx self-buy snapshot (buy_sol,buy_tokens,buy_supply_pct), the post-create rollup (bought_tokens_after— catches the same-second-separate-tx dev buy the create snapshot reads as 0 —sold_tokens,sold_sol,first_sell_at/last_sell_at), live on-chain holdings (holdings_tokens,holdings_supply_pct— pump.fun 1B denominator, null elsewhere —wallet_empty: is the dev wallet empty NOW), andtransferred_out(tokens left without a sell;null= unknown, never a guess), plusas_of.deployer:alertwebhook/WS payloads gaindev_buy_sol+dev_buy_supply_pct.New in 1.19.0 — Batch wallet classification + token trade tape + bigger keyless catalog. New tool
madeonsol_wallet_batch_classify— reputation flags for 1–100 wallets in one call (counts as one request): per walletis_sniper/is_bundler/is_dumper/is_kol(+kol_name),bot_confidence(string enumnone/low/medium/high,nullwhen not alpha-tracked), and adump_clusterblock (dump_cohorts,runner_cohorts,total_cohorts,as_of). Flags are pump.fun-pipeline scoped —false= not observed, NOT verified clean;is_bundleris lifetime,is_dumperis a rolling 42d window. New toolmadeonsol_token_trades— mint-scoped cursor-paginated trade tape (the backfill complement to the live firehose):tx_signature,wallet_address,action,sol_amount,token_amount,price_sol/price_usd,early_buyer_rank,slot,block_time,traded_at; filtersaction/wallet/since–until(default FULL history — capture starts 2026-04-12), plus acoveragehonesty block. Both PRO/ULTRA.madeonsol_wallet_statsflags gainis_sniper/is_bundler/is_dumper+dump_cluster, andbot_confidenceis now correctly typed as a string enum (it was documented as a number and always came backnulldue to a server bug — now returns real values).madeonsol_token_riskinputs andmadeonsol_sniper_recentdeploys gain the slot-windowsniper_footprint/footprintrollup (buys,buyers,sol,supply_pct,sniper_wallet_buys,data_available,as_of—null= not observable, not zero). The keyless x402 catalog grows 18 → 25 endpoints: token candles ($0.01), almost-bonded ($0.01), top-traders ($0.02), cap-table ($0.02), sniper recent ($0.01), token flow ($0.01), deployer trajectory ($0.01) —madeonsol_sniper_recentandmadeonsol_deployer_trajectorynow work keyless via x402 too.New in 1.18.0 — Verified on-chain wallet holdings. New tool
madeonsol_wallet_holdings— the wallet's CURRENT holdings read straight from chain: its actual SPL + Token-2022 token accounts and SOL balance, each enriched with ourprice_usd/value_usd/market_cap_usd/name/symbol/is_bonded, plustransfer_delta(on-chain amount − trade-derived net position — exposes non-swap flows like airdrops, insider funding, and wallet-hopping). Distinct frommadeonsol_wallet_positions(trade-derived FIFO): this is what the wallet actually holds right now. Params:limit(1–500, default 200),min_value_usd(default 0). Returns{ address, sol_balance, holdings[], summary, verified_at, trade_window_days, cache_hit, ttl_seconds }. ULTRA only.New in 1.17.0 — Bundle-cohort holdings. New tool
madeonsol_token_bundle— which same-slot "bundle" wallets bought a token and how much of supply they still hold (the incumbents' "current held %" rug/insider signal, from confirmed on-chain data). Returns abundleblock (wallet_count,bundle_kindatomic_tx/same_slot/none,held_ratio,held_pct_of_supply— the headline, net held / circulating supply, null if unknown —fully_exited,buy_volume,tokens_held) plus awallets[]array (rank,wallet,held_ratio,has_sold,atomic,is_kol). BASIC get the bundle block only (emptywallets[]); PRO adds top-10 flags-only wallets; ULTRA returns the full cohort with enriched identities (kol_name,win_rate,bot_confidence,tokens_held).New in 1.16.0 — Batch risk scoring + live stream-session control. New tool
madeonsol_tokens_batch_risk— bulk rug-risk/safety scoring for up to 50 mints in one call, returning the same per-mint shape asmadeonsol_token_risk(0–100 score,band, explainablefactors[], rawinputs) plus anas_oftimestamp; untracked mints come back as{ mint, error: "not_tracked" }without failing the batch, and the whole call counts as one request against quota. Plus two WebSocket session tools:madeonsol_stream_sessions_list(list your live sessions —id,service,tier,channels,connected_at,remote_ip,messages_sent) andmadeonsol_stream_session_kill(force-disconnect a session by id to free its connection slot, e.g. a ghost socket). PRO/ULTRA only.New in 1.15.0 — Almost-bonded discovery + trending sorts. New tool
madeonsol_almost_bonded— pre-bond pump.fun tokens near graduation, ranked by velocity (Δprogress/min): "95% and accelerating" beats "92% stalled". Each token carriesprogress_pct,velocity_pct_per_min,eta_minutes,stalled,real_sol_reserves,market_cap_usd,liquidity_usd,authorities_revoked,deployer_tier, andage_minutes. Params:min_progress,max_progress,min_velocity_pct_per_min,max_age_minutes,deployer_tier,authority_revoked,min_liq,sort(velocity_desc / progress_desc / eta_asc),limit. PRO/ULTRA only. Plusmadeonsol_tokens_listgains four momentum sorts —mc_change_5m_desc,mc_change_1h_desc,volume_1h_desc, andtrending(composite recent-volume × positive-momentum rank).New in 1.14.0 — Token trade flow. New tool
madeonsol_token_flow— a trade-flow aggregate (organic-vs-fake volume) over a1h/24hwindow:unique_wallets/unique_buyers/unique_sellers,buy_count/sell_count/total_trades,buy_sol/sell_sol/net_sol(sell − buy; positive = net SOL leaving the pool), andtrades_per_wallet(wash-trading proxy). PRO/ULTRA only. Deployer alerts (madeonsol_deployer_alerts) now carrydeployers.deployer_sol_balance— the deployer wallet's SOL balance at alert time (null for historical rows).New in 1.13.0 — Token OHLCV candles. New tool
madeonsol_token_candles— historical price candles (1m/5m/15m/1h/4h/1d) aggregated from the on-chain trade firehose. Each candle hast/open/high/low/close/volume_usd/trades/market_cap_usd. PRO returns OHLCV for the last 30 days; ULTRA adds buy/sell volume + count splits, net flow, MEV volume, open/close liquidity, high/low MC, and full history. PRO/ULTRA only.New in 1.12.0 — Token risk score. New tool
madeonsol_token_risk— a transparent 0–100 rug-risk/safety score (higher = riskier) with aband(safe/caution/danger), an explainablefactors[]array, and the rawinputs(mint/freeze authority, liquidity, liq-to-MC ratio, transfer fee, launch cohort, deployer bond rate, KOL signal, blacklist). PRO/ULTRA only.New in 1.11.0 —
madeonsol_tokens_listgains three new filter params:min_liq_mc_ratio,max_liq_mc_ratio, anddeployer_tier. Response items now includeliquidity_to_mc_ratioanddeployer_tier. New tool:madeonsol_signal_performance— evaluate signal efficacy (hit rate, sample size, median outcome) before acting on any signal. KOL leaderboard entries now includemedian_hold_minutes_30dandpercentile_early_entry_30d.New in 1.10.4 — Deployer alerts/profiles now expose
runner_rate+labeled_tokens(fraction of a deployer's labeled tokens that ran vs dumped, gate onlabeled_tokens≥3) plusavg_time_to_bond_minutes.
New in 1.10.3 — Dump-cluster detection.
madeonsol_token_buyer_qualitybreakdown now includesdump_cluster_count(3+ dump-cluster wallets in the first-20 → 94% historical dump rate vs 61% base) andrecycled_early_buyer_count. Full breakdown is returned on all tiers. Also: the API now pushes every pump.fun graduation in real time (token:graduationsWS channel).
New in 1.10 — Deshred Sniper Alerts.
madeonsol_sniper_recentsurfaces pump.fun deploys from shred-level data ~500ms before on-chain confirmation. PRO: elite/good deployers. ULTRA: all tiers + custom watchlist. Usesniper:deploysWebSocket orsniper:deploywebhook for live push.New in 1.9 — Price alerts, scout leaderboard, coordination history.
madeonsol_price_alerts_*CRUD (PRO=5, ULTRA=25).madeonsol_scout_leaderboardranks top scouts by first-touch follow-on rate.madeonsol_coordination_historyandmadeonsol_peak_historyexpose the historical record.madeonsol_wallet_statsnow returnsderived: win_rate, roi, verdict, biggest_miss.New in 1.8 — Universal Wallet API.
madeonsol_wallet_stats,madeonsol_wallet_pnl,madeonsol_wallet_positions,madeonsol_wallet_trades— FIFO cost-basis PnL and cursor-paginated raw trades for any Solana wallet. PRO+. Cache hits don't count against quota.New in 1.7.0 (2026-05-12) — Two new tools:
madeonsol_me(account/quota introspection — read tier, remaining requests, and per-feature usage without parsing rate-limit headers) andmadeonsol_tokens_list(PRO+ filtered, sortable token directory — MC band, liquidity floor, primary DEX, authority/safety flags, plus computed 1h volume / MEV-share / MC-change deltas). Token responses now expose velocity / MEV-share fields. Token directory defaults tomin_liq=2000to skip phantom-MC dust — passmin_liq=0to opt out./token/{mint}now returns structured 400 errors (code/reason/example/docs) instead of plain strings. Deprecatedavg_entry_mc_usdfield fully removed from KOL/alpha leaderboards.
Install via Smithery (one line)
Smithery is the easiest path — it writes the config for you and handles the install:
npx -y smithery mcp add madeonsol/solana-kol-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
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_KEYsettles each request as a USDC micropayment on Solana (~$0.005–$0.02 per call, settled on-chain). No subscription, no quota. -
The keyless catalog covers 25 endpoints — the latest additions: token candles ($0.01), almost-bonded ($0.01), top-traders ($0.02), cap-table ($0.02), sniper recent deploys ($0.01), token flow ($0.01), and deployer trajectory ($0.01).
-
The free
madeonsol_discoverytool needs no auth and returns every endpoint with its exact per-call price — call it first to see what each tool costs. -
Install the x402 peer deps alongside the server (only required for this mode):
npm install -g mcp-server-madeonsol @x402/fetch @x402/svm @x402/core @solana/kit @scure/base
Data only. MadeOnSol returns trading intelligence — it never trades, signs swaps, or takes custody of funds. The only thing your wallet ever pays for is the per-call data fee.
Prefer a fixed monthly bill, free tier, or no wallet? Use the developer path below.
Authentication
Two options (in priority order):
| Method | Env var | Best for |
|---|---|---|
| MadeOnSol API key (recommended) | 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 freemsk_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 usingSVM_PRIVATE_KEY.
Configure
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"madeonsol": {
"command": "mcp-server-madeonsol",
"env": {
"MADEONSOL_API_KEY": "msk_your_api_key_here"
}
}
}
}
Cursor
Add to MCP settings with the same command and env vars.
Tools
KOL Intelligence
| Tool | Description |
|---|---|
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 |
Documentation truncated — see the full README on GitHub.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
MarkItDown
Freeby Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
