mcp-evm-chain-interface
Facilitates sophisticated interaction with the Ethereum Virtual Machine (EVM) ecosystem, covering wallet lifecycle management, asset inquiries, transaction submission, and contract invocation.
Author

dcSpark
Quick Info
Actions
Tags
MCP EVM Blockchain Interaction Module
This repository furnishes a Model Context Protocol (MCP) service engineered to grant Claude programmatic access to operations on Ethereum and any EVM-compliant decentralized ledgers, leveraging the robust capabilities of ethers.js version 5. The service empowers Claude to execute critical functions such as generating new keypairs, querying account balances, dispatching on-chain transfers, and engaging with deployed smart contracts across EVM environments.
Toolset Exposed
The MCP daemon exposes the following functionalities for AI utilization:
Keypair and Account Administration
wallet_create_random: Provision a fresh cryptographic wallet instance via a randomly generated secret key.wallet_from_private_key: Instantiate a wallet from a known private key string.wallet_from_mnemonic: Derive a wallet structure using a standardized mnemonic phrase.wallet_from_encrypted_json: Recover a wallet from a password-protected JSON keystore file.wallet_encrypt: Secure a current wallet structure using a specified passphrase.
Account State Retrieval
wallet_get_address: Obtain the public hexadecimal address for the current wallet.wallet_get_public_key: Retrieve the uncompressed public key.wallet_get_private_key: Access the private key (use with extreme security caution).wallet_get_mnemonic: Yield the seed phrase associated with the wallet, if applicable.
Ledger Query Operations
wallet_get_balance: Fetch the native token balance of the wallet.wallet_get_chain_id: Determine the unique identifier of the connected blockchain network.wallet_get_gas_price: Report the current network fee structure.wallet_get_transaction_count: Retrieve the sequential transaction counter (nonce) for the address.wallet_call: Execute a read-only interaction with a smart contract function.
Transaction Lifecycle Management
wallet_send_transaction: Broadcast a signed transaction to the network.wallet_sign_transaction: Create a valid signature for a proposed transaction without broadcast.wallet_populate_transaction: Fill in missing necessary parameters for a transaction object.
Cryptographic Signing Functions
wallet_sign_message: Generate a cryptographic signature for arbitrary raw data.wallet_sign_typed_data: Sign data structures adhering to EIP-712 conventions.wallet_verify_message: Validate the authenticity of a message signature against a sender address.wallet_verify_typed_data: Confirm the validity of an EIP-712 signature.
Node Provider Utilities
provider_get_block: Retrieve block data based on its identifier (number or hash).provider_get_transaction: Look up details for a specific transaction hash.provider_get_transaction_receipt: Obtain the final execution status and logs for a transaction.provider_get_code: Fetch the deployed bytecode at a given address.provider_get_storage_at: Read a specific storage slot value from a contract address.provider_estimate_gas: Calculate the computational cost of executing a transaction.provider_get_logs: Query for historical events matching specified filter criteria.provider_get_ens_resolver: Obtain the resolution service for an ENS name.provider_lookup_address: Resolve a blockchain address back to its human-readable ENS name.provider_resolve_name: Convert an ENS name into its corresponding blockchain address.
Network Status Functions
network_get_network: Fetch metadata regarding the currently configured network.network_get_block_number: Report the latest confirmed block height.network_get_fee_data: Acquire current data relevant to transaction pricing (e.g., base fee, priority fee).
Requirements
- Execution environment must be Node.js (version 16 or newer is mandatory).
- Requires the Claude Desktop application for integration.
Deployment Instructions
Method A: Direct Execution via npx (Suggested)
The service can be executed immediately without persistent installation using npx:
bash npx @mcp-dockmaster/mcp-cryptowallet-evm
This command fetches and runs the server directly from the npm registry.
Method B: Local Source Compilation
-
Acquire the source code repository: bash git clone https://github.com/dcSpark/mcp-cryptowallet-evm.git cd mcp-cryptowallet-evm
-
Install necessary dependencies: bash npm ci
-
Compile the TypeScript source code: bash npm run build
Configuration Strategy
Environmental Parameters
The MCP daemon respects the following environment variable for pre-loading a keypair:
PRIVATE_KEY: An optional secret key utilized for operations when no active wallet context is established.
Integrating with Claude Desktop
To enable Claude Desktop to route requests to this service:
- Launch the Claude Desktop application.
- Locate and open the application's 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 -
Insert the following configuration block into the
mcpServerssection:
{ "mcpServers": { "mcp-cryptowallet-evm": { "command": "npx", "args": [ "@mcp-dockmaster/mcp-cryptowallet-evm" ] } } }
Alternatively, if you opted for local compilation:
{ "mcpServers": { "mcp-cryptowallet-evm": { "command": "node", "args": [ "/path/to/your/mcp-cryptowallet-evm/build/index.js" ] } } }
Local Execution Command
If running the compiled version directly:
bash node build/index.js
Operational Usage
After configuration changes are applied and Claude Desktop is relaunched, the AI gains access to the EVM toolkit. Example prompts include:
- Wallet Generation Request:
Could you generate a fresh Ethereum wallet seed phrase for my use?
- Balance Query Example:
Determine the current asset holdings associated with the address 0x742d35Cc6634C0532925a3b844Bc454e4438f44e.
- Transaction Initiation:
Please facilitate the transfer of 0.1 ETH to the destination 0x742d35Cc6634C0532925a3b844Bc454e4438f44e.
Claude will translate these natural language requests into structured calls against the backend EVM service.
Maintenance and Extension
Adding New Functionality
To augment the server's capabilities:
- Define the new service endpoint signature within
src/tools.ts. - Implement the corresponding handling logic in the designated handler module.
- Register the new handler within the
handlersmap insrc/tools.ts.
Building Artifacts
bash npm run build
Intellectual Property
Licensed under the MIT Agreement.
