NFT Data MCP
Use this server to fetch NFT collection market data through the get_collection_data MCP tool.
Retrieve OpenSea collection data by slug, such as
azuki.Get collection name, contracts, floor price, currency, supply, unique owners, and creation date.
Get 1-day, 7-day, 30-day, and lifetime sales counts and trading volume.
Query NFT collections across 30+ blockchain networks supported by NFT Data/OpenSea.
Pay automatically per request: $0.002 in USDC on Base via x402 by default or MPP if configured.
Benefit from 5-minute response caching and concurrent identical request de-duplication.
Use it from Claude Desktop or other MCP-compatible clients/agents.
Retrieves OpenSea collection market data such as floor price, sales, volume, owners, total supply, contracts, and creation date by collection slug.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NFT Data MCP What's the floor price and 7-day volume of the Azuki collection?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.

NFT Data MCP
A multichain NFT data MCP server that gives AI assistants, agents, and other MCP-compatible clients access to the NFT Data API through a single tool: get_collection_data.
Compatible with Claude Desktop and other MCP-compatible applications, AI agents, and clients, including future clients that support the Model Context Protocol (MCP).
Each API request is paid automatically at $0.002 in USDC on Base using the x402 payment protocol (default) or, when you select it, the Machine Payments Protocol (MPP).
Retrieve NFT collection data across 30+ blockchain networks through the NFT Data API's OpenSea integration, including Ethereum, Base, Ink, Arc, HyperEVM, Robinhood Chain, Solana, and more.
MCP Registry: https://registry.modelcontextprotocol.io/?q=nftdata
NFT Data GitHub: https://github.com/Nomad07/nft-data
Prerequisites
Node.js 20 or newer (required by the x402 SDK)
A dedicated wallet funded with a small amount of USDC on Base mainnet
Always use a dedicated wallet with only a small balance. Never use your primary wallet or share its private key.
Related MCP server: santyvv-data-mcp
Claude Desktop setup
Add the following block to claude_desktop_config.json (usually found in ~/Library/Application Support/Claude/ on macOS or %APPDATA%\Claude\ on Windows):
{
"mcpServers": {
"nftdata": {
"command": "npx",
"args": ["-y", "nftdata-mcp@1.1.0"],
"env": {
"EVM_PRIVATE_KEY": "YOUR_EVM_PRIVATE_KEY"
}
}
}
}Replace YOUR_EVM_PRIVATE_KEY with the private key of your dedicated wallet (0x followed by 64 hex characters). Then restart Claude Desktop.
The server communicates over stdio and is launched automatically by Claude Desktop. Running it by hand shows no output; it waits for an MCP client to connect.
First query
After restarting Claude Desktop:
Open a new conversation.
To make sure Claude selects the right server when you have multiple MCP servers configured, start with an explicit request:
Use the NFT Data MCP server
When Claude asks for a collection slug, enter an example slug such as:
azukiYou can use the slug of any existing NFT collection instead.
Continue with natural follow-up questions. If Claude does not use the NFT Data server, ask it explicitly to do so.
You can also ask directly by collection name or OpenSea slug. Claude will retrieve the latest collection statistics, including floor price, sales volume, owner count, supply, and lifetime metrics. Each newly paid successful request includes a payment transaction hash and a BaseScan verification link. Cached responses do not, because no new payment is made.
Example: Azuki collection report
The following is an example response from one query. Market data changes continuously; these values are from a specific query and are not current live data.
Collection overview
Field | Value |
Name | Azuki |
Slug |
|
Chain | Ethereum |
Contract |
|
Created | January 12, 2022 |
Total supply | 10,000 |
Unique owners | 4,394 |
Floor price | 0.4933 ETH |
Market activity
Period | Sales | Volume |
24 hours | 21 | 10.15 ETH |
7 days | 163 | 96.68 ETH |
30 days | 471 | 325.72 ETH |
Lifetime | 93,156 | 831,992.65 ETH |
Payment
Field | Value |
Cost | $0.002 |
Protocol | x402 |
Transaction |
Customize your results
The server supplies the underlying collection data returned by the API. Claude can organize that information in the format you prefer, from a concise summary to a detailed report, tables, or comparisons. Simply ask Claude how you want the results presented. This changes the presentation, not the source values.
Raw request and response
Claude Desktop may show the tool request and returned data through its tool-activity details (the exact label varies by client version).
Tool request
{ "collection": "azuki" }{
"name": "Azuki",
"slug": "azuki",
"contracts": [
{
"address": "0xed5af388653567af2f388e6224dc7c4b3241c544",
"chain": "ethereum"
}
],
"floor_price": 0.49328599,
"floor_price_currency": "ETH",
"one_day_sales": 21,
"one_day_volume": 10.150091000000002,
"seven_day_sales": 163,
"seven_day_volume": 96.67526161112121,
"thirty_day_sales": 471,
"thirty_day_volume": 325.72023569476767,
"total_sales": 93156,
"total_volume": 831992.6461159982,
"num_owners": 4394,
"total_supply": 10000,
"created_date": "2022-01-12",
"one_day_volume_currency": "ETH",
"seven_day_volume_currency": "ETH",
"thirty_day_volume_currency": "ETH",
"total_volume_currency": "ETH"
}Raw floating-point values have more decimal places than the rounded values in the report above.
Payment verification
Transaction hash: 0x4fb35acc31a9f6841647ca2533a7f9ac7113f54364e979b8de4786bf1de580f8
Verify on BaseScan: https://basescan.org/tx/0x4fb35acc31a9f6841647ca2533a7f9ac7113f54364e979b8de4786bf1de580f8
Payment Protocols and Supported Networks
Product | Payment Protocols | Payment Networks |
NFT Data (website/API) | x402 and MPP | x402 - Base and Solana; MPP - Base |
NFT Data (MCP server) | x402 (default) or MPP, selected with | x402 - Base; MPP - Base |
Note: The NFT Data website/API and the NFT Data MCP server have different payment capabilities. The MCP server pays on Base only, with one protocol per run (x402 by default, MPP if you set
NFTDATA_PAYMENT_PROTOCOL=mpp). Solana is not supported by the MCP server.
Data network refers to the blockchain where an NFT collection exists. NFT Data is a multichain service supporting NFT collections across 30+ blockchain networks through the NFT Data API's OpenSea integration, including Ethereum, Base, Ink, Arc, HyperEVM, Robinhood Chain, and Solana, among others. OpenSea continues to expand its supported blockchain networks, so coverage may grow over time. The data network is independent of the payment network used to pay for API requests.
Payment network refers to the blockchain used to pay for each API request. This server pays on Base mainnet only, using USDC via x402 or MPP, regardless of which chain the queried collection is on.
x402 and payment verification
Each request is paid automatically using the x402 protocol over Base mainnet. The payment flow:
The server sends the API request.
The API responds with HTTP 402 and a payment challenge.
Before signing, the server validates the challenge:
Scheme:
exactNetwork: Base mainnet (
eip155:8453)Token: USDC on Base (
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)Amount: exactly 2000 atomic units ($0.002)
Recipient:
0x344143199642e87320785823c20c2df107d17534
If everything matches, the wallet signs and submits the payment.
The API fulfills the request and returns the collection data along with the on-chain transaction hash.
Every newly paid successful request includes:
Payment: 0x...
Verify: https://basescan.org/tx/0x...A cache hit (the same collection requested again within 5 minutes) is served without a new payment, so it does not include these lines.
This server supports x402 and MPP on Base only. Solana payments are not implemented.
MPP mode
Set NFTDATA_PAYMENT_PROTOCOL=mpp to pay with MPP (EVM charge, USDC on Base) instead of x402:
"env": {
"EVM_PRIVATE_KEY": "YOUR_EVM_PRIVATE_KEY",
"NFTDATA_PAYMENT_PROTOCOL": "mpp"
}The protocol is chosen once at startup and never changes during a run. The server never falls back from one protocol to the other: if the API does not offer an acceptable payment in the selected protocol, nothing is signed and the call fails.
Unset or empty selects x402. Only
x402andmppare accepted; any other value (for exampleautoorx402,mpp) stops startup with an error.The same validation applies before signing: Base mainnet, USDC, exactly 2000 atomic units ($0.002), and the official recipient. Payment splits are refused.
At most one payment credential is signed per tool call. A repeated 402 after payment is not retried.
The spend limit, 5-minute cache and de-duplication of concurrent identical calls work the same way in both modes.
MPP payments use the same wallet (
EVM_PRIVATE_KEY) and the same USDC balance on Base.
Configuration
Variable | Required | Default | Description |
| yes | - | Private key ( |
| no |
| Max signed payments per session. Integer 1–1000; any other value stops startup with an error |
| no |
| Payment protocol: |
| no |
| Request timeout in milliseconds (1000–60000) |
| no |
| Accepts only the official NFT Data endpoint; anything else stops startup |
Behavior
Sends
POST /api/get-collection-datawith body{"collection": "<slug>"}.The slug is trimmed and lowercased, then must match
^[a-z0-9][a-z0-9_-]*$(max 100 characters); otherwise no request is made.Each signed payment counts against
NFTDATA_MAX_REQUESTS, including payments for requests that later fail or time out.No automatic retries: one tool call makes at most one payment attempt.
Successful responses are cached for 5 minutes per slug. Concurrent identical calls share a single in-flight request.
Cache hits do not include a payment transaction hash (no new payment was made).
Returns generic errors for
400(invalid slug),404(collection not found),429(rate limit, with retry delay), timeouts, and other failures. Server and payment details are not exposed to the MCP client.
Troubleshooting
Server does not appear in Claude Desktop
Verify the claude_desktop_config.json path, check for JSON syntax errors, and restart Claude Desktop fully.
EVM_PRIVATE_KEY is missing or malformed
The key must be 0x followed by exactly 64 hex characters. Check for extra whitespace or a missing 0x prefix.
paid request limit ... reached
The session has reached NFTDATA_MAX_REQUESTS. Restart Claude Desktop to reset the counter, or set a higher limit.
Request timed out A payment may have been signed before the timeout. The server does not retry automatically.
Imports fail after an SDK update The x402 SDK changes frequently. Check the x402 docs and the nftdata-mcp changelog for the latest compatible version.
Run from source
npm installSet the key for the current shell session only, then start:
# macOS / Linux
export EVM_PRIVATE_KEY=0x...
npm start# Windows PowerShell
$env:EVM_PRIVATE_KEY = "0x..."
npm start:: Windows cmd
set EVM_PRIVATE_KEY=0x...
npm startTo use a local checkout with Claude Desktop, set "command": "npx" and "args": ["tsx", "/absolute/path/to/nftdata-mcp/server.ts"].
Build and test
npm run build # compiles to dist/
npm test # offline tests (mocked API), no network and no real paymentsLinks
Limitations
Only x402 and MPP on Base mainnet are supported for payments. Solana is not implemented.
The expected recipient address is hardcoded. If the NFT Data payout address changes, update
OFFICIAL_PAY_TOinlib.tsand release a new version.The payment paths depend on the installed
@x402/*andmppxSDKs.npm testexercises them against a mocked API (no real payments).The x402 SDK changes quickly. If imports fail, check the x402 docs.
Available Tools
1 toolget_collection_dataA
Get OpenSea NFT collection market data in one call: name, contracts, floor price, 1/7/30-day and lifetime sales and volume, unique owners, total supply, creation date. Costs $0.002 per call (x402). collection is the OpenSea slug from the collection URL: opensea.io/collection/ (e.g. 'azuki', 'basedpunks'); it is trimmed and lowercased. Prices are in the currency given in the *_currency fields (ETH, USDC, HYPE...).
Inputs: collection (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
There is only one tool, so there is no possibility of selecting the wrong tool or confusing it with another. Its purpose (fetch market data for a single OpenSea collection) is unambiguous.
The single tool follows a clear, conventional verb_noun snake_case pattern (get_collection_data). With a one-tool surface there is no competing convention to clash with.
The tool bundles the entire collection-data lookup into one call, which is well-matched to a narrow data-provider service. However, a single-tool surface is thin by the rubric's standards, and there is no companion operation (e.g. resolving or searching collections) to round it out.
For a 'get data for one collection' endpoint the payload is comprehensive (floor, sales, volume, owners, supply). But the surface has no way to discover or search collections—the caller must already know the exact OpenSea slug—and no historical/timeseries retrieval, which are notable gaps for an NFT data service.
Maintenance
Related MCP Connectors
Pay-per-use tool API for AI agents. Free tier, x402 USDC micropayments, or API key.
Pay-per-use weather, environment, finance, and on-chain intelligence tools for AI agents via x402.
Market data and web intelligence for AI agents, paid per call in USDC on Base via x402.
Pay-per-call tools for AI agents: product photos, documents, web pages, data. USDC via x402.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceNFT collection floor price, volume, holders, rarity data for Ethereum and Base via Alchemy. Pay-per-call via x402 (USDC on Base L2) without API key or signup.MIT
- AlicenseAqualityCmaintenanceEnables AI agents to fetch crypto market and on-chain data, including prices across venues, token facts, OHLC candles, market overview, DeFi TVL, and wallet balances, with two free tools and the rest paid per call in USDC on Base via x402.848 npmMIT
- AlicenseAqualityCmaintenanceEnables AI agents to access pay-per-call Base and Polygon onchain data (balances, tokens, transactions, gas, blocks, and trending pairs) settled in USDC via x402, with no API key required.18MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to verify that an x402 API is live, real, and fairly priced before authorizing a payment, and to query live market data on agent commerce across Base and Solana. Exposes twelve tools covering pre-payment checks, provider ranking, liveness lookups, market snapshots and diffs, circular-settlement and whale signals, token metrics, provider revenue, and monthly report data, with free, free-key, and paid x402 tiers.MIT