Free plan Signups are open now. The full audytx engine — Terraform and CloudFormation — is live. The Free plan is 100 scans a month and stays free — paid tiers arrive Nov 01, 2026 from $20/month for unlimited repositories. Try it on your own code.
← Notes
Release · July 19, 2026

CloudFormation support is live on the MCP server

TL;DR: the audytx engine now scans CloudFormation — JSON, YAML including short tags, SAM templates, and CDK-synthesized output — through a new scan_cloudformation MCP tool. Templates are normalized into the same resource model the Terraform engine reasons about, so findings carry the same AWS_* rule ids, the same context suppression runs, and the response shape is identical to scan_terraform. It shipped on the MCP server first; the GitHub App now reviews CloudFormation pull requests too.
What shipped

One engine, now two languages

audytx has been a context-aware AWS Terraform reviewer since day one. As of engine v1.17, the parser front-end also reads CloudFormation and maps each template into the same resource vocabulary the rules and the cross-resource reasoning already understand — AWS::S3::Bucket lands where aws_s3_bucket does, before a single rule runs.

That one design decision carries the whole release:

The hard part

Reading the template language properly

CloudFormation's intrinsic functions are a language, and a scanner that half-reads them manufactures false positives. The front-end ships with a real evaluator: YAML short tags (!Ref, !GetAtt, !Sub, !If), Fn::ForEach expansion, and symbolic tracking for ARNs that only exist at deploy time.

The case we sweated most is Fn::If. When a security-relevant attribute depends on a condition the template alone can't resolve, audytx evaluates both branches. If they disagree, the finding is marked conditional and annotated with why. It isn't dropped, and it isn't stated with more confidence than the template supports.

Behind the release sits a CloudFormation test corpus with positive and negative cases plus a set of benign templates, the same discipline the Terraform engine is held to.

Try it

One tool call

# Register audytx with your agent (Claude Code shown), then ask it to scan —
# or call the tool directly:
curl -s https://audytx.com/mcp \
  -H 'Content-Type: application/json' -H 'X-Client-ID: YOUR_CLIENT_ID' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
        "name":"scan_cloudformation",
        "arguments":{"files":[{"path":"stack.yaml","content":"..."}]}}}'

Client IDs are free at the dashboard, and CloudFormation calls share your existing MCP quota — no new metering. A template is parsed in memory and not stored; the findings from a scan are kept in your dashboard for 90 days, like every hosted audytx scan.

Scope

What has shipped since

This note was written on the day CloudFormation support reached the MCP server. Everything it listed as still to come has shipped:

  1. GitHub App. The GitHub App reviews CloudFormation pull requests: templates changed in a PR are detected and get the same summary comment, inline annotations and SARIF upload as Terraform.
  2. SAM. AWS::Serverless::* resources are expanded into the CloudFormation resources the transform would generate and scanned with the same rules.
  3. Change-set enrichment. A CI workflow can post DescribeChangeSet output to /changeset-upload (OIDC-authenticated, like plan upload), and the pull-request scan re-runs with resolved values.
  4. CloudFormation benchmark. audytx's own results on three public CloudFormation corpora are on the CloudFormation benchmark.
Verify the rollout state yourself: GET /status reports supported_iac live, and the MCP tools/list is open without auth. Coming from cfn_nag? The migration page maps its W/F ids and suppression workflow onto audytx.
Free plan

Scan a stack template today

Point your coding agent at the MCP server and see the context engine read your CloudFormation. The Free plan includes 100 scans a month.