使用说明
项目简介
Ethereum RPC MPC Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 应用提供访问以太坊区块链数据的能力。它允许 LLM 通过标准的 JSON-RPC 接口与以太坊网络进行交互,获取链上信息并执行相关操作。该服务器利用 MCP 协议的工具 (Tools) 和资源 (Resources) 功能,将以太坊 RPC API 暴露给 LLM 客户端,使得 LLM 能够理解和利用区块链数据。
主要功能点
- 以太坊 JSON-RPC 支持: 支持所有标准的以太坊 JSON-RPC API 调用,使 LLM 可以查询区块、交易、账户余额、合约状态等信息。
- Zircuit 扩展支持: 针对 Zircuit 区块链,提供额外的 'zirc_isQuarantined' 和 'zirc_getQuarantined' 工具,用于查询交易隔离状态,方便监控和分析。
- 可配置的 RPC URL: 允许用户自定义连接的以太坊 RPC 节点,支持连接到不同的以太坊网络(主网、测试网或其他兼容 EVM 的链)。
- 资源 (Resources) 管理: 提供 'rpc_info' 资源,可以获取当前服务器连接的 RPC URL 和链名称等信息。
- 工具 (Tools) 注册和执行: 注册 'eth_json_rpc_call' 工具,允许 LLM 客户端动态调用任何以太坊 JSON-RPC 方法。同时,针对 Zircuit 链注册了特定的工具。
- 基于 MCP SDK: 使用官方 MCP SDK 构建,保证了与 MCP 协议的兼容性和标准性。
- 支持 Cursor 等 MCP 客户端: 提供详细的 Cursor 客户端配置指南,方便用户快速集成。
安装步骤
- 克隆仓库:
git clone [email protected]:Phillip-Kemper/ethereum-rpc-mpc.git cd ethereum-rpc-mpc - 安装依赖:
yarn install - 构建项目:
yarn build
服务器配置
为了让 MCP 客户端(如 Cursor)连接到 Ethereum RPC MPC Server,您需要在客户端中添加一个新的 MCP 服务器配置。以下是 Cursor 客户端的配置示例(其他 MCP 客户端配置方式类似):
Cursor MCP 服务器配置 (JSON 格式):
{ "servers": [ { "name": "Ethereum RPC", // MCP 服务器名称,自定义,用于在客户端中标识 "type": "Command", // 服务器类型,固定为 "Command" "command": "npx -y ethereum-rpc-mpc", // 启动服务器的命令,这里使用 npx 方便快捷,无需全局安装 "args": [ // 启动命令的参数 "https://eth.llamarpc.com", // 以太坊 RPC URL,可以替换为其他 RPC 节点地址 "Ethereum" // 链名称,可选,用于描述当前连接的网络 ] } ] }
参数注释:
- 'command': 指定启动 MCP 服务器的命令。这里 'npx -y ethereum-rpc-mpc' 会查找并执行当前项目或 npm registry 中的 'ethereum-rpc-mpc' 包。 也可以使用 'node /path/to/ethereum-rpc-mpc/dist/server/index.js',需要替换为实际的 'index.js' 文件路径。
- 'args': 传递给启动命令的参数数组。
- 第一个参数 ('https://eth.llamarpc.com') 是 以太坊 RPC URL,必填。请替换为您想要连接的以太坊节点的 RPC URL。 可以使用 Infura, Alchemy, Chainstack 等服务提供的 URL,或者您自己搭建的节点。
- 第二个参数 ('Ethereum') 是 链名称,可选。用于描述当前连接的链,会在 'rpc_info' 资源中显示。可以根据实际情况修改,例如 "Ethereum Mainnet", "Goerli Testnet" 等。
其他启动方式:
除了 'npx',您还可以使用 'yarn start' 或 'node' 命令启动服务器,并传递 RPC URL 和链名称作为参数:
# 使用 yarn start yarn start https://eth.llamarpc.com Ethereum # 使用 node 直接运行 node dist/server/index.js https://eth.llamarpc.com Ethereum
基本使用方法
配置完成后,在 MCP 客户端中,您可以使用自然语言指令来查询以太坊数据。例如,在 Cursor 中,您可以提问:
- "What's the current block number?" (当前区块高度是多少?)
- "What's the ETH balance of 0x742d35Cc6634C0532925a3b844Bc454e4438f44e?" (地址 0x742d35Cc6634C0532925a3b844Bc454e4438f44e 的 ETH 余额是多少?)
- "Is 0x6B175474E89094C44Da98b954EedeAC495271d0F a smart contract?" (0x6B175474E89094C44Da98b954EedeAC495271d0F 是智能合约吗?)
- "Can you show me the details of transaction 0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060?" (显示交易 0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060 的详细信息。)
对于 Zircuit 链,您可以使用以下指令查询 Zircuit 特有的信息:
- "Is transaction [交易哈希] quarantined on Zircuit?" (交易 [交易哈希] 在 Zircuit 上被隔离了吗?)
- "List all quarantined transactions on Zircuit." (列出 Zircuit 上所有被隔离的交易。) 或 "List quarantined transactions for address [地址] on Zircuit." (列出地址 [地址] 在 Zircuit 上被隔离的交易。)
LLM 客户端会根据您的指令,调用 Ethereum RPC MPC Server 提供的工具,并将结果以自然语言形式返回给您。
信息
分类
网页与API