MCP Sourcify Server
Verifique e recupere o código-fonte de contratos inteligentes usando a API do Sourcify.
Documentação
Servidor MCP Sourcify
Um servidor Model Context Protocol (MCP) que fornece ferramentas para interagir com a API Sourcify, a fim de verificar e recuperar o código-fonte de contratos inteligentes.
Visão Geral
Este servidor MCP permite que LLMs interajam com o Sourcify, um repositório descentralizado de código-fonte verificado de contratos inteligentes. Ele fornece ferramentas para verificar o status de verificação de contratos, recuperar código-fonte e acessar metadados de contratos em múltiplas redes blockchain.
Recursos
- Verificar Verificação de Contrato: Verifique se um contrato está registrado no Sourcify
- Obter Código-Fonte do Contrato: Recupere o código-fonte completo de contratos verificados
- Obter Metadados do Contrato: Acesse configurações do compilador e informações da ABI
- Verificação em Lote: Verifique múltiplos contratos em uma única solicitação
Instalação
# Clone the repository
git clone <repository-url>
cd mcp-sourcify
# Install dependencies
npm install
# Build the project
npm run build
Configuração
O servidor pode ser configurado usando variáveis de ambiente:
SOURCIFY_API_URL: O endpoint da API Sourcify (padrão:https://sourcify.dev/server)PORT: Porta do servidor (padrão: 3000) - Nota: Não é usada no modo stdio
Uso
Com o Claude Desktop
Adicione o seguinte ao seu arquivo de configuração do Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"sourcify": {
"command": "node",
"args": ["/path/to/mcp-sourcify/dist/index.js"]
}
}
}
Com o VS Code
Instale a extensão MCP para VS Code e adicione a configuração do servidor às configurações do seu workspace.
Uso Direto (Desenvolvimento)
# Run in development mode
npm run dev
# Or run the built version
npm start
Ferramentas Disponíveis
1. check-contract
Verifique se um contrato está verificado no Sourcify.
Parâmetros:
chainId(número): O ID da cadeia blockchainaddress(string): O endereço do contrato a ser verificado
Retorna: Status de verificação (perfect, partial ou false)
2. get-contract-source
Recupere o código-fonte de um contrato verificado.
Parâmetros:
chainId(número): O ID da cadeia blockchainaddress(string): O endereço do contrato
Retorna: Objeto com nomes de arquivos como chaves e código-fonte como valores
3. get-contract-metadata
Obtenha os metadados de um contrato verificado, incluindo configurações do compilador e ABI.
Parâmetros:
chainId(número): O ID da cadeia blockchainaddress(string): O endereço do contrato
Retorna: Metadados do contrato, incluindo versão do compilador, ABI e configurações
4. check-multiple-contracts
Verifique o status de verificação de múltiplos contratos de uma só vez.
Parâmetros:
chainId(número): O ID da cadeia blockchainaddresses(array): Matriz de endereços de contratos a serem verificados
Retorna: Matriz de status de verificação
Exemplo de Uso
Uma vez configurado, você pode usar linguagem natural para interagir com o Sourcify através do seu cliente habilitado para MCP:
"Check if contract 0x1234... on Ethereum mainnet (chain 1) is verified on Sourcify"
"Get the source code for contract 0x5678... on Polygon (chain 137)"
"Show me the ABI for contract 0xabcd... on Arbitrum (chain 42161)"
Redes Suportadas
Este servidor suporta todas as redes suportadas pelo Sourcify. IDs de cadeia comuns incluem:
- Ethereum Mainnet: 1
- Goerli: 5
- Polygon: 137
- Arbitrum: 42161
- Optimism: 10
- BSC: 56
Para uma lista completa, visite as cadeias suportadas do Sourcify.
Desenvolvimento
# Watch mode for development
npm run watch
# Build the project
npm run build
# Run type checking
tsc --noEmit
Tratamento de Erros
O servidor inclui tratamento abrangente de erros para:
- Endereços de contrato inválidos
- IDs de cadeia não suportados
- Timeouts de rede
- Contratos não encontrados no Sourcify
Licença
ISC
Contribuição
Contribuições são bem-vindas! Envie pull requests ou abra issues para quaisquer melhorias ou correções de bugs.