区块链查询服务

一个基于Model Context Protocol (MCP)的服务器,支持查询以太坊网络的余额、交易、区块、ENS等信息,并支持与Claude和Cursor IDE集成。

  • by BaltasarAroso
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 baltasararoso/web3-mcp-server

使用说明

Web3 MCP服务器

该项目实现了一个模型上下文协议(MCP)服务器,该服务器使用 我知道 图书馆。它支持查询余额、交易、区块、ENS等。

项目结构

  • 服务器/:主要重点。包含MCP服务器实现和所有核心逻辑。因此,下面的命令和说明将使用其目录: cd server.
  • 客户/:用于测试MCP服务器。您可以使用此文件夹运行测试脚本或在开发过程中与服务器交互。要运行客户端,请运行: cd client; npm i && npm start

特性

  • 获取ETH和ERC-20代币余额
  • 查询交易和区块详细信息
  • ENS名称解析和反向查找
  • 调用只读合约方法
  • 支持主网、Goerli、Sepolia和本地(Hardhat)网络

环境设置

  1. 安装依赖项:
    npm install
    
  2. 创建一个 .env 文件 (可选,用于环境变量):
    CHAIN_ENV=mainnet # or goerli, sepolia, local
    
    • 如果未设置,则默认为 mainnet.
    • 对于 local,确保节点正在运行 http://127.0.0.1:8545.

运行服务器

npm start

交换网络

设置 CHAIN_ENV 环境变量为以下之一:

  • mainnet
  • goerli
  • sepolia
  • local

例子:

CHAIN_ENV=goerli npm start

测试MCP服务器

您可以使用以下工具测试MCP服务器 mcp-cli 工具:

npx @wong2/mcp-cli npm start

这允许您列出工具,调用它们,并交互式地检查服务器的功能。

将MCP服务器与Claude和Cursor IDE集成

Claude和Cursor IDE都允许您通过其设置添加自定义MCP服务器。这两种工具的过程几乎相同:

添加MCP服务器的步骤

  1. 构建您的MCP服务器:

    npm run build
    

    这将服务器编译为 server/build 目录。

  2. 打开工具中的设置:

    • 光标IDE: 首选 Settings > MCP.
    • 克劳德(桌面): 首选 Settings > Developer > Edit Config.
  3. 添加新的全局MCP服务器:

    • 您可以通过UI或直接编辑JSON配置文件来完成此操作。
    • JSON配置示例:
      {
        "mcpServers": {
          "web3-tools": {
            "command": "node",
            "args": ["$GITHUB_REPO/server/build/index.js"]
          }
        }
      }
      
      替换 $GITHUB_REPO 带有本地存储库目录的路径。
  4. 保存配置,必要时重新启动/重新加载工具。

  5. 要更新工具,请执行以下操作:

    • 始终运行 npm run build 更改服务器代码后。
    • 您可能需要手动刷新工具或重新启动MCP服务器以使更改生效。

注意:随着这些工具的发展,UI和配置文件的位置可能会发生变化。有关最新详细信息,请参阅他们的文档。

后续步骤

  • [x] 为testnet/local添加写入(事务)支持
  • [x] 使用Vitest通过单元和集成(e2e)测试确保全面演示(npm test 运行所有测试)
  • []将代码重构为模块以提高可维护性
  • []添加有关RPC使用的基本速率限制或警告