Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
OpenSea NFT collection data via NFT Data API, paid per request with x402.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
EVM_PRIVATE_KEY, NFTDATA_MAX_REQUESTSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"nftdata": {
"command": "npx",
"args": [
"-y",
"nftdata-mcp"
],
"env": {
"EVM_PRIVATE_KEY": "your-value",
"NFTDATA_MAX_REQUESTS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add nftdata --env EVM_PRIVATE_KEY=your-value --env NFTDATA_MAX_REQUESTS=your-value -- npx -y nftdata-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"nftdata": {
"command": "npx",
"args": [
"-y",
"nftdata-mcp"
],
"env": {
"EVM_PRIVATE_KEY": "your-value",
"NFTDATA_MAX_REQUESTS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"nftdata": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"nftdata-mcp"
],
"env": {
"EVM_PRIVATE_KEY": "your-value",
"NFTDATA_MAX_REQUESTS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
NFTDATA_MAX_REQUESTS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account Nomad07, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: EVM_PRIVATE_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.0.3) reached the registry 6 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, EmbeddedCI BenchPod
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Drive a BenchPod hardware-in-the-loop bench: power, flash, UART, I2C, CAN, analog and logic.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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.
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.
Always use a dedicated wallet with only a small balance. Never use your primary wallet or share its private key.
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.0.3"], "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.
After restarting Claude Desktop:
Use the NFT Data MCP server.
azuki
You can use the slug of any existing NFT collection instead.
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 successful request includes a payment transaction hash and a BaseScan verification link.
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 | azuki |
| Chain | Ethereum |
| Contract | 0xed5af388653567af2f388e6224dc7c4b3241c544 |
| 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 | 0x4fb3...580f8 |
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.
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" }
Full raw response
{
"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
| Product | Payment Protocols | Payment Networks |
|---|---|---|
| NFT Data (website/API) | x402 and MPP | x402 - Base and Solana; MPP - Base |
| NFT Data (MCP server) | x402 | Base |
Note: The NFT Data website/API and the NFT Data MCP server have different payment capabilities. The MCP server currently supports x402 payments on Base only; MPP support is not implemented in this package.
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, regardless of which chain the queried collection is on.
Each request is paid automatically using the x402 protocol over Base mainnet. The payment flow:
exacteip155:8453)0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)0x344143199642e87320785823c20c2df107d17534Every successful response includes:
Payment: 0x...
Verify: https://basescan.org/tx/0x...
This server supports x402 on Base only. Solana and MPP payment methods are not implemented.
| Variable | Required | Default | Description |
|---|---|---|---|
EVM_PRIVATE_KEY | yes | - | Private key (0x + 64 hex chars) of the wallet that pays for calls |
NFTDATA_MAX_REQUESTS | no | 100 | Max signed payments per session. Integer 1–1000; any other value stops startup with an error |
NFTDATA_TIMEOUT_MS | no | 15000 | Request timeout in milliseconds (1000–60000) |
NFTDATA_URL | no | https://www.nftdata.app/api/get-collection-data | Accepts only the official NFT Data endpoint; anything else stops startup |
POST /api/get-collection-data with body {"collection": " "}.^a-z0-9*$ (max 100 characters); otherwise no request is made.NFTDATA_MAX_REQUESTS, including payments for requests that later fail or time out.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.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.
npm install
Set 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 start
To use a local checkout with Claude Desktop, set "command": "npx" and "args": ["tsx", "/absolute/path/to/nftdata-mcp/server.ts"].
npm run build # compiles to dist/
npm test # offline unit tests, no network and no payments
OFFICIAL_PAY_TO in lib.ts and release a new version.@x402/* SDK and is not covered by the offline unit tests.