# Ethereum & EVM Message Signing

Подписывает сообщения EIP-191 и типизированные данные EIP-712, проверяет и восстанавливает подписанта. Понадобится, когда агенту нужно разобраться с подписью без ручных скриптов.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 28
- Автор: nirholas
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/nirholas/ethereum-wallet-toolkit/tree/HEAD/signing-mcp-server
- Обновлён: 2026-10-19
- HTML: https://affpapa.org/nevibecode/mcp/ethereum-evm-message-signing

## Что делает

Сервер даёт агенту 12 инструментов. Первая группа — EIP-191: подпись текста и hex-байтов, проверка подписи, восстановление адреса подписанта. Вторая — EIP-712: подпись структурированных данных, проверка, восстановление, а также расчёт хеша без самой подписи. Отдельно есть утилиты для разбора подписи на `v`, `r`, `s`, обратной сборки и приведения `v` между форматами 27/28 и 0/1. Инструмент `sign_hash` подписывает сырой 32-байтовый хеш и сработает только после явного подтверждения риска.

Внутри ещё четыре ресурса со спецификациями EIP-191 и EIP-712, описанием форматов подписей и шаблонами типизированных структур: Permit для ERC-20, Permit2, ордера DEX, делегирование голосов, пример Mail. Четыре промпта ведут по сценариям — подпись сообщения, работа с typed data, отладка проверки, подпись permit.

Приватные ключи сервер не пишет в логи и не сохраняет. Подпись идёт через реализации `eth-account`. Автор ставит рамку: инструмент для обучения и разработки, поэтому ключи от реальных кошельков сюда лучше не подставлять.

## Требования
- Нужно: Python и uv (команды через uvx)

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add signing-mcp-server -- uvx signing-mcp-server
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from signing-mcp-server <команда>

### Codex

**Командой платформы**
```bash
codex mcp add signing-mcp-server -- uvx signing-mcp-server
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from signing-mcp-server <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "signing-mcp-server": {
            "command": "uvx",
            "args": [
                "signing-mcp-server"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from signing-mcp-server <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "signing-mcp-server": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "signing-mcp-server"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from signing-mcp-server <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add signing-mcp-server uvx signing-mcp-server
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from signing-mcp-server <команда>

## Когда брать
- подписать текст в формате EIP-191 personal_sign
- проверить подпись и найти адрес, который её поставил
- разобрать подпись на компоненты v, r, s и собрать обратно
- посчитать EIP-712 хеш для структуры Permit без отправки подписи
- привести значение v из формата 27/28 к 0/1

## Примеры запросов агенту
- Подпиши сообщение «Hello, Ethereum!» ключом из переменной окружения и покажи v, r, s
- Проверь подпись `0x...` для сообщения Hello и скажи, совпадает ли адрес с `0xABC123...`
- Разбери подпись `0x...` на v, r, s и нормализуй v к формату 0/1

## Похожие
- [REA](https://affpapa.org/nevibecode/mcp/rea.md) — MCP-сервер · ★ 386989
- [World Monitor](https://affpapa.org/nevibecode/mcp/world-monitor.md) — MCP-сервер · ★ 89408
- [mcp](https://affpapa.org/nevibecode/mcp/kubeshark-mcp.md) — MCP-сервер · ★ 12109
- [Robin: AI-Powered Dark Web OSINT](https://affpapa.org/nevibecode/mcp/robin-ai-powered-dark-web-osint.md) — MCP-сервер · ★ 7658
- [jshookmcp](https://affpapa.org/nevibecode/mcp/jshookmcp.md) — MCP-сервер · ★ 2061
- [OpenOSINT](https://affpapa.org/nevibecode/mcp/openosint.md) — MCP-сервер · ★ 1802

Из того же набора: [nirholas/ethereum-wallet-toolkit](https://affpapa.org/nevibecode/by/nirholas/ethereum-wallet-toolkit.md) — 2 карточки

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
