
EVM MCP Server
Interact with 60+ EVM chains: balances, transfers, contracts, ENS, and ABI fetching.
Add to your client
Copy the config for your MCP client and paste it into its config file.
npx -y @mcpdotdirect/evm-mcp-serverPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"evm-mcp-server": {
"command": "npx",
"args": [
"-y",
"@mcpdotdirect/evm-mcp-server"
],
"env": {
"EVM_PRIVATE_KEY": "<your-evm-private-key-optional>",
"ETHERSCAN_API_KEY": "<your-etherscan-api-key>"
}
}
}
}Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- Bun 1.0.0+ (recommended) or Node.js 20.0.0+
- Optional: an Etherscan API key (`ETHERSCAN_API_KEY`) for automatic ABI fetching
- For write operations/transfers: a wallet via `EVM_PRIVATE_KEY` or `EVM_MNEMONIC` (with optional `EVM_ACCOUNT_INDEX`) — read-only tools need no key
- An MCP-compatible client (Claude Desktop, Cursor, etc.)
About EVM MCP Server
EVM MCP Server is a Model Context Protocol server from mcp.direct that gives AI agents a unified interface to interact with 60+ EVM-compatible blockchains — 34 mainnets (Ethereum, Optimism, Arbitrum, Base, Polygon, Avalanche, BSC, zkSync, and more) and 26 testnets.
It handles reading chain state, transferring native and ERC-20/721/1155 tokens, calling and writing smart contracts, and signing messages. A standout feature is built-in ENS resolution: you can pass names like vitalik.eth to any tool instead of hex addresses.
It also automatically fetches contract ABIs from block explorers (with an optional Etherscan API key), so agents can interact with verified contracts without knowing the ABI in advance, and supports multicall to batch multiple reads into a single RPC call. It runs over stdio or in HTTP/SSE mode for web apps.
Tools & capabilities (12)
get_supported_networksList all supported EVM chains
get_balanceGet native token balance for an address or ENS name
get_token_balanceGet an ERC-20 token balance
resolve_ens_nameResolve an ENS name to an address
get_contract_abiFetch a verified contract's ABI from a block explorer
read_contractCall a read-only contract method
write_contractSend a state-changing contract transaction
multicallBatch multiple contract reads into one RPC call
transfer_nativeTransfer native coin (e.g. ETH) to an address or ENS name
transfer_erc20Transfer ERC-20 tokens
get_nft_infoFetch ERC-721 NFT metadata/info
sign_typed_dataSign EIP-712 typed data
When to use it
- You want an AI agent to read balances and chain state across many EVM networks with one tool set
- You're interacting with verified contracts and want ABIs fetched automatically instead of hardcoding them
- You want to use ENS names like `vitalik.eth` in place of raw addresses
- You need to transfer native coins or ERC-20/721/1155 tokens programmatically
- You want to batch multiple contract reads with multicall to reduce RPC round-trips
- You need EIP-712 / SIWE / permit message signing from an agent workflow
Quick setup
- 1Run with `npx @mcpdotdirect/evm-mcp-server` (stdio), or add `--http` for HTTP/SSE mode on port 3001
- 2Optionally set `ETHERSCAN_API_KEY` to enable automatic ABI fetching
- 3For write actions, set `EVM_PRIVATE_KEY` or `EVM_MNEMONIC` in the env block
- 4Add the server to your MCP client config with the npx command
- 5Restart your MCP client and confirm the EVM tools appear
- 6Verify by listing supported networks or checking a balance for an ENS name
Security notes
Providing EVM_PRIVATE_KEY or EVM_MNEMONIC lets the server sign and broadcast transactions that move real crypto; use a dedicated low-value wallet and omit the key entirely for read-only use. Never paste a mainnet seed phrase you also use elsewhere.
EVM MCP Server FAQ
How many chains does it support?
60+ EVM networks: 34 mainnets (Ethereum, Optimism, Arbitrum, Base, Polygon, Avalanche, BSC, zkSync, etc.) and 26 testnets.
Do I need a private key?
Only for write/transfer operations. Read-only tools (balances, contract reads, ENS, ABI fetching) work without any wallet credentials.
Can it run as a remote/HTTP server?
Yes. It runs over stdio by default, or in HTTP mode with an SSE endpoint (e.g. http://localhost:3001/sse) using the `--http` flag for web applications.
Do I need an Etherscan API key?
It's optional. Without it basic functionality works; with `ETHERSCAN_API_KEY` set, the server can automatically fetch ABIs for verified contracts.
Does it support ENS names?
Yes. ENS resolution is built in, so you can pass names like `vitalik.eth` to any tool that accepts an address.
Alternatives to EVM MCP Server
Compare all alternatives →Official Stripe server for payments, customers, subscriptions, invoices, and billing via natural language.
Coinbase's AgentKit MCP extension for onchain actions: transfers, swaps, and contract calls.
Alpaca's official trading server for stocks, ETFs, options, and crypto in plain English.