eth-mcp
MCP server that enables AI agents to build and deploy Ethereum applications using Scaffold-ETH.
README
eth-mcp
MCP server that enables AI agents to build and deploy Ethereum applications using Scaffold-ETH.
The AI is the planner. The MCP server is the executor.
Quick Start
Add to your Cursor MCP config (~/.cursor/mcp.json):
{
"mcpServers": {
"eth-mcp": {
"command": "npx",
"args": ["-y", "eth-mcp@latest"]
}
}
}
Restart Cursor. Done! Now ask your AI:
"Build me a swapping app with a 1% tax token on Base"
What This Does
eth-mcp is a Model Context Protocol (MCP) server that:
- Clones and configures Scaffold-ETH projects - Foundry + Next.js stack
- Manages long-running processes - Anvil fork, contract deployment, frontend
- Provides file access - Read/write project files
- Exposes logs and status - Resources for agent polling
- Includes Web3 knowledge - Guides for incentive design and Solidity patterns
- DeFi address registry - Token and protocol addresses across 5 chains
- DeFi yield tools - Query live APY/TVL data from DefiLlama
This enables AI agents to go from natural language to running dApp without manual intervention.
Recommended MCP Stack
eth-mcp is designed to work alongside companion MCP servers for a complete Ethereum development experience. We strongly recommend installing all three:
| MCP Server | Purpose | Essential For |
|---|---|---|
| eth-mcp | Build, deploy, run local dev | Core functionality |
| mcp-server-ens | ENS name resolution | Resolving .eth names (vitalik.eth → 0x...) |
| @blockscout/mcp-server | Blockchain exploration | Tx analysis, contract ABIs, on-chain data |
Full Configuration (Recommended)
Add all three to your ~/.cursor/mcp.json:
{
"mcpServers": {
"eth-mcp": {
"command": "npx",
"args": ["-y", "eth-mcp@latest"]
},
"ens": {
"command": "npx",
"args": ["-y", "mcp-server-ens"]
},
"blockscout": {
"command": "npx",
"args": ["-y", "@blockscout/mcp-server"]
}
}
}
Division of Responsibilities
| Task | eth-mcp | ENS MCP | Blockscout |
|---|---|---|---|
| Scaffold project | ✅ | ||
| Deploy contracts | ✅ | ||
| Run local fork | ✅ | ||
| Start frontend | ✅ | ||
| Resolve vitalik.eth | ✅ | ||
| Get ENS records (avatar, socials) | ✅ | ||
| Check mainnet balances | ✅ | ||
| Analyze transactions | ✅ | ||
| Get contract ABIs | ✅ | ||
| Look up token addresses | ✅ (registry) | ✅ (live) | |
| Query live yield data | ✅ |
Example Workflow
1. Use ENS MCP to resolve "vitalik.eth" to get the address
2. Use Blockscout to check their USDC balance and recent transactions
3. Use eth-mcp to scaffold a project that interacts with their address
4. Use eth-mcp to write and deploy contracts locally
5. Use Blockscout to verify mainnet state your fork is based on
6. Use eth-mcp to start frontend and test
Why All Three?
- eth-mcp handles the local development loop: scaffolding, forking, deploying, hot-reloading
- ENS MCP handles name resolution: converting human-readable .eth names to addresses
- Blockscout handles blockchain exploration: reading mainnet state, analyzing transactions, fetching ABIs
The AI agent orchestrates all three, choosing the right tool for each task.
Alternative Installation (from source)
# Clone the repo
git clone https://github.com/austintgriffith/eth-mcp
cd eth-mcp
# Install dependencies
npm install
# Build
npm run build
Configure MCP Client (local)
Add to your MCP settings:
{
"mcpServers": {
"eth-mcp": {
"command": "node",
"args": ["/path/to/eth-mcp/dist/index.js"]
}
}
}
MCP Tools
Stack Management
| Tool | Description |
|---|---|
stack_init |
Clone Scaffold-ETH, configure for chain |
stack_install |
Install dependencies (yarn install) |
stack_start |
Start components: fork, deploy, frontend |
stack_stop |
Stop running components |
stack_status |
Get health report and URLs |
Process Management
| Tool | Description |
|---|---|
process_list |
List all managed processes |
process_logs |
Get stdout/stderr for a process |
process_stop |
Stop a specific process |
Project Files
| Tool | Description |
|---|---|
project_readFile |
Read a project file |
project_writeFile |
Write content to a file |
project_listFiles |
List directory contents |
MCP Resources
Resources for polling status and logs:
| Resource URI | Description |
|---|---|
resource://stack/status |
Current stack health |
resource://stack/config |
Stack configuration |
resource://process/fork/stdout |
Anvil fork output |
resource://process/fork/stderr |
Anvil fork errors |
resource://process/frontend/stdout |
Next.js output |
resource://process/frontend/stderr |
Next.js errors |
resource://contracts/deployed |
Deployed contract addresses |
Example Agent Workflow
Here's how an AI agent would build a tax token swap app:
Agent: "Build a swapping app with a 1% tax token on Base"
1. stack_init({ template: "scaffold-eth", chain: "base", workspacePath: "/tmp/tax-swap" })
→ Clones scaffold-eth-2, configures for Base
2. stack_install()
→ Runs yarn install
3. project_writeFile({ path: "packages/foundry/contracts/TaxToken.sol", content: "..." })
→ Creates the tax token contract
4. project_writeFile({ path: "packages/foundry/script/Deploy.s.sol", content: "..." })
→ Updates deploy script
5. stack_start({ components: ["fork", "deploy", "frontend"] })
→ Starts Anvil fork of Base
→ Deploys contracts
→ Starts Next.js
6. stack_status()
→ Returns: { urls: { rpc: "http://localhost:8545", frontend: "http://localhost:3000" } }
7. project_writeFile({ path: "packages/nextjs/app/page.tsx", content: "..." })
→ Creates swap UI on home page
Result: Running app at http://localhost:3000
Supported Chains
| Chain | ID | Fork RPC |
|---|---|---|
| mainnet | 1 | Public RPC |
| base | 8453 | Public RPC |
| optimism | 10 | Public RPC |
| arbitrum | 42161 | Public RPC |
| polygon | 137 | Public RPC |
| sepolia | 11155111 | Public RPC |
Documentation for AI Agents
The docs/ folder contains guides that help AI agents understand Web3 development:
- WEB3_DEVELOPMENT_GUIDE.md - Mental model shift, incentive thinking, security patterns
- SOLIDITY_PATTERNS.md - Common contract patterns and templates
- DEFI_BUILDING_BLOCKS.md - DeFi primitives and composability
AI agents should read these before building complex applications.
Protocol Packs
Example protocol integrations in protocol-packs/:
uniswap-v4-tax-swap
Placeholder implementation of:
TaxToken.sol- ERC-20 with 1% transfer taxTaxSwapHook.sol- Uniswap V4 hook for tax handlingSwapUI.tsx- React swap interface
This shows structure, not full implementation. V4 is still in development.
Safety
The server enforces several safety constraints:
Command Allowlist:
- Only
git,yarn,npm,pnpm,npx,forge,anvil,cast,node
Private Key Protection:
- Sanitizes output to remove private keys
- Blocks access to
.envfiles - Filters sensitive environment variables
No Mainnet Writes:
- Local development only
- Fork-based testing
Architecture
┌─────────────────────────────────────────────────────────────┐
│ AI Agent │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ "Build me a swapping app with a 1% tax token" │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────┬───────────────────────────────────┘
│ MCP Protocol
┌─────────────────────────▼───────────────────────────────────┐
│ eth-mcp │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Stack │ │ Process │ │ Project │ │Resources │ │
│ │ Tools │ │ Manager │ │ Tools │ │ │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
└───────┼─────────────┼─────────────┼─────────────┼──────────┘
│ │ │ │
┌───────▼─────────────▼─────────────▼─────────────▼──────────┐
│ Workspace │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ scaffold-eth-2 │ │
│ │ ┌───────────────┐ ┌───────────────────────────┐ │ │
│ │ │ Foundry │ │ Next.js │ │ │
│ │ │ (Contracts) │ │ (Frontend) │ │ │
│ │ └───────────────┘ └───────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────────────────────┐ │
│ │ Anvil Fork │ │ http://localhost:3000 │ │
│ │ (Base chain) │ │ (Running app) │ │
│ └─────────────────┘ └─────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
Development
# Watch mode
npm run dev
# Type check
npm run typecheck
# Run server directly
npm start
Limitations (v1)
- Local development only (no mainnet deployment)
- Single workspace at a time
- Basic error recovery
- Placeholder protocol pack implementations
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.