Dune Analytics

Accede a datos de Dune Analytics para agentes de IA, incluyendo métricas DEX, estadísticas de EigenLayer y saldos de tokens de Solana.

Documentación

Servidor MCP de Dune Analytics

Un servidor de Model Context Protocol (MCP) que conecta los datos de Dune Analytics con agentes de IA, proporcionando acceso a métricas DEX, operadores de EigenLayer y estadísticas de AVS, y saldos de tokens en Solana. Las herramientas utilizan los endpoints predefinidos y endpoints de eco proporcionados por Dune.

Características

  • Herramientas:
    • get_dex_pair_metrics: Obtener metadatos esenciales y datos estadísticos para un par de tokens dado en una cadena específica
    • get_token_pairs_liquidity: Encontrar el par de tokens con mayor liquidez en USD en una cadena dada
    • get_svm_token_balances: Obtener saldos de tokens para una dirección de billetera específica en Solana
    • get_eigenlayer_avs_metrics: Obtener estadísticas para un AVS específico
    • get_eigenlayer_operator_metrics: Obtener estadísticas para todos los operadores en un AVS específico
  • Formatos de datos: Todos los resultados se devuelven en formato JSON estructurado para facilitar el procesamiento

Requisitos previos

  • Node.js 16+ o Bun 1.0+
  • Una clave de API válida de Dune Analytics (obtén una en Dune Analytics)

Instalación

  1. Clonar el repositorio:

    git clone https://github.com/ekailabs/dune-mcp-server.git
    cd dune-mcp-server
    
  2. Instalar dependencias: Usando Bun:

    bun install
    

    O usando npm:

    npm install
    
  3. Configurar variables de entorno: Crea un archivo .env en la raíz del proyecto basado en .env.example:

    DUNE_API_KEY=your_api_key_here
    

    Alternativamente, configúralo como una variable de entorno del sistema:

    export DUNE_API_KEY="your_api_key_here"
    

Uso

Ejecutar el 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

Añadir a Claude for Desktop

Para usar con Claude for Desktop, añade la configuración del servidor:

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

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

Uso de herramientas

  1. get_dex_pair_metrics(chain, token_pair)

    • Descripción: Recupera metadatos esenciales y datos estadísticos para un par de tokens dado
    • Entrada:
      • chain (string) - La cadena de bloques para obtener las estadísticas DEX
      • token_pair (string) - El par de tokens para obtener las estadísticas DEX
    • Salida: Objeto JSON que contiene métricas DEX
  2. get_token_pairs_liquidity(chain)

    • Descripción: Identifica el par de tokens con mayor liquidez en USD en una cadena dada
    • Entrada: chain (string) - La cadena de bloques para obtener las estadísticas DEX
    • Salida: Objeto JSON que contiene métricas del par de tokens principal
  3. get_svm_token_balances(wallet_address)

    • Descripción: Obtiene los saldos de una dirección de billetera específica en la cadena de bloques Solana
    • Entrada: wallet_address (string) - La dirección de la billetera para obtener el saldo
    • Salida: Arreglo JSON de saldos de tokens
  4. get_eigenlayer_avs_metrics(avs_name)

    • Descripción: Obtiene las estadísticas para un AVS específico
    • Entrada: avs_name (string) - El nombre del AVS para obtener las estadísticas
    • Salida: Objeto JSON que contiene métricas AVS
  5. get_eigenlayer_operator_metrics(avs_name)

    • Descripción: Obtiene las estadísticas para todos los operadores en un AVS específico
    • Entrada: avs_name (string) - El nombre del AVS para obtener estadísticas de operadores
    • Salida: Objeto JSON que contiene métricas de operadores

Ejemplos de comandos en Claude for Desktop

  • "¿Puedes darme la liquidez del par de tokens 'USDC-WETH' en ethereum?"
  • "Muéstrame el par de tokens con mayor liquidez en arbitrum"
  • "¿Puedes graficar la distribución de participación de los operadores de EigenDA?"
  • "¿Cuántos stakers hay en el AVS de EigenDA?"

Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENCIA para más detalles.

Ejecución de evaluaciones

El paquete de evaluaciones carga un cliente mcp que luego ejecuta el archivo index.ts, por lo que no es necesario reconstruir entre pruebas. Puedes cargar variables de entorno prefijando el comando npx. La documentación completa se puede encontrar aquí.

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

Agradecimientos