EVM Wallet Signer
Route EVM transactions to browser wallets (MetaMask, etc.) for signing via EIP-6963
Ask AI about EVM Wallet Signer
Powered by Claude Β· Grounded in docs
I know everything about EVM Wallet Signer. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
MCP Wallet Signer
Your private keys never leave your browser. Every transaction requires explicit user approval in your wallet.
Most blockchain MCPs require you to paste a private key into a config file β giving the AI agent full, unsupervised access to your funds. MCP Wallet Signer takes a different approach: it routes every transaction to your actual browser wallet (MetaMask, Rabby, etc.) via EIP-6963, so you review and approve each action just like any other dapp interaction. No keys in config files, no risk of silent transactions.
Compatible With
Works with any MCP-compatible client via stdio transport.
Installation
Claude Code CLI
claude mcp add evm-wallet -- npx -y mcp-wallet-signer
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"evm-wallet": {
"command": "npx",
"args": ["-y", "mcp-wallet-signer"]
}
}
}
Run directly
npx -y mcp-wallet-signer
pnpx mcp-wallet-signer
bunx mcp-wallet-signer
MCP Tools
| Tool | Description | Browser Required |
|---|---|---|
connect_wallet | Connect wallet, return address | Yes |
send_transaction | Send ETH/tokens, call contracts | Yes |
sign_message | Sign arbitrary message (personal_sign) | Yes |
sign_typed_data | Sign EIP-712 typed data | Yes |
get_balance | Read ETH balance (via RPC) | No |
How It Works
- Agent calls an MCP tool (e.g.,
send_transaction) - Server opens browser to a local signing page
- User connects wallet and approves the action
- Result (address, tx hash, signature) returned to agent
| Connect Wallet | Send Transaction | Sign Message |
|---|---|---|
![]() | ![]() | ![]() |
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):
| Variable | Description | Default |
|---|---|---|
EVM_MCP_PORT | HTTP server port | 3847 |
EVM_MCP_DEFAULT_CHAIN | Default chain ID | 1 |
Packages
This is a monorepo with two packages:
| Package | Description |
|---|---|
browser-evm-signer | Standalone library β sign EVM transactions via browser wallet, no MCP dependency |
mcp-wallet-signer | MCP server β exposes browser-evm-signer as MCP tools for AI agents |
Use browser-evm-signer directly if you want browser-based signing in your own Node.js/Deno app without MCP.
Development
Requires Deno v2.0+.
# Install all dependencies
deno task install:all
# Type check + lint + format check (both packages)
deno task check:all
# Run tests
deno task test:all
# Build both npm packages
deno task build:all
# Format code
deno task fmt
Project Structure
packages/
βββ browser-evm-signer/ # Standalone signing library (npm: browser-evm-signer)
β βββ src/ # Library source
β βββ web/ # Svelte approval UI
β βββ tests/ # Unit, e2e, and browser tests
β βββ scripts/build-npm.ts
β
βββ mcp-wallet-signer/ # MCP server layer (npm: mcp-wallet-signer)
βββ src/ # MCP tool definitions + CLI entry
βββ scripts/build-npm.ts
Both packages are built with dnt and use node: builtins (no Deno-specific APIs) so the npm bundles run under Node.js.
License
MIT



