{"name":"io.github.nirholas/threews-pumpfun","slug":"nirholas-threews-pumpfun","title":"three.ws pump.fun MCP","description":"Free pump.fun and Solana token discovery and on-chain analysis tools, by three.ws.","url":"https://mcp.market/server/nirholas-threews-pumpfun","rating":null,"grade":"B","score":81,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":45,"stars":206,"forks":49,"downloads_week":null,"last_push_at":"2026-09-22T07:42:31.000Z","license":"Apache-2.0"},"uptime":{"percent":100,"checks":14,"ok":14,"last_checked_at":"2026-09-22T21:21:04.582Z","last_ok_at":"2026-09-22T21:21:04.582Z","latency_ms":1592},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/nirholas/three.ws","website":"https://three.ws","version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://three.ws/api/pump-fun-mcp"}],"packages":[],"tools":[{"name":"get_bonding_curve","description":"Bonding 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. Once complete=true the curve is retired and pricing moves to the PumpSwap pool, so use pumpfun_quote_swap from that point on.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string"},"network":{"type":"string","enum":["mainnet","devnet"],"default":"mainnet"}},"required":["mint"]}},{"name":"get_coin_intel","description":"Full 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Solana mint address (base58)."},"network":{"type":"string","enum":["mainnet","devnet"],"default":"mainnet"}},"required":["mint"]}},{"name":"get_new_tokens","description":"Most recently launched pump.fun tokens.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":50,"default":10}}}},{"name":"get_oracle_conviction","description":"Oracle 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Solana mint address (base58)."},"network":{"type":"string","enum":["mainnet","devnet"],"default":"mainnet"}},"required":["mint"]}},{"name":"get_token_details","description":"Full details for a specific pump.fun token by mint address.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string"}},"required":["mint"]}},{"name":"get_token_holders","description":"Top holders of a token with concentration analysis (on-chain).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":20,"default":10},"network":{"type":"string","enum":["mainnet","devnet"],"default":"mainnet"}},"required":["mint"]}},{"name":"get_token_trades","description":"Recent buy/sell history for a token.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":200,"default":50}},"required":["mint"]}},{"name":"get_trending_tokens","description":"Top pump.fun tokens by market cap.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":50,"default":10}}}},{"name":"kol_leaderboard","description":"Top KOL traders ranked by P&L for a given time window. Returns wallet, pnlUsd, winRate, trades, rank.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"window":{"type":"string","enum":["24h","7d","30d"],"default":"7d"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}}}},{"name":"pumpfun_bot_status","description":"Returns the configuration and health status of the pump.fun indexer backend. Always available — does not require PUMPFUN_BOT_URL.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[]}},{"name":"pumpfun_first_claims","description":"First-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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sinceMinutes":{"type":"integer","minimum":1,"maximum":1440,"default":60,"description":"How far back to look for new claimers (minutes)"},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20}}}},{"name":"pumpfun_list_claims","description":"List 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"creator":{"type":"string","description":"Creator wallet address (base58)"},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20},"network":{"type":"string","enum":["mainnet","devnet"],"default":"mainnet"}},"required":["creator"]}},{"name":"pumpfun_quote_swap","description":"Read-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); 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"inputMint":{"type":"string","description":"Input token mint (base58)."},"outputMint":{"type":"string","description":"Output token mint (base58)."},"amountIn":{"type":"number","description":"Input amount in raw base units (lamports for SOL)."},"slippageBps":{"type":"number","description":"Slippage tolerance in basis points (default 100 = 1%)."},"network":{"type":"string","enum":["mainnet","devnet"],"default":"mainnet"}},"required":["inputMint","outputMint","amountIn"]}},{"name":"pumpfun_upload_metadata","description":"Upload 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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Coin name (1–32 chars)."},"symbol":{"type":"string","description":"Ticker symbol (1–10 chars, no $)."},"description":{"type":"string","description":"Coin description (max 500 chars)."},"image_url":{"type":"string","description":"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":{"type":"string","description":"Twitter/X handle or URL (optional)."},"telegram":{"type":"string","description":"Telegram URL (optional)."},"website":{"type":"string","description":"Website URL (optional)."}},"required":["name","symbol","description","image_url"]}},{"name":"pumpfun_vanity_mint","description":"Generate 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"suffix":{"type":"string","description":"Desired address suffix (case-insensitive by default)"},"prefix":{"type":"string","description":"Desired address prefix (case-insensitive by default)"},"caseSensitive":{"type":"boolean","default":false},"maxAttempts":{"type":"integer","default":5000000}}}},{"name":"pumpfun_watch_claims","description":"Return all pump.fun fee-claim events for a creator wallet within a look-back window (durationMs). Useful for batch collection after a delay.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"creator":{"type":"string","description":"Creator wallet address (base58)"},"durationMs":{"type":"number","description":"Look-back window in ms (default 300000 = 5 min, max 1800000)"},"network":{"type":"string","enum":["mainnet","devnet"],"default":"mainnet"}},"required":["creator"]}},{"name":"pumpfun_watch_whales","description":"Collect whale trades on a pump.fun token for a short window (max 10 s). Returns all trades whose USD value meets minUsd.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"SPL mint pubkey (base58)"},"minUsd":{"type":"number","description":"Minimum trade value in USD (default 5000)"},"durationMs":{"type":"number","description":"Collection window in ms (default 5000, max 10000)"}},"required":["mint"]}},{"name":"sns_resolve","description":"Resolve a .sol Solana Name Service domain to its owner wallet address.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":".sol domain name, e.g. \"bonfida.sol\""}},"required":["name"]}},{"name":"sns_reverseLookup","description":"Reverse-lookup a Solana wallet address to its primary .sol domain name.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"address":{"type":"string","description":"Base58 Solana wallet address"}},"required":["address"]}},{"name":"social_cashtag_sentiment","description":"Score social-post sentiment for a cashtag using a deterministic lexicon. Returns score (-1..1), positive/negative/neutral percentages, and example posts.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"posts":{"type":"array","description":"Array of post objects. Each must have a text field; id, ts, and author are optional.","items":{"type":"object","properties":{"id":{"type":"string"},"ts":{"type":"string"},"text":{"type":"string"},"author":{"type":"string"}},"required":["text"]}}},"required":["posts"]}},{"name":"social_x_post_impact","description":"Correlate 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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"postUrl":{"type":"string","description":"X post URL (e.g. https://x.com/user/status/123)"},"mint":{"type":"string","description":"Solana token mint address (base58)"},"windowMin":{"type":"integer","default":30,"description":"±window in minutes around the post time"},"network":{"type":"string","enum":["mainnet","devnet"],"default":"mainnet"}},"required":["postUrl","mint"]}}],"scan":{"score":81,"grade":"B","scanned_at":"2026-09-22T17:07:24.473Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-22T17:07:24.396Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 591ms"]},"poisoning":{"score":15,"max":15,"notes":["21 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://three.ws/api/pump-fun-mcp","reachable":true,"authRequired":false,"latencyMs":591,"serverInfo":{"name":"three.ws-pumpfun-mcp","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"nirholas","repo":"three.ws","archived":false,"pushedAt":"2026-09-22T07:42:31Z","stars":206,"forks":49,"openIssues":12,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/22895867?v=4","ownerCreatedAt":"2016-10-17T19:21:57Z","license":"Apache-2.0"},"icon":{"url":"https://three.ws/three-ws-mcp-icon.svg","source":"registry"},"presence":{"stars":206,"forks":49,"downloadsWeek":null,"license":"Apache-2.0","lastPushAt":"2026-09-22T07:42:31.000Z","score":45}}}},"grade_history":[],"reviews":[]}