mcp-evm-signer
The MCP EVM Signer is a Model Context Protocol server that facilitates the management of Ethereum private keys and the deployment of smart contracts through Infura. It supports secure local key storage, contract interactions, and blockchain operations, making it a versatile tool for integrating blockchain capabilities into MCP clients like Claude for Desktop.
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.
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 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:
- : Detailed usage instructions and 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.