Skip to main content
Glama

Dune MCP Server

A comprehensive MCP (Model Context Protocol) server for interacting with Dune Analytics - the leading platform for blockchain data analysis.

Features

Tools

This server exposes all major Dune Analytics API endpoints as MCP tools:

SQL Execution

  • execute_sql - Execute raw SQL queries against Dune's data engine

  • get_execution_status - Check query execution status

  • get_execution_results - Retrieve query results (JSON)

  • get_execution_results_csv - Retrieve query results (CSV)

  • cancel_execution - Cancel a running query

Saved Query Management

  • execute_query - Execute a saved query by ID

  • get_query - Get query details

  • get_query_results - Get latest cached results without re-executing

  • get_query_results_csv - Get latest results as CSV

  • create_query - Create and save a new query

  • update_query - Update an existing query

  • archive_query - Archive a query

  • make_query_private / make_query_public - Change query visibility

Data Upload

  • upload_csv - Upload CSV data to create/update a table

  • create_table - Create a new table with schema

  • insert_table_rows - Insert rows into an existing table

  • clear_table - Clear all data from a table

  • delete_table - Permanently delete a table

Resources

The server exposes comprehensive documentation as MCP resources to help LLMs write valid DuneSQL queries:

Resource URI

Description

dune://guide/sql-syntax

DuneSQL (Trino) syntax reference, data types, functions

dune://guide/tables

Available tables: dex.trades, prices.usd, chain-specific tables

dune://guide/query-patterns

Common analytics patterns: volume, holders, whales, gas

dune://guide/parameters

How to use query parameters

dune://guide/errors

Common errors and troubleshooting

Installation

cd dune-mcp pip install -e .

Configuration

Set your Dune API key as an environment variable:

export DUNE_API_KEY="your-api-key-here"

Get your API key from Dune Settings.

Usage

Running the Server

# Direct execution python server.py # Or via installed script dune-mcp

Claude Desktop Configuration

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{ "mcpServers": { "dune": { "command": "python", "args": ["/path/to/dune-mcp/server.py"], "env": { "DUNE_API_KEY": "your-api-key-here" } } } }

Or using uv:

{ "mcpServers": { "dune": { "command": "uv", "args": ["run", "--directory", "/path/to/dune-mcp", "python", "server.py"], "env": { "DUNE_API_KEY": "your-api-key-here" } } } }

Example Queries

Simple DEX Volume Query

# Using execute_sql tool result = await execute_sql( sql=""" SELECT project, SUM(amount_usd) as volume FROM dex.trades WHERE block_time > now() - interval '24' hour GROUP BY 1 ORDER BY 2 DESC LIMIT 10 """, performance="medium" )

Cross-Chain Analysis

result = await execute_sql( sql=""" SELECT blockchain, COUNT(*) as tx_count, SUM(amount_usd) as volume_usd FROM dex.trades WHERE block_time > now() - interval '7' day GROUP BY 1 ORDER BY 3 DESC """ )

Create Parameterized Query

result = await create_query( name="Token Volume Analysis", query_sql=""" SELECT DATE_TRUNC('day', block_time) as day, SUM(amount_usd) as volume FROM dex.trades WHERE token_bought_symbol = '{{token}}' AND block_time > now() - interval '{{days}}' day GROUP BY 1 ORDER BY 1 """, parameters=[ {"key": "token", "value": "UNI", "type": "text"}, {"key": "days", "value": "30", "type": "number"} ] )

Available Tables

Curated (Cross-Chain)

  • dex.trades - DEX trades across all EVM chains

  • dex_solana.trades - Solana DEX trades

  • nft.trades - NFT trades

  • prices.usd - Token prices

  • tokens.erc20 - ERC20 token metadata

Chain-Specific

  • ethereum.transactions, ethereum.logs, ethereum.traces

  • polygon.transactions, polygon.logs, etc.

  • arbitrum.transactions, optimism.transactions, base.transactions

Decoded Protocol Tables

  • uniswap_v3_ethereum.Pair_evt_Swap

  • aave_v3_ethereum.Pool_evt_Supply

  • And many more...

API Reference

See Dune API Documentation for complete API details.

License

MIT

Latest Blog Posts

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/mwamedacen/dune-mcp'

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