项目简介 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客户端就可以调用服务器提供的工具来生成架构图。
-
获取图表格式规范: 在首次生成图表或需要了解最新格式时,LLM客户端可以调用'getDiagramAsCodeFormat'工具来获取详细的YAML格式规范、示例和最佳实践。 (LLM客户端会发送一个请求,调用此工具,服务器会返回一份详细的文档。)
-
生成架构图(返回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'参数。)
-
生成架构图并保存到文件: 如果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与计算