数据分析桥接服务

Dune Analytics MCP Server是一个模型上下文协议服务器,将Dune Analytics数据桥接到AI代理,提供DEX指标、EigenLayer操作符和AVS统计数据以及Solana上的代币余额访问。

  • by ekailabs
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 ekailabs/dune-mcp-server

使用说明

沙丘分析MCP服务器

一个模型上下文协议(MCP)服务器,将Dune Analytics数据连接到AI代理,提供对DEX指标、特征层运算符和AVS统计数据的访问,以及Solana上的令牌余额。这些工具利用Dune提供的预设端点和回声端点。

特性

  • 工具:
    • get_dex_pair_metrics:获取特定链上给定令牌对的基本元数据和统计数据
    • get_token_pairs_liquidity:查找给定链上美元流动性最高的代币对
    • get_svm_token_balances:获取Solana上特定钱包地址的代币余额
    • get_eigenlayer_avs_metrics:获取特定AVS的统计数据
    • get_eigenlayer_operator_metrics:获取特定AVS中所有操作员的统计信息
  • 数据格式:所有结果均以结构化JSON格式返回,便于处理

先决条件

  • Node.js 16+或Bun 1.0+
  • 有效的Dune Analytics API密钥(从 沙丘分析)

安装

  1. 克隆存储库:

    git clone https://github.com/ekailabs/dune-mcp-server.git
    cd dune-mcp-server
    
  2. 再进行: 使用Bun:

    bun install
    

    或者使用npm:

    npm install
    
  3. 设置环境变量: 创建一个 .env 项目根目录中的文件基于 .env.example:

    DUNE_API_KEY=your_api_key_here
    

    或者,将其设置为系统环境变量:

    export DUNE_API_KEY="your_api_key_here"
    

用法

运行服务器

使用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

使用npm:

# Development mode with hot reload
npm run dev

# Production mode
npm start

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

添加到Claude for Desktop

要与Claude for Desktop一起使用,请添加服务器配置:

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

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

工具使用

  1. get_dex_pair_metrics(chain, token_pair)

    • 描述:检索给定令牌对的基本元数据和统计数据
    • 输入:
      • chain (string)-获取DEX统计数据的区块链
      • token_pair (string)-用于获取DEX统计数据的令牌对
    • 输出:包含DEX指标的JSON对象
  2. get_token_pairs_liquidity(chain)

    • 描述:标识给定链上美元流动性最高的代币对
    • 输入: chain (string)-获取DEX统计数据的区块链
    • 输出:包含顶级令牌对度量的JSON对象
  3. get_svm_token_balances(wallet_address)

    • 描述:获取Solana区块链上特定钱包地址的余额
    • 输入: wallet_address (string)-获取余额的钱包地址
    • 输出:JSON代币余额数组
  4. get_eigenlayer_avs_metrics(avs_name)

    • 描述:获取特定AVS的统计信息
    • 输入: avs_name (string)-要获取统计数据的AVS的名称
    • 输出:包含AVS度量的JSON对象
  5. get_eigenlayer_operator_metrics(avs_name)

    • 描述:获取特定AVS中所有运算符的统计信息
    • 输入: avs_name (string)-用于获取操作员统计信息的AVS的名称
    • 输出:包含运算符度量的JSON对象

Claude for Desktop中的命令示例

  • “你能给我以太坊上‘USDC-WETH’代币对的流动性吗?”
  • “显示arbitrum上流动性最高的代币对”
  • “你能绘制出EigenDA算子的股权分布图吗?”
  • “EigenDA AVS上有多少利益相关者”

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

运行评估

evals包加载一个mcp客户端,然后运行index.ts文件,因此不需要在测试之间重建。您可以通过在npx命令前加前缀来加载环境变量。可以找到完整的文档 这里.

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

致谢