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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
signing_mcp_server-1.0.0.tar.gz
(118.7 kB
view details)
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
|