使用说明
项目简介
本项目是一个基于 DipDup 框架构建的 MCP 服务器,专注于以太坊 ERC20 代币的索引和数据查询。它能够追踪 ERC20 代币的交易,并允许 AI 智能体通过调用工具来添加新的追踪代币,以及查询指定地址的交易记录。所有操作均可通过自然语言指令驱动,旨在为 LLM 应用提供结构化的链上数据访问能力。
主要功能点
- ERC20 代币交易追踪: 自动索引以太坊网络上的 ERC20 代币交易事件。
- 动态添加追踪代币: 通过 'AddAndIndexErc20TokenContract' 工具,允许 AI 智能体指定新的 ERC20 代币合约地址进行追踪和索引。
- 地址交易查询: 提供 'GetTokenTransfers' 工具,根据地址查询相关的 ERC20 代币交易记录。
- 自然语言交互: 所有功能都设计为可以通过自然语言指令驱动的 MCP 工具进行调用,方便 LLM 应用集成。
- 基于 DipDup: 利用 DipDup 框架的强大索引和数据处理能力,保证数据索引的效率和可靠性。
安装步骤
- 安装 DipDup: 如果尚未安装 DipDup,请根据官方文档安装 DipDup (https://dipdup.io/docs/)。推荐使用以下命令快速安装:
curl -Lsf https://dipdup.io/install.py | python - 配置环境变量: 需要设置以太坊节点 API 密钥,例如 Alchemy API Key。创建 '.env' 文件或在 shell 中设置 'NODE_API_KEY' 环境变量。
export NODE_API_KEY=your_alchemy_api_key - 运行 DipDup: 使用 DipDup 初始化并运行项目。
dipdup -e .env -С sqlite run - 运行 MCP 服务器: 单独启动 MCP 服务器,监听在 'http://localhost:9999'。
dipdup -e .env -C sqlite mcp run
服务器配置
以下为 MCP 客户端连接此 MCP 服务器所需的配置信息 (JSON 格式)。客户端需要配置 'command' 和 'args' 来启动 MCP 服务器进程。
{ "server_name": "dipdup_erc20_mcp", "command": "dipdup", "args": ["-e", ".env", "-C", "sqlite", "mcp", "run"], "host": "http://localhost:9999" }
参数注释:
- 'server_name': 自定义服务器名称,用于客户端标识。例如 "dipdup_erc20_mcp"。
- 'command': 启动 MCP 服务器的命令,这里使用 'dipdup' (假设 dipdup 命令已添加到系统 PATH)。
- 'args': 传递给 'dipdup' 命令的参数列表,用于指定运行环境和启动 MCP 服务器:
- '-e .env': 指定加载 '.env' 环境变量文件。
- '-C sqlite': 指定使用 SQLite 数据库作为后端存储。
- 'mcp run': DipDup 的子命令,用于启动 MCP 服务器。
- 'host': MCP 服务器的访问地址,默认为 'http://localhost:9999',客户端需要连接此地址与服务器通信。
注意: 请确保 '.env' 文件已正确配置 'NODE_API_KEY' 等必要的环境变量,以便 DipDup 可以连接到以太坊节点。根据实际情况修改数据库配置 ('-C' 参数) 和其他 DipDup 运行参数。
基本使用方法
- 启动服务器: 按照安装步骤中的 "运行 MCP 服务器" 步骤启动 MCP 服务器。
- 客户端交互: 使用 MCP 客户端 (例如实现了 MCP 协议的 LLM 应用或客户端工具) 连接到 'http://localhost:9999'。
- 调用工具: 通过 MCP 客户端,可以调用以下工具与服务器交互:
- 'AddAndIndexErc20TokenContract': 添加新的 ERC20 代币合约进行追踪。需要提供 'token_name' (代币名称), 'token_address' (合约地址), 'first_level' (起始区块高度,可选), 'last_level' (结束区块高度,可选) 等参数。
- 'GetTokenTransfers': 查询指定地址的 ERC20 代币交易记录。需要提供 'address' (查询地址), 'limit' (返回记录数量限制,可选), 'from_address' (是否包含发送方交易,可选), 'to_address' (是否包含接收方交易,可选) 等参数。
- 查看结果: MCP 服务器会将工具执行结果以 JSON-RPC 响应的形式返回给客户端。
示例场景:
假设要使用 AI 智能体追踪 USDC 代币的交易,并查询某个地址的交易记录,可以通过以下步骤 (在 MCP 客户端中操作):
-
调用 'AddAndIndexErc20TokenContract' 工具: 指示 AI 智能体调用此工具,并提供 USDC 的相关信息,例如:
- 'tool_name': 'AddAndIndexErc20TokenContract'
- 'parameters':
{ "token_name": "usdc", "token_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" }
服务器将创建 USDC 代币的索引,开始追踪其交易。
-
调用 'GetTokenTransfers' 工具: 查询某个地址 (例如 '0xdAC17F958D2ee523a2206206994597C13D831ec7') 的 USDC 交易记录:
- 'tool_name': 'GetTokenTransfers'
- 'parameters':
{ "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "limit": 10 }
服务器将返回该地址最新的 10 条 USDC 交易记录。
开发
如需本地开发,请参考仓库 README.md 中的 "Development" 部分,配置开发环境并启动 PostgreSQL 数据库。
信息
分类
数据库与文件