Skip to main content
Glama
README.md
# Ethereum Wallet MCP Server

A self-contained [Model Context Protocol](https://modelcontextprotocol.io) (MCP) server that exposes Ethereum wallet tools to AI agents over stdio.

This repository contains the complete MCP server implementation (source code + Dockerfile). No database, no external RPC provider, and no secrets are required to build and run it.

## Tools

| Tool | Description |
|------|-------------|
| `create_wallet` | Create a new Ethereum wallet |
| `list_wallets` | List all wallets |
| `get_balance` | Get the ETH balance of a wallet |
| `validate_address` | Validate an Ethereum address (full EIP-55 checksum verification) |
| `gas_price` | Get the current gas price in Gwei |
| `list_transactions` | List transactions (paged) |
| `get_transaction` | Get details of a single transaction |

## Build & run with Docker

```bash
docker build -t ethereum-wallet-mcp .
docker run -i ethereum-wallet-mcp
```

## Run locally

```bash
dotnet run
```

## Connect (e.g. Claude Desktop / Cursor)

```json
{
  "mcpServers": {
    "ethereum-wallet-mcp": {
      "command": "docker",
      "args": ["run", "-i", "ethereum-wallet-mcp"]
    }
  }
}
```

## Stack

- .NET 9
- [ModelContextProtocol](https://www.nuget.org/packages/ModelContextProtocol) (stdio transport)

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct resource and action: balance reads, wallet listing/creation, transaction listing vs. single-transaction detail, plus two clearly public utility calls (gas price, address validation). There is no meaningful overlap between any pair, and the list/get distinction on transactions is explicit.

Naming Consistency4/5

Five of seven tools follow a clean verb_noun pattern (get_balance, list_wallets, list_transactions, get_transaction, create_wallet, validate_address). The only deviation is gas_price, which uses a noun phrase rather than a verb, but it is still readable and unambiguous.

Tool Count5/5

Seven tools is a tight, well-scoped surface for an Ethereum wallet server with no filler. Every tool maps to a distinct capability an agent would plausibly need.

Completeness3/5

Read paths and wallet creation are covered, but there is no send/transfer tool, no single-wallet detail or rename/delete operation, and no transaction submission or signing. An agent can inspect a wallet but cannot act on it, which is a notable gap for a wallet server.

Maintenance

ActivityMaintained
ResponsivenessSyncing