IaC attack-path auditor: finds internet-to-crown-jewel chains in Terraform/CFN/K8s.
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)
Attack-path auditor for Infrastructure-as-Code — Terraform, CloudFormation, Kubernetes, CDK, Pulumi, Bicep/ARM.
Not a linter. It parses your IaC into a resource graph, resolves cross-resource (and cross-file) relationships, and searches for the multi-hop chains from the public internet to your crown jewels (data stores, secrets, admin). It returns a BREACHABLE / EXPOSED / HARDENED verdict and the concrete route an attacker would walk.
Example chain it finds:
open security group (SSH 0.0.0.0/0) → EC2 instance-profile role → iam:PassRole privilege escalation to admin → S3 exfiltration
Available as an MCP server (Claude, Cursor, any MCP agent) and a pay-per-call x402 API (autonomous AI agents with a wallet).
Sending your IaC to a third party is sensitive — so here is exactly what happens:
files map or source blob).
Nothing is read from your machine, your cloud account, or your credentials —
cloud-pathfinder never touches a live cloud (see "honest limits" below). There
are no cloud keys to provide because it analyzes the declared templates only.deep: true, behind payment). Only then
are the full chains, file:line evidence and remediation returned. You send the
same IaC either way — nothing extra leaves your machine for the deep tier.Hosted service: https://cloud-pathfinder.vercel.app — all analysis runs server-side. This npm package is a thin MCP client: it sends the IaC text to the hosted endpoint and renders the verdict. No analysis logic ships to your machine.
audit_iac_attack_paths { files: { "main.tf": "..." } }.https://cloud-pathfinder.vercel.app.INTERNET node to every data store / secret / admin sink, and resolves IAM
privilege-escalation reachability along each hop — in memory.file:line evidence; the
free tier returns the verdict, score and counts.The npm tarball contains only the HTTP caller — so nothing, free or deep, runs offline. Without the server it degrades to a clear network error.
A linter flags resources one at a time: "this SG is open", "this role is broad". cloud-pathfinder reasons about how those facts connect — work a per-file local tool structurally cannot do:
| Capability | Local linter | cloud-pathfinder |
|---|---|---|
| Flag one open SG / one broad role | ✅ | ✅ |
| Graph — which SG attaches to which instance, which role it assumes, what it reads | ❌ | ✅ |
| Reachability BFS internet → crown jewel, full multi-hop chain + file:line | ❌ | ✅ |
| IAM privilege-escalation KB (20+ primitives: PassRole, CreatePolicyVersion…) | ❌ | ✅ |
| Multi-cloud — AWS / GCP / Azure in one graph | ❌ | ✅ |
| Choke-point analysis (the one hop that, fixed, cuts the most paths) | ❌ | ✅ |
| Diff mode — what a PR INTRODUCES / ELIMINATES / AGGRAVATES | ❌ | ✅ |
| Kubernetes LB/NodePort → privileged pod → cluster-admin SA → Secret | ❌ | ✅ |
| SARIF 2.1.0 for GitHub code scanning (inline chains on the Security tab) | ❌ | ✅ |
INTERNET to every data store / secret /
admin sink, returning the full multi-hop chain with per-hop file:line evidence.Formats are auto-detected per file and analyzed together — mix .tf,
CloudFormation .yaml/.json and Kubernetes manifests in one call.
No key needed for the free tier. Restart your client and the
audit_iac_attack_paths + diff_attack_paths tools appear. (Remote server:
https://cloud-pathfinder.vercel.app/mcp.)
audit_iac_attack_pathsThe free tier returns the verdict, risk score, and the counts (how many attack paths, crown jewels and misconfigurations). The deep tier returns every full chain with hops, file:line evidence, privilege-escalation reachability and remediation.
diff_attack_paths — the CI/CD gateGive it the IaC before and after a change (a PR's base and head trees) and it
reports exactly what the change did to your attack surface: which internet→crown-jewel
chains it INTRODUCES, which it ELIMINATES, and which it AGGRAVATES — with
an INTRODUCES_BREACH / REDUCES_RISK / NEUTRAL / MIXED verdict.
A per-file linter or a single-state scan cannot answer this: it needs the full graph
POST /diff (free, counts only) / POST /pro/diff (deep).Rate-limited to 30 requests/hour/IP. For unlimited/commercial/deep use, call /pro/audit.
Input formats: Terraform / OpenTofu, CloudFormation, Kubernetes, Helm, Kustomize,
Pulumi (TS/JS/Python), Bicep/ARM, and AWS CDK — both the synthesized
cdk.out/*.template.json and the un-synthed CDK program (TypeScript + Python),
so a CI gate runs on the PR diff before cdk synth.
Add ?format=sarif (or { "format": "sarif" }) to /audit, /pro/audit, /diff
or /pro/diff to get SARIF 2.1.0 you can upload to GitHub code scanning —
every attack chain shows up inline on the PR's Security tab.
result with a codeFlow (a step-through walk:
internet → SG → instance role → privesc → S3), anchored to the IaC file:line,
plus security-severity/CVSS so the badge colors correctly.note./pro — two ways to pay (dual-pay)The deep /pro/audit returns the full attack chains, per-hop evidence,
privilege-escalation analysis and remediation. Two payment lanes coexist:
| Lane | For | How |
|---|---|---|
| 💳 Card (Stripe) | Humans / teams | Buy a prepaid key at /pro/checkout, then send Authorization: Bearer <key> (or set CLOUD_PATHFINDER_KEY). |
| 🪙 x402 (USDC) | AI agents with a wallet | Pay $0.30 per call automatically. Settles on Base. No signup, no key. |
| Class | Detail |
|---|---|
| Public → role → data | Open SG on a sensitive port (SSH/RDP/DB) → instance role that can read S3/Dynamo/RDS/Secrets → exfiltration |
| IAM privilege escalation | iam:PassRole+ec2:RunInstances, iam:CreatePolicyVersion, iam:AttachRolePolicy, ssm:SendCommand, wildcard * on *, and ~15 more |
| Public data stores | publicly_accessible = true RDS, world-open buckets |
| Kubernetes | LoadBalancer/NodePort → privileged pod → cluster-admin ServiceAccount → Secret |
| CloudFormation | !Ref/!GetAtt intrinsics resolved; ManagedPolicyArns/inline policies analyzed |
The premium engine and knowledge base never ship in the npm package — the published client is a thin renderer that calls the hosted analysis service. The free tier is genuinely useful (verdict + counts); the deep chains, evidence and privesc analysis are server-side behind payment.
Heuristic static analysis of declared IaC, not a live cloud assessment. It reasons over what the templates declare (no runtime SCP/permissions-boundary/condition evaluation). Treat findings as prioritized leads, not a guarantee.
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/cloud-pathfinder)<a href="https://allmcps.com/mcp/cloud-pathfinder"><img src="https://allmcps.com/api/badge/cloud-pathfinder?style=directory" alt="Cloud Pathfinder on AllMCPs" /></a>