MCP Server for Ethereum message signing and EIP-712 typed data
Project description
Signing MCP Server
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
pip install signing-mcp-server
Or install from source:
cd signing-mcp-server
pip install -e .
Usage
Run the server
signing-mcp-server
Configure in Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"signing": {
"command": "signing-mcp-server"
}
}
}
Tool Examples
Sign a Message (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..."
}
Sign Typed Data (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..."
}
Verify a Signature
# Input
{
"message": "Hello, Ethereum!",
"signature": "0x...",
"expected_address": "0xABC123..."
}
# Output
{
"is_valid": true,
"recovered_address": "0xABC123...",
"expected_address": "0xABC123...",
"match": true
}
Security Notes
- Private keys are NEVER logged or persisted
- sign_hash requires explicit risk acknowledgement - signing raw hashes can be dangerous
- All operations use eth-account's secure implementations
- 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file signing_mcp_server-1.0.0.tar.gz.
File metadata
- Download URL: signing_mcp_server-1.0.0.tar.gz
- Upload date:
- Size: 118.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a72d389b9324c10354df161b3698d76468bb20b86c63984992daf33fb53fb16a
|
|
| MD5 |
a03626797a136463e6c200bac7df8b2b
|
|
| BLAKE2b-256 |
f0342a50cbb555519f525cc0d621d69346aef0d6eade2d827e4cfe410931df3b
|
File details
Details for the file signing_mcp_server-1.0.0-py3-none-any.whl.
File metadata
- Download URL: signing_mcp_server-1.0.0-py3-none-any.whl
- Upload date:
- Size: 30.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c0754f6a770b4ce76b95fcda5525eeb00d820da7cc34cb750e91ab69892ab5a
|
|
| MD5 |
dc3cdde7a356ed7970e6c2373b630b86
|
|
| BLAKE2b-256 |
5841cf455e6bd3f24ea9ee366f2ab905b79d648e8e4c48f429e6f1263e2d56ac
|