MCP Hub
Back to servers

EVM Wallet Signer

Route EVM transactions to browser wallets (MetaMask, etc.) for signing via EIP-6963

Updated
Feb 10, 2026

Quick Install

npx -y mcp-wallet-signer

MCP Wallet Signer

MCP server that routes blockchain transactions to browser wallets for signing. Install with just claude mcp add - no separate servers to run.

Installation

Claude Code CLI

claude mcp add evm-wallet -- npx mcp-wallet-signer

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "evm-wallet": {
      "command": "npx",
      "args": ["mcp-wallet-signer"]
    }
  }
}

Run directly

npx mcp-wallet-signer
pnpx mcp-wallet-signer
bunx mcp-wallet-signer

MCP Tools

ToolDescriptionBrowser Required
connect_walletConnect wallet, return addressYes
send_transactionSend ETH/tokens, call contractsYes
sign_messageSign arbitrary message (personal_sign)Yes
sign_typed_dataSign EIP-712 typed dataYes
get_balanceRead ETH balance (via RPC)No

How It Works

  1. Agent calls an MCP tool (e.g., send_transaction)
  2. Server opens browser to a local signing page
  3. User connects wallet and approves the action
  4. Result (address, tx hash, signature) returned to agent

Supported Chains

Built-in RPC URLs for:

  • Ethereum (1)
  • Sepolia (11155111)
  • Polygon (137)
  • Arbitrum One (42161)
  • Optimism (10)
  • Base (8453)
  • Avalanche (43114)
  • BNB Smart Chain (56)

Configuration

Environment variables (optional):

VariableDescriptionDefault
EVM_MCP_PORTHTTP server port3847
EVM_MCP_DEFAULT_CHAINDefault chain ID1

Development

Requires Deno v2.0+.

# Install dependencies
deno install
cd web && deno install && cd ..

# Run MCP server in dev mode
deno task dev

# Run web UI dev server (separate terminal)
deno task dev:web

# Run tests
deno task test

# Build web UI
deno task build:web

# Build for npm
deno task build:npm

# Format code
deno task fmt

# Lint code
deno task lint

Project Structure

├── src/
│   ├── index.ts          # Entry point
│   ├── mcp-server.ts     # MCP tool definitions
│   ├── http-server.ts    # Lazy-started HTTP server
│   ├── pending-store.ts  # Promise-based request tracking
│   ├── browser.ts        # Browser launcher
│   ├── config.ts         # Chain/RPC configuration
│   └── types.ts          # Type definitions
├── web/                  # Svelte UI
│   ├── src/
│   │   ├── App.svelte
│   │   ├── lib/
│   │   │   ├── api.ts    # API client
│   │   │   └── wallet.ts # viem wallet interactions
│   │   └── components/
│   │       ├── ConnectWallet.svelte
│   │       ├── TransactionSigner.svelte
│   │       └── MessageSigner.svelte
│   └── ...
└── tests/
    ├── pending-store.test.ts
    └── e2e/

License

MIT

Reviews

No reviews yet

Sign in to write a review