MCP Ethers Wallet

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides API key-based access to Ethereum networks, serving as a node provider for blockchain interactions.

  • Enables comprehensive interaction with Ethereum networks, including querying blockchain data, managing wallets, sending transactions, and interacting with smart contracts.

  • Utilizes Ethers.js v6 as the core library for blockchain interactions, providing standardized interfaces for wallet management, smart contract interaction, and transaction handling.

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

  1. Install Claude Desktop
  2. 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>>" } }
  3. The tools will now be available in your Claude conversations

Testing with MCP Inspector

  1. Install the MCP Inspector:
    npm install -g @modelcontextprotocol/inspector
  2. Start the server:
    npm start
  3. In another terminal, run the inspector:
    mcp-inspector
  4. 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 configurations
  • getBlockNumber: Get the current block number for a network
  • getBlockDetails: Get detailed information about a specific block
  • getGasPrice: Get the current gas price
  • getFeeData: 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 wallet
  • getWalletTransactionCount: Get the number of transactions sent from a wallet
  • getERC20Balance: Get the balance of an ERC20 token for a wallet

Transaction Management

  • getTransactionDetails: Get detailed information about a transaction
  • sendTransaction: Send a native token transaction
  • sendTransactionWithOptions: 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 method
  • contractCallView: Execute a contract read method
  • getContractCode: Get the bytecode of a deployed contract

ENS Operations

  • lookupAddress: Resolve an ENS name to an address
  • resolveName: 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 access
  • PRIVATE_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 (dennison@tally.xyz)

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

A Model Context Protocol server that gives LLMs the ability to interact with Ethereum networks, manage wallets, query blockchain data, and execute smart contract operations through a standardized interface.

  1. Overview
    1. Installation
      1. Quick Start
        1. Starting the Server
          1. Using with Claude Desktop
            1. Testing with MCP Inspector
            2. Available Tools
              1. Network Information
                1. Wallet Operations
                  1. Transaction Management
                    1. Smart Contract Interaction
                      1. ENS Operations
                      2. Network Support
                        1. Configuration
                          1. Error Handling
                            1. Development
                              1. Contributing
                                1. License
                                  1. Author