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-evm
This 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.js
Once 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
handlers
object insrc/tools.ts
npm run build
MIT