项目简介 AWS架构图生成MCP服务器是'diagram-as-code'工具的一个扩展,旨在通过Model Context Protocol (MCP) 与大型语言模型(LLM)客户端(如AI助手和开发工具)进行交互。它使得LLM能够以标准化的方式,根据YAML规范自动生成专业的AWS架构图,从而实现设计文档的自动化和开发流程的无缝集成。

主要功能点

  • 程序化图表生成: 接收YAML格式的架构定义,生成高质量的AWS架构PNG图片。
  • 直接文件保存: 支持将生成的图片直接保存到指定的文件路径,方便集成到文件系统或CI/CD流程。
  • 格式规范提供: 提供了全面的Diagram-as-code YAML格式规范、示例和最佳实践,帮助LLM理解和构造有效的输入。
  • 上下文服务框架: 通过JSON-RPC协议进行通信,支持Stdio等多种传输协议,为LLM应用提供安全、可扩展的上下文服务。

安装步骤 请根据您的操作系统选择以下安装方式:

  • 对于macOS用户: 打开终端并运行以下命令:

    brew install awsdac

    这将安装'awsdac'命令行工具及其MCP服务器组件。

  • 对于Go语言开发者 (Go 1.21 或更高版本): 打开终端并运行以下命令:

    go install github.com/awslabs/diagram-as-code/cmd/awsdac-mcp-server@latest

    这将在您的Go二进制文件路径(通常是'~/go/bin'或'$GOPATH/bin')中安装'awsdac-mcp-server'。

MCP服务器配置(MCP客户端使用) MCP服务器是供MCP客户端使用的。要让您的MCP客户端连接并使用此服务器,您需要在MCP客户端中进行相应的配置。以下是MCP客户端配置的示例信息,您只需了解其内容,无需编写代码。

MCP客户端需要知道如何启动'awsdac-mcp-server'。配置通常是JSON格式,包含服务器名称、启动命令、参数和传输类型。

  • 标准配置示例:

    {
      "mcpServers": {
        "awsdac-mcp-server": {
          "command": "/path/to/awsdac-mcp-server",
          "args": [],
          "type": "stdio"
        }
      }
    }

    配置说明:

    • '"awsdac-mcp-server"': 您为该MCP服务器定义的名称。
    • '"command"': 'awsdac-mcp-server'二进制文件的完整路径。
      • 对于macOS用户,通常是'/opt/homebrew/bin/awsdac-mcp-server'。
      • 对于Go安装的用户,请使用'which awsdac-mcp-server'或'ls ~/go/bin/awsdac-mcp-server'找到实际路径。
    • '"args"': 启动服务器时附加的命令行参数列表。默认情况下可为空。
    • '"type"': 服务器使用的传输协议,此处为'"stdio"'。
  • 带自定义日志文件的配置示例:

    {
      "mcpServers": {
        "awsdac-mcp-server": {
          "command": "/path/to/awsdac-mcp-server",
          "args": ["--log-file", "/path/to/custom/awsdac-mcp.log"],
          "type": "stdio"
        }
      }
    }

    配置说明:

    • '"--log-file", "/path/to/custom/awsdac-mcp.log"': 这是一个可选参数,用于指定MCP服务器的日志文件路径。如果不指定,默认日志文件在'/tmp/awsdac-mcp-server.log'。

基本使用方法 一旦MCP客户端配置完毕并连接到'awsdac-mcp-server',LLM客户端就可以调用服务器提供的工具来生成架构图。

  1. 获取图表格式规范: 在首次生成图表或需要了解最新格式时,LLM客户端可以调用'getDiagramAsCodeFormat'工具来获取详细的YAML格式规范、示例和最佳实践。 (LLM客户端会发送一个请求,调用此工具,服务器会返回一份详细的文档。)

  2. 生成架构图(返回Base64编码图片): LLM客户端构造符合'Diagram-as-code'格式的YAML内容,然后调用'generateDiagram'工具。 (LLM客户端会发送YAML内容作为参数,服务器处理后返回Base64编码的PNG图片数据。) 示例: 'generateDiagram' 工具会接收一个 'yamlContent' 参数,LLM客户端可以描述其需求,例如:

    Generate an AWS architecture diagram showing a VPC with public and private subnets, an ALB, and EC2 instances.

    (MCP客户端会将LLM的请求转化为对'generateDiagram'工具的调用,并传入对应的'yamlContent'参数。)

  3. 生成架构图并保存到文件: 如果LLM客户端不方便处理Base64编码的图片数据(例如某些AI助手),可以调用'generateDiagramToFile'工具,将生成的图片直接保存到指定的文件路径。 (LLM客户端会发送YAML内容和目标文件路径作为参数,服务器处理后将图片保存到文件系统,并返回保存成功的消息。) 示例: 'generateDiagramToFile' 工具会接收 'yamlContent' 和 'outputFilePath' 参数,LLM客户端可以描述其需求,例如:

    Generate an AWS architecture diagram showing a VPC with public and private subnets, an ALB, and EC2 instances, then save it to /tmp/test-diagram.png.

    (MCP客户端会将LLM的请求转化为对'generateDiagramToFile'工具的调用,并传入对应的'yamlContent'和'outputFilePath'参数。)

信息

分类

AI与计算