NFT Analytics MCP
An MCP server that delivers NFT collection analytics powered by data from Dune Analytics.
Features
- Analytics:
- Daily trading volume for top 5 Ethereum NFT collections
- Number of daily sales by collection
- Average selling prices per collection
- Unique buyers and sellers by collection
- New NFT owner counts
- Returns results in formatted markdown tables for easy reading
Prerequisites
- Python 3.10+
- uv (recommended package manager)
- A valid Dune Analytics API key
Installation
Clone the Repository
git clone https://github.com/kukapay/nft-analytics-mcp.git cd nft-analytics-mcp
Install Dependencies
uv sync
Installing to Claude Desktop:
Install the server as a Claude Desktop application:
uv run mcp install main.py --name "NFT Analytics"
Configuration file as a reference:
{ "mcpServers": { "NFT Analytics": { "command": "uv", "args": [ "--directory", "/path/to/nft-analytics-mcp", "run", "main.py" ], "env": { "DUNE_API_KEY": "dune_api_key"} } } }
Replace
/path/to/nft-analytics-mcp
with your actual installation path, anddune_api_key
with your API key from Dune Analytics.
Usage
The server provides the following tools, accessible via the MCP interface:
get_daily_trading_volume_by_collection(limit: int = 1000)
: Retrieves daily trading volume for top 5 Ethereum NFT collections.get_daily_sales_by_collection(limit: int = 1000)
: Fetches the number of daily sales per collection.get_average_price_by_collection(limit: int = 1000)
: Gets the average selling price for each collection.get_unique_traders_by_collection(limit: int = 1000)
: Tracks unique buyers and sellers by collection.get_new_owners()
: Returns the count of new NFT wallet owners.
All tools return data in markdown table format (except get_new_owners
, which returns a string).
get_daily_trading_volume_by_collection
Prompt:
Show me the daily trading volume for the top 5 Ethereum NFT collections over the last 500 records.
Output:
| day | Bored Ape Yacht Club | Doodles | Good Vibes Club | PudgyPenguins |
|:-----------|-----------------------:|----------:|------------------:|-----------------:|
| 2025-06-12 | 344501 | 35871.7 | 21391.8 | 179928 |
| 2025-06-11 | 156750 | 119613 | 62610.2 | 262158 |
| 2025-06-10 | 243575 | 108845 | 124961 | 290297 |
| 2025-06-09 | 31536.8 | 226234 | 101207 | 163011 |
| 2025-06-08 | 117099 | 137788 | 83116.6 | 136718 |
| 2025-06-07 | 180229 | 52635.8 | 110748 | 140412 |
| 2025-06-06 | 309650 | 57154 | 33671.2 | 425785 |
| 2025-06-05 | 258358 | 93874.1 | 79988 | 330515 |
| 2025-06-04 | 208540 | 110977 | 118858 | 309126 |
| 2025-06-03 | 321258 | 80658.5 | 77724.4 | 217688 |
| 2025-06-02 | 215127 | 198097 | 153964 | 120258 |
| 2025-06-01 | 77824.4 | 157749 | 141651 | 185943 |
| 2025-05-31 | 155234 | 133476 | 210537 | 118505 |
get_daily_sales_by_collection
Prompt:
Get the number of daily sales for NFT collections, limited to 500 records.
Output:
| day | Bored Ape Yacht Club | Doodles | Good Vibes Club | PudgyPenguins |
|:-----------|-----------------------:|----------:|------------------:|----------------:|
| 2025-06-12 | 10 | 13 | 9 | 7 |
| 2025-06-11 | 4 | 43 | 24 | 10 |
| 2025-06-10 | 7 | 35 | 31 | 11 |
| 2025-06-09 | 1 | 86 | 40 | 7 |
| 2025-06-08 | 3 | 49 | 35 | 6 |
| 2025-06-07 | 5 | 20 | 40 | 6 |
| 2025-06-06 | 9 | 22 | 14 | 19 |
| 2025-06-05 | 8 | 33 | 31 | 15 |
| 2025-06-04 | 7 | 39 | 28 | 13 |
| 2025-06-03 | 9 | 29 | 27 | 9 |
| 2025-06-02 | 8 | 63 | 51 | 5 |
| 2025-06-01 | 2 | 55 | 38 | 7 |
| 2025-05-31 | 6 | 49 | 74 | 5 |
get_average_price_by_collection
Prompt:
What are the average selling prices for NFT collections? Limit to 500 records.
Output:
| | average_price_usd | collection |
|---:|--------------------:|:---------------------|
| 0 | 35340.6 | Bored Ape Yacht Club |
| 1 | 25076.2 | PudgyPenguins |
| 2 | 6912.56 | Milady |
| 3 | 6530.12 | Azuki |
| 4 | 5796.55 | MutantApeYachtClub |
| 5 | 3122.59 | LilPudgys |
| 6 | 3056.9 | Doodles |
| 7 | 2778.29 | Good Vibes Club |
| 8 | 1815.92 | Moonbirds |
get_unique_traders_by_collection
Prompt:
List the unique buyers and sellers for NFT collections, up to 500 records.
Output:
| | collection | unique_buyers | unique_sellers |
|---:|:---------------------|----------------:|-----------------:|
| 0 | Doodles | 518 | 511 |
| 1 | PudgyPenguins | 170 | 201 |
| 2 | Good Vibes Club | 492 | 670 |
| 3 | Bored Ape Yacht Club | 134 | 151 |
get_new_owners
Prompt:
How many new wallets have acquired NFTs recently?`
Output:
63302
License
This project is licensed under the MIT License. See the LICENSE file for details.