TerravisionBLOCK
Professional cloud architecture diagrams with official AWS, Azure and GCP icons, from Terraform code or a plain JSON graph. MCP server + agent skill.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Turn Terraform or JSON into professional cloud architecture diagrams with official AWS, Azure and GCP styles
[](https://github.com/patrickchugh/terravision/actions/workflows/lint-and-test.yml) [](https://pypi.org/project/terravision/) [](https://pypi.org/project/terravision/) [](https://pypi.org/project/terravision/) [](https://github.com/patrickchugh/terravision/stargazers) [](https://github.com/patrickchugh/terravision/blob/main/LICENSE) [](https://github.com/psf/black)
📖 [Full documentation site →](https://patrickchugh.github.io/terravision/)
Ask your AI assistant for a cloud architecture diagram, in plain words, and get the diagram a cloud architect would draw: the official AWS, Azure and GCP icons, with every resource in its VPC, subnet, zone or resource group. From a description, from your Terraform code, or the other way round, with the Terraform written from the diagram. TerraVision runs on your own computer and needs no cloud access.
Get started with your AI assistant
1. Install the prerequisites (once)
TerraVision needs Graphviz (to draw) and Git. uv runs TerraVision for Claude Code, Codex, Gemini CLI and other MCP clients; Claude Desktop brings its own
675c4d7defe1OBSERVED · 2026-09-29Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add terravision -- uvx terravision==0.48.0 mcp
Exposed tools (2)
2 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
diagram_file | read | Return a rendered diagram file |
open_diagram_file | read | Open a rendered diagram file for the user on their own computer. |
Trust audit
BLOCKgrade F · trust 52/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (7 observation(s))
- Network
- declared (8 observation(s))
- Shell
- declared (6 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (25)
zone = str(eval(zone))
"~/.aws/credentials, IAM role, or SSO.",
"(e.g., mount ~/.ssh). For HTTPS sources, ensure credentials "
config_module = importlib.import_module(module_name)
config_module = importlib.import_module(module_name)
package = importlib.import_module(package_name)
module = importlib.import_module(full_module_name)
pkg = importlib.import_module(pkg_name)
lambda.zip
lambda.zip
lambda.zip
lambda.zip
lambda.zip
.pre-commit-config.yaml
.mcpbignore
touch id_rsa.pub
chmod 777 id_rsa.pub
("../../etc/passwd", "passwd"),<image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAANH5AADR+QGceVN3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAIABJREFUeJztnXl0HNWBr7+q6k1q7bIs2ZI
<image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAANH5AADR+QGceVN3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAF1BJREFUeJzt3XlwVdd9B/Dvufe+TU96ktD
<image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAANH5AADR+QGceVN3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAF1BJREFUeJzt3XlwVdd9B/Dvufe+TU96ktD
<image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAANH5AADR+QGceVN3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAF1BJREFUeJzt3XlwVdd9B/Dvufe+TU96ktD
<image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAANH5AADR+QGceVN3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAADvpJREFUeJzt3X+MHOddx/HPs7u399Nn311
raw = base64.b64decode(candidate_padded, validate=True)
assert base64.b64decode(png["blob"]).startswith(b"\x89PNG")
Gates applied: no_behavioural_pass.
675c4d7defe1full audit observations/trust-audit/mcp-server/patrickchugh__terravision.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-09-29 | 675c4d7defe1 | BLOCK | F | 52 | first audit |
Questions
What is the Terravision MCP server?
Professional cloud architecture diagrams with official AWS, Azure and GCP icons, from Terraform code or a plain JSON graph. MCP server + agent skill.
What tools does Terravision expose?
2 in total: 2 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Terravision safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (52/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does Terravision need?
No credential environment variables were found in its source, so it appears to need none.
How does Terravision run?
It speaks sse and stdio, so it runs as a local process your client starts. It is published on PyPI as terravision.
How current is this page?
The grade is for one exact copy of the source (675c4d7defe1), read on 2026-09-29. The repository is watched and re-audited when it changes.