AWS Amplify 管道服务器

一个用于自动化设置AWS Amplify Gen 2应用程序自定义CI/CD管道的MCP服务器,具有智能部署模式检测功能。

  • by Paretofilm
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Paretofilm/amplify-pipeline-mcp

使用说明

AWS Amplify Pipeline MCP服务器

🆕 v1.2.0更新:动态应用ID解析

工作流现在会根据存储库名称自动检测您的Amplify应用程序ID!

  • 工作流中不再有硬编码的应用程序ID
  • 相同的工作流程适用于您的所有项目
  • 自动回退,并显示有用的错误消息

🎯 智能部署模式检测

此MCP服务器 自动检测 您的Amplify应用程序是否:

  • 存储库已连接 (最常见)-应用程序通过AWS Amplify连接到GitHub
  • 手动部署 (罕见)-应用程序未连接到任何存储库

存储库连接应用程序(95%的案例)

✅ 自动检测和配置 ✅ 无需webhooks或手动触发器 ✅ 针对基于Git的部署进行了优化 ✅ 监控自动Amplify构建

手动部署应用程序(占5%)

✅ 使用webhook并创建部署API ✅ 完全控制部署时间 ✅ 适用于没有Git连接的应用程序

一种模型上下文协议(MCP)服务器,通过智能部署模式检测自动设置AWS Amplify Gen 2应用程序的自定义CI/CD管道。

📚 完整使用指南 -所有功能的综合指南 🚀 功能路线图 -即将推出的功能和增强功能 🤖 自动修复文档 -深入了解自动修复系统

概述

此MCP服务器智能检测您的Amplify应用程序的部署模式,并配置最佳管道设置。只需一个命令- pipeline-deploy -根据您的应用程序是连接存储库还是使用手动部署,所有内容都会自动配置。

特性

核心能力

  • 🆕 动态应用ID查找:工作流按存储库名称自动查找应用程序ID
  • 🔍 自动部署模式检测:智能检测存储库连接与手动应用程序
  • 🎯 双工作流模板:根据部署模式生成适当的GitHub操作
  • 🚀 智能管道设置:为您的特定应用程序配置配置最佳CI/CD
  • 📦 框架检测:自动检测Next.js、React、Vue、Angular等。
  • 🔧 平台配置:设置正确的平台(SSR为WEB_COMPUTE,SPA为WEB)

存储库连接功能

  • ✅ 无手动触发器:利用Amplify的自动构建
  • 📊 构建监控:跟踪Git推送触发的自动构建
  • 🔄 简化工作流程:后端部署→ Git推送→ 自动前端构建
  • ⚡ 更快的部署:针对常见情况进行了优化

手动部署功能

  • 🔗 网钩 管理:创建用于手动触发的Webhook
  • 🎮 完全控制:完全控制部署时间
  • 📦 捆绑包创建:打包和部署构建工件
  • 🛑 自动构建禁用:关闭自动构建以进行手动控制

错误处理和恢复

  • 🤖 自动修复系统:自动修复常见的部署问题
  • 🔍 错误检测:标识错误的部署模式使用
  • 📝 聪明的建议:为故障提供可操作的修复
  • 🔄 重试逻辑:自动重试并应用修复程序

新工作流程

步骤1:手动设置(一次)

  1. 在AWS控制台中创建您的Amplify应用程序
  2. 使用AWS Amplify GitHub应用程序连接您的GitHub存储库(用于存储库连接模式)
  3. 这建立了Amplify和GitHub之间的安全连接

步骤2:自动管道设置

在您的存储库目录中,只需说:

  • “管道部署” 或
  • “设置管道” 或
  • “p-deploy”

就是这样!MCP服务器会自动检测您的部署模式,并相应地配置所有内容。

自动发生的事情

当你奔跑时 pipeline-deploy 使用您的应用程序ID,服务器:

  • ✅ 通过动态应用ID查找生成工作流 (没有硬编码!)
  • ✅ 检测部署模式 (存储库已连接或手动)
  • ✅ 检测框架 (Next.js、React、Vue等)
  • ✅ 配置适当的工作流程 基于模式
  • ✅ 自动检测您当前的Git分支
  • ✅ 对于已连接的存储库:确保启用自动构建
  • ✅ 对于手动:禁用自动构建并创建Webhook
  • ✅ 生成最佳GitHub操作工作流
  • ✅ 创建用于错误恢复的自动修复脚本
  • ✅ 设置正确 amplify.yml 使用Node.js 20

先决条件

  1. AWS-CLI 配置了适当的凭据
  2. AWS Amplify应用程序 在AWS控制台中创建
  3. GitHub存储库 (已连接为存储库模式)
  4. Python 3.9+ 安装
  5. Node.js 20+ 用于Amplify Gen 2
  6. MCP兼容客户端 (如克劳德密码)

快速开始

1.安装依赖项

pip install mcp pyyaml

2.添加到克劳德代码

# Using the shell script (recommended)
claude mcp add amplify-pipeline /Users/kjetilge/mcp-servers/amplify-pipeline-mcp/run_server.sh -s local

# Or using Python directly
claude mcp add amplify-pipeline "python /Users/kjetilge/mcp-servers/amplify-pipeline-mcp/server.py" -s local

3.配置您的应用程序

# The tool will auto-detect your deployment mode and configure accordingly
pipeline-deploy --app-id YOUR_APP_ID

# Example output:
# 🔍 Detecting deployment mode...
# ✅ Repository-connected app detected
# 📦 Framework: Next.js SSR (WEB_COMPUTE)
# 🌿 Branch: main
# 🚀 Setting up repository-connected pipeline...

创造什么

适用于存储库连接的应用程序(最常见)

  1. 优化GitHub操作工作流 -部署后端,监控前端自动构建
  2. amplify.yml -使用Node.js 20构建配置
  3. 自动修复脚本 -处理常见错误
  4. 构建监控 -跟踪自动Amplify构建

用于手动部署应用程序(罕见)

  1. 手动部署工作流 -完全控制部署
  2. Webhook 配置 -用于触发部署
  3. 构建捆绑包创建 -打包工件以供部署
  4. 部署监控 -跟踪手动部署状态

常见问题及解决方案

“不支持操作”错误

问题:在与存储库连接的应用程序上使用手动部署 解决方案:MCP服务器现在会自动检测到这一点,并使用正确的工作流程

缺少amplify_outputs.json

问题:前端找不到后端配置 解决方案:在后端部署期间自动生成

Package-lock.json不同步

问题:package.json和锁文件之间的依赖关系不匹配 解决方案:部署前自动检测并修复

建筑

存储库连接的应用程序(自动检测)

┌─────────────────┐
│  GitHub Push    │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ GitHub Actions  │
│   Workflow      │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ Backend Deploy  │
│ (pipeline-deploy)│
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  Git Push with  │
│ amplify_outputs │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ Amplify Auto    │
│ Build (Triggered│
│ by Git Push)    │
└─────────────────┘

手动部署应用程序(自动检测)

┌─────────────────┐
│  GitHub Push    │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ GitHub Actions  │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ Backend Deploy  │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ Create Bundle   │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ Manual Deploy   │
│ (create-deploy) │
└─────────────────┘

所需的GitHub设置

运行后 pipeline-deploy,您需要:

  1. 添加GitHub机密:

    • AWS_ACCESS_KEY_ID -AWS部署访问密钥
    • AWS_SECRET_ACCESS_KEY -AWS部署密钥
  2. 确保存储库权限:

    • GitHub操作需要写入权限(自动添加到工作流中)
    • 验证 amplify_outputs.json 不在 .gitignore
  3. 承诺并推动:

git add -A
git commit -m "Add custom pipeline configuration"
git push

自动修复功能

什么会自动修复

问题类型 自动修复操作 应用时
部署模式错误 使用正确的工作流 检测阶段
Linting错误 ESLint--修复 部署前
格式化 预处理--写入 部署前
TypeScript错误 添加缺失的类型/导入 失败时
安全漏洞 npm审计修复 失败时
缺少依赖项 npm安装 失败时
缺少amplify_outputs.json 从应用程序ID生成 失败时
包锁同步 npm安装 部署前

使用示例

克劳德代码(自然语言)

"Set up pipeline for my amplify app"
"Why is my build failing?"
"Is my app repository-connected?"
"Fix deployment errors"

直接命令

"pipeline deploy d1234abcd5678"

应用程序ID可以在您的Amplify控制台URL中找到:

  • 转到AWS Amplify控制台
  • 点击您的应用
  • URL将是: .../apps/d1234abcd5678/...
  • 复制ID: d1234abcd5678

益处

  • 智能检测:自动使用正确的部署策略
  • 零配置:开箱即用,自动检测
  • 错误预防:防止“不支持操作”错误
  • 完全控制:完全控制构建和部署过程
  • 自定义步骤:添加测试、linting、安全扫描等。
  • 整合:与现有的CI/CD系统配合使用
  • 自动修正:自动解决常见的部署错误
  • 节省时间:不手动修复部署模式不匹配

文档

支持

使用克劳德代码

只需问:

  • “管道设置帮助”
  • “调试我失败的构建”
  • “我的应用程序使用什么部署模式?”
  • “修复存储库连接问题”

手动支持

  • 检查 完整使用指南
  • 查看GitHub Actions中的工作流日志
  • 查看AWS Amplify控制台以获取前端日志
  • 确保满足所有先决条件

发展

项目结构

amplify-pipeline-mcp/
├── server.py                # Main MCP server implementation
├── deployment_detector.py   # Deployment mode detection logic
├── deployment_monitor.py    # Enhanced monitoring capabilities
├── workflow_templates.py    # Dual workflow templates
├── README.md               # User documentation
└── pyproject.toml          # Python package configuration

测试检查表

  • []使用与存储库连接的应用程序进行测试
  • []使用手动部署应用程序进行测试
  • []测试部署模式检测
  • []测试框架检测
  • []验证工作流生成是否正确
  • []确认错误模式的错误处理
  • []检查自动修复功能

许可证

麻省理工学院