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 blockchainaddress(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 blockchainaddress(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 blockchainaddress(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 blockchainaddresses(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.