Dune Analytics

Acesse dados do Dune Analytics para agentes de IA, incluindo métricas de DEX, estatísticas do EigenLayer e saldos de tokens Solana.

Documentação

Servidor MCP Dune Analytics

Um servidor Model Context Protocol (MCP) que conecta dados do Dune Analytics a agentes de IA, fornecendo acesso a métricas DEX, operadores EigenLayer e estatísticas AVS, e saldos de tokens na Solana. As ferramentas utilizam os endpoints predefinidos e endpoints de eco fornecidos pela Dune.

Recursos

  • Ferramentas:
    • get_dex_pair_metrics: Obter metadados essenciais e dados estatísticos para um par de tokens em uma cadeia específica
    • get_token_pairs_liquidity: Encontrar o par de tokens com maior liquidez em USD em uma determinada cadeia
    • get_svm_token_balances: Obter saldos de tokens para um endereço de carteira específico na Solana
    • get_eigenlayer_avs_metrics: Obter estatísticas para um AVS específico
    • get_eigenlayer_operator_metrics: Obter estatísticas para todos os operadores em um AVS específico
  • Formatos de Dados: Todos os resultados são retornados em formato JSON estruturado para facilitar o processamento

Pré-requisitos

  • Node.js 16+ ou Bun 1.0+
  • Uma chave de API válida do Dune Analytics (obtenha uma em Dune Analytics)

Instalação

  1. Clone o Repositório:

    git clone https://github.com/ekailabs/dune-mcp-server.git
    cd dune-mcp-server
    
  2. Instale as Dependências: Usando Bun:

    bun install
    

    Ou usando npm:

    npm install
    
  3. Configure as Variáveis de Ambiente: Crie um arquivo .env na raiz do projeto com base em .env.example:

    DUNE_API_KEY=your_api_key_here
    

    Alternativamente, defina-o como uma variável de ambiente do sistema:

    export DUNE_API_KEY="your_api_key_here"
    

Uso

Executando o Servidor

Usando Bun:

# Development mode with hot reload
bun dev

# Production mode
bun start

# Or build and run
bun build src/index.ts --outdir dist
bun dist/index.js

Usando npm:

# Development mode with hot reload
npm run dev

# Production mode
npm start

# Or build and run
npm run build
npm run start:prod

Adicionar ao Claude for Desktop

Para usar com o Claude for Desktop, adicione a configuração do servidor:

No MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json No Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "dune": {
      "command": "bun",
      "args": [
        "/ABSOLUTE/PATH/TO/dune-mcp-server/src/index.ts",
        "stdio"
      ]
    }
  }
}

Uso das Ferramentas

  1. get_dex_pair_metrics(chain, token_pair)

    • Descrição: Recupera metadados essenciais e dados estatísticos para um par de tokens
    • Entrada:
      • chain (string) - A blockchain para obter as estatísticas DEX
      • token_pair (string) - O par de tokens para obter as estatísticas DEX
    • Saída: Objeto JSON contendo métricas DEX
  2. get_token_pairs_liquidity(chain)

    • Descrição: Identifica o par de tokens com maior liquidez em USD em uma determinada cadeia
    • Entrada: chain (string) - A blockchain para obter as estatísticas DEX
    • Saída: Objeto JSON contendo métricas do principal par de tokens
  3. get_svm_token_balances(wallet_address)

    • Descrição: Obtém os saldos de um endereço de carteira específico na blockchain Solana
    • Entrada: wallet_address (string) - O endereço da carteira para obter o saldo
    • Saída: Matriz JSON de saldos de tokens
  4. get_eigenlayer_avs_metrics(avs_name)

    • Descrição: Obtém as estatísticas para um AVS específico
    • Entrada: avs_name (string) - O nome do AVS para obter as estatísticas
    • Saída: Objeto JSON contendo métricas do AVS
  5. get_eigenlayer_operator_metrics(avs_name)

    • Descrição: Obtém as estatísticas para todos os operadores em um AVS específico
    • Entrada: avs_name (string) - O nome do AVS para obter estatísticas dos operadores
    • Saída: Objeto JSON contendo métricas dos operadores

Exemplos de Comandos no Claude for Desktop

  • "Você pode me dar a liquidez do par de tokens 'USDC-WETH' na ethereum?"
  • "Mostre-me o par de tokens com maior liquidez na arbitrum"
  • "Você pode plotar a distribuição de stake dos operadores EigenDA?"
  • "Quantos stakers existem no AVS EigenDA?"

Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Executando evals

O pacote de evals carrega um cliente mcp que então executa o arquivo index.ts, portanto não há necessidade de recompilar entre os testes. Você pode carregar variáveis de ambiente prefixando o comando npx. A documentação completa pode ser encontrada aqui.

OPENAI_API_KEY=your-key  npx mcp-eval src/evals/evals.ts src/index.ts

Agradecimentos