mcpField
E
EVM Wallet Signer

EVM Wallet Signer

ローカル
github.com金融データ26 週間前に更新

EVM Wallet Signer について

ツールに秘密鍵を渡さず、ブラウザーウォレットで承認したいユーザー向けに、EVM署名を仲介するMCPサーバーとライブラリを提供します。このリポジトリは browser-web3-signer に置き換えられており、現在のパッケージは互換シムとして動作します。

主な機能

  1. 01ブラウザーウォレットに接続してアドレスを取得
  2. 02ウォレット承認用のトランザクション送信
  3. 03personal_signによるメッセージ署名
  4. 04EIP-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 の4つのツールを公開します。署名リクエストは 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 に置き換えられました — 同じブラウザーウォレット署名フローを、CLI と Rust/TypeScript/Go ライブラリを備えた Rust 実装として再構築しています。このリポジトリから公開されるものはすべて、現在はその薄い互換性シムです。そのため既存のインストールは引き続き動作しますが、新しいコードでは browser-web3-signer を直接使用してください。

秘密鍵がブラウザーの外に出ることはありません。 すべてのトランザクションには、ご自身のウォレット(MetaMask、Rabby、TronLink など)での明示的な承認が必要です。

多くのブロックチェーンツールでは、設定ファイルに秘密鍵を入力する必要があり、資金への完全かつ監視されないアクセスを許してしまいます。これらのパッケージは、各リクエストをすでにお使いのブラウザーウォレットに転送するため、ほかの dapp とのやり取りと同じように内容を確認して承認できます。

パッケージ

パッケージ現在の内容
mcp-wallet-signerMCP stdio サーバー:browser-web3-signer を介した 4 つの署名ツール
browser-evm-signer旧 WalletSigner EVM ライブラリ API を Rust ブリッジで再実装したもの
browser-tron-signerTRON(TronLink、TRC-20、コントラクトのデプロイ)向けの同様のライブラリ

3 つすべてが 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_dataEIP-712 型付きデータに署名し、署名を返します

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: 残高ツール(get_balance、get_token_balance)と TRON ツールは、MCP サーバーから削除されました。残高の取得にウォレットは必要ありません。承認プロンプトなしで、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 承認 UI、wallet-signer-core パッケージ — は、コミット 636fd3b までの履歴にあります。

開発

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

リリースはパッケージごとに行います。<package>@<version> のタグを作成し、GitHub リリースを公開してください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。