mcp-server-madeonsol

MCP serverDatabases & data

madeonsol adds Solana trading intelligence to your AI, covering what influencers are trading and analytics on who deployed each token. Once added, your AI can pull this data when you ask about a token, a trader, or who is behind a launch. You can connect with an API key or pay per use.

Unavailable. This server has no hosted endpoint yet, so Ahel can't serve it.

Add to setup to save this item as a reference. Ahel cannot run it, and signing in will not install it.

What your AI can do with it

  • See what Solana influencers are trading
  • Research the deployer behind a Solana token
  • Get trading intelligence on tokens before you trade
  • Connect with an API key or pay per use

Getting started

  1. Save this item in Your setup as a reference.
  2. Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
  3. Check this page for availability before trying to install it through Ahel.

From the project's README

As published by madeonsol/mcp-server-madeonsol in README.md.

⚑ Install via Smithery Β· πŸ€– Use in Claude Desktop Β· πŸ–±οΈ Use in Cursor Β· πŸ“š API docs Β· πŸ’° Free API key Β· πŸ”Ž On Glama

MCP server for MadeOnSol Solana KOL intelligence API. Use from Claude Desktop, Cursor, or any MCP-compatible client.

Real-time Solana trading intelligence: track 1,069 KOL wallets with <3s latency on paid keys and x402 pay-per-call (free-tier live feeds are 5-min delayed), score 23,000+ Pump.fun deployers, surface deshred deploy signals ~500ms before on-chain confirmation, detect multi-KOL coordination, surface bundle-cohort holdings (which same-slot wallets still hold a token's supply), verify any wallet's CURRENT on-chain holdings straight from its token accounts, and stream every DEX trade across 9+ programs. Free tier: 200 requests/day across 40+ endpoints (live feeds 5-min delayed) β€” no signup payment. Get a key at madeonsol.com/pricing.

New in 1.27.0 β€” top traders, sniper watchlist management, and two update tools (104 tools total). Six additions found by an internal agentic-infra coverage audit. madeonsol_token_top_traders (GET /tokens/{mint}/top-traders, PRO/ULTRA) ranks a token's wallets by realized PnL or ROI, enriched with KOL/alpha-wallet identity β€” this endpoint already existed on the REST API and x402 rail but had no MCP tool. madeonsol_sniper_watchlist_list / _add / _remove (PRO+/ULTRA) manage your custom sniper-deploy watchlist (madeonsol_sniper_recent(watchlist: true) narrows to it) β€” previously only reachable via raw HTTP. madeonsol_update_webhook (PATCH) changes a webhook's URL, events, or active state without deleting and recreating it. madeonsol_wallet_tracker_relabel (PATCH) renames or clears a tracked wallet's label.

New in 1.26.0 β€” deployer reputation as-of a date, and creator-fee rewards. Two new tools (PRO+, keyed msk_ API only β€” no x402 route). madeonsol_deployer_as_of binds GET /deployer-hunter/{wallet}/as-of: the deployer's reputation exactly as it stood on date (default today, UTC) β€” the latest write-on-change snapshot at or before it, so an agent backtests without look-ahead bias. snapshot.snapshot_date can predate date (write-on-change); snapshot.carried: true marks that. No snapshot at or before date β†’ as_of: false, snapshot: null β€” nothing is ever synthesized. date must be β‰₯ 2026-04-07 and not in the future. madeonsol_deployer_rewards binds GET /deployer-hunter/{wallet}/rewards: pump.fun creator-fee rewards, answered two ways that are never merged β€” collected (what actually reached the wallet: direct vault claims kept 90 days, social-handle claims, shareholder payouts on any token) and attributed (every payout on the tokens it deployed, split to_self/to_others + redirected_pct). Every money field is {sol, usdc, usd}; usd is null (never a silent 0) when a SOL amount exists and no SOL price was available. top_tokens/top_recipients (≀10, USD-sorted) show where attributed fees went. Works for non-deployers too (is_deployer: false, attributed empty).

New in 1.25.0 β€” token surges & revivals: momentum fires with the honest half attached. The new madeonsol_tokens_surges tool binds GET /tokens/surges (PRO+, keyed msk_ API only β€” no x402 route): every token momentum fire, newest first. Two kinds, one row shape. surge β€” a token < 30 min old whose market cap runs hard against its launch MC, in three tiers that each fire at most once per mint: early (≀10 min, β‰₯$12k, β‰₯3Γ— launch), strong (≀30 min, β‰₯$30k, β‰₯6Γ— launch and β‰₯2Γ— the lowest sample of the last 3 min β€” it is climbing now), breakout (≀2 min, β‰₯$45k, β‰₯8Γ—). A tier must be sustained (current tick and a sample β‰₯10 s older; nothing fires before 20 s of age) β€” a same-slot bundle marked to $475k at age 1 s is a spike, not a surge. revival β€” a token with no 1-minute trade candle for β‰₯24 h that starts trading again, confirmed only by the tape (β‰₯5 buys, β‰₯$500 buy volume, MC β‰₯1.5Γ— the pre-dormancy close), never by the price mark; tier is null. Hard gates on both: liquidity β‰₯$1.5k and β‰₯2 % of MC, and the MC gained must be paid for by buy volume (a price mark in a spoof pool moves MC on ~$0). Every row carries the burst tape (source candles / wallet_trades; unique_buyers only where the mint is in trade coverage β€” wallet_data_available:false otherwise, never an inferred zero), kol buyers, the first-20 early_buyers cohort (bundled / sold / sniper wallets), deployer reputation and risk_flags[] (bundled_launch, few_buyers, wash_pattern, thin_liquidity, cold_deployer, sniper_heavy, early_buyers_exiting, sell_pressure, no_tape_trades, no_prior_price, mint_authority_active, transfer_fee β€” empty means no flag raised, not verified clean). Rows β‰₯65 min old carry the +1 h outcome; stats=1 prints per-(kind, tier) hit-rates (up_1h_pct, median_peak_multiple, doubled_1h_pct) β€” out-of-sample by construction. Filters kind, tier, mint, launchpad, deployer_tier, min_mc_usd / max_mc_usd, min_buys, exclude_flags, only_clean; cursors since / before. Pushed live on the new token:surges WS channel (events token:surge / token:revival; subscribe filters kinds[], tiers[], launchpads[], exclude_flags[], min_mc_usd / max_mc_usd, deployer_tier[]) and accepted by madeonsol_create_webhook as events token:surge / token:revival with the same filters. The response echoes the live thresholds in definitions.

New in 1.24.1 β€” stream tokens never expire. madeonsol_stream_token (POST /stream/token) now returns the same token on every call, forever. It stops working only if your subscription lapses or you call the tool with rotate: true to replace it (the previous value keeps working for 60 s). expires_at and the new next_refresh_at are always null (kept for wire compatibility β€” do not schedule refreshes on them); the response gains rotated (boolean) and lifetime (string). The server never rotates on its own and never sends token_refresh unless you rotated; a 4001 close means "mint again" (lapsed or rotated), never a timer. Prefer Authorization: Bearer <token> on the WebSocket handshake β€” ?token= still works and is masked in access logs.

New in 1.24.0 β€” token locks & vesting, upcoming unlocks, and pump.fun creator-fee sharing / claims. Five new tools (all PRO+, keyed msk_ API only β€” no x402 route). madeonsol_token_locks binds GET /tokens/{mint}/locks: every on-chain lock / vesting contract on a mint (Streamflow, Jupiter Lock, Bonfida vesting) with the schedule, the terms (cancelable_by_sender = the locker can pull it β€” funds are locked against the recipient, not the locker) and a live-derived view (locked_*, claimable_*, next_unlock) plus a summary with 7d / 30d forward unlock totals. madeonsol_token_locks_feed (GET /tokens/locks) is the cross-token feed of NEW contracts (cursor pagination.next_since, or push on WS channel token:locks), madeonsol_token_unlocks (GET /tokens/unlocks) lists upcoming unlock EVENTS (cliff / period / final / tranche) inside a 1h–90d window sorted by soonest / largest_usd / largest_pct. LP locks are not included β€” token/vesting locks only. madeonsol_token_fee_shares (GET /tokens/{mint}/fee-shares) decodes a pump.fun coin's on-chain SharingConfig β€” shareholders with share_bps, is_admin, is_social_pda (fees earmarked for an X identity: social.platform 2 = X, user_id = the numeric platform id, not the handle), redirected_bps, is_default: true = 100% to the creator β€” plus a distributions rollup and config history; madeonsol_token_fee_claims (GET /tokens/fee-claims) is the fee-event feed (distribution with per-address payouts[], social_claim, shares_created/updated/reset, creator_transferred, creator_claim only when asked via type=), pushed on WS channel token:fee_claims. Fee-event history starts 2026-08-17. All base-unit amounts are digit strings; ui / usd / pct are null when decimals or price are unknown.

New in 1.23.0 β€” live holder census: exact holder count, labelled holders, and pools that are named, not just excluded. The new madeonsol_token_holders tool binds GET /tokens/{mint}/holders (PRO+): every token account of the mint read from the ledger at confirmed and merged per owner, so concentration.holder_count is EXACT (distinct non-zero owners minus pools / bonding curves / burns) β€” never a trade-derived estimate; it is null only when the provider refuses the census for a mega-cap, in which case you get the top-20 view and source.census_fallback_reason says so. Each disclosed owner carries our labels (deployer / kol / early_buyer / bundle / bot / dump_cluster β€” empty means unknown to us, not clean), and excluded[] NAMES what was taken out of the circulating denominator: reason = pool (with dex + pool_address), bonding_curve (pump.fun / LaunchLab), burn, or program_account only when we genuinely cannot attribute the PDA; pool_pct / burned_pct / program_pct split the exclusion. Amounts are raw u64 strings. Disclosure: PRO ranks 1–10, ULTRA 1–50, BUSINESS 1–100 β€” the maths is tier-independent. Big tokens take 5–30 s upstream: you get 503 holder_scan_in_progress with retry_after_seconds: 20 while the scan finishes into the cache, and the retry is instant.

New in 1.22.0 β€” two prices on the trade tape, and the right one is now the default. The trade tape now tells you what a trade actually cost. price_sol/price_usd on each trade are THIS trade's executed price β€” sol_amount / token_amount, reconciling exactly with the amounts on the same row and with the PnL endpoints. Because sol_amount is the wallet's net SOL movement, that is the trader's all-in effective rate: swap fee and any account rent included, not the pool mid. The market-cap tracker's canonical pool price moved to the new market_price_sol/market_price_usd fields β€” it is sampled once per token per pool update, so every trade in the same slot shares it. Until now price_sol carried that canonical value and disagreed with the row's own amounts by a 7.9% median (p90 ~74%): a stale market price reads low in a pump and high in a dump, so anything you averaged out of the tape inherited the bias instead of cancelling it. Use price_sol for cost basis, fills and PnL; market_price_sol for a per-token series independent of trade size and direction. Both madeonsol_token_trades and madeonsol_wallet_trades carry all four fields, and both tool descriptions spell out which price to use so an agent does not average the wrong one.

New in 1.21.0 β€” the Deployer Hunter surface completed. Seven new operations that existed on the API but had no SDK binding: madeonsol_deployer_leaderboard, madeonsol_deployer_stats, madeonsol_deployer_profile, madeonsol_deployer_tokens, madeonsol_deployer_alert_stats, madeonsol_deployer_best_tokens and madeonsol_deployer_recent_bonds. Read bonding_rate (lifetime) against recent_bond_rate (rolling) β€” the gap between them is the signal, not either number alone. runner_rate only means something once labeled_tokens >= 3, and an untracked wallet returns a profile with zeroed counters, not a 404, so check total_deployed before reading a 0% bond rate as a track record. Dependency ranges are now bounded to the versions actually tested (@x402/* ^2.x, @solana/kit ^5.5.1) instead of open-ended >=0.0.1, and the lazily-imported x402 peers are marked optional β€” a keyed install no longer pulls the whole Solana stack.

New in 1.20.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 buy sizes (each >0 and ≀10000; default [0.5, 1, 5, 10]); every computable pool returns spot_price_sol, fee_pct, a quotes[] entry per size (size_sol, tokens_out, avg_price_sol, price_impact_pct), and to_move_price β€” the SOL required to move price 1% / 5% / 10%. Constant-product AMMs are served from stream reserves (source: "stream" with reserves_age_ms); pump.fun/bonk bonding curves from a live read of the curve's virtual reserves (source: "live_rpc"). Pools that can't be priced honestly β€” concentrated CLMM/Orca/DLMM, Meteora-DBC curves, unclassified models β€” come back in unsupported_pools[] with a reason (e.g. concentrated_liquidity_depth_not_supported, curve_graduated_use_amm_pool) instead of a wrong number; primary_pool names the deepest computable pool, found: false means no pools tracked. PRO/ULTRA only. And madeonsol_token_risk now returns a top-level dev block (deployer self-activity; null when the mint has no deployer-pipeline row): the create-tx self-buy snapshot (buy_sol, buy_tokens, buy_supply_pct), the post-create rollup (bought_tokens_after β€” catches the same-second-separate-tx dev buy the create snapshot reads as 0 β€” sold_tokens, sold_sol, first_sell_at/last_sell_at), live on-chain holdings (holdings_tokens, holdings_supply_pct β€” pump.fun 1B denominator, null elsewhere β€” wallet_empty: is the dev wallet empty NOW), and transferred_out (tokens left without a sell; null = unknown, never a guess), plus as_of. deployer:alert webhook/WS payloads gain dev_buy_sol + dev_buy_supply_pct.

New in 1.19.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 wallet is_sniper / is_bundler / is_dumper / is_kol (+ kol_name), bot_confidence (string enum none/low/medium/high, null when not alpha-tracked), and a dump_cluster block (dump_cohorts, runner_cohorts, total_cohorts, as_of). Flags are pump.fun-pipeline scoped β€” false = not observed, NOT verified clean; is_bundler is lifetime, is_dumper is a rolling 42d window. New tool madeonsol_token_trades β€” mint-scoped cursor-paginated trade tape (the backfill complement to the live firehose): tx_signature, wallet_address, action, sol_amount, token_amount, price_sol/price_usd, early_buyer_rank, slot, block_time, traded_at; filters action / wallet / since–until (default FULL history β€” capture starts 2026-04-12), plus a coverage honesty block. Both PRO/ULTRA. madeonsol_wallet_stats flags gain is_sniper/is_bundler/is_dumper + dump_cluster, and bot_confidence is now correctly typed as a string enum (it was documented as a number and always came back null due to a server bug β€” now returns real values). madeonsol_token_risk inputs and madeonsol_sniper_recent deploys gain the slot-window sniper_footprint/footprint rollup (buys, buyers, sol, supply_pct, sniper_wallet_buys, data_available, as_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_recent and madeonsol_deployer_trajectory now 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 our price_usd / value_usd / market_cap_usd / name / symbol / is_bonded, plus transfer_delta (on-chain amount βˆ’ trade-derived net position β€” exposes non-swap flows like airdrops, insider funding, and wallet-hopping). Distinct from madeonsol_wallet_positions (trade-derived FIFO): this is what the wallet actually holds right now. Params: limit (1–500, default 200), min_value_usd (default 0). Returns { address, sol_balance, holdings[], summary, verified_at, trade_window_days, cache_hit, ttl_seconds }. ULTRA only.

New in 1.17.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 a bundle block (wallet_count, bundle_kind atomic_tx/same_slot/none, held_ratio, held_pct_of_supply β€” the headline, net held / circulating supply, null if unknown β€” fully_exited, buy_volume, tokens_held) plus a wallets[] array (rank, wallet, held_ratio, has_sold, atomic, is_kol). BASIC get the bundle block only (empty wallets[]); PRO adds top-10 flags-only wallets; ULTRA returns the full cohort with enriched identities (kol_name, win_rate, bot_confidence, tokens_held).

New in 1.16.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 as madeonsol_token_risk (0–100 score, band, explainable factors[], raw inputs) plus an as_of timestamp; untracked mints come back as { mint, error: "not_tracked" } without failing the batch, and the whole call counts as one request against quota. Plus two WebSocket session tools: madeonsol_stream_sessions_list (list your live sessions β€” id, service, tier, channels, connected_at, remote_ip, messages_sent) and madeonsol_stream_session_kill (force-disconnect a session by id to free its connection slot, e.g. a ghost socket). PRO/ULTRA only.

New in 1.15.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 carries progress_pct, velocity_pct_per_min, eta_minutes, stalled, real_sol_reserves, market_cap_usd, liquidity_usd, authorities_revoked, deployer_tier, and age_minutes. Params: min_progress, max_progress, min_velocity_pct_per_min, max_age_minutes, deployer_tier, authority_revoked, min_liq, sort (velocity_desc / progress_desc / eta_asc), limit. PRO/ULTRA only. Plus madeonsol_tokens_list gains four momentum sorts β€” mc_change_5m_desc, mc_change_1h_desc, volume_1h_desc, and trending (composite recent-volume Γ— positive-momentum rank).

New in 1.14.0 β€” Token trade flow. New tool madeonsol_token_flow β€” a trade-flow aggregate (organic-vs-fake volume) over a 1h/24h window: unique_wallets / unique_buyers / unique_sellers, buy_count / sell_count / total_trades, buy_sol / sell_sol / net_sol (sell βˆ’ buy; positive = net SOL leaving the pool), and trades_per_wallet (wash-trading proxy). PRO/ULTRA only. Deployer alerts (madeonsol_deployer_alerts) now carry deployers.deployer_sol_balance β€” the deployer wallet's SOL balance at alert time (null for historical rows).

New in 1.13.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 has t/open/high/low/close/volume_usd/trades/market_cap_usd. PRO returns OHLCV for the last 30 days; ULTRA adds buy/sell volume + count splits, net flow, MEV volume, open/close liquidity, high/low MC, and full history. PRO/ULTRA only.

New in 1.12.0 β€” Token risk score. New tool madeonsol_token_risk β€” a transparent 0–100 rug-risk/safety score (higher = riskier) with a band (safe/caution/danger), an explainable factors[] array, and the raw inputs (mint/freeze authority, liquidity, liq-to-MC ratio, transfer fee, launch cohort, deployer bond rate, KOL signal, blacklist). PRO/ULTRA only.

New in 1.11.0 β€” madeonsol_tokens_list gains three new filter params: min_liq_mc_ratio, max_liq_mc_ratio, and deployer_tier. Response items now include liquidity_to_mc_ratio and deployer_tier. New tool: madeonsol_signal_performance β€” evaluate signal efficacy (hit rate, sample size, median outcome) before acting on any signal. KOL leaderboard entries now include median_hold_minutes_30d and percentile_early_entry_30d.

New in 1.10.4 β€” Deployer alerts/profiles now expose runner_rate + labeled_tokens (fraction of a deployer's labeled tokens that ran vs dumped, gate on labeled_tokens β‰₯3) plus avg_time_to_bond_minutes.

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

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

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

New in 1.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) and madeonsol_tokens_list (PRO+ filtered, sortable token directory β€” MC band, liquidity floor, primary DEX, authority/safety flags, plus computed 1h volume / MEV-share / MC-change deltas). Token responses now expose velocity / MEV-share fields. Token directory defaults to min_liq=2000 to skip phantom-MC dust β€” pass min_liq=0 to opt out. /token/{mint} now returns structured 400 errors (code / reason / example / docs) instead of plain strings. Deprecated avg_entry_mc_usd field fully removed from KOL/alpha leaderboards.

Install via Smithery (one line)

Smithery is the easiest path β€” it writes the config for you and handles the install:

Shortened here. Read the whole README on GitHub.

Signals

GitHub stars
2
Last commit
Oct 2026
Weekly downloads
964
Weekly_downloads
964 weekly_downloads
Advanced
Delivery
madeonsol MCP server β†’ your Ahel connector (mcp.ahel.ai) β†’ your AI.
Item type
mcp-server
Key
io-github-madeonsol-madeonsol
Source
github.com/madeonsol/mcp-server-madeonsol