Ethereum & EVM Message Signing について
Signing MCP Server は、EIP-191 personal_sign と EIP-712 型付きデータによる Ethereum メッセージ署名を行う MCP サーバーです。署名、検証、署名者アドレスの復元を必要とする開発者向けで、一般的な EIP-712 構造のテンプレートを含みます。
主な機能
- 01EIP-191 personal_sign によるメッセージ署名
- 02EIP-712 型付きデータの署名とハッシュ計算
- 03署名の検証と署名者アドレスの復元
- 04署名要素の分解、結合、正規化
- 05Permit や Order などの EIP-712 テンプレート
活用シーン
- 01ERC-20 Permit 用の署名の生成
- 02ウォレットの署名結果のデバッグと検証
- 03EIP-191 と EIP-712 の署名形式の学習
MCP 対応
本プロジェクトは MCP サーバーであり、署名・検証・復元のツールと、仕様リソースおよびプロンプトワークフローを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Signing MCP Server
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
}
セキュリティに関する注意事項
- 秘密鍵は決してログに記録されたり永続化されたりしません
- sign_hash には明示的なリスク承認が必要です - 生のハッシュへの署名は危険な場合があります
- すべての操作は eth-account の安全な実装を使用します
- 教育および開発目的のみに使用してください
EIP-712 テンプレート
このサーバーには、一般的な型付きデータ構造のテンプレートが含まれています:
- Permit - ERC-20 トークン permit(EIP-2612)
- Permit2 - Uniswap のユニバーサル permit システム
- Order - DEX の指値注文
- Delegation - 投票権の委任
- Mail - EIP-712 仕様の例
ライセンス
MIT
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。