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 blockchain
  • address (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 blockchain
  • address (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 blockchain
  • address (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 blockchain
  • addresses (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.