Blockchain MCP Server
Um servidor para interações com blockchain, oferecendo geração de endereços vanity Ethereum, consulta 4byte, codificação ABI e chamadas RPC multi-chain.
Documentação
Blockchain MCP Server
Um servidor de ferramentas blockchain baseado no Model Context Protocol (MCP) que fornece geração de endereços Ethereum vanity e funcionalidade de comandos Cast.
Recursos
1. Geração de Endereço Ethereum Vanity
- 🎯 Suporte para especificar prefixo e sufixo do endereço
- ⚡ Computação concorrente multi-thread para desempenho otimizado
- 📊 Exibição de estatísticas de geração em tempo real
- ✅ Verificação de validade do endereço
2. Ferramentas de Comando Cast
- 🔍 4byte: Obter assinaturas de função a partir de seletores de função
- 🔧 4byte-decode: Decodificar calldata codificado em ABI
- 📦 abi-encode: Codificar parâmetros de função em ABI
- 🔄 abi-decode: Decodificar dados ABI
3. Serviço RPC
- 📞 static-call: Fazer chamadas estáticas em qualquer chain compatível com EVM (somente leitura)
- 💸 send-transaction: Enviar transações para contratos inteligentes (requer chave privada)
- 💰 get-balance: Consultar saldo de endereço
- 🔗 list-chains: Listar chains suportadas
Instalação e Uso
Instalar Dependências
npm install
Compilar Projeto
npm run build
Executar Servidor
npm start
Modo de Desenvolvimento
npm run dev
Guia de Uso das Ferramentas
Geração de Endereço Vanity
generate-vanity-address
Gere endereços Ethereum que correspondam às condições especificadas
Parâmetros:
prefix(opcional): Prefixo do endereço, excluindo 0xsuffix(opcional): Sufixo do endereçoworkers(opcional): Número de threads concorrentes, padrão 4, máximo 16caseSensitive(opcional): Se diferencia maiúsculas de minúsculas, padrão falso
Exemplo:
{
"prefix": "1234",
"suffix": "abcd",
"workers": 8,
"caseSensitive": false
}
validate-ethereum-address
Valide a validade do endereço Ethereum
Parâmetros:
address: Endereço Ethereum para validar
Ferramentas de Comando Cast
4byte
Obter assinaturas de função para o seletor fornecido
Parâmetros:
selector: Seletor de função de 4 bytes (hexadecimal)
Exemplo:
{
"selector": "0xa9059cbb"
}
4byte-decode
Decodificar calldata codificado em ABI
Parâmetros:
calldata: Calldata codificado em ABI (hexadecimal)
Exemplo:
{
"calldata": "0xa9059cbb000000000000000000000000..."
}
abi-encode
Codificar parâmetros de função em ABI
Parâmetros:
types: Matriz de tipos de parâmetrosvalues: Matriz de valores de parâmetros
Exemplo:
{
"types": ["uint256", "address", "bool"],
"values": [1000, "0x1234567890123456789012345678901234567890", true]
}
abi-encode-with-signature
Codificação ABI completa de chamada de função (com seletor de função)
Parâmetros:
functionSignature: Assinatura da funçãovalues: Matriz de valores de parâmetros
Exemplo:
{
"functionSignature": "transfer(address,uint256)",
"values": ["0x1234567890123456789012345678901234567890", 1000]
}
abi-decode
Decodificar dados codificados em ABI
Parâmetros:
types: Matriz de tipos de parâmetrosdata: Dados hexadecimais para decodificar
Exemplo:
{
"types": ["uint256", "address"],
"data": "0x00000000000000000000000000000000000000000000000000000000000003e8"
}
Ferramentas de Serviço RPC
list-chains
Listar todas as chains compatíveis com EVM suportadas
Parâmetros: Nenhum
get-balance
Consultar saldo de endereço na chain especificada
Parâmetros:
chain: Identificador da chain (ex.: "ethereum", "polygon", "bsc")address: Endereço para consultarblockTag(opcional): Tag de bloco, padrão "latest"
Exemplo:
{
"chain": "ethereum",
"address": "0x1234567890123456789012345678901234567890"
}
static-call
Fazer chamadas estáticas para contratos inteligentes (operações somente leitura)
Parâmetros:
chain: Identificador da chainto: Endereço do contratodata: Dados de chamada de função codificados em ABIblockTag(opcional): Tag de bloco, padrão "latest"
Exemplo:
{
"chain": "ethereum",
"to": "0xA0b86a33E6441068C73f4Ea6cB24b80b52bF97F4",
"data": "0x70a08231000000000000000000000000123456789012345678901234567890123456789"
}
send-transaction
Enviar transações para contratos inteligentes (requer chave privada)
Parâmetros:
chain: Identificador da chainto: Endereço do contratodata: Dados de chamada de função codificados em ABIvalue(opcional): Quantidade de ETH a enviar (wei)gasLimit(opcional): Limite de gásgasPrice(opcional): Preço do gás (wei)privateKey: Chave privada do remetente
Exemplo:
{
"chain": "sepolia",
"to": "0x1234567890123456789012345678901234567890",
"data": "0xa9059cbb000000000000000000000000...",
"value": "0",
"privateKey": "0x..."
}
Otimização de Desempenho
Dicas de Desempenho para Geração de Endereço Vanity
- Prefixos mais curtos geram mais rápido
- Sufixos são ligeiramente mais fáceis que prefixos
- Recomenda-se usar 4-8 threads de trabalho para desempenho ideal
- Evite especificar simultaneamente um prefixo longo e um sufixo longo
Tempo de Geração Esperado
- 4 caracteres hexadecimais: segundos a minutos
- 5 caracteres hexadecimais: minutos a dezenas de minutos
- 6 caracteres hexadecimais: horas
- 7+ caracteres: pode levar muito tempo
Redes Blockchain Suportadas
Mainnet
- Ethereum: ethereum (Chain ID: 1)
- Polygon: polygon (Chain ID: 137)
- BSC: bsc (Chain ID: 56)
- Arbitrum: arbitrum (Chain ID: 42161)
- Optimism: optimism (Chain ID: 10)
- Avalanche: avalanche (Chain ID: 43114)
- Fantom: fantom (Chain ID: 250)
Testnet
- Sepolia: sepolia (Chain ID: 11155111)
Todas as redes usam endpoints RPC públicos para garantir estabilidade e acessibilidade.
Pilha Tecnológica
- TypeScript: JavaScript com tipagem segura
- MCP SDK: Implementação do Model Context Protocol
- Ethers.js: Biblioteca Ethereum
- Node.js Worker Threads: Computação concorrente multi-thread
- 4byte.directory API: Banco de dados de assinaturas de função
Considerações de Segurança
⚠️ Notas Importantes:
- Chaves privadas geradas têm controle total sobre os ativos
- Sempre mantenha as chaves privadas seguras e nunca as compartilhe com ninguém
- Recomenda-se gerar endereços importantes em ambientes offline
- Esta ferramenta é apenas para fins de aprendizado e teste
Instalação via NPM
Você pode instalar este servidor MCP globalmente:
npm install -g blockchain-mcp-server
Ou usá-lo com npx:
npx blockchain-mcp-server
Configuração MCP
Adicione à configuração do seu cliente MCP:
{
"mcpServers": {
"blockchain": {
"command": "npx",
"args": ["blockchain-mcp-server"]
}
}
}
Licença
MIT License