Ethereum & EVM Message Signing — MCP server
Signs EIP-191 messages and EIP-712 typed data, checks signatures and recovers the signer. Useful when your agent has to handle Ethereum signatures.
claude mcp add signing-mcp-server -- uvx signing-mcp-serverWhat Ethereum & EVM Message Signing does
Twelve tools come with the server. The EIP-191 set covers signing plain text and hex bytes, verifying a signature, and getting the signer address back out of it. The EIP-712 set signs structured data, verifies it, recovers the signer, and hashes typed data on its own. Signature helpers split a signature into v, r, s, put it back together, and convert v between 27/28 and 0/1. One more tool, sign_hash, signs a raw 32-byte hash and only runs once you acknowledge the risk.
Four resources ship with it: the EIP-191 and EIP-712 specs, notes on Ethereum signature formats, and templates for common typed structures such as ERC-20 Permit, Permit2, DEX orders, vote delegation and the Mail example. Four prompts walk through message signing, typed data, debugging a verification, and ERC-20 permits.
Keys are never logged or stored. All cryptography relies on eth-account. The author labels the project as a learning and development tool, so real wallet keys belong elsewhere.
What it helps with
- sign a text message in EIP-191 personal_sign format
- verify a signature and find out which address produced it
- split a signature into v, r, s and rebuild it
- compute an EIP-712 hash for a Permit structure without signing
- convert v from 27/28 to 0/1
Example prompts for the agent
- Sign the message “Hello, Ethereum!” with the key in my env var and show me v, r and s
- Check whether signature
0x...for the Hello message matches address0xABC123... - Decompose
0x...into v, r, s and normalize v to the 0/1 form
How to install Ethereum & EVM Message Signing
Platform CLI
claude mcp add signing-mcp-server -- uvx signing-mcp-serveruvx runs the command named after the package; if the README names another one, use uvx --from signing-mcp-server <command>
Platform CLI
codex mcp add signing-mcp-server -- uvx signing-mcp-serveruvx runs the command named after the package; if the README names another one, use uvx --from signing-mcp-server <command>
Config file
{
"mcpServers": {
"signing-mcp-server": {
"command": "uvx",
"args": [
"signing-mcp-server"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from signing-mcp-server <command>
Config file
{
"servers": {
"signing-mcp-server": {
"type": "stdio",
"command": "uvx",
"args": [
"signing-mcp-server"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from signing-mcp-server <command>
Platform CLI
gemini mcp add signing-mcp-server uvx signing-mcp-serveruvx runs the command named after the package; if the README names another one, use uvx --from signing-mcp-server <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Ethereum & EVM Message Signing
How do I install Ethereum & EVM Message Signing in Claude Code?
Run claude mcp add signing-mcp-server -- uvx signing-mcp-server. The server then launches through uvx, so no separate package install is needed.
What does this MCP server do?
It signs and verifies EIP-191 messages and EIP-712 typed data, recovers the signer, and breaks signatures into their parts. Specs and templates like Permit2 are included.
Can it sign a raw hash?
Yes, with sign_hash, but that tool asks for explicit risk acknowledgement because signing an arbitrary 32-byte hash is dangerous. The project is meant for learning and development.