Recon Chimera Scaffold

Scaffolds Chimera fuzzing test suites for Solidity smart contracts with invariant properties, handlers, and fuzzer configs

@recon-fuzz-mcp/chimera

npm License: MIT Node 18+

MCP server that scaffolds Chimera fuzzing test suites for Solidity smart contracts. Generates ready-to-compile projects with properties, handlers, and fuzzer configs.

Tools

ToolInputReturns
scaffold_projectcontract_name, functions[]Full Chimera project (Setup, Properties, TargetFunctions, BeforeAfter, CryticTester + configs)
generate_propertiescontract_source, protocol_type8-15 curated invariant properties with Solidity skeletons
get_templatetemplate_nameComplete ready-to-compile Chimera project for a standard protocol type
explain_patternpattern_nameDetailed explanation with code examples

Protocol types

erc20, vault, lending, amm, governance, staking

Patterns

actors, ghosts, cross-contract, setup-layering

Installation

Claude Code

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

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

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

Cursor

Add to .cursor/mcp.json in your project:

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

No API key needed. The server runs entirely locally with no network calls.

Local development

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

Test it works

# 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

Architecture

  • No network calls — everything is in-memory templates and string generation
  • src/templates/base.ts — Solidity file generators (Setup, BeforeAfter, Properties, TargetFunctions, CryticTester)
  • src/templates/configs.ts — Fuzzer config generators (foundry.toml, echidna.yaml, medusa.json)
  • src/properties/ — Curated property catalogs per protocol type (8-15 properties each)
  • src/patterns/ — Pattern explanations with full Solidity code examples
  • src/tools/ — MCP tool implementations

Privacy

This server runs entirely offline. No network calls, no environment variables read, no data written to disk, no telemetry. All template generation happens in-process.

Related Servers

NotebookLM Web Importer

Import web pages and YouTube videos to NotebookLM with one click. Trusted by 200,000+ users.

Install Chrome Extension