- MCP Ethers Wallet
MCP Ethers Wallet 
A Model Context Protocol server for interacting with Ethereum wallets and networks using Ethers.js v6. This server provides LLMs with a standardized interface to interact with Ethereum networks, smart contracts, and wallets.
Overview
The MCP Ethers Wallet server implements the Model Context Protocol specification, providing LLMs with tools to:
- Query blockchain data across multiple networks
- Interact with smart contracts
- Manage wallet operations
- Resolve ENS names
- Handle transactions
- Estimate gas costs
Installation
npm install mcp-ethers-wallet
Quick Start
Starting the Server
import { startServer } from 'mcp-ethers-wallet';
startServer().catch((error) => {
console.error('Failed to start server:', error);
process.exit(1);
});
Using with Claude Desktop
- Install Claude Desktop
- Add a new MCP server with the following configuration:
"ethers": { "command": "node", "args": [ "/path-to-mcp-ethers-wallet/build/src/index.js" ], "env": { "ALCHEMY_API_KEY": "<<your alchemy api key>>" } }
- The tools will now be available in your Claude conversations
Testing with MCP Inspector
-
Install the MCP Inspector:
npm install -g @modelcontextprotocol/inspector
-
Start the server:
npm start
-
In another terminal, run the inspector:
mcp-inspector
-
Open http://localhost:5173 in your browser to interact with the tools
Available Tools
Network Information
getSupportedNetworks
: Get a list of all supported networks and their configurationsgetBlockNumber
: Get the current block number for a networkgetBlockDetails
: Get detailed information about a specific blockgetGasPrice
: Get the current gas pricegetFeeData
: Get detailed fee data including base fee and priority fee
Wallet Operations
checkWalletExists
: Check if a wallet is configured (without exposing private keys)getWalletBalance
: Get the native token balance of a walletgetWalletTransactionCount
: Get the number of transactions sent from a walletgetERC20Balance
: Get the balance of an ERC20 token for a wallet
Transaction Management
getTransactionDetails
: Get detailed information about a transactionsendTransaction
: Send a native token transactionsendTransactionWithOptions
: Send a transaction with custom options (gas, nonce, etc)getTransactionsByBlock
: Get all transactions in a specific block
Smart Contract Interaction
contractCall
: Execute a contract write methodcontractCallView
: Execute a contract read methodgetContractCode
: Get the bytecode of a deployed contract
ENS Operations
lookupAddress
: Resolve an ENS name to an addressresolveName
: Resolve an address to an ENS name
Network Support
The server supports multiple networks including:
- Ethereum Mainnet
- Polygon PoS
- Arbitrum
- Optimism
- Base
- And more...
Use the getSupportedNetworks
tool to get a complete list of supported networks.
Configuration
The server can be configured using environment variables:
ALCHEMY_API_KEY
: Your Alchemy API key for network accessPRIVATE_KEY
: Private key for transaction signing (optional)DEFAULT_NETWORK
: Default network to use (defaults to "mainnet")
Error Handling
The server provides detailed error messages for common issues:
- Invalid network names or RPC URLs
- Chain ID mismatches
- Contract interaction failures
- Transaction errors
- Network connectivity issues
Development
# Install dependencies
npm install
# Run tests
npm test
# Start in development mode
npm run dev
# Build
npm run build
Contributing
Issues and pull requests are welcome on GitHub.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Dennison Bertram ([email protected])




