项目简介

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部署) 等功能。

安装步骤

  1. 克隆仓库: 'git clone https://github.com/DheerajShrivastav/aws-deploy-ai.git' 'cd aws-deploy-ai'
  2. 进入MCP服务器目录: 'cd packages/mcp-server'
  3. 安装依赖: 'npm install'
  4. 配置环境变量: 复制 '.env.example' 文件为 '.env',并根据实际情况编辑,填入您的AWS凭证 (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION) 和AWS Bedrock模型ID。确保您的AWS账户在指定区域已启用AWS Bedrock服务。 'cp .env.example .env'
  5. 构建MCP服务器: 'npm run build'
  6. 启动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'
});

信息

分类

开发者工具