关于 EVM Wallet Signer
为希望在浏览器钱包中审批操作、而非向工具提供私钥的用户提供 MCP 服务和库,可将 EVM 签名请求转交浏览器钱包。该仓库已由 browser-web3-signer 取代,当前软件包作为兼容垫片运行。
主要功能
- 01连接浏览器钱包并返回地址
- 02提交交易供钱包审批
- 03使用 personal_sign 签名消息
- 04签署 EIP-712 类型化数据
- 05私钥保留在浏览器中
- 06为旧软件包提供兼容垫片
适用场景
- 01通过浏览器钱包审批 EVM 交易
- 02无需在配置文件中放置私钥即可签名消息
- 03使用已连接的钱包签署 EIP-712 数据
- 04继续使用依赖兼容垫片的现有安装
MCP 相关
stdio MCP 服务提供 connect_wallet、send_transaction、sign_message 和 sign_typed_data 四个工具。签名请求经由 browser-web3-signer 转交浏览器钱包,并由用户明确审批。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| chainId | number | 否 | 要连接的 Chain ID(默认:Ethereum 主网为 1) |
详细介绍
mcp-wallet-signer
警告
已由 browser-web3-signer 取代——相同的浏览器钱包签名流程,使用 Rust 重新实现,并提供 CLI 以及 Rust/TypeScript/Go 库。本仓库发布的所有内容现在都是它的轻量兼容垫片,因此现有安装仍可继续使用;新代码应直接使用
browser-web3-signer。
你的私钥永远不会离开浏览器。 每笔交易都需要在你自己的钱包(MetaMask、Rabby、TronLink 等)中明确批准。
大多数区块链工具都要求将私钥放在配置文件中,让工具能不受监督地完全访问你的资金。这些包会将每个请求发送到你已在使用的浏览器钱包,因此你可以像处理其他 dapp 交互一样检查并批准请求。
包
| 包 | 目前的用途 |
|---|---|
mcp-wallet-signer | MCP stdio 服务:通过 browser-web3-signer 提供四种签名工具 |
browser-evm-signer | 旧版 WalletSigner EVM 库 API,由 Rust 桥接程序重新提供支持 |
browser-tron-signer | TRON 版本(TronLink、TRC-20、合约部署) |
这三个包都会启动 browser-web3-signer serve,由它负责 localhost 桥接程序、批准页面和浏览器标签页。你的平台对应的二进制文件会作为依赖安装;无需进行其他设置。
MCP 服务
claude mcp add wallet-signer -- npx -y mcp-wallet-signer
或者,用于 Claude Desktop / Cursor / Windsurf 和其他任何 stdio MCP 客户端:
{
"mcpServers": {
"wallet-signer": {
"command": "npx",
"args": ["-y", "mcp-wallet-signer"]
}
}
}
| 工具 | 描述 |
|---|---|
connect_wallet | 连接钱包并返回地址 |
send_transaction | 发送资产或调用合约,并返回交易哈希 |
sign_message | 对消息执行 personal_sign 并返回签名 |
sign_typed_data | 对 EIP-712 类型化数据签名并返回签名 |
如果调用未提供链 ID,EVM_MCP_DEFAULT_CHAIN 会设置所用的链 ID(默认值:1)。
库
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" });
垫片中的变更
- 已移除:
PendingStore、pendingStore、createHttpServer、startTestServer、buildConnectUrl、buildSignUrl、openBrowser——这些接口所驱动的进程内 HTTP 桥接程序已不复存在。 approvalUrl现在是桥接程序的基础 URL。桥接程序会自行打开批准页面,不会返回每个请求对应的 URL。port(构造函数选项)会被忽略:桥接程序会绑定自己的可用端口。getPort()/DEFAULT_PORT仍可正常解析,以保持源码兼容性。- MCP: MCP 服务已移除余额工具(
get_balance、get_token_balance)和 TRON 工具。余额查询不需要钱包——任何可读取 RPC 的 MCP 服务或cast call都能完成,无需批准提示——而 TRON 签名只需使用 CLI。两个库中的WalletSigner.getBalance和.getTokenBalance均未改动。 - 已在 npm 和 JSR 上弃用。
[email protected]从未能正常工作:它的exports指向./esm/mod.js,但 tarball 中发布的是./esm/browser-evm-signer/src/mod.js,这也导致[email protected]无法使用 (#2)。
垫片出现之前的 Deno 实现——进程内桥接程序、Svelte 批准界面、wallet-signer-core 包——都保留在历史记录中,直到提交
636fd3b。
开发
npm install
npm test # builds, then runs each package's tests against a fake bridge
各包独立发布:为 <package>@<version> 创建标签并发布 GitHub 版本。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。