pump.fun Solana Data
io.github.nirholasPublished by GitHub account nirholasv0.2.7Updated Oct 24, 2026
Free, read-only pump.fun + Solana MCP: token discovery, on-chain analysis, SNS, 3D snapshots.
Overview
Read-only pump.fun and Solana MCP server for token discovery, on-chain bonding-curve and holder analysis, SNS lookups and 3D token snapshots.
- What you can do
- Search and list pump.fun tokens, trending, new, graduated and king-of-the-hill coins
- Read token metadata, bonding-curve reserves, graduation progress, recent trades and top-holder concentration
- Track creator fee claims, first claims and large whale trades
- Resolve .sol names to wallets and wallets back to .sol names
- Quote PumpSwap swaps read-only, rank KOL traders and score social sentiment
- Build a shareable live 3D token snapshot with deep-link and embeddable iframe
- When to use it
- Useful when you want an assistant to answer questions about pump.fun tokens and Solana on-chain data without setting up RPC access, keys or a wallet. Suits research, token due diligence and quick market checks from a desktop MCP client.
- Requirements
- Node.js 20 or newer, run via npx as a local stdio process. No API keys, RPC URL or wallet. Outbound HTTPS to the three.ws backend, overridable with the PUMPFUN_MCP_URL environment variable. Six indexer-gated tools only appear if a backend with an indexer is configured.
Installation
In SourceWeft
- Open pump.fun Solana Data in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
@three-ws/pumpfun-mcp
Free, read-only pump.fun + Solana MCP server — token discovery, on-chain analysis, and live 3D snapshots. No API keys.
[npm] [downloads] [license] [MCP Registry] [node] [three.ws]
Install · Quick start · Tools · Configuration · three.ws
A free, read-only Model Context Protocol server for pump.fun and Solana. It gives Claude — or any MCP client — live token discovery, on-chain bonding-curve and holder analysis, creator fee-claim tracking, Solana Name Service resolution, KOL signals, read-only swap quotes, and shareable live 3D token snapshots. Every Solana RPC and pump.fun API call runs server-side on the canonical three.ws backend, so the data is live and on-chain while the client stays zero-config: no API keys, no RPC URL, no wallet.
Install
Claude Code (one-liner)
Claude Desktop / Cursor / any MCP client
Add to your MCP config (claude_desktop_config.json, .cursor/mcp.json, .mcp.json, etc.):
Restart the client and the pump.fun tools appear. No install step required.
Run directly
Quick start
The server speaks stdio JSON-RPC — your MCP client spawns it via the npx command above. Once configured, ask your client natural-language questions and it picks the right tool:
Tools
All tools are read-only — nothing signs or sends a transaction. pumpfun_quote_swap only quotes; pumpfun_vanity_mint returns a keypair for you to use yourself.
Six tools are indexer-gated. search_tokens, get_trending_tokens, get_new_tokens, get_graduated_tokens, get_king_of_the_hill, and get_creator_profile need a pump.fun indexer (PUMPFUN_BOT_URL). The hosted endpoint at three.ws/api/pump-fun-mcp has none configured, so it filters those six out of tools/list and they will not appear when you connect to it; set the env var on your own deployment and they return with no code change. Everything else, including get_token_trades, works off on-chain data with no indexer. Call pumpfun_bot_status to see which side you are on. Note that without the indexer get_token_details returns SPL account facts only (name, symbol, and uri come back null).
The hosted endpoint also serves three tools the table below does not list: get_coin_intel, get_oracle_conviction, and pumpfun_upload_metadata.
The live tool list is fetched from the backend at startup; a bundled copy ships as an offline fallback so a fresh install always advertises a correct surface.
How prices are derived
A pump.fun coin has two lifetimes, priced by two different on-chain accounts. Every tool here belongs to exactly one of them, and reading a number from the wrong one is the classic way to get a confidently wrong answer.
Before graduation: the pump program BondingCurve account. Spot price is virtual_quote_reserves / virtual_token_reserves. Those quote-side fields were renamed upstream (virtual_sol_reserves → virtual_quote_reserves, real_sol_reserves → real_quote_reserves) when a non-SOL quote asset became possible, and the curve gained a quote_mint, which is the SOL default on every coin created to date. The rename is the same u64 at the same offset, so the response fields virtualSolReserves / solReserves keep their names and stay SOL-denominated. Served by get_bonding_curve and social_x_post_impact.
After graduation: the PumpSwap (pump_amm) Pool account. Quotes price against the effective quote reserve:
pool.virtual_quote_reserves is an appended Pool field, a signed i128. A positive value adds depth held outside the vault. Since 2026-09-30 it is commonly negative: the PumpSwap v2 trades (buy_v2, sell_v2, buy_exact_quote_in_v2) and multi_hop_swap keep the protocol and creator fee inside the quote vault until a sweep pays them out, and subtract that amount here so waiting fees never count as liquidity. So quote_reserve alone overstates depth, effective_quote_reserve can sit below it, and the program guarantees the sum is never negative. Read the field as a signed integer: never unsigned, never clamped to 0, never absolute-valued. Pools created before the field existed read it as 0. Buys and sells both price on the effective figure, and priceImpactBps measures execution against the spot price it implies, so virtual liquidity reads as depth rather than as impact. The base side is unchanged: still the raw pool_base_token_account.amount. Served by pumpfun_quote_swap.
The two virtual_quote_reserves are different fields on different accounts that happen to share a name. A coin has one or the other, never both. If get_bonding_curve returns complete: true, stop reading the curve and quote the pool.
The handoff: synthetic migration. A v3 bonding-curve buy (buy_v3, buy_exact_quote_in_v3) that empties the curve has no max size. It takes what the curve has left at the curve price, completes the curve, and buys the rest at the price the PumpSwap pool will open with, so a large final buy is not capped at realTokenReserves. Mayhem coins are excluded. After that buy every curve trade fails until the migration lands. Off-chain quoting uses getBuyV3QuoteAmountFromTokenAmount / getBuyV3TokenAmountFromQuoteAmount from @pump-fun/pump-sdk 4.0.0 with curveBaseTokenBalance from fetchBuyState.
Creator fees wait until swept. The v3 curve trades and v2 pool trades do not pay the creator fee out per trade; it waits on the curve (BondingCurve.creator_fee) and pool (Pool.creator_fees) until a sweep_creator_fee moves it to the creator vault, normally right before the claim in the same transaction. The claim tools report claimed amounts, so fees still waiting on the curve or pool appear in no claim until they are swept.
Upstream reference: pump-public-docs, in particular NEGATIVE_VIRTUAL_QUOTE_RESERVES.md, SYNTHETIC_MIGRATION.md and instructions/SWEEP_FEES.md.
Inspect the tools
Examples
Runnable examples live in examples/:
Both spawn this server over stdio and read live Solana mainnet data. Every tool
here is free and read-only. See examples/README.md for
expected output, including why the advertised tool count depends on whether the
backend has an indexer configured.
Configuration
No configuration is required. One optional override exists:
How it works
This package is a small stdio ↔ HTTP bridge. It forwards MCP tools/call requests to the canonical three.ws pump.fun JSON-RPC backend, which performs the actual Solana RPC reads and pump.fun API queries. That keeps one authoritative implementation, ships no secrets to clients, and means the tool surface stays current automatically.
pumpfun_token_3d is a native tool: it runs in-process, orchestrating several backend reads (metadata + bonding curve + holders) and resolving the token logo from its on-chain metadata URI, then returns a deep-link into the three.ws 3D viewer. It needs no extra keys and adds no new backend dependency.
Errors
Failures surface as MCP tool errors (isError: true) with the real cause — never a silent empty result:
pumpfun_token_3d degrades gracefully: if only some of its three source reads succeed it still returns a snapshot, marking the missing parts (no holder data available, no bonding-curve data available) — it errors only when all three fail.
Requirements
- Node.js >= 20 (from
engines). - No API keys, RPC URL, or wallet. Outbound HTTPS to the three.ws backend (or your
PUMPFUN_MCP_URL).
Related
@three-ws/mcp-server— the paid, x402-settled three.ws MCP (text→3D mesh, avatars, pose seeds, ERC-8004 reputation, and a paidpump_snapshot).
Links
- Homepage: https://three.ws
- Changelog: https://three.ws/changelog
- Issues: https://github.com/nirholas/three.ws/issues
- License: Apache-2.0. See LICENSE.
Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub
Source: packages/pumpfun-mcp/README.md at commit 0e68f46
Tools
0Version history
2- v0.2.7LatestOct 10, 2026
- v0.2.5Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts