Skip to main content
Glama

nft-analytics-mcp

README.md6.9 kB
# NFT Analytics MCP An MCP server that delivers NFT collection analytics powered by data from Dune Analytics. ![GitHub License](https://img.shields.io/github/license/kukapay/nft-analytics-mcp) ![Python Version](https://img.shields.io/badge/python-3.10%2B-blue) ![Status](https://img.shields.io/badge/status-active-brightgreen.svg) ## 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](https://github.com/astral-sh/uv) (recommended package manager) - A valid Dune Analytics API key ## Installation 1. **Clone the Repository** ```bash git clone https://github.com/kukapay/nft-analytics-mcp.git cd nft-analytics-mcp ``` 2. **Install Dependencies** ```bash uv sync ``` 3. **Installing to Claude Desktop**: Install the server as a Claude Desktop application: ```bash uv run mcp install main.py --name "NFT Analytics" ``` Configuration file as a reference: ```json { "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](LICENSE) file for details.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kukapay/nft-analytics-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server