This repository contains a Model Context Protocol (MCP) server that provides Claude with access to Ethereum and EVM-compatible blockchain operations via ethers.js v5. The server enables Claude to perform operations like creating wallets, checking balances, sending transactions, and interacting with smart contracts on EVM-compatible blockchains.
The MCP server exposes the following tools to Claude:
wallet_create_random: Create a new wallet with a random private keywallet_from_private_key: Create a wallet from a private keywallet_from_mnemonic: Create a wallet from a mnemonic phrasewallet_from_encrypted_json: Create a wallet by decrypting an encrypted JSON walletwallet_encrypt: Encrypt a wallet with a password
wallet_get_address: Get the wallet addresswallet_get_public_key: Get the wallet public keywallet_get_private_key: Get the wallet private key (with appropriate security warnings)wallet_get_mnemonic: Get the wallet mnemonic phrase (if available)
wallet_get_balance: Get the balance of the walletwallet_get_chain_id: Get the chain ID the wallet is connected towallet_get_gas_price: Get the current gas pricewallet_get_transaction_count: Get the number of transactions sent from this account (nonce)wallet_call: Call a contract method without sending a transaction
wallet_send_transaction: Send a transactionwallet_sign_transaction: Sign a transaction without sending itwallet_populate_transaction: Populate a transaction with missing fields
wallet_sign_message: Sign a messagewallet_sign_typed_data: Sign typed data (EIP-712)wallet_verify_message: Verify a signed messagewallet_verify_typed_data: Verify signed typed data
provider_get_block: Get a block by number or hashprovider_get_transaction: Get a transaction by hashprovider_get_transaction_receipt: Get a transaction receiptprovider_get_code: Get the code at an addressprovider_get_storage_at: Get the storage at a position for an addressprovider_estimate_gas: Estimate the gas required for a transactionprovider_get_logs: Get logs that match a filterprovider_get_ens_resolver: Get the ENS resolver for a nameprovider_lookup_address: Lookup the ENS name for an addressprovider_resolve_name: Resolve an ENS name to an address
network_get_network: Get the current network informationnetwork_get_block_number: Get the current block numbernetwork_get_fee_data: Get the current fee data (base fee, max priority fee, etc.)
- Node.js (v16 or higher)
- Claude Desktop application
You can run the MCP server directly without installation using npx:
npx @mcp-dockmaster/mcp-cryptowallet-evmThis will download and execute the server directly from npm.
-
Clone this repository:
git clone https://github.com/dcSpark/mcp-cryptowallet-evm.git cd mcp-cryptowallet-evm -
Install dependencies:
npm ci
-
Build the project:
npm run build
The MCP server supports the following environment variables:
PRIVATE_KEY: Optional private key to use for wallet operations when no wallet is explicitly provided
To configure Claude Desktop to use this MCP server:
-
Open Claude Desktop
-
Navigate to the Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
Add the MCP server configuration:
{
"mcpServers": {
"mcp-cryptowallet-evm": {
"command": "npx",
"args": [
"@mcp-dockmaster/mcp-cryptowallet-evm"
]
}
}
}Alternatively, if you installed the package locally:
{
"mcpServers": {
"mcp-cryptowallet-evm": {
"command": "node",
"args": [
"/path/to/your/mcp-cryptowallet-evm/build/index.js"
]
}
}
}node build/index.jsOnce configured, restart Claude Desktop. Claude will now have access to the Ethereum and EVM-compatible blockchain tools. You can ask Claude to:
-
Create a new wallet:
Can you create a new Ethereum wallet for me? -
Check a wallet balance:
What's the balance of the Ethereum wallet address 0x742d35Cc6634C0532925a3b844Bc454e4438f44e? -
Send a transaction:
Can you help me send 0.1 ETH to 0x742d35Cc6634C0532925a3b844Bc454e4438f44e?
Claude will use the MCP server to interact with the Ethereum blockchain directly.
To add new tools to the MCP server:
- Define the tool in
src/tools.ts - Create a handler function in the appropriate handler file
- Add the handler to the
handlersobject insrc/tools.ts
npm run buildMIT