MCP Sourcify Server

Verifica y recupera el código fuente de contratos inteligentes usando la API de Sourcify.

Documentación

Servidor MCP Sourcify

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona herramientas para interactuar con la API de Sourcify para verificar y recuperar el código fuente de contratos inteligentes.

Descripción general

Este servidor MCP permite a los LLM interactuar con Sourcify, un repositorio descentralizado de código fuente de contratos inteligentes verificados. Proporciona herramientas para comprobar el estado de verificación de contratos, recuperar código fuente y acceder a metadatos de contratos en múltiples redes blockchain.

Características

  • Comprobar verificación de contratos: Verifica si un contrato está registrado en Sourcify
  • Obtener código fuente del contrato: Recupera el código fuente completo de contratos verificados
  • Obtener metadatos del contrato: Accede a la configuración del compilador e información ABI
  • Verificación por lotes: Comprueba múltiples contratos en una sola solicitud

Instalación

# Clone the repository
git clone <repository-url>
cd mcp-sourcify

# Install dependencies
npm install

# Build the project
npm run build

Configuración

El servidor se puede configurar usando variables de entorno:

  • SOURCIFY_API_URL: El endpoint de la API de Sourcify (predeterminado: https://sourcify.dev/server)
  • PORT: Puerto del servidor (predeterminado: 3000) - Nota: No se usa en modo stdio

Uso

Con Claude Desktop

Agrega lo siguiente a tu archivo de configuración de 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"]
    }
  }
}

Con VS Code

Instala la extensión MCP para VS Code y agrega la configuración del servidor a la configuración de tu espacio de trabajo.

Uso directo (Desarrollo)

# Run in development mode
npm run dev

# Or run the built version
npm start

Herramientas disponibles

1. check-contract

Comprueba si un contrato está verificado en Sourcify.

Parámetros:

  • chainId (número): El ID de la cadena blockchain
  • address (cadena): La dirección del contrato a comprobar

Devuelve: Estado de verificación (perfect, partial o false)

2. get-contract-source

Recupera el código fuente de un contrato verificado.

Parámetros:

  • chainId (número): El ID de la cadena blockchain
  • address (cadena): La dirección del contrato

Devuelve: Objeto con nombres de archivo como claves y código fuente como valores

3. get-contract-metadata

Obtiene los metadatos de un contrato verificado, incluida la configuración del compilador y el ABI.

Parámetros:

  • chainId (número): El ID de la cadena blockchain
  • address (cadena): La dirección del contrato

Devuelve: Metadatos del contrato, incluida la versión del compilador, ABI y configuración

4. check-multiple-contracts

Comprueba el estado de verificación de múltiples contratos a la vez.

Parámetros:

  • chainId (número): El ID de la cadena blockchain
  • addresses (matriz): Matriz de direcciones de contratos a comprobar

Devuelve: Matriz de estados de verificación

Ejemplo de uso

Una vez configurado, puedes usar lenguaje natural para interactuar con Sourcify a través de tu cliente compatible con 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 compatibles

Este servidor admite todas las redes compatibles con Sourcify. Los ID de cadena comunes incluyen:

  • Ethereum Mainnet: 1
  • Goerli: 5
  • Polygon: 137
  • Arbitrum: 42161
  • Optimism: 10
  • BSC: 56

Para obtener una lista completa, visita las cadenas compatibles de Sourcify.

Desarrollo

# Watch mode for development
npm run watch

# Build the project
npm run build

# Run type checking
tsc --noEmit

Manejo de errores

El servidor incluye un manejo integral de errores para:

  • Direcciones de contratos no válidas
  • ID de cadena no compatibles
  • Tiempos de espera de red
  • Contratos no encontrados en Sourcify

Licencia

ISC

Contribuciones

¡Las contribuciones son bienvenidas! Envía solicitudes de extracción o abre problemas para cualquier mejora o corrección de errores.