Pre-commit code quality guardian. Detects semantic drift in AI-generated code.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
After your AI wrote the code, but before it ships. HefestoAI verifies that what your project declares β deps, configs, install artifacts β matches what it actually does.
HefestoAI's core contribution: detecting drift between what your project declares and what it does. These analyzers run automatically on every hefesto analyze and catch issues that linters and security scanners miss because they're not in any single file β they're in the inconsistency between files.
| Analyzer | What it catches | Rule ID |
|---|---|---|
| Imports vs Deps | Python imports not declared in pyproject.toml or requirements.txt | OT-IMPORTS-001 |
| Docs vs Entrypoints | CLI scripts in [project.scripts] missing from README | OT-DOCS-001 |
| Packaging Parity | Version mismatch between pyproject.toml, CHANGELOG, and README badges | OT-PKG-001/002 |
| Install Artifact Parity | action.yml inputs not consumed; Dockerfile COPY sources missing | OT-INSTALL-001/002 |
| CI Config Drift | Python version or flake8 config mismatch between local and CI workflow | OT-CI-001/002/003 |
AI tools like Claude Code, GitHub Copilot, and Cursor generate code at machine speed. But who validates that code?
os.system(user_input) β command injectionf"SELECT * FROM {table}" β SQL injectionHefesto catches what your linter misses. Pre-commit, pre-push, CI/CD β before it reaches production.
| Issue | Severity | Description |
|---|---|---|
| HARDCODED_SECRET | CRITICAL | API keys, passwords in code |
| SQL_INJECTION_RISK | HIGH | String concatenation in queries |
| COMMAND_INJECTION | HIGH | Unsafe shell command execution |
| PATH_TRAVERSAL | HIGH | Unsafe file path handling |
| UNSAFE_DESERIALIZATION | HIGH | pickle, yaml.unsafe_load |
| UNDECLARED_DEPENDENCY | MEDIUM | Import used but not in pyproject.toml |
| PACKAGING_VERSION_DRIFT | MEDIUM | Version mismatch across pyproject/CHANGELOG/README |
| CI_CONFIG_DRIFT | MEDIUM-HIGH | Local env vs CI configuration mismatch |
| INSTALL_ARTIFACT_DRIFT | MEDIUM-HIGH | action.yml inputs or Dockerfile COPY out of sync |
| HIGH_COMPLEXITY | HIGH | Cyclomatic complexity > 10 |
| DEEP_NESTING | HIGH | Nesting depth > 4 levels |
| GOD_CLASS | HIGH | Classes > 500 lines |
| LONG_FUNCTION | MEDIUM | Functions > 50 lines |
| LONG_PARAMETER_LIST | MEDIUM | Functions with > 5 parameters |
Inputs:
| Input | Description | Default |
|---|---|---|
target | Path to analyze (file or directory) | . |
fail_on | Exit with error if issues found at or above this severity level | CRITICAL |
min_severity | Minimum severity to report | LOW |
format | Output format (text, json, html) | text |
telemetry | Opt-in to anonymous telemetry (1=enable) | 0 |
Outputs:
| Output | Description |
|---|---|
exit_code | The exit code of the CLI (0=Success, 1=Error, 2=Issues Found) |
HefestoAI is a pre-commit guardian for AI-generated code. It detects semantic drift and risky changes before merge.
Add as an MCP server:
API Endpoints:
| Endpoint | Protocol | Path |
|---|---|---|
| MCP | JSON-RPC 2.0 | /api/mcp-protocol |
| REST | HTTP GET/POST | /api/mcp |
| OpenAPI | OpenAPI 3.0 | /api/openapi.json |
| Q&A | Natural Language | /api/ask |
| Changelog | JSON | /api/changelog.json |
| FAQ | JSON | /api/faq.json |
Analyze only the code changed in a pull request. Post inline comments on changed lines with deterministic dedup keys so reruns never create duplicate comments.
How it works:
git diff between base and head (auto-detects origin/main or GITHUB_BASE_REF)--strict)GitHub Actions workflow templates are provided under examples/github-actions/:
| Template | Use case | Idempotent? |
|---|---|---|
hefesto-pr-review-simple.yml | Quick onboarding, small repos | No (reruns duplicate) |
hefesto-pr-review-deduped.yml | Production CI, teams | Yes (jq dedup pipeline) |
See examples/github-actions/README.md for setup instructions.
| Language | Parser | Status |
|---|---|---|
| Python | Native AST | Full support |
| TypeScript | TreeSitter | Full supportΒΉ |
| JavaScript | TreeSitter | Full supportΒΉ |
| Java | TreeSitter | Full supportΒΉ |
| Go | TreeSitter | Full supportΒΉ |
| Rust | TreeSitter | Full supportΒΉ |
| C# | TreeSitter | Full supportΒΉ |
ΒΉ TreeSitter languages require the [multilang] extra:
pip install "hefesto-ai[multilang]". Without it, files in these
languages are skipped at parse time and Hefesto emits a stderr warning
pointing to the install command (also exposed via
report.meta.parser_failures in JSON output).
| Format | Analyzer | Rules | Status |
|---|---|---|---|
| YAML | YamlAnalyzer | Generic YAML security | v4.4.0 |
| Terraform | TerraformAnalyzer | TfSec-aligned rules | v4.4.0 |
| Shell | ShellAnalyzer | ShellCheck-aligned | v4.4.0 |
| Dockerfile | DockerfileAnalyzer | Hadolint-aligned | v4.4.0 |
| SQL | SqlAnalyzer | SQL Injection prevention | v4.4.0 |
| PowerShell | PS001-PS006 | 6 security rules | v4.5.0 |
| JSON | J001-J005 | 5 security rules | v4.5.0 |
| TOML | T001-T003 | 3 security rules | v4.5.0 |
| Makefile | MF001-MF005 | 5 security rules | v4.5.0 |
| Groovy | GJ001-GJ005 | 5 security rules | v4.5.0 |
| COBOL | CobolGovernanceAnalyzer | COBOL001-COBOL007 | v4.12.0 |
| Format | Analyzer | Focus | Status |
|---|---|---|---|
| CloudFormation | CloudFormationAnalyzer | AWS IaC Security | v4.7.0 |
| ARM Templates | ArmAnalyzer | Azure IaC Security | v4.7.0 |
| Helm Charts | HelmAnalyzer | Kubernetes Security | v4.7.0 |
| Serverless | ServerlessAnalyzer | Serverless Framework | v4.7.0 |
Total: 7 code languages + 11 DevOps formats + 4 Cloud formats = 22 supported formats
| Code | Meaning |
|---|---|
0 | Analysis complete (no --fail-on, or threshold not breached) |
1 | Gate failure (--fail-on threshold breached) or runtime error |
Automatic validation before every git push:
The hook runs two gates:
hefesto analyze with --fail-on CRITICAL --exclude-types VERY_HIGH_COMPLEXITY,LONG_FUNCTION (blocks security issues, ignores complexity debt)Note: Hooks are local to your machine and not committed to git. Run
hefesto install-hooksafter cloning or wheneverscripts/git-hooks/pre-pushis updated.
| Feature | FREE | PRO ($8/mo) | OMEGA ($19/mo) |
|---|---|---|---|
| Static Analysis | Yes | Yes | Yes |
| Security Scanning | Basic | Advanced | Advanced |
| Pre-push Hooks | Yes | Yes | Yes |
| 22 Language Support | Yes | Yes | Yes |
| ML Enhancement | No | Yes | Yes |
| REST API | No | Yes | Yes |
| BigQuery Analytics | No | Yes | Yes |
| IRIS Monitoring | No | No | Yes |
| Production Correlation | No | No | Yes |
Hefesto OSS works standalone. If Hefesto PRO is installed, OSS can optionally enable:
Patch C API hardening for hefesto serve, scope gating (first-party by default), TS/JS
symbol discovery, and safe deterministic enrichment (schema-first, masked, bounded).
See docs/PRO_OPTIONAL_FEATURES.md.
The API server is secure by default:
| Feature | Default | Configure via |
|---|---|---|
| Host binding | 127.0.0.1 (loopback) | HEFESTO_API_HOST |
| CORS | Localhost only | HEFESTO_CORS_ORIGINS |
| API docs | Disabled (404) | HEFESTO_EXPOSE_DOCS=true |
| Auth | Off (no key set) | HEFESTO_API_KEY |
| Rate limit | 60 req/min | HEFESTO_RATE_LIMIT_PER_MINUTE |
| Path sandbox | cwd() | HEFESTO_WORKSPACE_ROOT |
| Endpoint | Method | Description |
|---|---|---|
/analyze | POST | Analyze code |
/health | GET | Health check (no auth required) |
/ping | GET | Fast health ping (no auth required) |
/batch | POST | Batch analysis |
/metrics | GET | Quality metrics |
/history | GET | Analysis history |
/webhook | POST | GitHub webhook |
/stats | GET | Statistics |
/validate | POST | Validate without storing |
For production use with dedup (no duplicate comments on reruns), see the workflow templates in
examples/github-actions/.
Production monitoring that correlates code issues with production failures.
IRIS labels deployments as GREEN/YELLOW/RED using post-deploy telemetry. The input format is an open contract β any observability stack can produce it:
| Resource | Path | Description |
|---|---|---|
| Aggregates Contract v1 | docs/telemetry/AGGREGATES_CONTRACT.md | Row schema, units, validation checklist |
| JSONL Validator | scripts/validate_aggregates_jsonl.py | Stdlib-only validator (no deps) |
Enterprise collectors (Prometheus, Datadog, CloudWatch) and integration runbooks are available in the PRO distribution.
| Criterion | Hefesto | Semgrep | CodeRabbit | Qodo | Snyk |
|---|---|---|---|---|---|
| AI-generated code focus | β Primary use case | Generic | β Yes | β Yes | Generic |
| Declared-vs-real drift detection | β Core feature | β | β | β | β |
| Operational truth analyzers | β 5 analyzers | β | β | β | β |
| Languages supported | 22 formats | Many | Many | Many | Many |
| Setup time | < 5 min, no config | Config-heavy | Cloud signup | Cloud signup | Cloud signup |
| Where it runs | Local CLI / GitHub Action / pre-commit / MCP | Local / cloud | Cloud only | Cloud only | Cloud / CLI |
| Pricing | Free OSS / $8 Pro / $19 OMEGA | Free OSS / Contact sales | $24/dev/mo | Free Dev / $30/dev/mo | $25/dev/mo* |
*Snyk pricing is per product (Code, Open Source, Container, IaC); multi-product subscriptions cost more.
HefestoAI's niche: Detecting drift between what AI-generated code declares and what it does. Traditional tools validate code against language rules. HefestoAI validates code against the project's own declarations β its dependencies, its configs, its install artifacts.
We run HefestoAI's strict gate against HefestoAI's own code on every push to main. As of 2026-04-29, the gate is GREEN β but it took us 6 weeks of refactor to get there.
When we initially activated the gate in strict mode, it flagged 12 complexity findings in our own gate-internals code. We considered three responses: silence the findings (rejected β that's exactly the drift we critique), accept the override permanently (rejected β same reason), or refactor at root cause (chosen β took 1 PR, 4 commits, 2 days, plus a declared-vs-real drift discovery in our own positioning doc that we logged for fix).
The full audit and refactor history are tracked internally in our private repo. The override mechanics and reversion criteria are documented; the gate-internals refactor reduced two CRITICAL functions from cyclomatic complexity 33 β 1 and 25 β 6 respectively, all helpers under 10.
ATTRIBUTE_NAME_MISMATCH (typo detection via difflib) and SILENT_EXCEPTION_SWALLOW (broad except with trivially silent body)code_snippet in PR review JSON: field was silently dropped, now includedcontextlib.suppress(ImportError) recognized as optional-import guardBinOp(Mod) catches single-char SQL injection FN (Phase 1c debt closed)hefesto pr-review command β diff-scoped analysis with inline GitHub PR comments and SHA256 dedup keys. Two workflow templates (simple + deduped) in examples/github-actions/hefesto analyzecheck-ci-parity findings now appear in hefesto analyze via adapter; legacy CLI preservedHEFESTO_TELEMETRY=0)hefesto serve is secure-by-default (local-first)HefestoAI collects anonymous usage data by default to help improve the tool.
What's sent: event type, version, OS, Python version, file count, duration, issue count. What's NOT sent: code, file paths, file contents, project names, or any PII.
Disable with:
MIT License for core functionality. PRO and OMEGA features are licensed separately.
HefestoAI β release truth engine for AI-generated code. Verifies declared-vs-real drift before code ships.
(c) 2026 Narapa LLC, Miami, Florida
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/hefestoai)<a href="https://allmcps.com/mcp/hefestoai"><img src="https://allmcps.com/api/badge/hefestoai?style=directory" alt="HefestoAI on AllMCPs" /></a>