JUHE API Marketplace
kukapay avatar
MCP Server

nft-analytics-mcp

An MCP server that delivers NFT collection analytics powered by data from Dune Analytics.

1
GitHub Stars
8/22/2025
Last Updated
MCP Server Configuration
1{
2 "name": "NFT Analytics",
3 "command": "uv",
4 "args": [
5 "--directory",
6 "/path/to/nft-analytics-mcp",
7 "run",
8 "main.py"
9 ],
10 "env": {
11 "DUNE_API_KEY": "dune_api_key"
12 }
13}
JSON13 lines

README Documentation

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

  1. Clone the Repository

    git clone https://github.com/kukapay/nft-analytics-mcp.git
    cd nft-analytics-mcp
    
  2. Install Dependencies

    uv sync
    
  3. 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, and dune_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.

Quick Install

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source