Ethereum RPC MCP Server
A TypeScript MCP server that exposes the full Ethereum JSON-RPC surface, enabling AI assistants to query on-chain data, inspect contracts, and retrieve transaction details across EVM networks. Includes optional analytics and Zircuit-specific SLS methods.
Overview
The Ethereum RPC MCP Server provides a Model Context Protocol interface for standard Ethereum JSON-RPC. It lets AI assistants interact with EVM chains through familiar RPC calls like eth_blockNumber, eth_getBalance, and eth_getTransactionByHash. It supports any RPC endpoint and optionally enables analytics. When connected to Zircuit (Chain ID 48900), it automatically exposes SLS methods for quarantine checks.
Created by:
Developed by Phillip Kemper
Key Features
Full JSON-RPC Coverage
Supports standard Ethereum RPC calls for blocks, tx, accounts, logs
Multi-Chain RPC
Connect to any EVM endpoint (e.g., Ethereum, Zircuit) via URL
Zircuit SLS Methods
Expose zirc_isQuarantined and zirc_getQuarantined on Chain ID 48900
Optional Analytics
Enable request metrics and error reporting via analytics middleware
Available Tools
Quick Reference
| Tool | Purpose | Category |
|---|---|---|
eth_blockNumber | Get current block height | Network |
eth_getBalance | Get ETH balance for address | Account |
eth_getCode | Check if address is a contract | Contract |
eth_getTransactionByHash | Retrieve tx details by hash | Transaction |
zirc_isQuarantined | Check if tx is quarantined (Zircuit only) | Zircuit |
zirc_getQuarantined | List quarantined txs with optional filter | Zircuit |
Detailed Usage
eth_blockNumber▶
Get the latest block number.
use_mcp_tool({
server_name: "ethereum_rpc",
tool_name: "eth_blockNumber",
arguments: {}
});
Returns a hex quantity per JSON-RPC conventions.
eth_getBalance▶
Get the ETH balance of an address at the latest block.
use_mcp_tool({
server_name: "ethereum_rpc",
tool_name: "eth_getBalance",
arguments: {
address: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
blockTag: "latest"
}
});
Returns a hex-encoded wei balance.
eth_getCode▶
Determine if an address hosts contract bytecode.
use_mcp_tool({
server_name: "ethereum_rpc",
tool_name: "eth_getCode",
arguments: {
address: "0x6B175474E89094C44Da98b954EedeAC495271d0F",
blockTag: "latest"
}
});
Non-empty bytecode indicates a smart contract.
eth_getTransactionByHash▶
Retrieve a transaction by its hash.
use_mcp_tool({
server_name: "ethereum_rpc",
tool_name: "eth_getTransactionByHash",
arguments: {
hash: "0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"
}
});
Returns full transaction fields per JSON-RPC spec.
zirc_isQuarantined▶
Check if a transaction is quarantined (Zircuit endpoints only).
use_mcp_tool({
server_name: "ethereum_rpc",
tool_name: "zirc_isQuarantined",
arguments: {
hash: "0x..."
}
});
Available automatically when connected to Zircuit (Chain ID 48900).
Installation
{
"mcpServers": {
"ethereum_rpc": {
"command": "npx",
"args": [
"-y",
"ethereum-rpc-mpc",
"https://eth.llamarpc.com",
"Ethereum"
]
}
}
}
Custom RPC & Chain:
Replace the RPC URL and chain name with your target endpoint (e.g., https://mainnet.zircuit.com and Zircuit).
Add --analytics and --db-path /path/to/analytics.db to enable analytics.
Common Use Cases
1. Get Current Block Number
use_mcp_tool({
server_name: "ethereum_rpc",
tool_name: "eth_blockNumber",
arguments: {}
});
2. Check Address Balance
use_mcp_tool({
server_name: "ethereum_rpc",
tool_name: "eth_getBalance",
arguments: { address: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e", blockTag: "latest" }
});
3. Is Address a Contract?
use_mcp_tool({
server_name: "ethereum_rpc",
tool_name: "eth_getCode",
arguments: { address: "0x6B175474E89094C44Da98b954EedeAC495271d0F", blockTag: "latest" }
});
4. Retrieve Transaction Details
use_mcp_tool({
server_name: "ethereum_rpc",
tool_name: "eth_getTransactionByHash",
arguments: { hash: "0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060" }
});
5. Zircuit Quarantine Status
use_mcp_tool({
server_name: "ethereum_rpc",
tool_name: "zirc_isQuarantined",
arguments: { hash: "0x..." }
});
Sources
Related Articles
Puppeteer MCP Server
Puppeteer MCP servers enable AI models to perform browser automation, web scraping, testing workflows, and screenshot generation through headless Chrome/Chromium control.
Playwright MCP Server
Playwright MCP servers enable AI models to perform cross-browser automation, modern web testing, accessibility testing, and end-to-end testing workflows using Playwright's powerful browser automation capabilities.
Setting up MCP Servers in Visual Studio Code
Model Context Protocol (MCP) enables AI models to interact with external tools and services through a unified interface. This guide will walk you through setting up MCP servers in Visual Studio Code to enhance your GitHub Copilot experience.