# pump.fun Solana Data (npm · @three-ws/pumpfun-mcp)

Free, read-only pump.fun + Solana MCP: token discovery, on-chain analysis, SNS, 3D snapshots.

- Trust score: 63/100 (medium)
- Change this week: +19
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@three-ws/pumpfun-mcp`: 63/100 (this document), [markdown](https://verifymcp.io/servers/nirholas-pumpfun-solana-mcp/three-ws-pumpfun-mcp.md), [page](https://verifymcp.io/servers/nirholas-pumpfun-solana-mcp/three-ws-pumpfun-mcp)

## Channel facts

- Registry: `npm`
- Package: `@three-ws/pumpfun-mcp`
- Version: `0.2.4`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 86/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 32/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: the license (SEE LICENSE IN LICENSE) isn't a recognized OSI-approved license.
  - Actively maintained (last published 13 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1801 tokens (~78/item across 23 items; 23 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 84/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 44% of tool parameters carry a description.
  - Structured output schemas are declared (13% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add nirholas-pumpfun-solana-mcp -- npx -y @three-ws/pumpfun-mcp
```

### Codex

```bash
codex mcp add nirholas-pumpfun-solana-mcp -- npx -y @three-ws/pumpfun-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "nirholas-pumpfun-solana-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@three-ws/pumpfun-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add nirholas-pumpfun-solana-mcp --command npx --arg -y --arg @three-ws/pumpfun-mcp
```

### Hermes

```yaml
mcp_servers:
  nirholas-pumpfun-solana-mcp:
    command: "npx"
    args: ["-y", "@three-ws/pumpfun-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "nirholas-pumpfun-solana-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/pumpfun-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 63, −3)

No change was recorded against any check on this day. Supply Chain Security went from 97 to 86. Other categories moved too: Stability & Change Management rose 3.

### 2026-08-02 (score 66, +59)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security improvement] Install scripts: unverified → pass
- [functional regression] License: unverified → fail
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → good
- [functional improvement] Tool coverage: unverified → 100
- [functional] Licence: SEE LICENSE IN LICENSE

### 2026-08-01 (score 7, −12)

- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified

### 2026-07-31 (score 19, −25)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 44)

First indexed and scored.

## MCP tools (23)

### `search_tokens` (~35 tokens)

Search Tokens

Search pump.fun tokens by name, symbol, or mint address.

Input parameters:

- `limit` (integer)
- `query` (string, required)

### `get_token_details` (~28 tokens)

Token Details

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

Input parameters:

- `mint` (string, required)

### `get_bonding_curve` (~165 tokens)

Bonding Curve

Bonding curve analysis: real reserves, virtual reserves, and graduation progress (on-chain). Pre-graduation only: the reserves come from the pump program bonding-curve account, not from a PumpSwap pool. Pump renamed the quote-side fields (real_sol_reserves → real_quote_reserves, virtual_sol_reserves → virtual_quote_reserves) when 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.

Input parameters:

- `mint` (string, required)
- `network` (string)

Output parameters:

- `complete` (boolean): true once the curve has graduated
- `graduationPercent` (number): 0–100 graduation progress
- `mint` (string)
- `network` (string)
- `solReserves` (string): Real quote reserves in SOL (4-decimal string). On-chain field: real_quote_reserves.
- `tokenReserves` (string): Real token reserves (raw base units)
- `virtualSolReserves` (string): Virtual quote reserves in lamports. On-chain field: virtual_quote_reserves. Spot price = virtual_quote_reserves / virtual_token_reserves. Distinct from the identically-named PumpSwap Pool.virtual_quo…
- `virtualTokenReserves` (string): Virtual token reserves (raw base units)

### `get_token_trades` (~33 tokens)

Token Trades

Recent buy/sell history for a token.

Input parameters:

- `limit` (integer)
- `mint` (string, required)

### `get_trending_tokens` (~25 tokens)

Trending Tokens

Top pump.fun tokens by market cap.

Input parameters:

- `limit` (integer)

### `get_new_tokens` (~23 tokens)

New Tokens

Most recently launched pump.fun tokens.

Input parameters:

- `limit` (integer)

### `get_graduated_tokens` (~32 tokens)

Graduated Tokens

Tokens that graduated from the bonding curve to Raydium AMM.

Input parameters:

- `limit` (integer)

### `get_king_of_the_hill` (~23 tokens)

King of the Hill

Highest-market-cap token still on the bonding curve.

### `get_creator_profile` (~30 tokens)

Creator Profile

All tokens by a creator wallet, with rug-pull risk flags.

Input parameters:

- `creator` (string, required)

### `get_token_holders` (~43 tokens)

Token Holders

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

Input parameters:

- `limit` (integer)
- `mint` (string, required)
- `network` (string)

### `pumpfun_vanity_mint` (~106 tokens)

Vanity Mint Keypair

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.

Input parameters:

- `caseSensitive` (boolean)
- `maxAttempts` (integer)
- `prefix` (string): Desired address prefix (case-insensitive by default)
- `suffix` (string): Desired address suffix (case-insensitive by default)

### `pumpfun_watch_whales` (~93 tokens)

Watch Whale Trades

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

Input parameters:

- `durationMs` (number): Collection window in ms (default 5000, max 10000)
- `minUsd` (number): Minimum trade value in USD (default 5000)
- `mint` (string, required): SPL mint pubkey (base58)

### `pumpfun_list_claims` (~74 tokens)

List Creator Fee Claims

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.

Input parameters:

- `creator` (string, required): Creator wallet address (base58)
- `limit` (integer)
- `network` (string)

### `pumpfun_watch_claims` (~88 tokens)

Watch Creator Fee Claims

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

Input parameters:

- `creator` (string, required): Creator wallet address (base58)
- `durationMs` (number): Look-back window in ms (default 300000 = 5 min, max 1800000)
- `network` (string)

### `pumpfun_first_claims` (~74 tokens)

First Creator Fee Claims

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.

Input parameters:

- `limit` (integer)
- `sinceMinutes` (integer): How far back to look for new claimers (minutes)

### `sns_resolve` (~44 tokens)

Resolve .sol Domain

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

Input parameters:

- `name` (string, required): .sol domain name, e.g. "bonfida.sol"

### `sns_reverseLookup` (~38 tokens)

Reverse .sol Lookup

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

Input parameters:

- `address` (string, required): Base58 Solana wallet address

### `social_cashtag_sentiment` (~71 tokens)

Cashtag Sentiment

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

Input parameters:

- `posts` (array, required): Array of post objects. Each must have a text field; id, ts, and author are optional.

### `kol_leaderboard` (~52 tokens)

KOL Leaderboard

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

Input parameters:

- `limit` (integer)
- `window` (string)

### `pumpfun_quote_swap` (~252 tokens)

Swap Quote (Read-Only)

Read-only price quote for a pump.fun (PumpSwap) AMM swap on a GRADUATED coin. No signing or tx sending. One of inputMint/outputMint must be wSOL (So11111111111111111111111111111111111111112). Returns amountOut, priceImpactBps, route, expiresAtMs. Pricing follows PumpSwap exactly: the quote side is the EFFECTIVE reserve, pool_quote_token_account.amount + pool.virtual_quote_reserves (non-zero on launchpad coins since 2026-07-20), while the base side is the raw pool_base_token_account.amount, unchanged. Coins still on the bonding curve have no pool, so use get_bonding_curve instead. The quote is a snapshot: honour expiresAtMs and re-quote after it.

Input parameters:

- `amountIn` (number, required): Input amount in raw base units (lamports for SOL).
- `inputMint` (string, required): Input token mint (base58).
- `network` (string)
- `outputMint` (string, required): Output token mint (base58).
- `slippageBps` (number): Slippage tolerance in basis points (default 100 = 1%).

Output parameters:

- `amountOut` (string): Expected output in raw base units (lamports when the output is wSOL), fee-inclusive.
- `base_reserve` (string): Raw base vault balance (pool_base_token_account.amount). Unaffected by virtual reserves.
- `effective_quote_reserve` (string): quote_reserve + virtual_quote_reserves. The reserve the quote is actually priced against.
- `expiresAtMs` (number): Unix ms after which this quote is stale and must be re-requested.
- `priceImpactBps` (number): Execution price vs. the pool spot price, in basis points. Spot is measured against the effective quote reserve (vault + virtual), so virtual liquidity correctly reads as depth rather than as impact.
- `quote_reserve` (string): Raw quote vault balance (pool_quote_token_account.amount), before virtual reserves.
- `route` (string): PumpSwap pool address the quote was priced on.
- `virtual_quote_reserves` (string): Pool.virtual_quote_reserves, an i128. Quote-side liquidity held outside the vault. 0 on non-boost pools. SIGNED: may be negative, so do not parse it unsigned.

### `social_x_post_impact` (~163 tokens)

X Post Price Impact

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. Bonding-curve pricing (virtual_quote_reserves / virtual_token_reserves), so it applies to coins that have not graduated; a graduated coin has no curve and the call fails rather than returning a zero price.

Input parameters:

- `mint` (string, required): Solana token mint address (base58)
- `network` (string)
- `postUrl` (string, required): X post URL (e.g. https://x.com/user/status/123)
- `windowMin` (integer): ±window in minutes around the post time

### `pumpfun_bot_status` (~38 tokens)

Indexer Status

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

Output parameters:

- `configured` (boolean): true when PUMPFUN_BOT_URL is set on the server
- `error` (string): Failure reason when healthy is false
- `healthy` (boolean): true when the indexer answered the health ping
- `latencyMs` (number): Round-trip ms of the health ping (configured backends only)
- `message` (string): Human-readable note when the indexer is unconfigured

### `pumpfun_token_3d` (~120 tokens)

Token 3D Snapshot

Live 3D snapshot of a pump.fun / Solana token. Composes on-chain token metadata, bonding-curve graduation progress, and top-holder distribution, and returns a shareable three.ws /coin3d viewer deep-link (a spinning coin medallion textured with the token logo, a holder galaxy, and a graduation ring) plus an embeddable iframe and the underlying data. Read-only, free.

Input parameters:

- `mint` (string, required): SPL / pump.fun token mint address (base58).
- `network` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/nirholas-pumpfun-solana-mcp/three-ws-pumpfun-mcp#diagnostics

## Score history

- 2026-08-03: 63
- 2026-08-02: 66
- 2026-08-01: 7
- 2026-07-31: 19
- 2026-07-30: 44
- 2026-07-28: 44
- 2026-07-27: 44

## Links

- npm package: https://www.npmjs.com/package/@three-ws/pumpfun-mcp
- Socket report: https://socket.dev/npm/package/@three-ws/pumpfun-mcp
- Repository: https://github.com/nirholas/three.ws
- Website: https://three.ws/
- Changelog RSS feed: https://verifymcp.io/servers/nirholas-pumpfun-solana-mcp/three-ws-pumpfun-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/nirholas-pumpfun-solana-mcp/three-ws-pumpfun-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/nirholas-pumpfun-solana-mcp/three-ws-pumpfun-mcp
