How italoag/farofino-mcp works
Faro Fino is an MCP smart-contract auditing server with a CLI fallback. An MCP client calls a registered tool, or a CLI user starts a scan; each entry point delegates to the shared engine. The engine reads contract sources, runs selected static analyzers and heuristic checks, and returns normalized findings and tool-status information. The README also documents source reading and tool discovery as standalone capabilities. Engine internals are only partially sampled, so analyzer and reporting connections reflect the documented behavior; uncertain implementation details are omitted.
Main entry points: engine.py Audit engine · scan.py Scan CLI · schema.py Finding schema · __main__.py MCP server
Components 16
Entry points
- MCP server
farofino_mcp/__main__.py - Scan CLI
farofino_mcp/scan.py
Analysis engine
- Audit engine
farofino_mcp/engine.py - Slither runner
farofino_mcp/engine.py - Aderyn runner
farofino_mcp/engine.py - Pattern checks
farofino_mcp/engine.py - Contract reader
farofino_mcp/engine.py - Tool discovery
farofino_mcp/engine.py
Audit integrations
- Slither
- Aderyn
- Compiler tools
Results
- Finding schema
farofino_mcp/schema.py - Scan report
farofino_mcp/schema.py
Other components
- MCP client
- CLI user
- Contract source
Connections 21
- MCP client → MCP server: calls tools
- MCP server → Audit engine: dispatches
- Audit engine → MCP server: returns results
- CLI user → Scan CLI: starts scan
- Scan CLI → Audit engine: runs audit
- Audit engine → Scan CLI: returns report data
- Audit engine → Slither runner: runs when selected
- Audit engine → Aderyn runner: runs when selected
- Audit engine → Pattern checks: runs checks
- Audit engine → Contract reader: reads source
- Audit engine → Tool discovery: checks availability
- Slither runner → Slither: executes
- Aderyn runner → Aderyn: executes
- Slither runner → Compiler tools: selects compiler
- Contract source → Audit engine: provides target
- Slither runner → Finding schema: normalizes findings
- Aderyn runner → Finding schema: normalizes findings
- Pattern checks → Finding schema: creates findings
- Audit engine → Scan report: aggregates findings
- Finding schema → Scan report: supplies findings
- Scan report → Scan CLI: renders output