EVM MCP Server
An MCP server for EVM networks: an agent reads blocks, balances and contracts, fetches ABIs from Etherscan and signs transactions with a key
- 379 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- A private key or mnemonic opens the wallet: the agent can transfer funds, approve spending and sign messages
- State-changing contract calls are irreversible and cost gas
- HTTP mode listens on all network interfaces with no authorization
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/evm-mcp-serverDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- A private key or mnemonic opens the wallet: the agent can transfer funds, approve spending and sign messages
- State-changing contract calls are irreversible and cost gas
- HTTP mode listens on all network interfaces with no authorization
This is third-party code. Review the repository files before installing.
What it does
EVM MCP Server gives an agent one interface to more than 60 EVM-compatible networks: mainnets, including Ethereum, Optimism, Arbitrum, Base, Polygon, Avalanche and BSC, and testnets. The server is written in TypeScript with the Viem library and offers 25 tools, plus resources with addresses like `evm://{network}/...` and prompts with ready workflows. The tools read blocks, transactions and receipts with decoded logs, balances of the native coin and of ERC20, ERC721 and ERC1155 tokens, gas prices and network data. Any address parameter accepts ENS names such as vitalik.eth. For smart contracts the server fetches the ABI from Etherscan v2 across all supported networks, reads state, calls functions and combines several reads into one request through Multicall3. If a wallet is configured, the agent can transfer native tokens and ERC20, approve spending, call state-changing contract functions and sign messages and EIP-712 data. The prompts walk the agent through preparing a transfer, analyzing a wallet, exploring a contract, auditing approvals and diagnosing failed transactions.
Who it is for. For smart-contract developers and onchain data analysts who want to read chains and work with contracts from Cursor or Claude Desktop.
Good fit when
- You want the balance of an address or ENS name across several networks and the tokens you need
- You need to break down a transaction by hash: status, receipt and decoded logs
- You want to read a contract's state without knowing its ABI: the server fetches the description from Etherscan
- Before signing you need to review a wallet's token approvals with the audit prompt
- For a test on Sepolia or Base Sepolia you need to send a small amount from a separate test wallet
Not a fit when
- You need non-EVM networks such as Solana or Bitcoin: the server supports EVM only
- You want to keep large sums on the server's wallet: the key or mnemonic sits in an environment variable and is available to the server process
- You need a server for production in an open network: HTTP mode listens on all interfaces and enables no authorization
- You need exchange trading with orders and an order book: the tools work with the blockchain directly and have no exchange APIs
Example request
Show the balance of vitalik.eth on Ethereum mainnet and on Base, then fetch the transaction with this hash and decode its logs.MCP
- Transport
- stdio, sse
- Authentication
- key is optional
Environment variables
EVM_PRIVATE_KEYsecret- Wallet private key for the write tools. Set it only for a test wallet.
EVM_MNEMONICsecret- A 12 or 24 word BIP-39 mnemonic as an alternative to the key.
EVM_ACCOUNT_INDEX- Account index when deriving from the mnemonic, 0 by default.
ETHERSCAN_API_KEYsecret- Etherscan key for automatic ABI fetching across all networks.
Limitations
Node.js 20 or newer, or Bun 1.0, is required. For writing to a network configure a wallet: the EVM_PRIVATE_KEY variable with a private key, or EVM_MNEMONIC with a BIP-39 phrase and an optional EVM_ACCOUNT_INDEX. Without a wallet only reading works. Automatic ABI lookup needs a free ETHERSCAN_API_KEY, and one key covers all networks through Etherscan v2.
HTTP mode has the port 3001 and the address 0.0.0.0 hard-coded, so the server listens on every network interface, and changing the values means editing `src/server/http-server.ts`. The default network is Ethereum mainnet with chain ID 1. The author advises keeping the key out of Git, using HTTPS and rate limiting in production and adding confirmation steps for high-value operations.
Availability of Etherscan and network nodes from Russia was not checked when this card was prepared.
How to disable. Remove the evm-mcp-server block from the client config, for example `.cursor/mcp.json`, and restart the client. Then clear EVM_PRIVATE_KEY or EVM_MNEMONIC from the environment and revoke token approvals granted through the approve_token_spending tool.
FAQ
How do I connect EVM MCP Server to Cursor?
Add a server to `.cursor/mcp.json` with the `npx` command and the arguments `-y`, `@mcpdotdirect/evm-mcp-server`. Or enter the command type and `npx @mcpdotdirect/evm-mcp-server` in Cursor settings. The HTTP variant starts by adding `--http`.
Do I need a private key to read the blockchain?
No. Reading blocks, transactions, balances and contract state works without a wallet. A key or mnemonic is needed for the write tools: transfers, approvals, state-changing calls and message signing.
Which networks does EVM MCP Server support?
More than 60. Mainnets include Ethereum, Optimism, Arbitrum, Base, Polygon, Avalanche, BSC, zkSync Era and Linea, and testnets include Sepolia, Holesky and Base Sepolia. The get_supported_networks tool returns the list.
How does the server learn a contract's ABI?
The get_contract_abi tool requests it from Etherscan v2, and read_contract and write_contract fetch the ABI themselves if you do not pass the abiJson parameter. This needs a free ETHERSCAN_API_KEY.
How does EVM MCP Server differ from CCXT MCP Server?
EVM MCP Server works with blockchains directly: network nodes, contracts, ENS and transaction signing. CCXT talks to exchange APIs, so it suits market data and exchange orders.
Discussion
No questions or reviews yet.
Related
MCP serversMCP server that reads Elysium blocks, balances and contracts; signing is switched on by a flag and accepts the testnet only.
The server gives agents read access to your bank accounts and transactions through Enable Banking, without payment tools.
Vybe's remote MCP server for Solana data: browse the API schema and make live calls to on-chain and market analytics
The official CCXT MCP server and skills: market data, balances and opt-in trading across crypto exchanges and prediction markets
The official Bybit exchange MCP server: market data, accounts, orders, bots and WebSocket streams from Claude, Cursor and VS Code
An MCP server for agentic trading: backtesting, 462 prebuilt alphas, trade journal analysis and multi-agent research teams
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| EVM MCP Server (this card) | no | key is optional | 379 | |
| CCXT MCP Server | yes | key is optional | 44,869 | market data, balances and orders on exchanges through the CCXT API |
| Alpaca MCP Server | yes | API key | 1,078 | orders for stocks, ETFs and crypto through the Alpaca broker |
README in short
The README starts with an overview and feature list, then lists every network. After that come requirements, installation, setting wallet and Etherscan key variables, the stdio and HTTP modes and connecting to Cursor. The reference describes tools by group, resources and prompts, a security section and the project layout.