mcpField
E
Ethereum & EVM Message Signing

Ethereum & EVM Message Signing

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

Ethereum & EVM Message Signing について

Signing MCP Server は、EIP-191 personal_sign と EIP-712 型付きデータによる Ethereum メッセージ署名を行う MCP サーバーです。署名、検証、署名者アドレスの復元を必要とする開発者向けで、一般的な EIP-712 構造のテンプレートを含みます。

主な機能

  1. 01EIP-191 personal_sign によるメッセージ署名
  2. 02EIP-712 型付きデータの署名とハッシュ計算
  3. 03署名の検証と署名者アドレスの復元
  4. 04署名要素の分解、結合、正規化
  5. 05Permit や Order などの EIP-712 テンプレート

活用シーン

  1. 01ERC-20 Permit 用の署名の生成
  2. 02ウォレットの署名結果のデバッグと検証
  3. 03EIP-191 と EIP-712 の署名形式の学習

MCP 対応

本プロジェクトは MCP サーバーであり、署名・検証・復元のツールと、仕様リソースおよびプロンプトワークフローを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"nirholas-signing": {
"command": "uvx",
"args": [
"signing-mcp-server"
]
}
}
}
起動コマンドuvx signing-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypisigning-mcp-server1.0.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Signing MCP Server

PyPI MCP Registry

EIP-191 の personal_sign や EIP-712 の型付き構造化データなど、包括的な Ethereum メッセージ署名機能を提供する MCP(Model Context Protocol)サーバーです。

機能

ツール(合計 12 個)
EIP-191 メッセージ署名
  • sign_message - EIP-191 personal_sign 形式を使用してテキストメッセージに署名します
  • sign_message_hex - EIP-191 形式を使用して 16 進数エンコードされたバイト列に署名します
  • verify_message - EIP-191 で署名されたメッセージを検証します
  • recover_signer - 署名済みメッセージから署名者のアドレスを復元します
EIP-712 型付きデータ
  • sign_typed_data - EIP-712 の型付き構造化データに署名します
  • verify_typed_data - EIP-712 の型付きデータ署名を検証します
  • recover_typed_data_signer - 型付きデータ署名から署名者を復元します
  • hash_typed_data - 署名せずに EIP-712 ハッシュを計算します
署名ユーティリティ
  • decompose_signature - 署名を v、r、s の各コンポーネントに分解します
  • compose_signature - v、r、s の各コンポーネントから署名を組み立てます
  • normalize_signature - 署名形式を変換します(v の 27/28 と 0/1)
高度な操作
  • sign_hash - 生の 32 バイトハッシュに署名します(リスクの承認が必要)
リソース(合計 4 個)
  • eip191-specification - EIP-191 署名データ標準の完全な仕様
  • eip712-specification - EIP-712 型付きデータ標準の完全な仕様
  • signature-formats - Ethereum の署名形式に関するドキュメント
  • common-typed-data - 一般的な EIP-712 構造のテンプレート
プロンプト(合計 4 個)
  • sign_message_workflow - メッセージ署名プロセスをガイドします
  • typed_data_workflow - EIP-712 型付きデータ署名をガイドします
  • signature_verification - 署名の検証とデバッグを支援します
  • permit_signing - ERC-20 permit 向けの専用ワークフロー

インストール

pip install signing-mcp-server

またはソースからインストールします:

cd signing-mcp-server
pip install -e .

使用方法

サーバーを起動する
signing-mcp-server
Claude Desktop で設定する

claude_desktop_config.json に以下を追加します:

{
  "mcpServers": {
    "signing": {
      "command": "signing-mcp-server"
    }
  }
}

ツールの例

メッセージに署名する(EIP-191)
# Input
{
    "message": "Hello, Ethereum!",
    "private_key": "0x..."
}

# Output
{
    "message": "Hello, Ethereum!",
    "signer": "0xABC123...",
    "signature": "0x...",
    "v": 28,
    "r": "0x...",
    "s": "0x...",
    "message_hash": "0x..."
}
型付きデータに署名する(EIP-712)
# Input
{
    "typed_data": {
        "types": {...},
        "primaryType": "Permit",
        "domain": {...},
        "message": {...}
    },
    "private_key": "0x..."
}

# Output
{
    "signer": "0xABC123...",
    "signature": "0x...",
    "domain_separator": "0x...",
    "struct_hash": "0x...",
    "signing_hash": "0x..."
}
署名を検証する
# Input
{
    "message": "Hello, Ethereum!",
    "signature": "0x...",
    "expected_address": "0xABC123..."
}

# Output
{
    "is_valid": true,
    "recovered_address": "0xABC123...",
    "expected_address": "0xABC123...",
    "match": true
}

セキュリティに関する注意事項

  1. 秘密鍵は決してログに記録されたり永続化されたりしません
  2. sign_hash には明示的なリスク承認が必要です - 生のハッシュへの署名は危険な場合があります
  3. すべての操作は eth-account の安全な実装を使用します
  4. 教育および開発目的のみに使用してください

EIP-712 テンプレート

このサーバーには、一般的な型付きデータ構造のテンプレートが含まれています:

  • Permit - ERC-20 トークン permit(EIP-2612)
  • Permit2 - Uniswap のユニバーサル permit システム
  • Order - DEX の指値注文
  • Delegation - 投票権の委任
  • Mail - EIP-712 仕様の例

ライセンス

MIT

コメント

MCP は初めてですか?

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

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