使用说明

项目简介

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 客户端配置指南,方便用户快速集成。

安装步骤

  1. 克隆仓库:
    git clone [email protected]:Phillip-Kemper/ethereum-rpc-mpc.git
    cd ethereum-rpc-mpc
  2. 安装依赖:
    yarn install
  3. 构建项目:
    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