nft-analytics-mcp

nft-analytics-mcp

3.2

If you are the rightful owner of nft-analytics-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

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

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 file for details.