Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

three.ws pump.fun MCP

REMOTE · THREE.WS · SCANNED AUG 3

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

Available components

+6 this week 71 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security83
Transport & Reachability100
Schema Quality & AI Usability62
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2303 tokens (~121/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage88
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 58% of tool parameters carry a description.Partial
  • Structured output schemas are declared (53% of tools); any adoption earns full credit.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · three.ws

# add to Claude Code
claude mcp add --transport http nirholas-threews-pumpfun https://three.ws/api/pump-fun-mcp
# ~/.codex/config.toml
[mcp_servers.nirholas-threews-pumpfun]
url = "https://three.ws/api/pump-fun-mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "nirholas-threews-pumpfun": {
      "type": "remote",
      "url": "https://three.ws/api/pump-fun-mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add nirholas-threews-pumpfun --url https://three.ws/api/pump-fun-mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  nirholas-threews-pumpfun:
    url: "https://three.ws/api/pump-fun-mcp"
// mcp.json
{
  "mcpServers": {
    "nirholas-threews-pumpfun": {
      "type": "http",
      "url": "https://three.ws/api/pump-fun-mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +5
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 64

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://three.ws/api/pump-fun-mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=three.ws CN=WR3,O=Google Trust Services,C=US 7 Jul 2026 5 Oct 2026 RSA 2048 SHA256-RSA 83aad5cd398d14990ac531b5c97a842e
SANs: three.ws, www.three.ws
CN=WR3,O=Google Trust Services,C=US (CA) CN=GTS Root R1,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 RSA 2048 SHA256-RSA 7ff005a91568d63abc22861684aa4b5a
CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 19 Jun 2020 28 Jan 2028 RSA 4096 SHA256-RSA 77bd0d6cdb36f91aea210fc4f058d30d
DNSSEC secure

Validation of three.ws. Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ws. present 36454 8 Verified
three.ws. present 62777 13 Verified
three.ws. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
content-security-policy base-uri 'self'; object-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-eval' blob: https://cdn.jsdelivr.net https://cdnjs.cloudflare.com https://unpkg.com https://esm.sh https://ajax.googleapis.com https://s3.tradingview.com https://platform.twitter.com https://3d-agent.vercel.app https://three.ws; worker-src 'self' blob:; frame-ancestors 'self' https://ibm.com https://*.ibm.com https://*.seismic.com; report-uri /api/client-errors
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy accelerometer=(), autoplay=(self), camera=(), display-capture=(), encrypted-media=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(self), serial=(), usb=(), xr-spatial-tracking=(self)
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://three.ws/api/pump-fun-mcp Verified 200
http (plaintext) http://three.ws/api/pump-fun-mcp HTTPS enforced 301 https://three.ws:443/api/pump-fun-mcp
MCP tools — 19 exposed · ~1,873 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
get_bonding_curve ~167

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.

NameTypeReqDescription
mintstringyes
networkstring
NameTypeReqDescription
completebooleanyestrue once the curve has graduated
graduationPercentnumberyes0–100 graduation progress
mintstringyes
networkstringyes
solReservesstringyesReal quote reserves in SOL (4-decimal string). On-chain field: real_quote_reserves.
tokenReservesstringyesReal token reserves (raw base units)
virtualSolReservesstringyesVirtual quote reserves (lamports). On-chain field: virtual_quote_reserves (u64). Spot price = virtual_quote_reserves / virtual_token_reserves. Distinct from the identically-named PumpSwap Pool.virtua…
virtualTokenReservesstringyesVirtual token reserves (raw base units)

No examples provided.

get_coin_intel ~147

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.

NameTypeReqDescription
mintstringyesSolana mint address (base58).
networkstring
NameTypeReqDescription
bubblemap_connectivitynumber0–1 wallet-cluster share. null = enrichment not yet run.
bundle_scorenumber0–1, coordinated-launch likelihood.
categorystring
dev_buy_solnumber
dev_soldboolean
foundbooleanyes
is_news_memeboolean
mintstring
namestring
news_headlinestring
oracleobjectFused Oracle conviction score (null if the Oracle engine has not yet scored this coin). Call get_oracle_conviction for the full read including who's-in roster and narrative.
oracle_urlstringOracle deep-link for the coin — opens the Oracle war-room drawer directly.
organic_scorenumber0–1, organic-demand likelihood.
outcomeobjectLabeled outcome if available (graduated, ath_multiple, etc).
quality_scorenumber0–100 composite quality.
risk_flagsarray
smart_money_countintegerProven wallets (score≥65) in this coin.
smart_money_notablearray
smart_money_scorenumber
symbolstring
unique_buyersinteger
verdictobject

No examples provided.

get_oracle_conviction ~199

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.

NameTypeReqDescription
mintstringyesSolana mint address (base58).
networkstring
NameTypeReqDescription
convictionobjectFused conviction verdict. null if the Oracle has not yet scored this coin.
foundbooleanyes
mintstring
namestring
narrativeobjectNarrative classification for the coin.
outcomeobjectLabeled outcome if available.
symbolstring
urlstringOracle deep-link URL for this coin.
whos_inarrayClassified trader roster — every wallet that touched this coin, annotated with their reputation.

No examples provided.

get_token_details ~28

Full details for a specific pump.fun token by mint address.

NameTypeReqDescription
mintstringyes

No output schema declared.

No examples provided.

get_token_holders ~43

Top holders of a token with concentration analysis (on-chain).

NameTypeReqDescription
limitinteger
mintstringyes
networkstring

No output schema declared.

No examples provided.

get_token_trades ~33

Recent buy/sell history for a token.

NameTypeReqDescription
limitinteger
mintstringyes

No output schema declared.

No examples provided.

kol_leaderboard ~52

Top KOL traders ranked by P&L for a given time window. Returns wallet, pnlUsd, winRate, trades, rank.

NameTypeReqDescription
limitinteger
windowstring

No output schema declared.

No examples provided.

pumpfun_bot_status ~38

Returns the configuration and health status of the pump.fun indexer backend. Always available — does not require PUMPFUN_BOT_URL.

Input schema present but exposes no named parameters.

NameTypeReqDescription
configuredbooleanyestrue when PUMPFUN_BOT_URL is set on the server
errorstringFailure reason when healthy is false
healthybooleanyestrue when the indexer answered the health ping
latencyMsnumberRound-trip ms of the health ping (configured backends only)
messagestringHuman-readable note when the indexer is unconfigured

No examples provided.

pumpfun_first_claims ~74

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.

NameTypeReqDescription
limitinteger
sinceMinutesintegerHow far back to look for new claimers (minutes)

No output schema declared.

No examples provided.

pumpfun_list_claims ~74

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.

NameTypeReqDescription
creatorstringyesCreator wallet address (base58)
limitinteger
networkstring

No output schema declared.

No examples provided.

pumpfun_quote_swap ~224

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.

NameTypeReqDescription
amountInnumberyesInput amount in raw base units (lamports for SOL).
inputMintstringyesInput token mint (base58).
networkstring
outputMintstringyesOutput token mint (base58).
slippageBpsnumberSlippage tolerance in basis points (default 100 = 1%).
NameTypeReqDescription
amountOutstringyesExpected output amount in raw base units
base_reservestringRaw base vault balance. Unchanged by the virtual-reserve rollout.
effective_quote_reservestringquote_reserve + virtual_quote_reserves. This is what the quote is priced against.
expiresAtMsnumberyesEpoch ms after which the quote is stale
priceImpactBpsnumberyesPrice impact in basis points
quote_reservestringRaw quote vault balance, before virtual reserves are added.
routestringyesAMM pool address the quote routes through (base58)
virtual_quote_reservesstringPool.virtual_quote_reserves. Quote-side liquidity the pool carries outside its vault. 0 on non-launchpad pools.

No examples provided.

pumpfun_upload_metadata ~234

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.

NameTypeReqDescription
descriptionstringyesCoin description (max 500 chars).
image_urlstringyesImage 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.
namestringyesCoin name (1–32 chars).
symbolstringyesTicker symbol (1–10 chars, no $).
telegramstringTelegram URL (optional).
twitterstringTwitter/X handle or URL (optional).
websitestringWebsite URL (optional).
NameTypeReqDescription
cidstringyesIPFS CID of the metadata JSON.
image_cidstringIPFS CID of the uploaded image.
providerstringIPFS provider used.
uristringyesipfs:// URI ready for the pump.fun launch-agent `uri` field.

No examples provided.

pumpfun_vanity_mint ~106

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.

NameTypeReqDescription
caseSensitiveboolean
maxAttemptsinteger
prefixstringDesired address prefix (case-insensitive by default)
suffixstringDesired address suffix (case-insensitive by default)
NameTypeReqDescription
attemptsintegeryesKeypairs ground before the match
msnumberyesWall-clock grind time in milliseconds
publicKeystringyesMatched Solana address (base58)
secretKeystringyesSecret key (base58) — caller is sole custodian

No examples provided.

pumpfun_watch_claims ~88

Return all pump.fun fee-claim events for a creator wallet within a look-back window (durationMs). Useful for batch collection after a delay.

NameTypeReqDescription
creatorstringyesCreator wallet address (base58)
durationMsnumberLook-back window in ms (default 300000 = 5 min, max 1800000)
networkstring

No output schema declared.

No examples provided.

pumpfun_watch_whales ~93

Collect whale trades on a pump.fun token for a short window (max 10 s). Returns all trades whose USD value meets minUsd.

NameTypeReqDescription
durationMsnumberCollection window in ms (default 5000, max 10000)
minUsdnumberMinimum trade value in USD (default 5000)
mintstringyesSPL mint pubkey (base58)

No output schema declared.

No examples provided.

sns_resolve ~44

Resolve a .sol Solana Name Service domain to its owner wallet address.

NameTypeReqDescription
namestringyes.sol domain name, e.g. "bonfida.sol"
NameTypeReqDescription
addressstringyesOwner wallet address (base58)
namestringyesThe .sol domain that was resolved

No examples provided.

sns_reverseLookup ~38

Reverse-lookup a Solana wallet address to its primary .sol domain name.

NameTypeReqDescription
addressstringyesBase58 Solana wallet address
NameTypeReqDescription
addressstringyesThe wallet address that was looked up
namestringyesPrimary .sol domain for the address

No examples provided.

social_cashtag_sentiment ~71

Score social-post sentiment for a cashtag using a deterministic lexicon. Returns score (-1..1), positive/negative/neutral percentages, and example posts.

NameTypeReqDescription
postsarrayyesArray of post objects. Each must have a text field; id, ts, and author are optional.
NameTypeReqDescription
countintegeryesNumber of posts scored
examplesobjectyes
negPctnumberyesPercentage of negative posts (0–100)
neuPctnumberyesPercentage of neutral posts (0–100)
posPctnumberyesPercentage of positive posts (0–100)
scorenumberyesNet sentiment, -1 (bearish) to 1 (bullish)

No examples provided.

social_x_post_impact ~120

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.

NameTypeReqDescription
mintstringyesSolana token mint address (base58)
networkstring
postUrlstringyesX post URL (e.g. https://x.com/user/status/123)
windowMininteger±window in minutes around the post time

No output schema declared.

No examples provided.