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
MCP server

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
All reasons and checks

mcpdotdirect/evm-mcp-server

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/evm-mcp-server

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad 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_KEY secret
Wallet private key for the write tools. Set it only for a test wallet.
EVM_MNEMONIC secret
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_KEY secret
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.

MCP server that reads Elysium blocks, balances and contracts; signing is switched on by a flag and accepts the testnet only.

MCP serverBroad access148Repository stars
Official

The server gives agents read access to your bank accounts and transactions through Enable Banking, without payment tools.

MCP serverExtended access319Repository stars
Official

Vybe's remote MCP server for Solana data: browse the API schema and make live calls to on-chain and market analytics

MCP serverBroad access2.7KRepository stars
Official

The official CCXT MCP server and skills: market data, balances and opt-in trading across crypto exchanges and prediction markets

MCP serverBroad access44.9KRepository stars
Official

The official Bybit exchange MCP server: market data, accounts, orders, bots and WebSocket streams from Claude, Cursor and VS Code

MCP serverBroad access44Repository stars

An MCP server for agentic trading: backtesting, 462 prebuilt alphas, trade journal analysis and multi-agent research teams

MCP serverBroad access38.1KRepository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
EVM MCP Server (this card)nokey is optional379
CCXT MCP Serveryeskey is optional44,869market data, balances and orders on exchanges through the CCXT API
Alpaca MCP ServeryesAPI key1,078orders 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.

README badge

Report a problem