Information
MCP Ethers Wallet
一个使用 Ethers.js v6 与以太坊钱包和网络进行交互的 Model Context Protocol 服务器。此服务器为大型语言模型(LLMs)提供了一个标准化接口,用于与以太坊网络、智能合约及钱包互动。
概览
MCP Ethers Wallet 服务器实现了 Model Context Protocol 规范,为 LLMs 提供了以下功能:
跨多个网络查询区块链数据
与智能合约交互
管理钱包操作
解析 ENS 名称
处理交易
估算 Gas 成本
安装
npm install mcp-ethers-wallet
快速开始
启动服务器
import \{ startServer \} from 'mcp-ethers-wallet';
startServer().catch((error) => \{
console.error('Failed to start server:', error);
process.exit(1);
\});
与 Claude Desktop 一起使用
安装 Claude Desktop
添加一个新的 MCP 服务器,配置如下:
"ethers": \{
"command": "node",
"args": [
"/path-to-mcp-ethers-wallet/build/src/index.js"
],
"env": \{
"ALCHEMY_API_KEY": "<>"
\}
\}
这些工具现在可以在您的 Claude 对话中使用了
使用 MCP Inspector 测试
安装 MCP Inspector:
npm install -g @modelcontextprotocol/inspector
启动服务器:
npm start
在另一个终端中运行 inspector:
mcp-inspector
打开 http://localhost:5173,在浏览器中与工具进行交互
可用工具
网络信息
getSupportedNetworks: 获取所有支持网络及其配置的列表
getBlockNumber: 获取特定网络的当前区块号
getBlockDetails: 获取关于特定区块的详细信息
getGasPrice: 获取当前 Gas 价格
getFeeData: 获取详细的费用数据,包括基础费和优先费
钱包操作
checkWalletExists: 检查是否已配置钱包(不暴露私钥)
getWalletBalance: 获取钱包中的原生代币余额
getWalletTransactionCount: 获取从钱包发出的交易数量
getERC20Balance: 获取钱包中 ERC20 代币的余额
交易管理
getTransactionDetails: 获取关于交易的详细信息
sendTransaction: 发送原生代币交易
sendTransactionWithOptions: 发送带有自定义选项(如 Gas、nonce 等)的交易
getTransactionsByBlock: 获取特定区块内的所有交易
智能合约交互
contractCall: 执行合约写入方法
contractCallView: 执行合约读取方法
getContractCode: 获取已部署合约的字节码
ENS 操作
lookupAddress: 将 ENS 名称解析为地址
resolveName: 将地址解析为 ENS 名称
网络支持
该服务器支持多个网络,包括:
以太坊主网
Polygon PoS
Arbitrum
Optimism
Base
更多...
使用 getSupportedNetworks 工具获取支持的网络完整列表。
配置
服务器可以通过环境变量进行配置:
ALCHEMY_API_KEY:用于网络访问的 Alchemy API 密钥
PRIVATE_KEY:用于交易签名的私钥(可选)
DEFAULT_NETWORK:默认使用的网络(默认为 "mainnet")
错误处理
服务器为常见问题提供了详细的错误信息:
无效的网络名称或 RPC URL
链 ID 不匹配
合约交互失败
交易错误
网络连接问题
开发
# Install dependencies
npm install
# Run tests
npm test
# Start in development mode
npm run dev
# Build
npm run build
贡献
欢迎在 GitHub 上提交问题和拉取请求。
许可证
本项目根据 MIT 许可证授权 - 详情请参阅 LICENSE 文件。
作者
Dennison Bertram (dennison@tally.xyz)