mcpField
E
EVM Wallet Signer

EVM Wallet Signer

本地服务
github.com金融数据26 周前更新

关于 EVM Wallet Signer

为希望在浏览器钱包中审批操作、而非向工具提供私钥的用户提供 MCP 服务和库,可将 EVM 签名请求转交浏览器钱包。该仓库已由 browser-web3-signer 取代,当前软件包作为兼容垫片运行。

主要功能

  1. 01连接浏览器钱包并返回地址
  2. 02提交交易供钱包审批
  3. 03使用 personal_sign 签名消息
  4. 04签署 EIP-712 类型化数据
  5. 05私钥保留在浏览器中
  6. 06为旧软件包提供兼容垫片

适用场景

  1. 01通过浏览器钱包审批 EVM 交易
  2. 02无需在配置文件中放置私钥即可签名消息
  3. 03使用已连接的钱包签署 EIP-712 数据
  4. 04继续使用依赖兼容垫片的现有安装

MCP 相关

stdio MCP 服务提供 connect_wallet、send_transaction、sign_message 和 sign_typed_data 四个工具。签名请求经由 browser-web3-signer 转交浏览器钱包,并由用户明确审批。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"nikicat-mcp-wallet-signer": {
"command": "npx",
"args": [
"-y",
"mcp-wallet-signer"
],
"env": {
"EVM_MCP_PORT": "<EVM_MCP_PORT>",
"EVM_MCP_DEFAULT_CHAIN": "<EVM_MCP_DEFAULT_CHAIN>"
}
}
}
}
启动命令npx -y mcp-wallet-signer
需要配置的环境变量
EVM_MCP_PORTHTTP server port for the browser approval UI (default: 3847)
EVM_MCP_DEFAULT_CHAINDefault EVM chain ID (default: 1 for Ethereum mainnet)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-wallet-signer0.1.3

工具

5

收录的工具列表 · 更新于 2 周前

参数类型必填说明
chainIdnumber否要连接的 Chain ID(默认:Ethereum 主网为 1)

详细介绍

mcp-wallet-signer

npm version License: MIT

警告

已由 browser-web3-signer 取代——相同的浏览器钱包签名流程,使用 Rust 重新实现,并提供 CLI 以及 Rust/TypeScript/Go 库。本仓库发布的所有内容现在都是它的轻量兼容垫片,因此现有安装仍可继续使用;新代码应直接使用 browser-web3-signer。

你的私钥永远不会离开浏览器。 每笔交易都需要在你自己的钱包(MetaMask、Rabby、TronLink 等)中明确批准。

大多数区块链工具都要求将私钥放在配置文件中,让工具能不受监督地完全访问你的资金。这些包会将每个请求发送到你已在使用的浏览器钱包,因此你可以像处理其他 dapp 交互一样检查并批准请求。

包

包目前的用途
mcp-wallet-signerMCP stdio 服务:通过 browser-web3-signer 提供四种签名工具
browser-evm-signer旧版 WalletSigner EVM 库 API,由 Rust 桥接程序重新提供支持
browser-tron-signerTRON 版本(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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。