MCP Hub
Back to servers

Geth Proxy

A proxy bridge that connects Ethereum JSON-RPC/Geth endpoints to MCP, offering schema-validated blockchain queries, admin diagnostics, and safe transaction execution with friendly aliases.

Stars
2
Tools
21
Updated
Jan 3, 2026
Validated
Jan 11, 2026

Geth MCP Proxy

Node.js Express.js License: MIT

Introduction

This project is a Node.js proxy that exposes an Ethereum JSON-RPC endpoint (Geth) as MCP tools. It focuses on a beginner-friendly MCP surface with schema validation, readable responses, and a passthrough tool (eth_callRaw) for any method that is not explicitly registered.

screenshot_vscode_3

Features

  • MCP tool registration with Zod validation and friendly aliases.
  • Common Ethereum RPC methods plus a small set of admin/debug/txpool helpers.
  • Hex to decimal formatting for block numbers, balances, and gas prices.
  • Safe-by-default transaction broadcasting (ALLOW_SEND_RAW_TX=1 to enable).
  • Health and discovery endpoints (/, /health, /mcp).
  • Passthrough JSON-RPC via eth_callRaw (respects send-raw-tx safety).

Quickstart

  1. Clone and install:

    git clone https://github.com/John0n1/Geth-MCP-Proxy.git
    cd Geth-MCP-Proxy
    npm install
    
  2. Copy the env template and edit GETH_URL:

    # PowerShell
    Copy-Item example.env .env
    
    # macOS/Linux
    cp example.env .env
    
  3. Start the server:

    npm start
    
  4. Verify connectivity:

    curl http://localhost:3000/health?upstream=1
    
  5. List tools:

    curl -s http://localhost:3000/mcp \
      -H "Content-Type: application/json" \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
    
  6. 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":{}}}'
    
screenshot_vscode_4

Configuration

Create a .env file in the root directory:

GETH_URL=http://localhost:8545  # URL to your Geth 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.api or --ws.api.

Usage

  • Root: GET / returns basic metadata and endpoints.
  • Health: GET /health (add ?upstream=1 to verify Geth).
  • MCP: POST /mcp supports initialize, tools/list, and tools/call.
  • Simple REST: GET /blockNumber returns the current block number in hex and decimal.

MCP Client Config

If your MCP client uses a config file, point it to the server:

{
  "geth-mcp-proxy": {
    "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_getTransactionByHash
  • eth_call (alias: call)
  • eth_estimateGas (alias: estimateGas)
  • eth_getTransactionReceipt (alias: getTransactionReceipt)
  • eth_getLogs (alias: getLogs)
  • eth_getProof (alias: getProof)
  • eth_sendRawTransaction (alias: sendRawTransaction, gated by ALLOW_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_metrics
  • debug_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.

Reviews

No reviews yet

Sign in to write a review