EVM Wallet Signer

Registre officiel Recherche et web

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

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

NPM package mcp-wallet-signer
Claude Code
claude mcp add evm-wallet-signer -e 'EVM_MCP_PORT=3847' -e 'EVM_MCP_DEFAULT_CHAIN=1' -- npx -y mcp-wallet-signer@0.1.3
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "evm-wallet-signer": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-wallet-signer@0.1.3"
            ],
            "env": {
                "EVM_MCP_PORT": "3847",
                "EVM_MCP_DEFAULT_CHAIN": "1"
            }
        }
    }
}

Variables d'environnement

  • EVM_MCP_PORT HTTP server port for the browser approval UI (default: 3847)
  • EVM_MCP_DEFAULT_CHAIN Default EVM chain ID (default: 1 for Ethereum mainnet)

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. mcp-wallet-signer
  2. Packages
  3. What changed in the shims
  4. Development
  5. License

mcp-wallet-signer

[!WARNING] Superseded by browser-web3-signer — the same browser-wallet signing flow, reimplemented in Rust with a CLI plus Rust/TypeScript/Go libraries. Everything published from this repo is now a thin compatibility shim over it, so existing installs keep working; new code should use browser-web3-signer directly.

Your private keys never leave your browser. Every transaction requires explicit approval in your own wallet (MetaMask, Rabby, TronLink, …).

Most blockchain tooling wants a private key in a config file — full, unsupervised access to your funds. These packages route each request to the browser wallet you already use, so you review and approve it like any other dapp interaction.

Packages

PackageWhat it is now
mcp-wallet-signerMCP stdio server: four signing tools over browser-web3-signer
browser-evm-signerThe old WalletSigner EVM library API, re-backed by the Rust bridge
browser-tron-signerThe same for TRON (TronLink, TRC-20, contract deploys)

All three spawn browser-web3-signer serve, which owns the localhost bridge, the approval page and the browser tab. The binary for your platform is installed as a dependency; nothing else to set up.

MCP server
claude mcp add wallet-signer -- npx -y mcp-wallet-signer

Or, for Claude Desktop / Cursor / Windsurf and any other stdio MCP client:

{
  "mcpServers": {
    "wallet-signer": {
      "command": "npx",
      "args": ["-y", "mcp-wallet-signer"]
    }
  }
}
ToolDescription
connect_walletConnect a wallet, return the address
send_transactionSend value or call a contract, return the tx hash
sign_messagepersonal_sign a message, return the signature
sign_typed_dataSign EIP-712 typed data, return the signature

EVM_MCP_DEFAULT_CHAIN sets the chain id used when a call omits one (default: 1).

Libraries
import { WalletSigner } from "browser-evm-signer";

const signer = new WalletSigner({ defaultChainId: 8453 });
const { address } = await signer.connectWallet();
const { txHash } = await signer.sendTransaction({ to: "0x…", value: "1000000000000000000" });

What changed in the shims

  • Gone: PendingStore, pendingStore, createHttpServer, startTestServer, buildConnectUrl, buildSignUrl, openBrowser — the in-process HTTP bridge they drove no longer exists.
  • approvalUrl is now the bridge's base URL. The bridge opens the approval page itself and does not hand the per-request URL back.
  • port (the constructor option) is ignored: the bridge binds its own free port. getPort() / DEFAULT_PORT still resolve, for source compatibility.
  • MCP: the balance tools (get_balance, get_token_balance) and the TRON tools are gone from the MCP server. Balances never needed a wallet — any RPC-reading MCP server or cast call does them without an approval prompt — and TRON signing is a CLI away. WalletSigner.getBalance and .getTokenBalance are untouched in both libraries.
  • Deprecated on npm and JSR. browser-evm-signer@0.3.0 never worked at all: its exports pointed at ./esm/mod.js while the tarball shipped ./esm/browser-evm-signer/src/mod.js, which took mcp-wallet-signer@0.6.0 down with it (#2).

The pre-shim Deno implementation — the in-process bridge, the Svelte approval UI, the wallet-signer-core package — is in the history, up to commit 636fd3b.

Development

npm install
npm test     # builds, then runs each package's tests against a fake bridge

Releases are per package: tag <package>@<version> and publish a GitHub release.

License

MIT

Questions fréquentes

Qu'est-ce que EVM Wallet Signer ?

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

Comment installer EVM Wallet Signer ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add evm-wallet-signer -e 'EVM_MCP_PORT=3847' -e 'EVM_MCP_DEFAULT_CHAIN=1' -- npx -y mcp-wallet-signer@0.1.3. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour EVM Wallet Signer ?

Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.

EVM Wallet Signer est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient EVM Wallet Signer ?

Il est publié par nikicat. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.