Finds the reachable paths from internet exposure, through excessive privilege, to a sensitive asset, by correlating the scanners you already run into one live graph of your environment. Flags them in the pull request that opens them and ships the fix as a PR. Open source, Apache-2.0.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
- !Install pipes a remote script into a shell (curl | sh)
git clone https://github.com/luiacuaniello/perspectivegraph{
"mcpServers": {
"perspectivegraph": {
"command": "perspectivegraph"
}
}
}MCP Servers overview
# <img src="docs/logo.svg" alt="PerspectiveGraph logo" width="32" height="32"> PerspectiveGraph [](https://github.com/luiacuaniello/perspectivegraph/actions/workflows/ci.yml) [](https://github.com/luiacuaniello/perspectivegraph/releases) [](backend/go.mod) [](LICENSE) [](https://www.bestpractices.dev/projects/13828) [](https://artifacthub.io/packages/helm/perspectivegraph/perspectivegraph) > **Catch the attack path in the pull request that opens it - then ship the fix as a PR.** On every pull request, PerspectiveGraph (open source, Apache 2.0) answers one question against a graph of your *real* environment - built from the scanners you already run (Trivy, Semgrep, Cloud Custodian, Falco): > *Does this change open a path from the internet, through excessive privilege, to something valuable?* When it does, the **PR check goes red** - a required status you can block the merge on - and you get the **fix as its own one-click pull request**. The reachable attack path is caught and closed in code review, where it's cheapest, not months later in production. This is **shift-left attack-path analysis**: not a scanner bolted onto CI, not a runtime CNAPP you log into after the fact - the reachability question, answered *in the developer's workflow*. That gate is powered by a full attack-path correlation engine, so the same graph also gives you the rest: a queryable dashboard of your **~5 critical attack paths** (not 10,000 flat findings), triage, runtime confirmation, an AI summary, and always-current architecture maps. **But the wedge is the pull request.**  *Twenty seconds of `make demo`: what is exploitable now → the ranked routes → one route's kill chain and the fix it generates → whether the scores can be trusted. Sample scanner output and seeded verdicts, not a real environment.* > ### What this has not done yet > > The engine reports probabilities, credible intervals and its own calibration - Brier > score, ECE, a reliability diagram. **None of that has been calibrated against field > data.** Nobody has yet run it over a real estate, tested the paths it surfaced, and fed > the verdicts back. The machinery for that closed loop is built and tested; the loop has > not been closed with real outcomes. > > So read a score as *"what this model believes, and how sure it says it is"*, not as a > measured frequency. A path at 0.7 has not been shown to be exploited seven times in ten - > it has been shown to be what the model concludes from the evidence it was given, and > the interval beside it says how thin that evidence is. > > That is a statement about maturity, not about intent: the calibration harness exists > precisely so that number can be earned rather than asserted, and the > [CloudGoat benchmark](backend/testdata/cloudgoat/README.md) grades the path-finding itself on public, > reproducible scenarios today. If you run this on a real environment and record what you > find, [that is the contribution that matters most](CONTRIBUTING.md). ## Check your own account in 30 seconds No deployment, no Docker, nothing ingested. One static binary asks **AWS's own policy evaluator** which of your roles can reach administrator - applying the service control policies, permission boundaries and condition keys that a policy reader on its own does not see: ```bash # macOS (Apple silicon); swap darwin_arm64 for linux_amd64, linux_arm64 or darwin_amd64 curl -sSL https://github.com/luiacuaniello/perspectivegraph/releases/latest/download/perspectivegraph_darwin_arm64.tar.gz | tar xz ./perspectivegraph redteam -roles -region eu-west-1 ``` It is **read-only and free**: every check is one `iam:SimulatePrincipalPolicy` call, a dry run that evaluates policy without performing anything, so it creates nothing and costs nothing. It needs `iam:SimulatePrincipalPolicy` and `iam:ListRoles` - both inside `SecurityAudit`. Binaries for linux/macOS (amd64, arm64) and Windows are on the [releases page](https://github.com/luiacuaniello/perspectivegraph/releases/latest), signed with cosign and carrying SLSA build provenance. The signature covers `SHA256SUMS`, so one check covers every archive: ```bash cosign verify-blob --bundle SHA256SUMS.bundle \ --certificate-identity-regexp 'https://github.com/luiacuaniello/perspectivegraph/.*' \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ SHA256SUMS && sha256sum -c SHA256SUMS --ignore-missing ``` Add `-compare` and it also runs the engine over the same account and **exits non-zero where the two disagree** - each disagreement is a false positive or a miss, in the engine or in your assumptions. That check is how the permission-boundary bug described in the [manual](docs/MANUAL.md) was found, and how it stays closed. That command is also stage 0 of a fuller trial: [how to evaluate this](docs/EVALUATION.md) walks from here to a verdict in stages that each end in an answer - and says what the trial will *not* tell you before you spend a fortnight finding out. ## See the whole engine in 90 seconds ```bash make demo ``` Pulls the **published, cosign-signed images**, feeds them sample Trivy / Semgrep / Custodian / Falco / Kubernetes / IAM / SSO output, waits for the analyzer, and prints the top attack path with its generated fix. Dashboard on **http://localhost:3000**. Needs Docker, `jq` and `curl` - no Go or Node toolchain, and nothing is compiled: measured at **23 seconds** from an empty image cache. Tear down with `make down`. Building it yourself instead is `make demo-build`, which is the same demo from your working tree. The images the fast path runs are the release artefacts, so you can check what you are about to run before you run it - the `cosign verify` command is at the top of [`docker-compose.demo.yml`](docker-compose.demo.yml). Prefer not to build? The release images are published to GHCR (`latest` also tracks the newest release; the pinned tag is the one to use if you care about reproducibility): ```bash docker pull ghcr.io/luiacuaniello/perspectivegraph:v1.13.3 # x-release-please-version docker pull ghcr.io/luiacuaniello/perspectivegraph-dashboard:v1.13.3 # x-release-please-version docker pull ghcr.io/luiacuaniello/perspectivegraph-postgres:v1.13.3 # x-release-please-version ``` On Kubernetes, the Helm chart is published the same way - no clone needed, and a version you can pin and verify. It is listed on [Artifact Hub](https://artifacthub.io/packages/helm/perspectivegraph/perspectivegraph) as an **official** package from a verified publisher, which is Artifact Hub's way of saying the chart is published by the people who wrote the software rather than by a third party repackaging it: ```bash helm install perspectivegraph oci://ghcr.io/luiacuaniello/charts/perspectivegraph \ --version 1.13.3 # x-release-please-version ``` They are signed with cosign keyless and carry an SPDX SBOM plus a SLSA build provenance attestation - verify before you run, rather than taking the supply chain on trust: ```bash cosign verify \ --certificate-identity-regexp 'https://github.com/luiacuaniello/perspectivegraph/.*' \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ ghcr.io/luiacuaniello/perspectivegraph:v1.13.3 # x-release-please-version ``` The dashboard opens on the decision, not the inventory: what is being exploited right now, the fewest changes that remove the most risk, and how much the numbers can be trusted.  Routes are ranked by a composite triage priority - what the route reaches, whether runtime confirmed it, how exposed the entry is - not by raw exploit score, so a lower-scoring route can and does outrank a higher-scoring one. | | | |---|---| |  |  | | Every hop, its probability, where that probability came from, and the ATT&CK technique. | Whether the engine's own scores held up against recorded outcomes. | *Every screenshot on this page is `make demo`: sample scanner output and **seeded** verdicts, not a real environment. That is why the calibration panel returns a verdict of "underconfident" - across 14 seeded outcomes the engine predicted 60% where 71% held up. Those outcomes were generated to exercise the instrument, not to flatter it. On a fresh install the same page reads **"insufficient data"** and withholds a verdict until real outcomes exist, because a risk score you cannot check is worth less than an honest blank.* ## Why? Modern security teams don't suffer from a lack of tools - they suffer from **noise, fragmentation, and missing context**. | Role | Pain today | What PerspectiveGraph gives them | | --- | --- | --- | | **Developer** | CI/CD blocked by thousands of irrelevant CVEs | A PR check that goes red *only* when the change opens a real internet→sensitive-asset path - plus the fix as a one-click PR | | **Security** | Triage on flat lists of 10,000 findings | A ranked list of ~5 critical **attack paths**, queryable like a database | | **Architect** | No live view of how IaC becomes attack surface | Auto-generated, always-current architecture & data-flow maps + drift detection | ## Block the pull request that opens the path **No deployment required.** The runner reads your estate read-only, ingests this pull request's scan,
What people ask about perspectivegraph
What is luiacuaniello/perspectivegraph?
+
luiacuaniello/perspectivegraph is mcp servers for the Claude AI ecosystem. Finds the reachable paths from internet exposure, through excessive privilege, to a sensitive asset, by correlating the scanners you already run into one live graph of your environment. Flags them in the pull request that opens them and ships the fix as a PR. Open source, Apache-2.0. It has 6 GitHub stars and its last recorded update is dated 2026-09-15.
How do I install perspectivegraph?
+
You can install perspectivegraph by cloning the repository (https://github.com/luiacuaniello/perspectivegraph) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is luiacuaniello/perspectivegraph safe to use?
+
Our security agent has analyzed luiacuaniello/perspectivegraph and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains luiacuaniello/perspectivegraph?
+
luiacuaniello/perspectivegraph is maintained by luiacuaniello. The last recorded GitHub activity is dated 2026-09-15, with 4 open issues.
Are there alternatives to perspectivegraph?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy perspectivegraph to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/luiacuaniello-perspectivegraph)<a href="https://claudewave.com/repo/luiacuaniello-perspectivegraph"><img src="https://claudewave.com/api/badge/luiacuaniello-perspectivegraph" alt="Featured on ClaudeWave: luiacuaniello/perspectivegraph" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ
The fastest path to AI-powered full stack observability, even for lean teams.