关于 Web3 MCP Server
Web3 MCP Server 使用 viem 提供 Ethereum 网络数据查询工具,支持余额、交易、ENS 查询和只读合约调用,并可连接多个配置的网络。
主要功能
- 01查询 ETH 和 ERC-20 余额
- 02查看交易和区块详情
- 03ENS 解析与反向查询
- 04调用只读合约方法
- 05支持主网、Goerli、Sepolia 和本地网络
适用场景
- 01查询 ETH 或代币余额
- 02检查交易或区块
- 03解析 ENS 名称
- 04读取智能合约数据
MCP 相关
该 MCP 服务向 MCP 客户端提供 Ethereum 查询和只读合约调用工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Web3 MCP 服务
本项目使用 viem 库实现了一个可与 Ethereum 网络交互的模型上下文协议(MCP)服务。它支持查询余额、交易、区块、ENS 等信息。
项目结构
- server/:主要部分,包含 MCP 服务的实现和所有核心逻辑。因此,以下命令和说明均以该目录为基础:
cd server。 - client/:用于测试 MCP 服务。你可以在此文件夹中运行测试脚本,或在开发期间与服务交互。运行客户端请执行:
cd client; npm i && npm start
功能
- 获取 ETH 和 ERC-20 代币余额
- 查询交易和区块详情
- ENS 名称解析和反向查询
- 调用只读合约方法
- 支持主网、Goerli、Sepolia 和本地(Hardhat)网络
环境配置
- 安装依赖:
npm install - 创建
.env文件(可选,用于设置环境变量):CHAIN_ENV=mainnet # or goerli, sepolia, local- 如果未设置,默认使用
mainnet。 - 对于
local,请确保节点正在http://127.0.0.1:8545上运行。
- 如果未设置,默认使用
运行服务
npm start
切换网络
将 CHAIN_ENV 环境变量设为以下值之一:
mainnetgoerlisepolialocal
示例:
CHAIN_ENV=goerli npm start
测试 MCP 服务
你可以使用 mcp-cli 工具测试 MCP 服务:
npx @wong2/mcp-cli npm start
这使你能够列出工具、调用工具,并以交互方式检查服务的功能。
将 MCP 服务集成到 Claude 和 Cursor IDE
Claude 和 Cursor IDE 均允许你通过设置添加自定义 MCP 服务。两种工具的操作流程基本相同:
添加 MCP 服务的步骤
-
构建 MCP 服务:
npm run build这会将服务编译到
server/build目录。 -
打开工具的设置:
- Cursor IDE: 前往
Settings>MCP。 - Claude(桌面版): 前往
Settings>Developer>Edit Config。
- Cursor IDE: 前往
-
添加新的全局 MCP 服务:
- 你可以通过 UI 添加,也可以直接编辑 JSON 配置文件。
- JSON 配置示例:
将{ "mcpServers": { "web3-tools": { "command": "node", "args": ["$GITHUB_REPO/server/build/index.js"] } } }$GITHUB_REPO替换为本地仓库目录的路径。
-
保存配置,并根据需要重启或重新加载工具。
-
更新工具:
- 修改服务代码后,务必运行
npm run build。 - 可能需要手动刷新工具或重启 MCP 服务,才能使更改生效。
- 修改服务代码后,务必运行
注意:随着这些工具不断演进,UI 和配置文件的位置可能会发生变化。请参阅其文档以获取最新信息。
后续步骤
- 为测试网/本地网络添加写入(交易)支持
- 通过使用 Vitest 编写单元测试和集成(e2e)测试,确保演示全面(
npm test会运行所有测试) - 将代码重构为模块,以提高可维护性
- 添加基本的速率限制,或对 RPC 使用情况发出警告
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。