Recon Chimera Scaffold

Genera andamios para suites de pruebas de fuzzing Chimera para contratos inteligentes en Solidity con propiedades invariantes, handlers y configuraciones del fuzzer.

Documentación

@recon-fuzz-mcp/chimera

npm License: MIT Node 18+

Servidor MCP que genera suites de pruebas de fuzzing Chimera para contratos inteligentes Solidity. Genera proyectos listos para compilar con propiedades, handlers y configuraciones de fuzzer.

Herramientas

HerramientaEntradaDevuelve
scaffold_projectcontract_name, functions[]Proyecto Chimera completo (Setup, Properties, TargetFunctions, BeforeAfter, CryticTester + configs)
generate_propertiescontract_source, protocol_type8-15 propiedades invariantes seleccionadas con esqueletos Solidity
get_templatetemplate_nameProyecto Chimera completo listo para compilar para un tipo de protocolo estándar
explain_patternpattern_nameExplicación detallada con ejemplos de código

Tipos de protocolo

erc20, vault, lending, amm, governance, staking

Patrones

actors, ghosts, cross-contract, setup-layering

Instalación

Claude Code

claude mcp add chimera-scaffold -- npx @recon-fuzz-mcp/chimera

Claude Desktop

Añadir a ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "chimera-scaffold": {
      "command": "npx",
      "args": ["@recon-fuzz-mcp/chimera"]
    }
  }
}

Cursor

Añadir a .cursor/mcp.json en tu proyecto:

{
  "mcpServers": {
    "chimera-scaffold": {
      "command": "npx",
      "args": ["@recon-fuzz-mcp/chimera"]
    }
  }
}

No se necesita clave API. El servidor se ejecuta completamente en local sin llamadas de red.

Desarrollo local

git clone https://github.com/Recon-Fuzz/recon-mcp-chimera.git
cd recon-mcp-chimera
npm install
npm run build

Prueba que funciona

# List tools
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | node dist/index.js

# Scaffold a vault project
echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"scaffold_project","arguments":{"contract_name":"SimpleVault","functions":["deposit(uint256)","withdraw(uint256)"]}},"id":2}' | node dist/index.js

# Get a lending template
echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_template","arguments":{"template_name":"lending"}},"id":3}' | node dist/index.js

Arquitectura

  • Sin llamadas de red — todo son plantillas en memoria y generación de cadenas
  • src/templates/base.ts — Generadores de archivos Solidity (Setup, BeforeAfter, Properties, TargetFunctions, CryticTester)
  • src/templates/configs.ts — Generadores de configuración de fuzzer (foundry.toml, echidna.yaml, medusa.json)
  • src/properties/ — Catálogos de propiedades seleccionadas por tipo de protocolo (8-15 propiedades cada uno)
  • src/patterns/ — Explicaciones de patrones con ejemplos completos de código Solidity
  • src/tools/ — Implementaciones de herramientas MCP

Privacidad

Este servidor se ejecuta completamente sin conexión. Sin llamadas de red, sin lectura de variables de entorno, sin escritura de datos en disco, sin telemetría. Toda la generación de plantillas ocurre en el proceso.