Blockchain MCP Server

Un servidor para interacciones blockchain, que ofrece generación de direcciones vanity de Ethereum, búsqueda 4byte, codificación ABI y llamadas RPC multicadena.

Documentación

Servidor Blockchain MCP

Un servidor de herramientas blockchain basado en el Protocolo de Contexto de Modelos (MCP) que proporciona generación de direcciones vanity de Ethereum y funcionalidad de comandos Cast.

Características

1. Generación de Direcciones Vanity de Ethereum

  • 🎯 Soporte para especificar prefijo y sufijo de dirección
  • ⚡ Cómputo concurrente multi-hilo para rendimiento optimizado
  • 📊 Visualización de estadísticas de generación en tiempo real
  • ✅ Verificación de validez de direcciones

2. Herramientas de Comandos Cast

  • 🔍 4byte: Obtener firmas de funciones a partir de selectores de funciones
  • 🔧 4byte-decode: Decodificar calldata codificada en ABI
  • 📦 abi-encode: Codificar parámetros de funciones en ABI
  • 🔄 abi-decode: Decodificar datos en ABI

3. Servicio RPC

  • 📞 static-call: Realizar llamadas estáticas en cualquier cadena compatible con EVM (solo lectura)
  • 💸 send-transaction: Enviar transacciones a contratos inteligentes (requiere clave privada)
  • 💰 get-balance: Consultar saldo de direcciones
  • 🔗 list-chains: Listar cadenas compatibles

Instalación y Uso

Instalar Dependencias

npm install

Compilar el Proyecto

npm run build

Ejecutar el Servidor

npm start

Modo de Desarrollo

npm run dev

Guía de Uso de Herramientas

Generación de Direcciones Vanity

generate-vanity-address

Generar direcciones de Ethereum que coincidan con condiciones especificadas

Parámetros:

  • prefix (opcional): Prefijo de dirección, excluyendo 0x
  • suffix (opcional): Sufijo de dirección
  • workers (opcional): Número de hilos concurrentes, predeterminado 4, máximo 16
  • caseSensitive (opcional): Si distingue entre mayúsculas y minúsculas, predeterminado falso

Ejemplo:

{
  "prefix": "1234",
  "suffix": "abcd",
  "workers": 8,
  "caseSensitive": false
}

validate-ethereum-address

Validar la validez de una dirección de Ethereum

Parámetros:

  • address: Dirección de Ethereum a validar

Herramientas de Comandos Cast

4byte

Obtener firmas de funciones para el selector dado

Parámetros:

  • selector: Selector de función de 4 bytes (hexadecimal)

Ejemplo:

{
  "selector": "0xa9059cbb"
}

4byte-decode

Decodificar calldata codificada en ABI

Parámetros:

  • calldata: Calldata codificada en ABI (hexadecimal)

Ejemplo:

{
  "calldata": "0xa9059cbb000000000000000000000000..."
}

abi-encode

Codificar parámetros de funciones en ABI

Parámetros:

  • types: Matriz de tipos de parámetros
  • values: Matriz de valores de parámetros

Ejemplo:

{
  "types": ["uint256", "address", "bool"],
  "values": [1000, "0x1234567890123456789012345678901234567890", true]
}

abi-encode-with-signature

Codificación ABI completa de llamadas a funciones (con selector de función)

Parámetros:

  • functionSignature: Firma de la función
  • values: Matriz de valores de parámetros

Ejemplo:

{
  "functionSignature": "transfer(address,uint256)",
  "values": ["0x1234567890123456789012345678901234567890", 1000]
}

abi-decode

Decodificar datos codificados en ABI

Parámetros:

  • types: Matriz de tipos de parámetros
  • data: Datos hexadecimales a decodificar

Ejemplo:

{
  "types": ["uint256", "address"],
  "data": "0x00000000000000000000000000000000000000000000000000000000000003e8"
}

Herramientas del Servicio RPC

list-chains

Listar todas las cadenas compatibles con EVM

Parámetros: Ninguno

get-balance

Consultar saldo de dirección en la cadena especificada

Parámetros:

  • chain: Identificador de cadena (por ejemplo, "ethereum", "polygon", "bsc")
  • address: Dirección a consultar
  • blockTag (opcional): Etiqueta de bloque, predeterminado "latest"

Ejemplo:

{
  "chain": "ethereum",
  "address": "0x1234567890123456789012345678901234567890"
}

static-call

Realizar llamadas estáticas a contratos inteligentes (operaciones de solo lectura)

Parámetros:

  • chain: Identificador de cadena
  • to: Dirección del contrato
  • data: Datos de llamada de función codificados en ABI
  • blockTag (opcional): Etiqueta de bloque, predeterminado "latest"

Ejemplo:

{
  "chain": "ethereum",
  "to": "0xA0b86a33E6441068C73f4Ea6cB24b80b52bF97F4",
  "data": "0x70a08231000000000000000000000000123456789012345678901234567890123456789"
}

send-transaction

Enviar transacciones a contratos inteligentes (requiere clave privada)

Parámetros:

  • chain: Identificador de cadena
  • to: Dirección del contrato
  • data: Datos de llamada de función codificados en ABI
  • value (opcional): Cantidad de ETH a enviar (wei)
  • gasLimit (opcional): Límite de gas
  • gasPrice (opcional): Precio del gas (wei)
  • privateKey: Clave privada del remitente

Ejemplo:

{
  "chain": "sepolia",
  "to": "0x1234567890123456789012345678901234567890",
  "data": "0xa9059cbb000000000000000000000000...",
  "value": "0",
  "privateKey": "0x..."
}

Optimización del Rendimiento

Consejos de Rendimiento para Generación de Direcciones Vanity

  • Los prefijos más cortos se generan más rápido
  • Los sufijos son ligeramente más fáciles que los prefijos
  • Se recomienda usar 4-8 hilos de trabajo para un rendimiento óptimo
  • Evite especificar simultáneamente un prefijo largo y un sufijo largo

Tiempo de Generación Esperado

  • 4 caracteres hexadecimales: segundos a minutos
  • 5 caracteres hexadecimales: minutos a decenas de minutos
  • 6 caracteres hexadecimales: horas
  • 7+ caracteres: puede tomar mucho tiempo

Redes Blockchain Compatibles

Red Principal

  • Ethereum: ethereum (ID de cadena: 1)
  • Polygon: polygon (ID de cadena: 137)
  • BSC: bsc (ID de cadena: 56)
  • Arbitrum: arbitrum (ID de cadena: 42161)
  • Optimism: optimism (ID de cadena: 10)
  • Avalanche: avalanche (ID de cadena: 43114)
  • Fantom: fantom (ID de cadena: 250)

Red de Pruebas

  • Sepolia: sepolia (ID de cadena: 11155111)

Todas las redes utilizan endpoints RPC públicos para garantizar estabilidad y accesibilidad.

Stack Tecnológico

  • TypeScript: JavaScript con seguridad de tipos
  • MCP SDK: Implementación del Protocolo de Contexto de Modelos
  • Ethers.js: Biblioteca de Ethereum
  • Node.js Worker Threads: Cómputo concurrente multi-hilo
  • API de 4byte.directory: Base de datos de firmas de funciones

Consideraciones de Seguridad

⚠️ Notas Importantes:

  • Las claves privadas generadas tienen control total sobre los activos
  • Mantenga siempre las claves privadas seguras y nunca las comparta con nadie
  • Se recomienda generar direcciones importantes en entornos fuera de línea
  • Esta herramienta es solo para fines de aprendizaje y prueba

Instalación mediante NPM

Puede instalar este servidor MCP globalmente:

npm install -g blockchain-mcp-server

O usarlo con npx:

npx blockchain-mcp-server

Configuración de MCP

Agregue a la configuración de su cliente MCP:

{
  "mcpServers": {
    "blockchain": {
      "command": "npx",
      "args": ["blockchain-mcp-server"]
    }
  }
}

Licencia

Licencia MIT