mcpField
E
Ethereum & EVM Message Signing

Ethereum & EVM Message Signing

本地服务
github.com/nirholas金融数据282 周前更新

关于 Ethereum & EVM Message Signing

Signing MCP Server 是一个 Ethereum 消息签名 MCP 服务,支持 EIP-191 personal_sign 与 EIP-712 结构化数据签名。它面向需要签名、验签或恢复签名者地址的开发者,并提供常见 EIP-712 模板。

主要功能

  1. 01支持 EIP-191 personal_sign 签名
  2. 02支持 EIP-712 结构化数据签名与哈希
  3. 03提供签名验证与签名者地址恢复
  4. 04可拆分、组合和转换签名格式
  5. 05内置 Permit、Order 等 EIP-712 模板

适用场景

  1. 01为 ERC-20 Permit 生成签名
  2. 02调试和验证钱包签名结果
  3. 03学习 EIP-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

一个 MCP(Model Context Protocol)服务,提供全面的 Ethereum 消息签名功能,包括 EIP-191 personal_sign 和 EIP-712 类型化结构化数据。

功能

工具(共 12 个)
EIP-191 消息签名
  • sign_message - 使用 EIP-191 personal_sign 格式对文本消息签名
  • sign_message_hex - 使用 EIP-191 格式对十六进制编码的字节签名
  • 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。