M

MCP以太坊服务器

@crazyrabbitLTC/mcp-ethers-server
1 Stars 434 次浏览 crazyrabbitLTC 更新于 2026-08-23

一种模型上下文协议服务器,赋予大型语言模型通过标准化接口与以太坊网络交互、管理钱包、查询区块链数据和执行智能合约操作的能力。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

MCP Ethers Wallet NPM Version

一个使用 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 一起使用

  1. 安装 Claude Desktop
  2. 添加一个新的 MCP 服务器,配置如下:
     "ethers": {
       "command": "node",
       "args": [
         "/path-to-mcp-ethers-wallet/build/src/index.js"
       ],
       "env": {
         "ALCHEMY_API_KEY": "<<your alchemy api key>>"
       }
     }
    
  3. 这些工具现在可以在您的 Claude 对话中使用了

使用 MCP Inspector 测试

  1. 安装 MCP Inspector:

    npm install -g @modelcontextprotocol/inspector
    
  2. 启动服务器:

    npm start
    
  3. 在另一个终端中运行 inspector:

    mcp-inspector
    
  4. 打开 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)

相关 MCP 服务