Skip to content

three.ws pump.fun MCP

by nirholas · remote · no sign-in to list tools · v1.0.1 · published by GitHub user nirholas

Free pump.fun and Solana token discovery and on-chain analysis tools, by three.ws.

Changes · 7

21 tools: 7 change things and 14 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http threews-pumpfun https://three.ws/api/pump-fun-mcp

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "pumpfun_vanity_mint" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "generate": a word for a change.

    What this check looks for
  • The description contains a 43-character base64 string.

    Matched text

    description: "...tMint must be wSOL (So11111111111111111111111111111111111111112). Only GRADUATED co..."

    What this check looks for
  • The server marks "social_x_post_impact" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "social_x_post_impact" says "post": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

21 tools

Changes things 7Claude Code: ask
  • kol_leaderboardTop KOL traders ranked by P&L for a given time window.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Top 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.

    Annotations the server declares

    • title: KOL Leaderboard
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • pumpfun_first_claimsFirst-ever pump.fun creator fee claims in a time window: a cash-out signal.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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. Use this to spot creators cashing out for the first time across all coins; for one creator's history call pumpfun_list_claims.

    Annotations the server declares

    • title: First Creator Fee Claims
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • pumpfun_upload_metadataUpload coin metadata (name, symbol, description, image) to IPFS and get back a pump.fun-ready metadata URI.No findings

    Why it is in this group

    • The name "pumpfun_upload_metadata" says "upload": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Upload Coin Metadata
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • pumpfun_vanity_mintGenerate a Solana keypair whose address ends/starts with a vanity pattern.1 finding

    Why it is in this group

    • The description's first verb is "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "pumpfun_vanity_mint" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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. Use this before launching a coin when its mint address should carry a recognizable prefix or suffix.

    Annotations the server declares

    • title: Vanity Mint Keypair
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • pumpfun_watch_whalesCollect whale trades on a pump.fun token for a short window (max 10 s).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Collect 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.

    Annotations the server declares

    • title: Watch Whale Trades
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • social_cashtag_sentimentScore social-post sentiment for a cashtag using a deterministic lexicon.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Score 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.

    Annotations the server declares

    • title: Cashtag Sentiment
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • social_x_post_impactCorrelate an X (Twitter) post to a memecoin price impact.1 finding

    Why it is in this group

    • The name "social_x_post_impact" says "post": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "social_x_post_impact" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "social_x_post_impact" says "post": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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. 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.

    Annotations the server declares

    • title: X Post Price Impact
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 14Claude Code: allow
  • get_bonding_curveBonding curve analysis: real reserves, virtual reserves, and graduation progress (on-chain).No findings

    Why it is in this group

    • The name "get_bonding_curve" says "get": a word for reading.
    Description, as the server wrote it
    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. 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.

    Annotations the server declares

    • title: Bonding Curve
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • get_coin_intelFull Coin Intelligence snapshot for a pump.fun mint.No findings

    Why it is in this group

    • The name "get_coin_intel" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Coin Intel
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • get_new_tokensMost recently launched pump.fun tokens.No findings

    Why it is in this group

    • The name "get_new_tokens" says "get": a word for reading.
    Description, as the server wrote it
    Most 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.

    Annotations the server declares

    • title: New Tokens
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • get_oracle_convictionOracle 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 v…No findings

    Why it is in this group

    • The name "get_oracle_conviction" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Oracle Conviction
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • get_token_detailsFull details for a specific pump.fun token by mint address.No findings

    Why it is in this group

    • The name "get_token_details" says "get": a word for reading.
    Description, as the server wrote it
    Full 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.

    Annotations the server declares

    • title: Token Details
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • get_token_holdersTop holders of a token with concentration analysis (on-chain).No findings

    Why it is in this group

    • The name "get_token_holders" says "get": a word for reading.
    Description, as the server wrote it
    Top 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.

    Annotations the server declares

    • title: Token Holders
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • get_token_tradesRecent buy/sell history for a token.No findings

    Why it is in this group

    • The name "get_token_trades" says "get": a word for reading.
    Description, as the server wrote it
    Recent 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.

    Annotations the server declares

    • title: Token Trades
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • pumpfun_bot_statusReturns the configuration and health status of the pump.fun indexer backend.No findings

    Why it is in this group

    • The name "pumpfun_bot_status" says "status": a word for reading.
    Description, as the server wrote it
    Returns 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.

    Annotations the server declares

    • title: Indexer Status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • pumpfun_list_claimsList recent pump.fun fee-claim events for a creator wallet (on-chain, no indexer needed).No findings

    Why it is in this group

    • The name "pumpfun_list_claims" says "list": a word for reading.
    Description, as the server wrote it
    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. 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.

    Annotations the server declares

    • title: List Creator Fee Claims
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • pumpfun_quote_swapRead-only price quote for a pump.fun AMM (PumpSwap) swap.1 finding

    Why it is in this group

    • The description's first verb is "read": a word for reading.

    Findings

    • Warn

      The description contains a 43-character base64 string.

      Matched text

      description: "...tMint must be wSOL (So11111111111111111111111111111111111111112). Only GRADUATED co..."

      What this check looks for
    Description, as the server wrote it
    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, 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.

    Annotations the server declares

    • title: Swap Quote (Read-Only)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • pumpfun_watch_claimsReturn all pump.fun fee-claim events for a creator wallet within a look-back window (durationMs).No findings

    Why it is in this group

    • The description's first verb is "return": a word for reading.
    Description, as the server wrote it
    Return 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.

    Annotations the server declares

    • title: Watch Creator Fee Claims
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • sns_resolveResolve a .sol Solana Name Service domain to its owner wallet address.No findings

    Why it is in this group

    • The name "sns_resolve" says "resolve": a word for reading.
    Description, as the server wrote it
    Resolve 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.

    Annotations the server declares

    • title: Resolve .sol Domain
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • sns_reverseLookupReverse-lookup a Solana wallet address to its primary .sol domain name.No findings

    Why it is in this group

    • The name "sns_reverseLookup" says "lookup": a word for reading.
    Description, as the server wrote it
    Reverse-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.

    Annotations the server declares

    • title: Reverse .sol Lookup
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http threews-pumpfun https://three.ws/api/pump-fun-mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__threews-pumpfun__get_token_details",
      "mcp__threews-pumpfun__get_bonding_curve",
      "mcp__threews-pumpfun__get_token_trades",
      "mcp__threews-pumpfun__get_trending_tokens",
      "mcp__threews-pumpfun__get_new_tokens",
      "mcp__threews-pumpfun__get_token_holders",
      "mcp__threews-pumpfun__pumpfun_list_claims",
      "mcp__threews-pumpfun__pumpfun_watch_claims",
      "mcp__threews-pumpfun__sns_resolve",
      "mcp__threews-pumpfun__sns_reverseLookup",
      "mcp__threews-pumpfun__pumpfun_quote_swap",
      "mcp__threews-pumpfun__get_coin_intel",
      "mcp__threews-pumpfun__get_oracle_conviction",
      "mcp__threews-pumpfun__pumpfun_bot_status"
    ],
    "ask": [
      "mcp__threews-pumpfun__pumpfun_vanity_mint",
      "mcp__threews-pumpfun__pumpfun_watch_whales",
      "mcp__threews-pumpfun__pumpfun_first_claims",
      "mcp__threews-pumpfun__social_cashtag_sentiment",
      "mcp__threews-pumpfun__kol_leaderboard",
      "mcp__threews-pumpfun__social_x_post_impact",
      "mcp__threews-pumpfun__pumpfun_upload_metadata"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as threews-pumpfun. Review it before you use it.