🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

keystore-mcp-server

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

keystore-mcp-server

MCP server for Ethereum keystore encryption, decryption, and management

pipPyPI
Version
1.0.0
Weekly downloads
17
-29.17%
Maintainers
1
Weekly downloads
 

Keystore MCP Server

PyPI MCP Registry

A Model Context Protocol (MCP) server for Ethereum keystore encryption, decryption, and management following the Web3 Secret Storage Definition Version 3 standard.

Features

Tools (9)

  • encrypt_keystore - Encrypt private key to Web3 Secret Storage V3 format
  • decrypt_keystore - Decrypt keystore to recover private key
  • save_keystore_file - Save keystore with standard Ethereum naming
  • load_keystore_file - Load and validate keystore files
  • get_keystore_info - Extract metadata without decryption
  • validate_keystore - Validate keystore structure
  • change_keystore_password - Change password and optionally upgrade KDF
  • batch_encrypt_keystores - Encrypt multiple wallets
  • keystore_to_private_key_file - Export decrypted private key (dangerous)

Resources (4)

  • keystore://specification - Web3 Secret Storage V3 specification
  • keystore://security-guide - Security best practices
  • keystore://kdf-comparison - Scrypt vs PBKDF2 comparison
  • keystore://examples/{type} - Example keystores

Prompts (4)

  • secure_wallet_backup - Guided backup creation
  • keystore_migration - Migration from legacy formats
  • keystore_recovery - Recovery assistance
  • keystore_security_audit - Security audit workflow

Installation

pip install -e .

# Or with dev dependencies
pip install -e ".[dev]"

Usage

Running the Server

keystore-mcp-server

Claude Desktop Configuration

{
  "mcpServers": {
    "keystore": {
      "command": "keystore-mcp-server"
    }
  }
}

Cryptographic Standards

Web3 Secret Storage V3

  • KDF: scrypt (recommended) or pbkdf2
  • Cipher: AES-128-CTR
  • MAC: Keccak-256
  • UUID: Version 4

Default Scrypt Parameters

ParameterValueDescription
N262144 (2^18)CPU/memory cost
r8Block size
p1Parallelization
dklen32Derived key length

Default PBKDF2 Parameters

ParameterValueDescription
c262144Iterations
prfhmac-sha256PRF
dklen32Derived key length

Security

⚠️ Important Security Notes:

  • Never share keystore passwords - Treat like private keys
  • Use strong passwords - Minimum 12 characters, mixed case, numbers, symbols
  • Secure file storage - Files created with 0600 permissions
  • Air-gapped operations - Use offline for high-value wallets
  • Backup keystores - Store encrypted backups in multiple locations

Examples

Encrypt a Private Key

result = await encrypt_keystore(
    private_key="0x...",
    password="strong-password-123",
    kdf="scrypt"
)

Decrypt a Keystore

result = await decrypt_keystore(
    keystore=keystore_json,
    password="strong-password-123"
)

Save Keystore File

result = await save_keystore_file(
    keystore=keystore_json,
    directory="./keystores"
)
# Creates: UTC--2024-01-15T10-30-00.000Z--address.json

Testing

pytest tests/ -v

License

MIT License

Keywords

cryptocurrency

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts