Geth Proxy
FreeNot checkedProvides a proxy bridge to Ethereum JSON-RPC endpoints for querying blockchain data and executing Ethereum operations with built-in safety features, friendly al
About
Provides a proxy bridge to Ethereum JSON-RPC endpoints for querying blockchain data and executing Ethereum operations with built-in safety features, friendly aliases, and support for both standard and Geth-specific APIs.
README
Node.js Express.js License: MIT
Introduction
This project provides a Node.js-based proxy server designed to expose an Ethereum JSON-RPC endpoint as a suite of MCP tools. The primary objective is to offer an accessible MCP interface, featuring robust schema validation, clear and concise responses, and a passthrough utility (eth_callRaw) for methods not explicitly defined.
Features
- MCP tool registration, incorporating Zod validation and user-friendly aliases.
- Support for prevalent Ethereum RPC methods, augmented by a selection of administrative, debugging, and transaction pool utilities.
- Automatic conversion of hexadecimal values to decimal for block numbers, balances, and gas prices.
- Secure-by-default transaction broadcasting, with an option to enable raw transaction submission via
ALLOW_SEND_RAW_TX=1. - Dedicated endpoints for health monitoring and service discovery (
/,/health,/mcp). - JSON-RPC passthrough functionality through
eth_callRaw, adhering to established raw transaction submission safety protocols..
Quickstart
Clone and install:
git clone https://github.com/John0n1/ethereum-mcp.git cd ethereum-mcp npm installCopy the env template and edit
GETH_URL:# PowerShell Copy-Item example.env .env # macOS/Linux cp example.env .envStart the server:
npm startVerify connectivity:
curl http://localhost:3000/health?upstream=1List tools:
curl -s http://localhost:3000/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Call a tool:
curl -s http://localhost:3000/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"getBlockNumber","arguments":{}}}'
Configuration
Create a .env file in the root directory:
GETH_URL=http://localhost:8545 # URL to your Geth/Nethermind node's JSON-RPC endpoint
PORT=3000 # Optional: Server port (default: 3000)
ALLOW_SEND_RAW_TX=0 # Optional: Set to 1/true to enable transaction broadcasting
- GETH_URL is required.
- Some admin/debug methods may require Geth flags such as
--http.apior--ws.api.
Usage
- Root:
GET /returns basic metadata and endpoints. - Health:
GET /health(add?upstream=1to verify Geth). - MCP:
POST /mcpsupportsinitialize,tools/list, andtools/call. - Simple REST:
GET /blockNumberreturns the current block number in hex and decimal.
MCP Client Config
If your MCP client uses a config file, point it to the server:
{
"ethereum-mcp": {
"url": "http://localhost:3000/mcp/",
"type": "http",
"headers": {
"Content-Type": "application/json"
}
}
}
Available Tools
Call tools/list for the live list. Highlights include:
Core Ethereum Tools
eth_blockNumber(aliases:getBlockNumber,eth_getBlockNumber)eth_getBalance(alias:getBalance)eth_chainId(alias:getChainId)eth_gasPrice(alias:getGasPrice)eth_syncing(aliases:isSyncing,eth_isSyncing)eth_getBlockByNumber(alias:getBlock)eth_getTransactionByHasheth_call(alias:call)eth_estimateGas(alias:estimateGas)eth_getTransactionReceipt(alias:getTransactionReceipt)eth_getLogs(alias:getLogs)eth_getProof(alias:getProof)eth_sendRawTransaction(alias:sendRawTransaction, gated byALLOW_SEND_RAW_TX)eth_callRaw(alias:ethCallRaw)
Block parameters accept tags like latest/pending or decimal/hex block numbers.
Admin Tools
admin_peers(alias:getPeers)admin_nodeInfo
Debug Tools
debug_metricsdebug_traceTransaction(alias:traceTransaction)debug_blockProfile(alias:blockProfile)debug_getBlockRlp(alias:getBlockRlp)
Txpool Tools
txpool_status
Contributing
Contributions are welcome! Please open an issue or submit a pull request for bug fixes, new tools, or improvements.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Installing Geth Proxy
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/john0n1/ethereum-mcpFAQ
Is Geth Proxy MCP free?
Yes, Geth Proxy MCP is free — one-click install via Unyly at no cost.
Does Geth Proxy need an API key?
No, Geth Proxy runs without API keys or environment variables.
Is Geth Proxy hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Geth Proxy in Claude Desktop, Claude Code or Cursor?
Open Geth Proxy on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Geth Proxy with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
