solana-nft-mcp

AI can struggle with NFTs and Web3 data: often guessing, becoming inconsistent, or just wasting time and tokens correcting itself. solana-nft-mcp delivers the best answers pulled from the sources, then analyzes and verifies them before sharing the results, even reporting any gaps or limitations. That makes it easy to create websites, dashboards, mobile apps, market activity bots, track wallets and projects, set up notifications for new listings, investigate blockchain or marketplace activity, or simply run marketplace analytics and find the best deals.
Build and collect on the Solana ecosystem with confidence.
- free, no sign-up
- 21 tools · MIT
- read-only
- runs locally
Solana network- iNo keys: every default source is public, and OpenSea issues the server its own free key on your machine. Read-only: there is no signing code, it cannot touch your wallet. Runs locally: your AI app starts it on your computer. Nothing is collected. What leaves your machine: the public address or name you ask about, one version check to npm at startup, and, the first time a question needs OpenSea, a request for a free OpenSea key that is stored on your computer. Both extras can be turned off.
01What is it? and why it was created
No tool names, keys, services or addresses needed.
Why Solana Collectibles?
An old card found in a box in the attic has a story you can rarely confirm. You take it on trust. A digital card on Solana has a story you can verify on chain: who minted it, every wallet it passed through, and the rules attached to it.
The record is public but not readable. Owners sit in raw bytes, listings live off chain in different currencies, and the newest standard reads as empty in most APIs. An AI asked cold fills the gaps from memory.
More on how it works
Without it your assistant guesses, searches, opens marketplace pages and reads raw transactions. With it, one call returns the number, its source, its time and its gaps. Less waiting, fewer tokens burned.
Most APIs return an empty history for Metaplex Core cards, so an assistant says "never traded". This decodes the ownership trail from the chain itself, back to the mint.
Every answer names its source and its read time. Two sources that disagree are both shown. "Unverifiable" is a real verdict next to confirmed and contradicted.
$ transfers CmiLYiFE… [] "no transfer history"
$ get_asset_provenance CmiLYiFE… "James Wood (29/250)" · 7 events 2026-07-15 minted 2026-07-17 → 6HykKUzW… 2026-08-08 → 1BWutmTv… escrow, listed 2026-09-01 → 6HykKUzW… delisted 2026-09-01 → 1BWutmTv… relisted 11m later
Same card, two answers. The empty array is what an assistant reads as "never traded". It traded six times.
02Get started pick your app, three steps
Open Settings, then Extensions, drag the file onto that panel, click Install.
4Agent instructions optional, for your project instructions: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
claude_desktop_config.json Settings > Developer > Edit Config{ "mcpServers": { "solana-nft": {
"command": "npx",
"args": ["-y","solana-nft-mcp"] } } }4Agent instructions optional, for your project instructions: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
claude_desktop_config.json Settings > Developer > Edit Config (after git clone, npm install, npm run build){ "mcpServers": { "solana-nft": {
"command": "node",
"args": ["/full/path/to/solana-nft-mcp/dist/index.js"] } } }4Agent instructions optional, for your project instructions: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
terminal one command, no file to editclaude mcp add solana-nft -- npx -y solana-nft-mcp
claude mcp list.4Agent instructions optional, for CLAUDE.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
terminal one command, no file to edit (after git clone, npm install, npm run build)claude mcp add solana-nft -- node /full/path/to/solana-nft-mcp/dist/index.js
claude mcp list.4Agent instructions optional, for CLAUDE.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
terminal writes ~/.codex/config.toml, shared with the ChatGPT desktop app and the IDE extensioncodex mcp add solana-nft -- npx -y solana-nft-mcp
codex mcp list.4Agent instructions optional, for AGENTS.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
terminal writes ~/.codex/config.toml, shared with the ChatGPT desktop app and the IDE extension (after git clone, npm install, npm run build)codex mcp add solana-nft -- node /full/path/to/solana-nft-mcp/dist/index.js
codex mcp list.4Agent instructions optional, for AGENTS.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
~/.cursor/mcp.json global, or .cursor/mcp.json inside one project{ "mcpServers": { "solana-nft": {
"command": "npx",
"args": ["-y","solana-nft-mcp"] } } }4Agent instructions optional, for AGENTS.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
~/.cursor/mcp.json global, or .cursor/mcp.json inside one project (after git clone, npm install, npm run build){ "mcpServers": { "solana-nft": {
"command": "node",
"args": ["/full/path/to/solana-nft-mcp/dist/index.js"] } } }4Agent instructions optional, for AGENTS.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
~/.codeium/windsurf/mcp_config.json or the MCP settings page inside Windsurf{ "mcpServers": { "solana-nft": {
"command": "npx",
"args": ["-y","solana-nft-mcp"] } } }4Agent instructions optional, for AGENTS.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
~/.codeium/windsurf/mcp_config.json or the MCP settings page inside Windsurf (after git clone, npm install, npm run build){ "mcpServers": { "solana-nft": {
"command": "node",
"args": ["/full/path/to/solana-nft-mcp/dist/index.js"] } } }4Agent instructions optional, for AGENTS.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
.vscode/mcp.json or Command Palette > MCP: Add Server. The key is servers, not mcpServers{ "servers": { "solana-nft": {
"type": "stdio", "command": "npx",
"args": ["-y","solana-nft-mcp"] } } }4Agent instructions optional, for AGENTS.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
.vscode/mcp.json or Command Palette > MCP: Add Server. The key is servers, not mcpServers (after git clone, npm install, npm run build){ "servers": { "solana-nft": {
"type": "stdio", "command": "node",
"args": ["/full/path/to/solana-nft-mcp/dist/index.js"] } } }4Agent instructions optional, for AGENTS.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
terminal writes ~/.gemini/settings.jsongemini mcp add solana-nft npx -y solana-nft-mcp
gemini mcp list.4Agent instructions optional, for GEMINI.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
terminal writes ~/.gemini/settings.json (after git clone, npm install, npm run build)gemini mcp add solana-nft node /full/path/to/solana-nft-mcp/dist/index.js
gemini mcp list.4Agent instructions optional, for GEMINI.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
settings.json under context_servers{ "context_servers": { "solana-nft": {
"command": "npx",
"args": ["-y","solana-nft-mcp"] } } }4Agent instructions optional, for AGENTS.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
settings.json under context_servers (after git clone, npm install, npm run build){ "context_servers": { "solana-nft": {
"command": "node",
"args": ["/full/path/to/solana-nft-mcp/dist/index.js"] } } }4Agent instructions optional, for AGENTS.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
cline_mcp_settings.json MCP Servers icon > Configure > Configure MCP Servers{ "mcpServers": { "solana-nft": {
"command": "npx",
"args": ["-y","solana-nft-mcp"] } } }4Agent instructions optional, for AGENTS.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
cline_mcp_settings.json MCP Servers icon > Configure > Configure MCP Servers (after git clone, npm install, npm run build){ "mcpServers": { "solana-nft": {
"command": "node",
"args": ["/full/path/to/solana-nft-mcp/dist/index.js"] } } }4Agent instructions optional, for AGENTS.md: makes the AI reach for the server instead of guessing. Tap to show.
# solana-nft-mcp For any question about a Solana collectible, collection, wallet, sale, floor or trait, call the solana-nft-mcp tools instead of answering from memory or the open web. Keep the marketplace, the currency and the read time on every figure you repeat. Never add figures from two marketplaces together, and never call a floor a valuation. If a tool says it could not see something, say so; do not fill the gap.
Using API keysiAPI keysNo key neededThe chain and Magic Eden are read without one.OpenSea is the exceptionThe first time a question needs it, the server asks OpenSea for its own free key and keeps it on your machine.What that buysA second marketplace to check Magic Eden against, name search, and plain transfers, which is how gifts and airdrops show up.Bring your own insteadSkips OpenSea's cap of about two new keys a day. Goes in the env block of your config.
03Ask anything start building or collecting right away
141 questions for real world scenarios that users ask: docs/QUESTIONS.md.
Nine scenarios, one conversation each tap one to read it
Personas are invented and SOL prices taken from session snapshot.
Real sessions cont. real questions, answers straight from the chain & marketplaces
Building a Solana NFT sales bot for our Discord: how do I get images/ hyperlinks working? how often can I poll?builder
get_integration_recipeget_recent_salesget_asset- A sale row is the event, not the card: time, price, currency, buyer, seller, marketplace and the transaction signature. No picture on it, deliberately
- The art is one extra call per sale:
get_asseton the mint returns the image URL the collection published, the item name and its traits - Links come ready made: every item answer carries Solscan, Solana Explorer, SolanaFM and XRAY. For the receipt, the sale row's signature is the transaction, so the link is solscan.io/tx/ plus that signature
- Check the image renders in a Discord embed before you ship. Some collections serve an animated render rather than a still, which embeds differently
- Pace: Magic Eden allows about 2 requests a second per IP address, not per bot, so five bots on one box share one allowance. The server queues at 600 ms so you cannot outrun it by accident
- Once a minute is plenty. Claynosaurz did 79 sales in seven days, so a poll costs one call plus one per new sale
- Key each sale on signature plus mint plus type, never the signature alone: one transaction can carry two sales, and a timestamp cursor replays the boundary after a restart
- The trap that ships: a misspelled collection symbol returns HTTP 200 and an empty list forever, so the bot looks healthy and posts nothing
Takeaway: poll once a minute, enrich each new sale with one get_asset call for the art, key on signature plus mint, and make an empty feed fail loudly.
Want the recipe's skeleton with the enrich call and the restart-safe seen set already wired in?
Cheapest Superman #1 with a low serial, and what is the premium over floor?DC Comics
search_collectionsfind_listings- 23 Superman collections answer the name; Superman (2023) #1 taken, the Magic Eden symbol confirmed
- 23 listed, the whole book read, every name carries a serial; floor 0.05 SOL
- Lowest serial for sale: 4/750 at 1.94 SOL, 39x floor
- 16/1500 asks 14.29 SOL (286x); 32/234 asks 106 SOL (2,120x)
- Cheapest low serial: 35/486 at 0.25 SOL, 4.9x floor
- Asks, not sales; the sales tool shows what low serials actually cleared at
Takeaway: 35/486 at 0.25 SOL is the only low serial priced near the market; the rest are wish prices.
Want to know what serials under 50 actually sold for in the last 90 days?
What are the top selling Claynosaurz species and traits? Any good deals currently listed?3D collectibles
search_collectionsget_collection_salesfind_listings- 7 days: 79 sales, 660.9 SOL, median 8.19 SOL; the week ramped from 3 sales a day to 21 by the end of it, top sale 13.99 SOL (Magic Eden feed, last 7 days)
- One wallet bought 13 of the 79 for 107.8 SOL, so a sixth of the week is one buyer
- Sales rows carry the name, not the traits, so "top selling species" cannot be read from the feed honestly; what can be read is what each species costs to enter
- Species floors, cheapest first: Stego 9.5 SOL, Trice 9.72, Ankylo 10.09, Rex 10.5, Bronto and Raptor 12; Class traits run dearer, Tracker and Stalker at 12
- Deals: none. Every one of the 15 cheapest listings is its own trait floor; nothing sits under the dearest trait it carries
- OpenSea's floor for the same traits reads 10.17 SOL against 9.5, so the two marketplaces agree within 7%
- Fills reported as magiceden_v2 (46), Magic Eden pools (24) and Tensor (9), as the feed labels them; a fill it did not index is not here
Takeaway: Demand is rising and Stego is the cheapest way in at 9.5 SOL; there is no mispriced listing today, only the floor.
Want the book watched, with a flag on the first listing that dips under its trait floor?
What does a graded Charizard cost on Collector Crypt, and does OpenSea agree?graded Pokemon
search_collectionsfind_listings- Collector Crypt is a curated entry (symbol collector_crypt, 5,382 listed); two lookalike symbols also answer, both empty
- 400 listings read cheapest first, 9 Charizard names matched
- The cheapest, 0.163 SOL, is a Ho-Oh EX from a Charizard deck, not a Charizard. Names, not keywords
- Real Charizards: Charizard V CGC 8.5 at 0.18 SOL (its own trait floor), Mega Charizard Y PSA 6 at 0.20, Charizard ex CGC 9.5 at 0.25, Charizard CGC 10 Pristine at 0.40
- OpenSea prices the same traits in USDC (CGC 10 Pristine floor 14 USDC), so no cross-marketplace comparison is made
- Asks on vaulted physical cards; the token is the claim ticket
Takeaway: 0.18 SOL buys a graded Charizard V today; the 0.163 "Charizard" is a Ho-Oh.
Want 30 days of Charizard sales, for what buyers actually paid?
Did any Shohei Ohtani cards sell this week, and for how much?MLB
search_collectionsget_collection_sales- 2026 MLB Base Series ICONs: 228 sales in 7 days across 99 players (Magic Eden)
- One Ohtani sale: 0.485 SOL, buyer 2srd…, seller 888p…
- That beats the top sale of every one of the 15 most-traded names; Kevin McGonigle's best was 0.32 SOL, Corbin Carroll sold 8 times under 0.01 SOL each
- Every sale named from the chain's asset index, none unmatched
- Magic Eden only; Tensor and peer-to-peer trades are not in the feed
Takeaway: One Ohtani cleared at 0.485 SOL, above anything the busiest names fetched.
Want this widened to 30 days and every other MLB set Candy has issued?
04Build with it build for your audience or just yourself
Think of it as your personal API and assistant for Solana collectibles, keyless and a lot smarter. Ask your AI for a sales bot, a deal finder, a chart, a marketplace analysis, a wallet tracker dashboard, and much more. whether you collect or you build.
Six quick examples, tiny to ambitious, each with real responses, more on our list: docs/BUILD-IDEAS.md. Start with get_integration_recipe.
05Trust & FAQ a tool, not an oracle
Why I built it. Because the answers about digital collectibles were wrong far too often, and wrong with total confidence. Empty histories read as "never traded". Floors in two currencies compared as if they were one. A lookalike collection answered for the real one. The data to get it right was on the chain the whole time; nobody had wired it to an AI.
I built that wire for CandyScan, where 895,000 assets get reconciled against the chain every day, then for everyone: chain first, every marketplace labelled, every claim checked, and a plain "cannot see" where the data is not there.
Who made it? Me, @P1xelCollector. I also build CandyScan, the Candy Digital Sales Tracker and a shelf of other web3 tools that read the chain, the marketplaces and the tokenization backbones.
Tested before launch. Offline and live suites cover every tool, the wallet and market logic and the prompt-injection defence: 18 suites run on every change to the main branch and every pull request, with a full-history secrets scan on every push to every branch; one suite plays a hostile marketplace and attacks the server. Every bug this has had is pinned by a test that failed before its fix. A weekly check watches the real sources and only makes noise when one breaks.
Do I need a wallet, a key or an account for this?
None of the three. There is no sign-up, it never asks for a wallet, and it holds no code that can sign anything. It runs on your own machine and reads public addresses. The one optional key is OpenSea's, which the server can issue for itself, free, and keep in ~/.solana-nft-mcp/; delete that folder and it is gone, or set COLLECTOR_MCP_NO_AUTO_KEYS=1 and it is never issued.
What is different between the Solana marketplaces?
Magic Eden holds the deepest book for collectibles and prices in SOL. OpenSea added Solana in August 2026 and often prices the same item in USDC, so its floor is not comparable to a SOL floor and this server refuses to merge them. Magic Eden also fills from its own pools beside the ordinary order book, and sales name the program that executed each one. Tensor is a real venue this server cannot read, so a market that looks quiet here may be busier there, and the answer says so.
Can it build sales bots for Discord and X? Dashboards and scripts?
Yes, and get_integration_recipe exists for exactly that: five recipes carrying the real endpoints, the rate limits, a runnable skeleton and the ways each one fails silently. Sales bots, floor trackers, wallet dashboards, deal finders and self-filling spreadsheets are all built on it. Your AI writes the code, the server supplies the data and tells your code what it could not see. 28 more ideas are in docs/BUILD-IDEAS.md.
Is this MCP server safe?
An MCP server runs on your machine with your permissions, so checking one before you install it is the right instinct. This one is read-only by design: 21 tools, each declared read-only, and no code that can sign, buy, sell, list or transfer. It is open source, so you can read the whole thing. Item names are minted by strangers, so they are treated as hostile text and cannot steer your assistant; a suite that attacks the server proves it on every commit. Nothing about you leaves your machine except the public address or name you asked about.
Known limits, and why
- Ownership history is Metaplex Core only. Core keeps the owner in the asset account, which is what makes a keyless decode possible. Holdings, activity and the asset-index view cover every standard. The gap is named, never returned as an empty list.
- No serial search across every Solana project. "Every #69 ever sold" needs a full chain index nobody offers keyless. Within a collection, listings, serials and traits are searchable.
- Sales history reaches as far as the venue keeps it. The answer says how far it got. Core ownership history comes from the chain back to the mint.
- Tensor and Rarible are not read. Tensor has no self-serve keys. Rarible relaunched a Solana marketplace in August 2026, but its API needs a key with a 100-requests-a-month free tier and cannot say which marketplace made a sale. Both are catalogued with the trigger for adding them.
- A chatbot in a browser tab cannot run it. ChatGPT and Grok on the web have no way to start a program on your computer. Apps that run on your machine can, including OpenAI's own: Codex CLI works, and it writes the same config file the ChatGPT desktop app reads. Everything in the install list above works.
- No buying, selling, listing or signing. The code does not exist. No valuations, no advice: ceilings, sales and gaps.
Other AI apps give me different answers. How do I know yours is right?
Ask where the number came from. Every figure carries its marketplace, its currency and the time it was read, and every item answer carries links to Solscan, Solana Explorer, SolanaFM and XRAY so you can check it in a browser yourself. An assistant answering without a tool is working from training data that is months or years old and cannot tell you that. When two sources disagree you see both, never an average.
More: FAQ · sources · trust & limitations
