使用说明
DuneLink
通过模型控制协议(MCP)将沙丘分析数据连接到智能代理的现代桥梁。
概述
DuneLink能够将区块链数据分析无缝集成到您的AI应用程序中。通过利用Dune Analytics强大的查询功能和模型控制协议,该服务允许LLM和其他AI系统通过简单的自然语言交互访问链上数据。
核心能力
数据检索工具
| 工具 | 描述 | 用例 |
|---|---|---|
get_latest_result |
检索预先计算的查询结果 | 快速访问现有数据 |
run_query |
按需执行查询 | 实时数据分析 |
数据格式
所有数据均以CSV格式返回,前提是:
- 通用兼容性
- 大多数数据分析工具易于解析
- 人类可读输出
入门指南
系统要求
- Python 3.10或更高版本
- 有效的Dune Analytics API密钥(在这里买你的)
快速设置
-
克隆和导航
git clone https://github.com/olaxbt/dune-query-mcp.git cd dunelink -
环境设置
# 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 -
配置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解析问题 | 检查查询是否返回正确的表格数据 |
贡献
欢迎投稿!请按照以下步骤操作:
- 分叉存储库
- 创建要素分支:
git checkout -b feature/amazing-feature - 提交您的更改:
git commit -am 'Add some amazing feature' - 推到分支:
git push origin feature/amazing-feature - 打开拉取请求
许可证
该项目在MIT许可证下发布。看 LICENSE 文件以获取详细信息。