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 is a read-only MCP server wrapping the MadeOnSol Solana KOL intelligence API, with authentication via an msk_ API key or x402 micropayments with explicit spending budgets. The network access to madeonsol.com matches the server's stated purpose, and the visible code shows no exfiltration, shell execution, or hardcoded secrets. Minor concerns remain around the optional HTTP transport, the truncated remainder of the file which could not be fully reviewed, and the flagged 'Data exfiltration risk' patterns in the scanner context which do not correspond to visible code in this excerpt. Supply chain analysis found 7 known vulnerabilities in dependencies (0 critical, 4 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
Agent Intelligence Gateway (new in 4.1.0, opt-in). Set
MADEONSOL_AGENT_GATEWAY_ENABLED=ontogether with a paid (PRO or higher)MADEONSOL_API_KEYto add six research tools fixed to Solana:discover_opportunities,evaluate_token,inspect_wallet,inspect_deployer,evaluate_signalandchanges_since. They callPOST /api/v1/agent-gateway/actionswith your key, count against your normal quota and never sign or pay an x402 request. Answers carry per-sourceevidenceand an explicitpartialstatus when a source is limited.changes_sincereplays seven curated KOL/deployer event families, not every swap. Without the opt-in the tool inventory is unchanged. A hosted endpoint is also available athttps://madeonsol.com/api/agent-gateway/mcp(Streamable HTTP,Authorization: Bearer msk_…); it does not implement MCP OAuth, so OAuth-only connectors cannot use it. MCP is how an agent invokes tools, not a billing plan. See the Gateway contract.
The hosted /api/agent-gateway/mcp transport uses per-request
account keys and custom Authorization headers. It does not implement MCP OAuth;
do not expose this package's private loopback HTTP adapter as a public service.
Six-family early-stream expansion (#457, not activated): the managed
earlyStream()client, private-list controls and token/wallet helpers are implemented in themadeonsol-x402TypeScript SDK. This package does not gain that managed client or new MCP/plugin actions from this PR. Existing sniper compatibility is ULTRA+ and deploy-only. See the release-candidate wire contract for raw WebSocket integration; publication/version parity remains a release gate.
⚡ 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: follow the active Solana KOL roster with <3s latency on paid keys and x402 pay-per-call (free-tier live feeds are 5-min delayed), score the reputation-profiled Solana deployer subset, 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 trades from supported Solana DEX programs across 9+ programs. Free tier: 200 REST requests/day on eligible endpoints (live feeds 5-min delayed) — no signup payment. Get a key at madeonsol.com/pricing. Metric scopes and current coverage: Solana API · DEX registry · Pricing.
Server update 2026-10-05/08 (no package change needed): realtime developer activity and USDC/USDT trade sizing. The signed webhook event
dev:activity(PRO+) and the ULTRA+ DEX-socketdev_subscribepath deliverdev_sell,dev_buy,dev_token_transfer_outanddev_token_transfer_in(a transfer is never a sell). Transfer detection is now the union of the legacy bounded developer-wallet watch and the broad SPL Token/Token-2022 candidate source for attributed creators while live.transfer_watch_coveragedescribes only the legacy watch;transfer_sources.broadin the subscribe ack reports broad-source state/gaps. Recovered broad-source rows are REST history only, never retroactive realtime alerts. Missing creator attribution, source gaps and unsupported mixed swap + standalone-transfer cases remain limitations. Ondex:trades, a swap paid in USDC or USDT now carriessol_amount= the SOL equivalent of its stable leg (used bydust,min_sol,max_sol) plus the additive fieldssol_amount_basis(native_sol|stable_quote_equivalent|stable_quote_unconverted) andstable_quote;stable_quote_unconvertedmeanssol_amount0 (size unknown). Details: changelog.
Server update 2026-10-04 (no package change needed): copy-trade rules follow any valid source wallet.
source_walletsno longer have to be tracked KOL wallets: any valid Solana wallet fires, KOL membership is optional enrichment, and copy-trade sources do not use Wallet Tracker quota. Each rule reportssource_admission(any_wallet) andoperational_state(eligible, or an infrastructure statemonitoring_pending/monitoring_unavailable/source_capacity_unavailable).source_wallets_tracked/source_wallets_untrackedand theuntracked_source_walletswarning are legacy fields, still filled. This supersedes the "signals fire only for tracked KOL wallets" wording in older notes below. Limits are unchanged: PRO 3 rules × 5 wallets, ULTRA 20 × 50, BUSINESS 100 × 250.
Deployer activity timeline (expanded 2026-10-08).
madeonsol_deployer_activitybindsGET /deployer-hunter/{wallet}/activity(PRO+, keyedmsk_API only): one newest-first timeline containing launches,dev_buy,dev_sell,dev_token_transfer_out,dev_token_transfer_in, creator transfers, fee claims, funding in and capital out. Persisted realtime rows can include below-floor trades; recovered transfer rows can carryrecovered,recovered_at,late_classifiedandcounterparty_count. Read the per-family coverage/retention before interpreting an empty range; PRO responses carry no identity block or fee-payer address.
New in 4.2.0: bundles over time, bundled-now share, every KOL trade on a token (108 tools total). Three new tools, keyed
msk_API only (no x402 route).madeonsol_token_bundles(GET /tokens/{mint}/bundles) lists every coordinated buy cluster on a token, the launch bundle AND clusters that form later, each with what it still holds and, for clusters the server follows, its exit progress (exit: sold share, wallets fully out, realized SOL).madeonsol_token_bundle_share(GET /tokens/{mint}/bundle-share) gives one figure, the share of supply held right now by every bundle wallet; it is null with a reason unless every wallet was read, never a guessed number.madeonsol_kol_token_trades(GET /kol/tokens/{mint}/trades) returns every stored tracked-KOL trade on one token, newest first, keyset paged. New opt-ins on existing tools:madeonsol_token_cap_table(limit,verify_current_balances,include_scout_scores),madeonsol_token_buyer_qualityandmadeonsol_token_bundle(include_balances),madeonsol_token_holders(include_wallet_flags). Additive only.New in 3.3.0: token lock provenance. Tool descriptions: Token lock rows carry
provider(identityverified | compatible | unverified;lock_urlalways null on Solana, never constructed),explorer(Solana Explorer links),price_usd,seconds_until_end,seconds_until_next_unlockand, for Bonfida, the trancheschedule(server 2026-10-02). Additive only.madeonsol_token_locks_feedacceptscursor(strict keyset paging).
New in 3.2.0: paid tool calls recover a lost answer instead of paying again (PAY-05). In x402 (keyless) mode a paid call whose answer is lost or pending is re-sent with the SAME proof and a payer-signed
PAYMENT-RECOVERYheader (bounded), and returns the server's stored answer. Tool results carry_x402_paymentprovenance (payment id, original/deferred, live/stored); a payment that cannot be completed returns a codedx402_payment_errorthat says not to pay again. A recovery retry never uses theX402_MAX_*budget. Against a server that does not offer recovery (older, or with recovery switched off) the result is the previous behaviour: a re-presented proof ends in the 409replay_detectedand is surfaced, never re-paid. No tool added or removed. API-key users: no change.
New in 3.1.1: tool descriptions match the API.
madeonsol_token_riskandmadeonsol_tokens_batch_riskdescribe risk evidence for your own policy, not a verdict.madeonsol_deployer_profilenames the real response:is_deployer, the nesteddeployerobject (total_tokens_deployed,total_bonded, ...),pump_stats,pump_tokens,launchpad_tokens; an untracked wallet returnsis_deployer: falseanddeployer: null. No tool added or removed.
New in 3.1.0 — copy-trade and Wallet Tracker tools match the API.
madeonsol_copytrade_create/_updateaccept up to 250source_wallets(the BUSINESS per-rule limit; before, the tool refused anything over 50 before the server could answer). The server still enforces your own tier's limit (PRO 5, ULTRA 50, BUSINESS 250). Create, update andmadeonsol_copytrade_signalsgain the market-cap bandmin_mc_usd/max_mc_usd. Theonly_actiondescription now states the real default (buy), and the tool descriptions say that signals fire only for tracked KOL wallets.madeonsol_wallet_tracker_tradesgainsorder(slot|block_time) and thebefore_slotcursor, and itsactionfilter isbuy|sellonly:transfer_in/transfer_outwere always rejected by the API with 400. Useevent_type: "transfer"for transfers.madeonsol_copytrade_updatedocuments that a PATCH which sets awebhook_urlon a rule without a signing secret returnswebhook_secretonce, and the copy-trade tools describe thesource_wallets_untracked/warnings[]fields newer servers return.madeonsol_test_webhookgains an optionalevent(which subscribed event to sample).
New in 3.0.0 — BREAKING for x402 (keyless) mode only: five env vars are now required and startup FAILS instead of silently degrading (security fix, SDK-01). Set
X402_PAY_TO,X402_FEE_PAYER,X402_MAX_AMOUNT_ATOMIC,X402_MAX_TOTAL_AMOUNT_ATOMICandSVM_RPC_URLalongsideSVM_PRIVATE_KEY. Before, keyless mode signed whatever Solana USDC amount, recipient and fee payer a 402 challenge asked for. Now every challenge is checked BEFORE signing against a trusted merchantpayTo, a trusted facilitatorfeePayer(which must differ from your wallet), the USDC mint,solana:5eykt…mainnet, theexactscheme, a per-call cap and a lifetime cap. Use the canonical values in the keyless section below; caps must be at least20000(0.02 USDC) per call to reach every endpoint. The budget is per client instance / process: not wallet-wide, not shared between processes, reset on a new instance or restart. Keyless requires the base URL exactlyhttps://madeonsol.com. API-key (msk_) users: no change, no new config. HTTP mode still refuses wallet signers (SEC-02, unchanged).
New in 2.0.0 — BREAKING: HTTP mode now requires a separate token (security fix, SEC-02). If you run this server with
MCP_TRANSPORT=http, you must now also setMCP_HTTP_TOKEN(a random secret you generate) and send it asAuthorization: Bearer <token>on every request, includingGET /healthand the server-card endpoint — previously, anything that could reach the bound port could call every tool using the operator's own API key with no authentication at all. HTTP mode is now hard-restricted to literal loopback (127.0.0.1/::1), rejectsOrigin/X-Forwarded-*headers and duplicateAuthorization/Hostheaders outright, exposes onlyPOST /mcpplus the two GET routes, and refuses to start if a wallet/payment signer is configured — HTTP mode can never carry a payer key. If you use the defaultstdiotransport (Claude Desktop, Cursor, most MCP clients), nothing changes — no action needed. This is a single shared-operator-token fix, not a new multi-user or OAuth system; each HTTP caller still shares the operator's own MadeOnSol API key. Full writeup:docs/audit/SEC02_PRIVATE_HTTP_MCP.md.New in 1.27.1 — the server now reports MCP
instructions. Theinitializeresponse'sinstructionsfield (operational guidance for the calling agent — distinct from this README/package description) was never set; directories that introspect the live server (Glama) reported "no recorded MCP instructions." No new tools; still 104 total.New in 1.27.0 — top traders, sniper watchlist management, and two update tools (104 tools total at the time). Six additions found by an internal agentic-infra coverage audit.
madeonsol_token_top_traders(GET /tokens/{mint}/top-traders, PRO/ULTRA) ranks a token's wallets by realized PnL or ROI, enriched with KOL/alpha-wallet identity — this endpoint already existed on the REST API and x402 rail but had no MCP tool.madeonsol_sniper_watchlist_list/_add/_remove(PRO+/ULTRA) manage your custom sniper-deploy watchlist (madeonsol_sniper_recent(watchlist: true)narrows to it) — previously only reachable via raw HTTP.madeonsol_update_webhook(PATCH) changes a webhook's URL, events, or active state without deleting and recreating it.madeonsol_wallet_tracker_relabel(PATCH) renames or clears a tracked wallet's label.New in 1.26.0 — deployer reputation as-of a date, and creator-fee rewards. Two new tools (PRO+, keyed
msk_API only — no x402 route).madeonsol_deployer_as_ofbindsGET /deployer-hunter/{wallet}/as-of: the deployer's reputation exactly as it stood ondate(default today, UTC) — the latest write-on-change snapshot at or before it, so an agent backtests without look-ahead bias.snapshot.snapshot_datecan predatedate(write-on-change);snapshot.carried: truemarks that. No snapshot at or beforedate→as_of: false, snapshot: null— nothing is ever synthesized.datemust be ≥ 2026-04-07 and not in the future.madeonsol_deployer_rewardsbindsGET /deployer-hunter/{wallet}/rewards: pump.fun creator-fee rewards, answered two ways that are never merged —collected(what actually reached the wallet: direct vault claims kept 90 days, social-handle claims, shareholder payouts on any token) andattributed(every payout on the tokens it deployed, splitto_self/to_others+redirected_pct). Every money field is{sol, usdc, usd};usdisnull(never a silent 0) when a SOL amount exists and no SOL price was available.top_tokens/top_recipients(≤10, USD-sorted) show where attributed fees went. Works for non-deployers too (is_deployer: false,attributedempty).
New in 1.25.0 — token surges & revivals: momentum fires with the honest half attached. The new
madeonsol_tokens_surgestool bindsGET /tokens/surges(PRO+, keyedmsk_API only — no x402 route): every token momentum fire, newest first. Two kinds, one row shape.surge— a token < 30 min old whose market cap runs hard against its launch MC, in three tiers that each fire at most once per mint:early(≤10 min, ≥$12k, ≥3× launch),strong(≤30 min, ≥$30k, ≥6× launch and ≥2× the lowest sample of the last 3 min — it is climbing now),breakout(≤2 min, ≥$45k, ≥8×). A tier must be sustained (current tick and a sample ≥10 s older; nothing fires before 20 s of age) — a same-slot bundle marked to $475k at age 1 s is a spike, not a surge.revival— a token with no 1-minute trade candle for ≥24 h that starts trading again, confirmed only by the tape (≥5 buys, ≥$500 buy volume, MC ≥1.5× the pre-dormancy close), never by the price mark;tierisnull. Hard gates on both: liquidity ≥$1.5k and ≥2 % of MC, and the MC gained must be paid for by buy volume (a price mark in a spoof pool moves MC on ~$0). Every row carries the bursttape(sourcecandles / wallet_trades;unique_buyersonly where the mint is in trade coverage —wallet_data_available:falseotherwise, never an inferred zero),kolbuyers, the first-20early_buyerscohort (bundled / sold / sniper wallets),deployerreputation andrisk_flags[](bundled_launch,few_buyers,wash_pattern,thin_liquidity,cold_deployer,sniper_heavy,early_buyers_exiting,sell_pressure,no_tape_trades,no_prior_price,mint_authority_active,transfer_fee— empty means no flag raised, not verified clean). Rows ≥65 min old carry the +1 houtcome;stats=1prints per-(kind, tier) hit-rates (up_1h_pct,median_peak_multiple,doubled_1h_pct) — out-of-sample by construction. Filterskind,tier,mint,launchpad,deployer_tier,min_mc_usd/max_mc_usd,min_buys,exclude_flags,only_clean; cursorssince/before. Pushed live on the newtoken:surgesWS channel (eventstoken:surge/token:revival; subscribe filterskinds[],tiers[],launchpads[],exclude_flags[],min_mc_usd/max_mc_usd,deployer_tier[]) and accepted bymadeonsol_create_webhookas eventstoken:surge/token:revivalwith the same filters. The response echoes the live thresholds indefinitions.
New in 1.24.1 — stream tokens never expire.
madeonsol_stream_token(POST /stream/token) now returns the same token on every call, forever. It stops working only if your subscription lapses or you call the tool withrotate: trueto replace it (the previous value keeps working for 60 s).expires_atand the newnext_refresh_atare alwaysnull(kept for wire compatibility — do not schedule refreshes on them); the response gainsrotated(boolean) andlifetime(string). The server never rotates on its own and never sendstoken_refreshunless you rotated; a4001close means "mint again" (lapsed or rotated), never a timer. PreferAuthorization: Bearer <token>on the WebSocket handshake —?token=still works and is masked in access logs.
New in 1.24.0 — token locks & vesting, upcoming unlocks, and pump.fun creator-fee sharing / claims. Five new tools (all PRO+, keyed
msk_API only — no x402 route).madeonsol_token_locksbindsGET /tokens/{mint}/locks: every on-chain lock / vesting contract on a mint (Streamflow, Jupiter Lock, Bonfida vesting) with the schedule, the terms (cancelable_by_sender= the locker can pull it — funds are locked against the recipient, not the locker) and a live-derived view (locked_*,claimable_*,next_unlock) plus asummarywith 7d / 30d forward unlock totals.madeonsol_token_locks_feed(GET /tokens/locks) is the cross-token feed of NEW contracts (cursorpagination.next_since, or push on WS channeltoken:locks),madeonsol_token_unlocks(GET /tokens/unlocks) lists upcoming unlock EVENTS (cliff / period / final / tranche) inside a 1h–90d window sorted by soonest / largest_usd / largest_pct. LP locks are not included — token/vesting locks only.madeonsol_token_fee_shares(GET /tokens/{mint}/fee-shares) decodes a pump.fun coin's on-chainSharingConfig— shareholders withshare_bps,is_admin,is_social_pda(fees earmarked for an X identity:social.platform2 = X,user_id= the numeric platform id, not the handle),redirected_bps,is_default: true= 100% to the creator — plus a distributions rollup and config history;madeonsol_token_fee_claims(GET /tokens/fee-claims) is the fee-event feed (distributionwith per-addresspayouts[],social_claim,shares_created/updated/reset,creator_transferred,creator_claimonly when asked viatype=), pushed on WS channeltoken:fee_claims. Fee-event history starts 2026-08-17. All base-unit amounts are digit strings; ui / usd / pct arenullwhen decimals or price are unknown.
New in 1.23.0 — live holder census: exact holder count, labelled holders, and pools that are named, not just excluded. The new
madeonsol_token_holderstool bindsGET /tokens/{mint}/holders(PRO+): every token account of the mint read from the ledger atconfirmedand merged per owner, soconcentration.holder_countis EXACT (distinct non-zero owners minus pools / bonding curves / burns) — never a trade-derived estimate; it isnullonly when the provider refuses the census for a mega-cap, in which case you get the top-20 view andsource.census_fallback_reasonsays so. Each disclosed owner carries our labels (deployer/kol/early_buyer/bundle/bot/dump_cluster— empty means unknown to us, not clean), andexcluded[]NAMES what was taken out of the circulating denominator:reason=pool(withdex+pool_address),bonding_curve(pump.fun / LaunchLab),burn, orprogram_accountonly when we genuinely cannot attribute the PDA;pool_pct/burned_pct/program_pctsplit the exclusion. Amounts are raw u64 strings. Disclosure: PRO ranks 1–10, ULTRA 1–50, BUSINESS 1–100 — the maths is tier-independent. Big tokens take 5–30 s upstream: you get503 holder_scan_in_progresswithretry_after_seconds: 20while the scan finishes into the cache, and the retry is instant.
New in 1.22.0 — two prices on the trade tape, and the right one is now the default. The trade tape now tells you what a trade actually cost.
price_sol/price_usdon each trade are THIS trade's executed price —sol_amount / token_amount, reconciling exactly with the amounts on the same row and with the PnL endpoints. Becausesol_amountis the wallet's net SOL movement, that is the trader's all-in effective rate: swap fee and any account rent included, not the pool mid. The market-cap tracker's canonical pool price moved to the newmarket_price_sol/market_price_usdfields — it is sampled once per token per pool update, so every trade in the same slot shares it. Until nowprice_solcarried that canonical value and disagreed with the row's own amounts by a 7.9% median (p90 ~74%): a stale market price reads low in a pump and high in a dump, so anything you averaged out of the tape inherited the bias instead of cancelling it. Useprice_solfor cost basis, fills and PnL;market_price_solfor a per-token series independent of trade size and direction. Bothmadeonsol_token_tradesandmadeonsol_wallet_tradescarry all four fields, and both tool descriptions spell out which price to use so an agent does not average the wrong one.
New in 1.21.0 — the Deployer Hunter surface completed. Seven new operations that existed on the API but had no SDK binding:
madeonsol_deployer_leaderboard,madeonsol_deployer_stats,madeonsol_deployer_profile,madeonsol_deployer_tokens,madeonsol_deployer_alert_stats,madeonsol_deployer_best_tokensandmadeonsol_deployer_recent_bonds. Readbonding_rate(lifetime) againstrecent_bond_rate(rolling) — the gap between them is the signal, not either number alone.runner_rateonly means something oncelabeled_tokens >= 3, and an untracked wallet returns a profile with zeroed counters, not a 404, so checktotal_deployedbefore reading a 0% bond rate as a track record. Dependency ranges are now bounded to the versions actually tested (@x402/*^2.x,@solana/kit^5.5.1) instead of open-ended>=0.0.1, and the lazily-imported x402 peers are marked optional — a keyed install no longer pulls the whole Solana stack.
New in 1.20.0 — Token depth / price impact + deployer self-activity on risk. New tool
madeonsol_token_depth(GET /tokens/{mint}/depth) — per-pool price-impact / slippage: "how much SOL moves this token's price N%", per pool (NOT router-optimal). Pass up to 8 SOL buysizes(each >0 and ≤10000; default[0.5, 1, 5, 10]); every computable pool returnsspot_price_sol,fee_pct, aquotes[]entry per size (size_sol,tokens_out,avg_price_sol,price_impact_pct), andto_move_price— the SOL required to move price 1% / 5% / 10%. Constant-product AMMs are served from stream reserves (source: "stream"withreserves_age_ms); pump.fun/bonk bonding curves from a live read of the curve's virtual reserves (source: "live_rpc"). Pools that can't be priced honestly — concentrated CLMM/Orca/DLMM, Meteora-DBC curves, unclassified models — come back inunsupported_pools[]with areason(e.g.concentrated_liquidity_depth_not_supported,curve_graduated_use_amm_pool) instead of a wrong number;primary_poolnames the deepest computable pool,found: falsemeans no pool with sufficient authoritative data for depth (seeunsupported_pools[].reason; tracked pools may still be listed there). 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.
New in 4.0.0 (breaking): the sniper tool requires an ULTRA, BUSINESS or ENTERPRISE API key; in keyless (x402) mode it is refused before any payment because the server retired the keyless sniper endpoint on 2026-10-06 (HTTP 410, nothing charged).
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. Configure a funded Solana wallet and an explicit payment budget. Paid tool calls authorize micropayments within that budget 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>",
"X402_PAY_TO": "GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR",
"X402_FEE_PAYER": "2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4",
"X402_MAX_AMOUNT_ATOMIC": "20000",
"X402_MAX_TOTAL_AMOUNT_ATOMIC": "1000000",
"SVM_RPC_URL": "https://<your-trusted-solana-rpc>"
}
}
}
}
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; the configured authorization budget bounds spending. -
Read
/api/x402for the current keyless catalog and prices. Sniper is API-key only. -
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.
Required payment policy (breaking keyless upgrade)
Keyless Solana payments require an explicit trusted merchant, facilitator and authorization budget. API-key mode is unchanged and takes precedence over a configured wallet.
Only exact payments in mainnet USDC are permitted. Set the two addresses from your trusted operator configuration, independently of a server challenge. SVM_RPC_URL must be your trusted HTTPS RPC; there is no public RPC fallback. The agent wallet cannot also be the facilitator fee payer.
| Setting | Meaning |
|---|---|
X402_PAY_TO | Trusted merchant wallet receiving USDC |
X402_FEE_PAYER | Trusted facilitator wallet paying transaction fees |
X402_MAX_AMOUNT_ATOMIC | Maximum per payment, as a positive integer string |
X402_MAX_TOTAL_AMOUNT_ATOMIC | Lifetime authorization allowance, as a positive integer string |
SVM_RPC_URL | Explicit trusted HTTPS Solana RPC URL |
USDC uses 6 decimals: 20000 = 0.02 USDC and 1000000 = 1 USDC. Choose limits that cover the endpoints you intend to use; these examples are not a price guarantee.
Documentation truncated — see the full README on GitHub.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
