Recon Chimera Scaffold

Estrutura suítes de teste de fuzzing Chimera para contratos inteligentes Solidity com propriedades invariantes, handlers e configurações de fuzzer.

Documentação

@recon-fuzz-mcp/chimera

npm License: MIT Node 18+

Servidor MCP que gera suítes de teste de fuzzing Chimera para contratos inteligentes Solidity. Gera projetos prontos para compilar com propriedades, handlers e configurações de fuzzer.

Ferramentas

FerramentaEntradaRetorno
scaffold_projectcontract_name, functions[]Projeto Chimera completo (Setup, Properties, TargetFunctions, BeforeAfter, CryticTester + configs)
generate_propertiescontract_source, protocol_type8-15 propriedades invariantes curadas com esqueletos Solidity
get_templatetemplate_nameProjeto Chimera completo pronto para compilar para um tipo de protocolo padrão
explain_patternpattern_nameExplicação detalhada com exemplos de código

Tipos de protocolo

erc20, vault, lending, amm, governance, staking

Padrões

actors, ghosts, cross-contract, setup-layering

Instalação

Claude Code

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

Claude Desktop

Adicione a ~/Library/Application Support/Claude/claude_desktop_config.json:

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

Cursor

Adicione a .cursor/mcp.json no seu projeto:

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

Nenhuma chave de API necessária. O servidor roda inteiramente localmente, sem chamadas de rede.

Desenvolvimento local

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

Teste se 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

Arquitetura

  • Sem chamadas de rede — tudo é templates em memória e geração de strings
  • src/templates/base.ts — Geradores de arquivos Solidity (Setup, BeforeAfter, Properties, TargetFunctions, CryticTester)
  • src/templates/configs.ts — Geradores de configuração de fuzzer (foundry.toml, echidna.yaml, medusa.json)
  • src/properties/ — Catálogos de propriedades curadas por tipo de protocolo (8-15 propriedades cada)
  • src/patterns/ — Explicações de padrões com exemplos completos de código Solidity
  • src/tools/ — Implementações de ferramentas MCP

Privacidade

Este servidor roda inteiramente offline. Sem chamadas de rede, sem leitura de variáveis de ambiente, sem gravação de dados em disco, sem telemetria. Toda a geração de templates acontece em processo.