项目简介
AWS Deploy AI MCP服务器是整个AWS Deploy AI平台的核心后端,它实现了Model Context Protocol (MCP) 标准,旨在为大型语言模型 (LLM) 客户端提供与AWS云基础设施交互的能力。通过自然语言处理和AI智能分析,它能够将用户的部署需求转化为具体的AWS资源配置,并自动化执行部署过程。它支持多种部署场景,从静态网站到复杂的全栈应用。
主要功能点
- AI驱动的部署分析: 利用AWS Bedrock(Claude 3)解析自然语言的部署指令,智能推荐最优AWS服务,并提供成本估算。
- 全面的AWS集成: 支持部署静态网站、单页应用 (SPA)、无服务器API (Lambda)、全栈应用等,涵盖S3、CloudFront、Lambda、API Gateway、IAM、Route53等AWS服务。
- GitHub集成部署: 能够直接分析GitHub仓库,并基于代码库内容和用户需求生成并执行部署计划。
- 部署状态与成本管理: 提供实时部署进度跟踪、资源管理和透明的成本估算。
- MCP工具集: 通过标准化的JSON-RPC工具接口,实现 'deploy-website' (部署网站)、'get-deployment-status' (获取部署状态)、'analyze-deployment' (分析部署需求)、'get-cost-estimate' (获取成本估算) 以及 'deploy-from-github' (从GitHub部署) 等功能。
安装步骤
- 克隆仓库: 'git clone https://github.com/DheerajShrivastav/aws-deploy-ai.git' 'cd aws-deploy-ai'
- 进入MCP服务器目录: 'cd packages/mcp-server'
- 安装依赖: 'npm install'
- 配置环境变量: 复制 '.env.example' 文件为 '.env',并根据实际情况编辑,填入您的AWS凭证 (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION) 和AWS Bedrock模型ID。确保您的AWS账户在指定区域已启用AWS Bedrock服务。 'cp .env.example .env'
- 构建MCP服务器: 'npm run build'
- 启动MCP服务器: 'npm start' (生产环境) 或 'npm run dev' (开发环境)
服务器配置 (供MCP客户端连接)
MCP客户端需要配置MCP服务器的启动信息以建立连接。以下是基于该仓库提供的MCP服务器的配置示例(JSON格式,包含关键字段及注释):
{ "serverName": "AWS Deploy AI Server", "command": "node", "args": [ "./packages/mcp-server/dist/main.js" ], "description": "连接到AWS Deploy AI的MCP服务器,用于自动化AWS云资源部署。", "capabilities": { "tools": [ "deploy-website", "get-deployment-status", "analyze-deployment", "get-cost-estimate", "list-deployments", "deploy-from-github", "analyze-github-repo", "list-github-repos" ], "resources": [], "prompts": [] }, "env": { "AWS_REGION": "您的AWS区域 (例如: us-east-1)", "AWS_ACCESS_KEY_ID": "您的AWS访问密钥ID", "AWS_SECRET_ACCESS_KEY": "您的AWS秘密访问密钥", "BEDROCK_MODEL_ID": "Anthropic Claude 3 Bedrock模型ID (例如: anthropic.claude-3-sonnet-20240229-v1:0)", "GITHUB_TOKEN": "可选:您的GitHub个人访问令牌(用于访问私有仓库或提升API限制)", "MCP_SERVER_MODE": "true" }, "transport": "stdio", "workingDirectory": "MCP服务器的根目录 (例如: /path/to/aws-deploy-ai)" }
参数注释:
- 'serverName': MCP服务器的名称。
- 'command': 启动MCP服务器的可执行命令,这里是'node'。
- 'args': 传递给'command'的参数数组,这里是MCP服务器的入口文件路径。
- 'description': 对该MCP服务器功能的简要描述。
- 'capabilities': 声明该服务器提供的功能,如工具、资源和Prompt模板。
- 'env': MCP服务器运行所需的环境变量,包括AWS凭证、Bedrock模型ID和可选的GitHub令牌。'MCP_SERVER_MODE: "true"' 用于禁用开发环境下的控制台日志,确保日志通过 'stdio' 传输。
- 'transport': 服务器与客户端之间的通信协议,这里是'stdio'(标准输入输出)。
- 'workingDirectory': MCP服务器进程的当前工作目录,应指向整个'aws-deploy-ai' monorepo的根目录,以便'./packages/mcp-server/dist/main.js'路径正确解析。
基本使用方法
一旦MCP服务器启动并被MCP客户端连接,您可以通过MCP客户端向其发送JSON-RPC请求来调用其工具。 例如,要部署一个网站:
// 假设您正在MCP客户端中与AWS Deploy AI MCP服务器交互 // 客户端将根据MCP协议构建并发送请求,例如: mcpClient.callTool('deploy-website', { prompt: 'Deploy my React portfolio website with a contact form', projectName: 'my-portfolio-app', customDomain: 'example.com', environment: 'production' });
要分析一个GitHub仓库:
mcpClient.callTool('analyze-github-repo', { repository: 'owner/repo-name', branch: 'main' });
要获取部署状态:
mcpClient.callTool('get-deployment-status', { deploymentId: 'your-deployment-id' });
信息
分类
开发者工具