Server data from the Official MCP Registry
Solana KOL trading intelligence & deployer analytics via x402 micropayments or API key.
About
Solana KOL trading intelligence & deployer analytics via x402 micropayments or API key.
Security Report
This MCP server for MadeOnSol's Solana KOL intelligence API is well-structured with proper authentication support (API key and x402 micropayment modes). However, there are several code quality and security concerns that prevent a higher score: sensitive environment variables are logged to stderr, the x402 dependency setup uses optional try-catch that silently fails, input validation is minimal across many tools, and error handling is broad. The server's permissions (network_http, env_vars) are appropriate for its purpose as a financial data aggregator, but implementation practices need hardening. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.
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.
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-madeonsol-madeonsol": {
"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.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_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 a 24h WebSocket token for KOL/deployer streaming and DEX trade stream β PRO/ULTRA. Channels now also include token:locks (new lock/vesting contracts, event token:lock) and token:fee_claims (pump.fun fee events, event token:fee_claim) |
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 every endpoint β real wallets, TX signatures, full precision. Paid tiers unlock webhooks, WebSockets, rule engines, and ULTRA-only data depth. 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
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
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.
MarkItDown
Freeby Microsoft Β· Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
MCP Marketplace
Freeby mcp-marketplace Β· Developer Tools
Search and install MCP servers from inside your AI client.
FinAgent
Freeby mcp-marketplace Β· Finance
Free stock data and market news for any MCP-compatible AI assistant.
