MCP Hub
Back to servers

dune-mcp

Connect AI assistants to Dune Analytics to execute complex SQL queries across 20+ blockchains, manage saved queries, and perform custom data uploads.

Tools
19
Updated
Jan 8, 2026
Validated
Jan 9, 2026

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 URIDescription
dune://guide/sql-syntaxDuneSQL (Trino) syntax reference, data types, functions
dune://guide/tablesAvailable tables: dex.trades, prices.usd, chain-specific tables
dune://guide/query-patternsCommon analytics patterns: volume, holders, whales, gas
dune://guide/parametersHow to use query parameters
dune://guide/errorsCommon 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

Reviews

No reviews yet

Sign in to write a review