返回市场
沙丘-MCP服务器

沙丘-MCP服务器

作者:ekailabs2 星标更新:2025-05-06

项目介绍

Dune Analytics MCP Server

一个模型上下文协议(MCP)服务器,用于连接Dune Analytics数据到AI代理,提供对DEX指标、EigenLayer操作员和AVS统计以及Solana上的代币余额的访问。这些工具利用了Dune提供的预设端点和回声端点。

功能

  • 工具
    • get_dex_pair_metrics:获取特定链上给定代币对的基本元数据和统计数据
    • get_token_pairs_liquidity:查找给定链上具有最高USD流动性的代币对
    • 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密钥(从Dune Analytics获取)

安装

  1. 克隆仓库

    git clone https://github.com/ekailabs/dune-mcp-server.git
    cd dune-mcp-server
    
  2. 安装依赖项: 使用Bun:

    bun install
    

    或者使用npm:

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

    DUNE_API_KEY=your_api_key_here
    

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

    export DUNE_API_KEY="your_api_key_here"
    

使用方法

运行服务器

使用Bun:

# 开发模式,支持热重载
bun dev

# 生产模式
bun start

# 或构建并运行
bun build src/index.ts --outdir dist
bun dist/index.js

使用npm:

# 开发模式,支持热重载
npm run dev

# 生产模式
npm start

# 或构建并运行
npm run build
npm run start:prod

添加到Claude桌面版

要在Claude桌面版中使用,请添加服务器配置:

在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 (字符串) - 获取DEX统计数据的区块链
      • token_pair (字符串) - 获取DEX统计数据的代币对
    • 输出:包含DEX指标的JSON对象
  2. get_token_pairs_liquidity(chain)

    • 描述:识别给定链上具有最高USD流动性的代币对
    • 输入chain (字符串) - 获取DEX统计数据的区块链
    • 输出:包含顶级代币对指标的JSON对象
  3. get_svm_token_balances(wallet_address)

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

    • 描述:获取特定AVS的统计数据
    • 输入avs_name (字符串) - 获取统计数据的AVS名称
    • 输出:包含AVS指标的JSON对象
  5. get_eigenlayer_operator_metrics(avs_name)

    • 描述:获取特定AVS中所有操作员的统计数据
    • 输入avs_name (字符串) - 获取操作员统计数据的AVS名称
    • 输出:包含操作员指标的JSON对象

示例命令在Claude桌面版中

  • "你能给我'USDC-WETH'代币对在ethereum上的流动性吗?"
  • "显示arbitrum上具有最高流动性的代币对"
  • "你能绘制EigenDA操作员的质押分布图吗?"
  • "EigenDA AVS上有多少质押者?"

许可证

本项目采用MIT许可证 - 查看LICENSE文件了解详情。

运行评估

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

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

致谢