# mcpdotdirect/evm-mcp-server [Health: Active]

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/mcpdotdirect/evm-mcp-server  
**GitHub Stars:** 378  
**npm Downloads (last month):** 475  
**Views:** 4  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mcpdotdirect-evm-mcp-server

## Description
Comprehensive blockchain services for 30+ EVM networks, supporting native tokens, ERC20, NFTs, smart contracts, transactions, and ENS resolution.

## Tools
Capabilities this server exposes over MCP:

- **get_wallet_address** — Get the address of the configured wallet. Use this to verify which wallet is active.
- **get_chain_info** — Get information about an EVM network: chain ID, current block number, and RPC endpoint
- **get_supported_networks** — Get a list of all supported EVM networks
- **get_gas_price** — Get current gas prices (base fee, standard, and fast) for a network
- **resolve_ens_name** — Resolve an ENS name to an Ethereum address
- **lookup_ens_address** — Lookup the ENS name for an Ethereum address (reverse resolution)
- **get_block** — Get block details by block number or hash
- **get_latest_block** — Get the latest block from the network
- **get_balance** — Get the native token balance (ETH, MATIC, etc.) for an address
- **get_token_balance** — Get the ERC20 token balance for an address
- **get_allowance** — Check the allowance granted to a spender for a token. This tells you how much of a token an address can spend on your behalf.
- **get_transaction** — Get transaction details by transaction hash
- **get_transaction_receipt** — Get transaction receipt (confirmation status, gas used, logs). Use this to check if a transaction has been confirmed.
- **wait_for_transaction** — Wait for a transaction to be confirmed (mined). Polls the network until confirmation.
- **get_contract_abi** — Fetch a contract's full ABI from Etherscan/block explorers. Use this to understand verified contracts before interacting. Requires ETHERSCAN_API_KEY. Supports 30+ EVM networks. Works best with verified contracts on block explorers.
- **read_contract** — Call read-only functions on a smart contract. Automatically fetches ABI from block explorer if not provided (requires ETHERSCAN_API_KEY). Falls back to common functions if contract is not verified. Use this to query contract state and data.
- **write_contract** — Execute state-changing functions on a smart contract. Automatically fetches ABI from block explorer if not provided (requires ETHERSCAN_API_KEY). Use this to call any write function on verified contracts. Requires wallet to be configured (via private key or mnemonic).
- **multicall** — Batch multiple contract read calls into a single RPC request. Significantly reduces latency and RPC usage when querying multiple functions. Uses the Multicall3 contract deployed on all major networks. Perfect for portfolio analysis, price aggregation, and querying multiple contract states efficiently.
- **transfer_native** — Transfer native tokens (ETH, MATIC, etc.) to an address. Uses the configured wallet.
- **transfer_erc20** — Transfer ERC20 tokens to an address. Uses the configured wallet.
- **approve_token_spending** — Approve a spender (contract) to spend tokens on your behalf. Required before interacting with DEXes, lending protocols, etc.
- **get_nft_info** — Get information about an ERC721 NFT including metadata URI
- **get_erc1155_balance** — Get ERC1155 token balance for an address
- **sign_message** — Sign an arbitrary message using the configured wallet. Useful for authentication (SIWE), meta-transactions, and off-chain signatures. The signature can be verified on-chain or off-chain.
- **sign_typed_data** — Sign structured data (EIP-712) using the configured wallet. Used for gasless transactions, meta-transactions, permit signatures, and protocol-specific signatures. The signature follows the EIP-712 standard.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "evm-mcp-server": {
    "command": "npx",
    "args": ["-y","@mcpdotdirect/evm-mcp-server"]
  }
}
```

## Documentation

## What mcpdotdirect/evm-mcp-server MCP server does

The mcpdotdirect/evm-mcp-server MCP server exposes blockchain operations through the Model Context Protocol for Ethereum-compatible networks. The repository lists support for more than 60 networks, including Ethereum, Optimism, Arbitrum, Base, Polygon, Avalanche, BNB Smart Chain, zkSync Era, Linea, Celo, and corresponding testnets.

Read operations cover network metadata, current and historical blocks, gas prices, native balances, ERC20 balances and allowances, NFT information, ERC1155 balances, transactions, and receipts. ENS names can be supplied where addresses are accepted, allowing agents to resolve names such as `vitalik.eth` during requests.

Contract tools support ABI retrieval, read-only calls, state-changing calls, and batched reads through Multicall3. The server also provides native-token and ERC20 transfers, token approvals, arbitrary message signatures, and EIP-712 typed-data signatures.

## How it works

The server communicates with EVM networks through configured chain and RPC settings. `get_supported_networks` lists available networks, while `get_chain_info` reports a network's chain ID, latest block number, and RPC endpoint. Block and transaction tools can retrieve data by block number, block hash, or transaction hash; `wait_for_transaction` polls until a transaction is mined.

For verified contracts, the mcpdotdirect/evm-mcp-server MCP server can obtain an ABI from block explorers through the Etherscan v2 API. `read_contract` can use a supplied ABI or fetch one automatically when configured. Unverified contracts may still support common-function fallbacks, but the material specifically identifies verified contracts as the best fit for automatic ABI-based interaction.

## Setup and configuration

The project requires Bun 1.0 or newer, or Node.js 20 or newer when Bun is not used. The documented installation process is to clone the repository, enter its directory, and install dependencies with `bun install` or `npm install`.

No wallet is needed for read-only blockchain queries. Write operations and signing use either `EVM_PRIVATE_KEY` or `EVM_MNEMONIC`. Mnemonic wallets can use `EVM_ACCOUNT_INDEX` to select an account derived through the stated BIP-44 path; the default index is 0.

Set `ETHERSCAN_API_KEY` to enable automatic ABI retrieval for `get_contract_abi` and ABI-dependent contract reads, as well as the ABI analysis prompt. The documented defaults are Ethereum mainnet as chain ID 1, port 3001, and host `0.0.0.0`.

## Tools and capabilities

Available capabilities include:

- Inspecting supported networks, chain details, gas prices, blocks, balances, transactions, and receipts.
- Resolving ENS names and performing reverse address lookup.
- Reading and writing smart contracts, fetching ABIs, and batching read calls.
- Sending native tokens and ERC20 tokens, checking allowances, and approving spenders.
- Reading NFT and ERC1155 information.
- Signing personal messages and EIP-712 structured data.
- Using prompts for transaction preparation, wallet analysis, contract exploration, approval review, and error diagnosis.

The mcpdotdirect/evm-mcp-server MCP server uses the configured wallet for actions that spend funds or produce signatures. Private keys and mnemonic phrases should be kept out of source control and stored securely.

## Limitations and notes

Automatic ABI discovery depends on block-explorer verification and `ETHERSCAN_API_KEY`; without it, callers may need to provide ABI data or use supported common functions. Wallet credentials are required for transfers, approvals, contract writes, and signing, so these operations should be limited to accounts intended for agent control. Server host, port, and chain configuration are documented as hardcoded values that require source changes to modify.

_Full upstream README: https://allmcps.com/mcp/mcpdotdirect-evm-mcp-server/readme_

