区块链数据查询工具

DuneLink是一个连接Dune Analytics数据与智能代理的桥梁,通过模型控制协议(MCP)实现区块链数据与AI应用的无缝集成。

  • by olaxbt
  • Python
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 olaxbt/dune-query-mcp

使用说明

DuneLink

通过模型控制协议(MCP)将沙丘分析数据连接到智能代理的现代桥梁。

概述

DuneLink能够将区块链数据分析无缝集成到您的AI应用程序中。通过利用Dune Analytics强大的查询功能和模型控制协议,该服务允许LLM和其他AI系统通过简单的自然语言交互访问链上数据。

核心能力

数据检索工具

工具 描述 用例
get_latest_result 检索预先计算的查询结果 快速访问现有数据
run_query 按需执行查询 实时数据分析

数据格式

所有数据均以CSV格式返回,前提是:

  • 通用兼容性
  • 大多数数据分析工具易于解析
  • 人类可读输出

入门指南

系统要求

快速设置

  1. 克隆和导航

    git clone https://github.com/olaxbt/dune-query-mcp.git
    cd dunelink
    
  2. 环境设置

    # Create virtual environment
    python -m venv .venv
    
    # Activate it
    source .venv/bin/activate  # Linux/Mac
    # or
    .venv\Scripts\activate     # Windows
    
    # Install dependencies
    pip install -r requirements.txt
    
  3. 配置API访问

    # Copy example config
    cp .env.example .env
    
    # Edit with your API key
    echo "DUNE_API_KEY=your_key_here" > .env
    

用法

运行服务

DuneLink提供两种跑步方式:

作为MCP服务

python run.py

这将在默认端口8000上启动MCP服务。

作为Web服务器

python flask_app.py

这提供了对web界面和REST API端点的访问。

与应用程序集成

MCP客户端集成

from mcp.client import Client

# Connect to DuneLink
client = Client("http://localhost:8000")

# Get latest results for a query
csv_data = client.call("get_latest_result", query_id=1234567)

# Execute a query
query_results = client.call("run_query", query_id=1234567)

REST API

端点 方法 描述
/dune/health GET 服务健康检查
/dune/query/{query_id}/latest GET 检索最新结果
/dune/query/{query_id}/execute POST 运行查询

REST调用示例:

curl -X GET http://localhost:5000/dune/query/1234567/latest

建筑

dunelink/
├── app/                       # Application core
│   ├── __init__.py            # Flask & MCP setup
│   ├── routes/                # API endpoint definitions
│   │   └── dune_routes/       # Dune Analytics routes
│   │   └── templates/             # Web interface
│   └── templates/             # Web interface
├── config/                    # Configuration files
├── logs/                      # Runtime logs
├── flask_app.py               # Web server entry point
├── run.py                     # MCP server entry point
└── requirements.txt           # Dependencies

高级配置

环境变量

变量 目的 默认值
DUNE_API_KEY 沙丘API身份验证 无(必需)
端口 服务器端口 8000

性能调整

对于高容量查询执行:

# Set a higher timeout for long-running queries
export DUNE_QUERY_TIMEOUT=600  # 10 minutes in seconds

故障排除

常见问题和解决方案:

问题 解决方案
API关键错误 确保 .env 文件存在有效密钥
超时错误 增加复杂查询的超时时间
CSV解析问题 检查查询是否返回正确的表格数据

贡献

欢迎投稿!请按照以下步骤操作:

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature/amazing-feature
  3. 提交您的更改: git commit -am 'Add some amazing feature'
  4. 推到分支: git push origin feature/amazing-feature
  5. 打开拉取请求

许可证

该项目在MIT许可证下发布。看 LICENSE 文件以获取详细信息。

致谢