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 0xsuffix(opcional): Sufijo de direcciónworkers(opcional): Número de hilos concurrentes, predeterminado 4, máximo 16caseSensitive(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ámetrosvalues: 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ónvalues: 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ámetrosdata: 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 consultarblockTag(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 cadenato: Dirección del contratodata: Datos de llamada de función codificados en ABIblockTag(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 cadenato: Dirección del contratodata: Datos de llamada de función codificados en ABIvalue(opcional): Cantidad de ETH a enviar (wei)gasLimit(opcional): Límite de gasgasPrice(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