MCP EVM Signer
by zhangzhongnan928
The MCP EVM Signer is a Model Context Protocol (MCP) server designed to manage Ethereum private keys and deploy smart contracts using Infura. It enables Claude for Desktop and other MCP clients to interact with EVM-compatible blockchains.
Last updated: N/A
MCP EVM Signer
A Model Context Protocol (MCP) server for managing Ethereum private keys and deploying smart contracts using Infura. This server enables Claude for Desktop and other MCP clients to interact with EVM-compatible blockchains.

MCP EVM Signer architecture
Features
- š Securely store and manage Ethereum private keys locally
- š Connect to Infura for blockchain interactions
- š Deploy smart contracts from compiled ABIs and bytecode
- āļø Sign and send transactions
- š° View account balances and transaction history
- š Query blockchain data and interact with deployed contracts
Quick Start
Prerequisites
- Node.js v16 or higher
- An Infura account with API key
- Claude for Desktop app installed
Installation
-
Clone this repository:
git clone https://github.com/zhangzhongnan928/mcp-evm-signer.git cd mcp-evm-signer
-
Install dependencies:
npm install
-
Build the project:
npm run build
-
Configure environment variables:
cp .env.example .env
Edit the
.env
file to add your Infura API key and configure other settings.
Integrating with Claude for Desktop
- Add the server to your Claude for Desktop configuration:
{
"mcpServers": {
"evm-signer": {
"command": "node",
"args": ["/path/to/mcp-evm-signer/build/index.js"],
"env": {
"INFURA_API_KEY": "your_infura_api_key_here",
"DEFAULT_NETWORK": "sepolia",
"ENCRYPT_KEYS": "true",
"KEY_PASSWORD": "your_secure_password_here"
}
}
}
}
-
Restart Claude for Desktop
-
You can now ask Claude to deploy smart contracts, check balances, or interact with EVM blockchains
Available Tools
The MCP EVM Signer server exposes the following tools for use with Claude:
Wallet Management
create-wallet
: Create a new Ethereum walletimport-wallet
: Import an existing wallet from a private keylist-wallets
: List all saved wallets
Blockchain Operations
check-balance
: Check the ETH balance of an addressget-transactions
: Get recent transactions for an addresssend-transaction
: Send ETH to an address
Smart Contract Interactions
deploy-contract
: Deploy a smart contract from ABI and bytecodecall-contract
: Call a read-only contract methodexecute-contract
: Execute a contract method that modifies state
Example Usage
Below are some examples of how you can use these tools with Claude:
Creating a Wallet
You can ask Claude:
Could you create a new Ethereum wallet for me using the evm-signer tools?
Checking a Balance
You can ask Claude:
Can you check the balance of my Ethereum wallet 0x1234...5678 on the Sepolia network?
Deploying an ERC-20 Token
See our ERC-20 token example for a complete walkthrough of deploying and interacting with an ERC-20 token contract.
Security Notes
- Private keys are stored locally on your machine
- Keys can be encrypted with a password
- The server only exposes functionality through the MCP protocol
- Always review transactions before approving them in Claude for Desktop
- Use test networks like Sepolia or Goerli when getting started
Documentation
For more detailed documentation, please refer to:
- Usage Guide: Detailed usage instructions and examples
- Examples: Sample workflows and contract deployments
Project Structure
mcp-evm-signer/
āāā src/ # Source code
ā āāā config.ts # Configuration management
ā āāā crypto.ts # Key management utilities
ā āāā ethereum.ts # Ethereum interaction functions
ā āāā index.ts # Main MCP server implementation
āāā keys/ # Storage for wallet keys (gitignored)
āāā examples/ # Example usage patterns
āāā .env.example # Example environment variables
āāā ... # Project configuration files
Development
To contribute to this project:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.