three.ws pump.fun MCP
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Free pump.fun and Solana token discovery and on-chain analysis tools, by three.ws.
| Author | io.github.nirholas |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 83 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"three.ws pump.fun MCP": {
"url": "https://three.ws/api/pump-fun-mcp",
"transport": "streamable-http"
}
}
}
Measured tools (21)
get_token_detailsread-onlyFull details for a specific pump.fun token by mint address. Use this when you already have a mint and need its metadata, market cap, and curve status; for holder concentration call get_token_holders, for recent fills call get_token_trades.
Parameters:
mint(required) — string
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_bonding_curveread-onlyBonding curve analysis: real reserves, virtual reserves, and graduation progress (on-chain). Pre-graduation only: these reserves come from the pump program bonding-curve account, not from a PumpSwap pool. Pump renamed the quote-side fields on-chain (real_sol_reserves -> real_quote_reserves, virtual_sol_reserves -> virtual_quote_reserves) once a non-SOL quote asset became possible; the response keys below keep their original names and are still denominated in SOL, because the curve quote_mint is the SOL default on every coin created to date. A v3 buy that empties the curve completes it and buys the rest through a synthetic migration, priced on the reserves the PumpSwap pool will open with, so a large final buy is not capped at realTokenReserves. Once complete=true the curve is retired and pricing moves to the PumpSwap pool, so use pumpfun_quote_swap from that point on. Use this to read graduation progress or the curve spot price of a coin that has not graduated yet.
Parameters:
mint(required) — stringnetwork— string
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_token_tradesread-onlyRecent buy/sell history for a token. Use this to read recent buy and sell flow on one coin; to see only large trades as they land, call pumpfun_watch_whales instead.
Parameters:
mint(required) — stringlimit— integer
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_trending_tokensread-onlyTop pump.fun tokens by market cap. Use this to scan the largest coins on pump.fun right now; for fresh launches call get_new_tokens, for coins that left the curve call get_graduated_tokens.
Parameters:
limit— integer
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_new_tokensread-onlyMost recently launched pump.fun tokens. Use this to catch launches in their first minutes; for the largest coins by market cap call get_trending_tokens instead.
Parameters:
limit— integer
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_token_holdersread-onlyTop holders of a token with concentration analysis (on-chain). Use this to check whether a few wallets control the supply before buying; for price and volume call get_token_details instead.
Parameters:
mint(required) — stringlimit— integernetwork— string
Hints: read-only yes · destructive no · idempotent no · open-world yes
pumpfun_vanity_mintread-onlyGenerate a Solana keypair whose address ends/starts with a vanity pattern. Returns publicKey + secretKey (base58). Caller must save the secret key immediately; it is never stored. Hard timeout: 60 s. Use this before launching a coin when its mint address should carry a recognizable prefix or suffix.
Parameters:
prefix— string — Desired address prefix (case-insensitive by default)suffix— string — Desired address suffix (case-insensitive by default)maxAttempts— integercaseSensitive— boolean
Hints: read-only yes · destructive no · idempotent no · open-world no
pumpfun_watch_whalesread-onlyCollect whale trades on a pump.fun token for a short window (max 10 s). Returns all trades whose USD value meets minUsd. Use this to see who is moving size on a coin right now; for the full recent tape call get_token_trades.
Parameters:
mint(required) — string — SPL mint pubkey (base58)minUsd— number — Minimum trade value in USD (default 5000)durationMs— number — Collection window in ms (default 5000, max 10000)
Hints: read-only yes · destructive no · idempotent no · open-world yes
pumpfun_list_claimsread-onlyList recent pump.fun fee-claim events for a creator wallet (on-chain, no indexer needed). Returns signature, mint, lamports, and Unix timestamp for each claim. Creator fees from the v3 curve and v2 pool trades wait on the curve and pool until a sweep_creator_fee moves them to the creator vault, so a claim covers only what was swept (usually in the same transaction) and fees still waiting appear in no claim yet. Use this to audit how much a creator has already cashed out; for only the claims inside a recent window call pumpfun_watch_claims.
Parameters:
creator(required) — string — Creator wallet address (base58)limit— integernetwork— string
Hints: read-only yes · destructive no · idempotent no · open-world yes
pumpfun_watch_claimsread-onlyReturn all pump.fun fee-claim events for a creator wallet within a look-back window (durationMs). Use this for batch collection after a delay; for a creator's full recent claim history call pumpfun_list_claims.
Parameters:
creator(required) — string — Creator wallet address (base58)network— stringdurationMs— number — Look-back window in ms (default 300000 = 5 min, max 1800000)
Hints: read-only yes · destructive no · idempotent no · open-world yes
pumpfun_first_claimsread-onlyFirst-ever pump.fun creator fee claims in a time window: a cash-out signal. Returns creators who have never claimed before, with creator wallet, mint, lamports, and timestamp. Use this to spot creators cashing out for the first time across all coins; for one creator's history call pumpfun_list_claims.
Parameters:
limit— integersinceMinutes— integer — How far back to look for new claimers (minutes)
Hints: read-only yes · destructive no · idempotent no · open-world yes
sns_resolveread-onlyResolve a .sol Solana Name Service domain to its owner wallet address. Use this when a wallet is named by its .sol domain and you need the address; for the reverse direction call sns_reverseLookup.
Parameters:
name(required) — string — .sol domain name, e.g. "bonfida.sol"
Hints: read-only yes · destructive no · idempotent yes · open-world yes
sns_reverseLookupread-onlyReverse-lookup a Solana wallet address to its primary .sol domain name. Use this to label a raw wallet address with its human-readable .sol name; to go from name to address call sns_resolve.
Parameters:
address(required) — string — Base58 Solana wallet address
Hints: read-only yes · destructive no · idempotent yes · open-world yes
social_cashtag_sentimentread-onlyScore social-post sentiment for a cashtag using a deterministic lexicon. Returns score (-1..1), positive/negative/neutral percentages, and example posts. Use this to score posts you have already collected; it fetches nothing itself, so pass the posts in.
Parameters:
posts(required) — array — Array of post objects. Each must have a text field; id, ts, and author are optional.
Hints: read-only yes · destructive no · idempotent yes · open-world no
kol_leaderboardread-onlyTop KOL traders ranked by P&L for a given time window. Returns wallet, pnlUsd, winRate, trades, rank. Use this to find which trader wallets are worth following; to see whether they hold a given coin, call get_coin_intel or get_token_holders.
Parameters:
limit— integerwindow— string
Hints: read-only yes · destructive no · idempotent no · open-world yes
pumpfun_quote_swapread-onlyRead-only price quote for a pump.fun AMM (PumpSwap) swap. No signing or tx sending. One of inputMint/outputMint must be wSOL (So11111111111111111111111111111111111111112). Only GRADUATED coins have an AMM pool; for a coin still on its bonding curve use get_bonding_curve instead. Pricing runs on the pool effective quote reserves (quote vault balance + pool.virtual_quote_reserves, a SIGNED i128 that is commonly negative because PumpSwap v2 trades keep waiting protocol and creator fees in the vault and subtract them there); the base side is the raw base vault balance. Returns amountOut, priceImpactBps, route, expiresAtMs, plus the reserves the quote was computed from so the number can be reproduced. Use this to size a trade on a graduated coin, or to measure its pool depth, before executing anywhere.
Parameters:
inputMint(required) — string — Input token mint (base58).outputMint(required) — string — Output token mint (base58).amountIn(required) — number — Input amount in raw base units (lamports for SOL).network— stringslippageBps— number — Slippage tolerance in basis points (default 100 = 1%).
Hints: read-only yes · destructive no · idempotent no · open-world yes
social_x_post_impactread-onlyCorrelate an X (Twitter) post to a memecoin price impact. Fetches post metadata via oEmbed (no API key) and computes price delta from the pump.fun bonding curve in a ±windowMin window around the post. Use this to measure how one X post moved a coin that is still on its bonding curve (pricing is virtual_quote_reserves / virtual_token_reserves); a graduated coin has no curve, so the call fails rather than returning a zero price.
Parameters:
postUrl(required) — string — X post URL (e.g. https://x.com/user/status/123)mint(required) — string — Solana token mint address (base58)network— stringwindowMin— integer — ±window in minutes around the post time
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_coin_intelread-onlyFull Coin Intelligence snapshot for a pump.fun mint. Returns every signal the engine recorded during the observation window: bundle vs organic verdict, bubblemaps-style cluster connectivity, smart-money presence (with wallet labels and win-rates), dev behaviour, category/classification, news-meme detection with the matching headline, risk flags, and a 0-100 quality score. Also returns the outcome if the coin is old enough to be labeled (graduated/rugged/ATH multiple). This is the single highest-signal read for a trade decision. Call this before entering any position.
Parameters:
mint(required) — string — Solana mint address (base58).network— string
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_oracle_convictionread-onlyOracle conviction score for a pump.fun mint: the fused 0-100 score the Oracle engine produces by combining four intelligence pillars: pedigree (who bought it), structure (organic vs bundle, holder concentration, bubblemaps connectivity), narrative (category, meme virality, news hook), and momentum (timing, velocity). Returns the tier (prime ≥86 / strong ≥72 / lean ≥54 / watch ≥36 / avoid), the per-pillar breakdown, the natural-language reasons that drove the score, the full "who's in" trader roster with reputation labels and win-rates, and the narrative read (category, virality, tags). Call this when you need the highest-confidence trade signal; it synthesises everything get_coin_intel exposes into one actionable score. Pairs with get_coin_intel for raw signals.
Parameters:
mint(required) — string — Solana mint address (base58).network— string
Hints: read-only yes · destructive no · idempotent no · open-world yes
pumpfun_upload_metadataUpload coin metadata (name, symbol, description, image) to IPFS and get back a pump.fun-ready metadata URI. Call this before launching a coin: pass the returned uri to the launch-agent endpoint or the studio launch flow. Requires a valid bearer token (API key). Image may be a public HTTPS URL or a base64 data URI (max 10 MB). The returned uri is a permanent ipfs:// link; the call is idempotent for the same content.
Parameters:
name(required) — string — Coin name (1–32 chars).symbol(required) — string — Ticker symbol (1–10 chars, no $).description(required) — string — Coin description (max 500 chars).image_url(required) — string — Image for the coin icon. Public HTTPS URL or base64 data URI (data:image/png;base64,…). Square image, at least 400×400 px, under 5 MB.twitter— string — Twitter/X handle or URL (optional).website— string — Website URL (optional).telegram— string — Telegram URL (optional).
Hints: read-only no · destructive no · idempotent yes · open-world yes
pumpfun_bot_statusread-onlyReturns the configuration and health status of the pump.fun indexer backend. Always available; does not require PUMPFUN_BOT_URL. Use this first when search_tokens, get_graduated_tokens, get_king_of_the_hill, or get_creator_profile fail or are missing, to see whether the indexer is configured and healthy.
Hints: read-only yes · destructive no · idempotent no · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.