通过模型控制协议(MCP)连接Dune Analytics数据与智能代理的现代桥梁。
DuneLink使区块链数据分析能够无缝集成到您的AI应用程序中。通过利用Dune Analytics的强大查询功能以及模型控制协议,此服务允许LLMs和其他AI系统通过简单的自然语言交互访问链上数据。
| 工具 | 描述 | 使用场景 |
|---|---|---|
get_latest_result | 获取预计算的查询结果 | 快速访问现有数据 |
run_query | 按需执行查询 | 实时数据分析 |
所有数据均以CSV格式返回,提供:
克隆并导航
git clone https://github.com/olaxbt/dune-query-mcp.git
cd dunelink
环境设置
# 创建虚拟环境
python -m venv .venv
# 激活它
source .venv/bin/activate # Linux/Mac
# 或
.venv\Scripts\activate # Windows
# 安装依赖项
pip install -r requirements.txt
配置API访问
# 复制示例配置
cp .env.example .env
# 使用您的API密钥编辑
echo "DUNE_API_KEY=your_key_here" > .env
DuneLink提供了两种运行方式:
python run.py
这将在默认端口8000启动MCP服务。
python flask_app.py
这将提供对Web界面和REST API端点的访问。
from mcp.client import Client
# 连接到DuneLink
client = Client("http://localhost:8000")
# 获取查询的最新结果
csv_data = client.call("get_latest_result", query_id=1234567)
# 执行查询
query_results = client.call("run_query", query_id=1234567)
| 端点 | 方法 | 描述 |
|---|---|---|
/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/ # 应用核心
│ ├── __init__.py # Flask & MCP设置
│ ├── routes/ # API端点定义
│ │ └── dune_routes/ # Dune Analytics路由
│ │ └── templates/ # Web界面
│ └── templates/ # Web界面
├── config/ # 配置文件
├── logs/ # 运行日志
├── flask_app.py # Web服务器入口点
├── run.py # MCP服务器入口点
└── requirements.txt # 依赖项
| 变量 | 目的 | 默认值 |
|---|---|---|
| DUNE_API_KEY | Dune API认证 | None(必需) |
| PORT | 服务器端口 | 8000 |
对于大量查询执行:
# 设置更长的超时时间以处理长时间运行的查询
export DUNE_QUERY_TIMEOUT=600 # 10分钟,单位为秒
常见问题及解决方案:
| 问题 | 解决方案 |
|---|---|
| API密钥错误 | 确保.env文件存在且包含有效密钥 |
| 超时错误 | 增加复杂查询的超时时间 |
| CSV解析问题 | 检查查询是否返回正确的表格数据 |
欢迎贡献!请遵循以下步骤:
git checkout -b feature/amazing-featuregit commit -am '添加一些惊人的功能'git push origin feature/amazing-feature本项目在MIT许可证下发布。详情见LICENSE文件。