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 分

    请在仓库或注册中心条目中声明许可证。