mcpField
T
TerraVision

TerraVision

本地服务
patrickchugh.github.io云与基础设施1.7k5 天前更新

关于 TerraVision

TerraVision 是一款开源云架构图生成器,可根据文字描述、Terraform 或 JSON 图数据绘制 AWS、Azure 和 Google Cloud 架构。它在本机运行,无需云账号访问,并可从架构图生成 Terraform。

主要功能

  1. 01绘制 AWS、Azure 和 Google Cloud 架构图
  2. 02从 Terraform plan 生成图表
  3. 03从架构图生成 Terraform
  4. 04输出可编辑的 draw.io 图表和交互式 HTML
  5. 05通过 GitHub Action 在代码变更时更新图表
  6. 06支持命令行和 JSON 图输入

适用场景

  1. 01根据文字描述创建云架构图
  2. 02在基础设施尚未部署时绘制 Terraform 架构
  3. 03在 CI 中随 Terraform 变更重绘图表
  4. 04制作可点击查看资源设置的 HTML 文档

MCP 相关

TerraVision 可作为 MCP 服务连接 Claude、ChatGPT、Copilot、Cursor 等 MCP 客户端。客户端可请求绘图;结果包括图像、SVG 和 draw.io 文件等。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"patrickchugh-terravision": {
"command": "uvx",
"args": [
"terravision"
]
}
}
}
启动命令uvx terravision

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiterravision0.56.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

README 配图 TerraVision

以 AWS、Azure 和 GCP 官方风格绘制专业云架构图,可根据 Claude 或 ChatGPT 中的描述,或根据你的 Terraform 生成

pytest CodeQL Ruff security rules pip-audit SonarQube quality gate SonarQube vulnerabilities SonarQube coverage

PyPI version PyPI downloads GitHub stars License

🌐 terravision.online · 📖 完整文档 →

TerraVision 是一款免费的开源 云架构图生成器,适用于 AWS、Azure 和 Google Cloud,支持双向转换:从设计到代码(向 AI 助手描述需求,获取架构图,然后生成 Terraform),以及从代码到架构图(绘制 Terraform 将部署的内容)。

用通俗语言向 AI 助手描述云架构图需求,就能获得云架构师绘制的架构图:采用 AWS、Azure 和 GCP 官方图标,并将每项资源放置在所属的 VPC、子网、可用区或资源组中。你可以从描述或 Terraform 代码生成架构图,也可以反向操作,根据架构图生成 Terraform。TerraVision 在你自己的计算机上运行,无需访问云端。

无需访问生产环境,即可绘制生产架构图。

TerraVision 仅根据代码绘制 Terraform 将要部署的内容。基础设施无需事先存在,你也不需要访问它将部署到的任何账户。实时云扫描器做不到这一点。了解详情 →


观看 90 秒入门视频

适用于 Claude 和 ChatGPT 的 TerraVision 扩展


图库

每个云平台都采用相同的三级设计,并各提供一个旗舰示例。每个示例都附带提示词和源文件:查看完整图库 →

AWS 三层 Web 应用架构图
AWS 三层 Web 应用
Azure 三层 Web 应用架构图
Azure 三层 Web 应用
Google Cloud 三层 Web 应用架构图
Google Cloud 三层 Web 应用
搭配 Karpenter 的 Amazon EKS 架构图
AWS 搭配 Karpenter 的 EKS
Azure 中心辐射式网络架构图
Azure 中心辐射式落地区
Google Cloud GKE 微服务架构图
Google Cloud 搭配 Private Service Connect 的 GKE

图库中的更多示例:AWS 无服务器事件驱动架构 · AWS 数据湖 · AWS 多区域故障转移 · AWS 多账户网络 · Azure AKS · Google Cloud 数据管道


在 Claude 或 ChatGPT 中开始使用

TerraVision 可作为扩展安装在 Claude Desktop 中,也可作为插件安装在 ChatGPT 桌面应用中,图表会直接显示在聊天中。它还适用于 Claude Code、Codex CLI、GitHub Copilot、Cursor 和任何其他 MCP 客户端。

1. 安装前置条件(仅需一次)

TerraVision 需要 Graphviz(用于绘图)和 Git。uv 可为 Claude Code、Codex、Antigravity CLI 和其他 MCP 客户端运行 TerraVision;Claude Desktop 在 Windows 和 macOS 上自带 uv,因此这些系统上可跳过安装。只有需要根据 Terraform 代码绘图时才需要 Terraform。

macOS

使用 Homebrew:

brew install graphviz git
brew install uv                        # not needed for Claude Desktop
brew install hashicorp/tap/terraform   # optional: to draw from Terraform code
Windows

在 PowerShell 中运行:

winget install --id Graphviz.Graphviz -e
winget install --id Git.Git -e
winget install --id astral-sh.uv -e    # not needed for Claude Desktop
winget install --id Hashicorp.Terraform -e   # optional: to draw from Terraform code

然后打开一个新的终端,并重启 AI 应用,以便它们识别新安装的程序。

Linux(Debian、Ubuntu)
sudo apt install graphviz git
# Ubuntu 26.04 and later only (also Debian 14 "forky"/testing).
# Skip on older releases such as Ubuntu 24.04: graphviz already includes it.
sudo apt install libgvplugin-neato-layout8

curl -LsSf https://astral.sh/uv/install.sh | sh   # Claude Desktop on Linux needs uv pre-installed

# optionally install terraform, to draw from Terraform code: HashiCorp's apt repository
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform

其他发行版:参阅 HashiCorp 的安装指南。

没有管理员权限,或没有包管理器?可以将每个工具解压到主目录,并添加到 PATH 中:安装指南。

2. 连接助手

Claude Desktop: 从最新版本下载 terravision-<version>.mcpb 并打开它(或将其拖到设置 → 扩展中)。图表会直接显示在聊天中,并附有按钮,可用于打开图片、在 draw.io 中编辑、在所在文件夹中显示以及查看源代码。

Claude Code(终端、VS Code 或 JetBrains):

claude plugin marketplace add patrickchugh/terravision
claude plugin install terravision-cloud-diagrams@terravision

然后启动一个新的 Claude Code 会话。图表会保存在项目的 diagrams 文件夹中。如果 /mcp 在首次启动时显示 TerraVision 连接失败(安装耗时可能超过 Claude Code 的等待时间),请选择重新连接,或预先运行 uvx --from "terravision[mcp]" terravision --version 完成安装。

ChatGPT 桌面应用和 OpenAI Codex CLI: 在桌面应用中,前往“设置”,添加市场 https://github.com/patrickchugh/terravision,然后选择 terravision-cloud-diagrams。对于 CLI:

codex plugin marketplace add https://github.com/patrickchugh/terravision
codex plugin add terravision-cloud-diagrams@terravision

Google Antigravity CLI(agy):

agy mcp add terravision -- uvx --from "terravision[mcp]" terravision mcp --output-dir /path/for/diagrams

VS Code 搭配 GitHub Copilot、Cursor 和其他 MCP 客户端: 添加一个运行 uvx --from "terravision[mcp]" terravision mcp --output-dir <folder for diagrams> 的 MCP 服务。各客户端的配置以及仅安装技能的 npx skills add patrickchugh/terravision 命令,均见设置指南。

3. 请求生成图表(或代码)
你有可以这样提问你会得到
一个想法"绘制一个 AWS 三层应用:React 位于 CloudFront 上,ECS Fargate 部署在两个 AZ 中的 ALB 后方,SQL Server 部署在 RDS Multi-AZ 上"图表(PNG、SVG、可编辑的 draw.io 文件)及其图结构。你可以继续提问来完善图表:"添加 ElastiCache"、"展示请求如何流经其中"
一张由 TerraVision 生成且你喜欢的图表"为此架构编写 Terraform"资源、区域和连接对应的 Terraform 代码,并保留图表中的流向和标签(质量取决于所用模型)
本地或 GitHub 上的 Terraform 代码,但没有 VERIFIED 图表"绘制 ./infra 中 Terraform 的架构图" 或 "为 https://github.com/patrickchugh/testcase-bastion//examples 绘制云架构图"展示 terraform plan 所示代码将部署内容的图表
一张 Terraform 的 TerraVision 图表,你想将它发布到 HTML 文档中,或逐个审查资源(例如进行安全审计)"让这张图表具有交互性" 或 "给我一个可以点击浏览的交互版本"一个可在任何浏览器或文档站点中使用的单页 HTML,无需服务器:点击任意资源即可查看其设置(加密、公共访问、端口、IAM),还可搜索和缩放。该页面由 terraform plan 构建,因此需要 Terraform 代码,而不仅仅是一张图片
仓库中包含现有 TerraVision 图表的 Terraform 代码"在 CI 中保持此图表为最新状态"每当 Terraform 发生变化时都会重新绘制图表的工作流

TerraVision 首次绘制图表时会花费稍长时间,因为它需要先安装。如果缺少任何内容,助手会告知你需要安装什么。你可以随时询问:"TerraVision 是否已正确设置?"

完整指南和更多示例提示词请见:将 TerraVision 与 AI 助手配合使用。


在 CI/CD 中保持图表为最新状态

将 TerraVision GitHub Action 指向你的 Terraform,每次发生更改时都会自动重绘图表:

- uses: hashicorp/setup-terraform@v3
- uses: patrickchugh/terravision-action@v2
  with:
    source: ./infrastructure
    outfile: docs/architecture
    format: both

在 Terraform 同目录下添加 terravision.yml,即可为每个版本添加标题、编号流向和连接标签。GitLab、Jenkins、Azure DevOps 等平台请参阅:CI/CD 集成。


为什么选择 TerraVision?

  • ✅ 专为 AI 助手打造:提供 Claude、ChatGPT、Codex、Copilot 和 Cursor 的扩展与插件,并在聊天中显示图表(指南)
  • ✅ 可验证的准确性:根据 terraform plan 绘制,因此代码是事实来源,图表展示的就是将要部署的内容
  • ✅ 无需访问生产环境即可绘制生产架构:基础设施无需实际存在,你也无需访问将要部署到的账户;一个代码库即可根据各自的变量文件绘制开发、预发布和生产环境(方法)
  • ✅ 官方图标和规范:支持 AWS、Azure 和 GCP 图标,并将每个资源放置在其 VPC、子网、区域或资源组中
  • ✅ JSON 图结构输入:用几行 JSON 描述架构,无需学习自定义 DSL(图格式)
  • ✅ 100% 在客户端运行:在本地运行,无需云访问;你的代码绝不会离开计算机
  • ✅ 交互式 HTML 和可编辑的 draw.io 输出、流向注释(YAML 或通过 Ollama 或 Bedrock 生成)、支持 Terragrunt,免费且开源

比较一览

TerraVision手动工具
(draw.io、Lucidchart、Visio)
AI 工作空间
(Eraser)
图表即代码
(Mermaid、D2、Python Diagrams)
实时云扫描器
(例如 Cloudcraft)
根据纯英文描述绘图✅ 可在你已使用的助手(Claude、ChatGPT、Copilot)中使用部分支持 仅当组织批准使用第三方模型时✅不支持不支持
根据 Terraform 绘图✅ 根据 terraform plan 构建,在客户端运行不支持部分支持 AI 解读你粘贴的文件(可能会暴露代码和机密)不支持不支持
绘制你无权访问或尚未构建的环境✅ 仅凭代码和变量文件即可绘制:基础设施无需实际存在,也不需要访问其部署到的任何账户。--varfile prod.tfvars 可绘制 prod,--varfile dev.tfvars 可绘制 dev部分支持 根据文档手动绘制部分支持 根据你粘贴的代码绘制部分支持 手动编写不支持 只能绘制其可连接的账户
为设计编写 Terraform✅ 由你的助手编写,并通过重新绘制 AI 编写的代码进行检查部分支持 Lucidchart 测试版,仅支持 AWS,需付费附加组件不支持不支持不支持
官方图标以及 VPC、子网、区域分组惯例✅ 内置部分支持 图标库;正确分组由你负责部分支持 图标、通用分组不支持不支持
自动保持最新✅ 在 CI 中根据代码重新绘制不支持部分支持 仓库同步不支持✅ 跟随实时账户更新
高安全性 - 无需访问云账户或上传代码✅✅不支持✅不支持
价格免费、开源免费至付费免费套餐、付费方案免费、开源付费
已经手动画好了吗?先用 TerraVision 生成初版,再在 draw.io 或 Lucidchart 中润色导出的文件。完整对比:TerraVision 与 draw.io、Lucidchart、Eraser、Mermaid 等工具的对比。

支持的云提供商

提供商状态资源类型
AWS✅ 完全支持427 种
Google Cloud✅ 完全支持267 种
Azure✅ 完全支持263 种

完整列表:节点类型。


从命令行使用

TerraVision 也可作为命令行工具使用,适用于脚本,也适合喜欢自己编写图表的人。

安装
pipx install terravision   # or: uv tool install terravision
                           # or: pip install terravision in a virtual env

你还需要 Python 3.11+(uv 会为你安装)、Graphviz 和 Git;如果要根据 Terraform 代码绘图,还需要 Terraform 1.x(或 OpenTofu)。JSON 图表不需要这些。各平台的具体步骤、Docker 和 Nix:安装指南。

根据 JSON 绘制图表(无需 Terraform)

每个键都是 <terraform_resource_type>.<name>;每个值代表它连接到或包含的内容。格式就是这么简单。

{
  "tv_aws_users.users": ["aws_cloudfront_distribution.cdn"],
  "aws_cloudfront_distribution.cdn": ["aws_s3_bucket.static_site", "aws_alb.api"],
  "aws_vpc.main": ["aws_subnet.public~1", "aws_subnet.private~1"],
  "aws_subnet.public~1": ["aws_alb.api"],
  "aws_subnet.private~1": ["aws_lambda_function.orders"],
  "aws_alb.api": ["aws_lambda_function.orders"],
  "aws_lambda_function.orders": ["aws_dynamodb_table.orders", "aws_sqs_queue.events"]
}
terravision draw --source architecture.tvg.json --format svg

支持 AWS(aws_*)、Azure(azurerm_*)和 GCP(google_*)。完整规范、架构以及 Azure 和 GCP 示例:图表格式。

根据 Terraform 绘制图表
terravision draw --source ./path-to-your-terraform --show                    # local directory
terravision draw --source https://github.com/user/repo.git//subfolder --show # public Git repo
terravision draw --source ./path-to-your-terraform --varfile prod.tfvars     # draw prod without prod access
terravision visualise --source ./path-to-your-terraform --show               # interactive HTML

图表根据 terraform plan 生成,因此展示的是代码实际部署的内容:条件语句、count、for_each 和模块都会经过解析。Eraser 等工具绘制的是 AI 想象出来的内容;TerraVision 展示的是代码实际部署的内容。

输出格式、预生成的计划、AI 注释、简化视图以及所有选项(terravision --help):使用指南。

试用交互式演示
  • 🟧 AWS 演示:使用 CloudFront、RDS 和 EFS 的 ECS Fargate 上的 Wordpress
  • 🟦 Azure 演示:带负载均衡器和 VNet 的 VM 规模集
  • 🟩 GCP 演示:GCP 核心网络和计算

文档

所有内容都在 patrickchugh.github.io/terravision 上(供 AI Agent 使用的 llms.txt)。


贡献与支持

TerraVision 仅接受受邀协作者提交的拉取请求。欢迎在 Issues 和 Discussions 中提交 Bug 报告、功能请求和问题;CONTRIBUTING.md 说明了 Bug 报告应包含哪些内容。

本项目采用 AGPL-3.0 许可,详见 LICENSE。本项目基于 Graphviz、Terraform 和 Terragrunt 构建,并使用 AWS、Azure 和 GCP 官方图标集。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。