EVM Wallet Signer

io.github.nikicat由 GitHub 账号 nikicat 发布v0.1.3更新于 Oct 24, 2026

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

已验证STDIO仅桌面金融安全与监控

概览

AI 生成的概览

让助手发起 EVM 钱包连接、交易和消息签名请求,由你在自己的浏览器钱包中逐笔批准。

可以做什么
这是一个本地 stdio MCP 服务器,通过本机桥接和批准页面把签名请求转交给 MetaMask、Rabby 等浏览器钱包。它提供四个工具:connect_wallet 返回地址,send_transaction 发送转账或调用合约并返回交易哈希,sign_message 执行 personal_sign,sign_typed_data 签署 EIP-712 类型化数据。私钥始终留在浏览器中,每个请求都需要在钱包里明确批准。
适用场景
适合助手需要准备并提交 EVM 交易或签名、而私钥由你自己保管并逐笔确认的场景。适用于可以接受每次请求都弹出钱包确认的交互式流程,而不是无人值守的自动签名。
运行要求
以 npm 包形式在本地运行,通常用 npx 启动,因此需要 Node.js。它会启动与平台相关的 browser-web3-signer 二进制程序,由后者负责本机桥接和批准页面,同时需要安装浏览器钱包扩展。可选环境变量:EVM_MCP_DEFAULT_CHAIN 指定默认链 ID,EVM_MCP_PORT 指定批准界面端口。
安装前请注意
该服务器可以请求钱包发送交易、签署消息或类型化数据,可能转移资金或授权链上操作;未经你在钱包中批准不会签名。README 说明该包已被 browser-web3-signer 取代,本仓库现为兼容性外壳,并提到 [email protected] 曾完全不可用并连带导致 [email protected] 失效,安装前请确认版本。余额工具和 TRON 工具已不再包含。

安装

在 SourceWeft 中

  1. 打开 控制台中的 EVM Wallet Signer,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

mcp-wallet-signer

[npm version] [License: MIT]

[!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

bash
claude mcp add wallet-signer -- npx -y mcp-wallet-signer

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

json
{  "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

ts
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. [email protected] never worked at all: its exports pointed at ./esm/mod.js while the tarball shipped ./esm/browser-evm-signer/src/mod.js, which took [email protected] 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

bash
npm installnpm 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

来源:README.md,提交 5476879

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.3最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分