Ethereum & EVM Message Signing

io.github.nirholas由 GitHub 帳號 nirholas 發布v1.0.0更新於 Oct 25, 2026

Sign Ethereum messages - EIP-191, EIP-712 typed data, Permit2, signature verification and recovery

已驗證STDIO僅桌面金融開發者工具

概覽

AI 產生的概覽

一個本機 MCP 伺服器,讓助理簽署、驗證與還原以太坊訊息及 EIP-712 型別化資料的簽章,並處理簽章組成部分。

可以做什麼
簽署 EIP-191 文字訊息與十六進位編碼位元組,並驗證簽章或從中還原簽署者地址。簽署 EIP-712 型別化結構資料,驗證並還原其簽署者,以及在不簽署的情況下計算型別化資料雜湊。將簽章拆解為 v、r、s 組成部分、重新組合,並在 27/28 與 0/1 的 v 格式之間轉換。簽署原始 32 位元組雜湊,此操作需要明確的風險確認。讀取內附的 EIP-191、EIP-712、簽章格式,以及 Permit、Permit2、Order、Delegation 等常用型別化資料範本參考。
適用情境
適合開發與測試以太坊簽章流程:產生測試簽章、檢查簽章是否符合預期地址、除錯 EIP-712 結構,或準備 ERC-20 permit 與 Permit2 內容。
執行需求
以本機程序在使用者電腦上執行,從 PyPI 安裝 signing-mcp-server(pip install),以 signing-mcp-server 指令啟動;清單也列出 uvx 作為執行方式。需要設定桌面用戶端。未宣告帳號、API 金鑰或環境變數。簽章工具以工具輸入形式接收私鑰。
安裝前請注意
簽章工具以輸入參數接收私鑰,使用的金鑰會暴露給助理與模型提供者;只應使用一次性的開發金鑰。簽署原始雜湊及 permit 等型別化資料可能授權真實的代幣轉帳或授權額度,切勿使用持有資金的金鑰簽署。README 聲明此伺服器僅供教育與開發用途。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Ethereum & EVM Message Signing,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Signing MCP Server

[PyPI] [MCP Registry]

An MCP (Model Context Protocol) server providing comprehensive Ethereum message signing capabilities including EIP-191 personal_sign and EIP-712 typed structured data.

Features

Tools (12 total)

EIP-191 Message Signing
  • sign_message - Sign a text message using EIP-191 personal_sign format
  • sign_message_hex - Sign hex-encoded bytes using EIP-191 format
  • verify_message - Verify an EIP-191 signed message
  • recover_signer - Recover signer address from a signed message
EIP-712 Typed Data
  • sign_typed_data - Sign EIP-712 typed structured data
  • verify_typed_data - Verify an EIP-712 typed data signature
  • recover_typed_data_signer - Recover signer from typed data signature
  • hash_typed_data - Compute EIP-712 hash without signing
Signature Utilities
  • decompose_signature - Break down signature into v, r, s components
  • compose_signature - Compose signature from v, r, s components
  • normalize_signature - Convert between signature formats (27/28 vs 0/1 for v)
Advanced Operations
  • sign_hash - Sign a raw 32-byte hash (requires acknowledgement)

Resources (4 total)

  • eip191-specification - Complete EIP-191 signed data standard
  • eip712-specification - Complete EIP-712 typed data standard
  • signature-formats - Documentation on Ethereum signature formats
  • common-typed-data - Templates for common EIP-712 structures

Prompts (4 total)

  • sign_message_workflow - Guide through message signing process
  • typed_data_workflow - Guide through EIP-712 typed data signing
  • signature_verification - Help verify and debug signatures
  • permit_signing - Specialized workflow for ERC-20 permits

Installation

bash
pip install signing-mcp-server

Or install from source:

bash
cd signing-mcp-serverpip install -e .

Usage

Run the server

bash
signing-mcp-server

Configure in Claude Desktop

Add to your claude_desktop_config.json:

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

Tool Examples

Sign a Message (EIP-191)

python
# Input{    "message": "Hello, Ethereum!",    "private_key": "0x..."}
# Output{    "message": "Hello, Ethereum!",    "signer": "0xABC123...",    "signature": "0x...",    "v": 28,    "r": "0x...",    "s": "0x...",    "message_hash": "0x..."}

Sign Typed Data (EIP-712)

python
# 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..."}

Verify a Signature

python
# Input{    "message": "Hello, Ethereum!",    "signature": "0x...",    "expected_address": "0xABC123..."}
# Output{    "is_valid": true,    "recovered_address": "0xABC123...",    "expected_address": "0xABC123...",    "match": true}

Security Notes

  1. Private keys are NEVER logged or persisted
  2. sign_hash requires explicit risk acknowledgement - signing raw hashes can be dangerous
  3. All operations use eth-account's secure implementations
  4. For educational and development purposes only

EIP-712 Templates

The server includes templates for common typed data structures:

  • Permit - ERC-20 token permits (EIP-2612)
  • Permit2 - Uniswap's universal permit system
  • Order - DEX limit orders
  • Delegation - Voting power delegation
  • Mail - EIP-712 specification example

License

MIT

來源:signing-mcp-server/README.md,提交 dabb599

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。