基础设施自动化MCP
适用于Okta、AWS和Terraform的AI驱动CI/CD
   
⚡ 快速开始
选项A:观看视频
🎥 点击此处观看5分钟演示
选项B:自己试试
- 克隆和安装
git clone https://github.com/metalfa/infra-automation-mcp.git
cd infra-automation-mcp
python -m venv venv && source venv/bin/activate
pip install -e .- 配置 (参见 安装)
- 问克劳德:
Create a new user john.doe@example.com, generate Terraform
for an EC2 instance, and show me the access review report.- 看魔术发生 ✨
将基础设施管理从CLI命令转换为自然语言,而不牺牲安全性、可审计性或DevOps最佳实践。
这个项目是 生产级模型上下文协议(MCP)服务器 使人工智能助手(Claude)能够通过以下方式管理企业基础设施 自然语言,同时执行 GitOps、CI/CD和人工审批门.
用户描述的不是记忆CLIs、导航云控制台或手写Terraform *意图* --系统安全地将该意图转化为 经过审查、可审计的基础设施变更.
______________________________________________________________________
📋 关于本项目
该项目是ActiveCampaign系统工程师职位的带回家练习。
挑战:
*“设计一个CI/CD管道来管理Okta实例和EC2或ECS/EKS服务器集。”*
我的方法:
我没有提交静态图表或文档,而是构建了一个 功能齐全的生产级系统 这表明:
| 需求 | 我的实现 |
|---|---|
| Okta管理✅ 通过MCP+Terraform生成完整的CRUD操作 | |
| EC2资源调配 | ✅ 自动生成的具有自由层默认值的地形 |
| CI/CD管道 | ✅ GitHub行动计划→ 批准→ 应用→ 自动销毁 |
| 基础设施即代码 | ✅ Terraform中定义的所有资源 |
| 安全 | ✅ GitOps工作流程,人工审批门,无直接部署 |
| 审计跟踪 | ✅ 完整的Git历史记录+GitHub项目跟踪 |
| 通知 | ✅ 用于审批和状态更新的Slack集成 |
我为何超越:
我认为展示DevOps专业知识的最佳方式是 建造一些真实的东西这个项目不仅展示了 *什么* CI/CD管道应该可以,但是 *如何* 现代人工智能增强的基础设施自动化可以改变团队的工作方式,将45分钟的手动过程减少到30秒的对话。
______________________________________________________________________
🎯 为什么存在
传统基础设施工作的问题
简单的入职流程通常需要:
# Create Okta user
okta users create --firstName Bruce --lastName Lee --email bruce@demoac.com
# Find group
okta groups list | grep "Security-Engineering"
# Add user to group
okta groups members add 00g123... 00u987...
# Write Terraform
vim terraform/users.tf
# Create PR
git checkout -b add-user-bruce
git add .
git commit -m "Add user Bruce Lee"
git push origin add-user-bruce
gh pr create
# Wait, review, apply
terraform apply| 度量 | 传统方法 |
|---|---|
| ⏱️ 时间 | 30-45分钟 |
| ⚠️ 错误 | 常见(拼写错误、ID错误、遗漏步骤) |
| 📄 审计 | 跨工具分散 |
| 🧠 认知负荷 | 高(多个CLIs、控制台、上下文) |
______________________________________________________________________
此MCP的结果相同
你说:
1. Create an Okta user for "bruce.lee@demoac.com" (Bruce Lee, Security Engineer),
create a Security-Engineering group, add him to it, and send him a Slack welcome message
2. Generate Terraform for a free-tier EC2 instance called "bruce-lee-devbox"
3. Generate IAM configuration that maps to Okta for SSO
4. Create a GitHub PR with these changes and send a Slack message for approval克劳德回应道:
| 步骤 | 结果 |
|---|---|
| ✅ | 创建Okta用户并分配到组 |
| ✅ | 发送带有团队和访问详细信息的个性化Slack欢迎消息 |
| ✅ | 生成的生产就绪地形(IAM、EC2、SSO映射) |
| ✅ | 打开GitHub PR terraform plan 输出 |
| ✅ | 向审批人发送Slack通知以等待审核 |
| ✅ | 人类批准后的应用基础设施 |
| ✅ | 维护完整的基于Git的审计跟踪 |
| 度量 | MCP方法 |
|---|---|
| ⏱️ 时间 | ~30秒 |
| ✅ 错误 | 零(已验证,模板化) |
| 🔐 审核 | 完成Git历史记录 |
| 🧠 认知负荷 | 最小(自然语言) |
______________________________________________________________________
🖌️ 核心设计原则
| 原理 | 实施 |
|---|---|
| AI是一个界面,而不是一个控制平面 | 克劳德助攻;人类赞成 |
| 无直接部署 | 所有更改都通过GitHub PR进行 |
| 需要人工批准 | 合并门强制审查 |
| 默认情况下为最低权限 | IAM角色和政策范围 |
| IaC仍然是真相的来源 | 地形状态具有权威性 |
该系统 增强 DevOps工作流——它不会绕过它们。
______________________________________________________________________
🚀 关键能力
身份管理(Okta)
| 能力 | 工具 | 描述 |
|---|---|---|
| 列出用户 | okta_list_users | 搜索和审核用户帐户 |
| 列出组 | okta_list_groups | 检查组成员资格 |
| 创建用户 | okta_create_user | 为用户提供+生成IaC |
| 创建组 | okta_create_group | 组创建+地形输出 |
协作和通知(Slack)
| 能力 | 工具 | 描述 |
|---|---|---|
| 欢迎留言 | send_slack_notification | 包含团队、角色、访问信息的入职信息 |
| PR审批提醒 | send_slack_notification | 基础设施PR准备就绪时通知审阅者 |
| 部署状态 | send_slack_notification | 确认应用/销毁完成 |
AWS基础架构
| 能力 | 工具 | 描述 |
|---|---|---|
| 列出EC2实例 | aws_list_ec2_instances | EC2实例发现 |
| 描述实例 | aws_describe_instances | 详细实例检查 |
| 列出IAM角色 | aws_list_iam_roles | 访问和策略审核 |
| 身份检查 | aws_get_identity | 凭证验证 |
地形生成
| 能力 | 工具 | 描述 |
|---|---|---|
| 生成EC2实例 | terraform_generate_ec2 | 使用安全组开发实例 |
| IAM+Okta SSO | terraform_generate_iam_user_with_okta | 使用SAML映射进行联合访问 |
| 生成S3数据包 | terraform_generate_S3 | 版本ID历史记录 |
| IAM角色 | terraform_generate_iam_role | 范围信任策略 |
CI/CD 和 GitOps
| 能力 | 工具 | 描述 |
|---|---|---|
| 创建PR | create_infrastructure_pr | 自动创建GitHub PR |
| 列出PR | list_open_prs | 查看待定的基础架构更改 |
| 管道状态 | list_pipeline_runs | CI/CD工作流可见性 |
| 完整的工作流程 | complete_infrastructure_workflow | 端到端:生成→ PR → 通知→ 部署 |
| 项目跟踪 | GitHub项目 | 自动更新:待办事项列表→ 进行中→ 完成 |
合规与安全
| 能力 | 工具 | 描述 |
|---|---|---|
| 访问审查 | generate_access_review | SOC2/ISO27001合规报告 |
| 用户审核 | check_user_access | 任何用户的完整访问报告 |
______________________________________________________________________
🏗️ 架构概述
flowchart TB
subgraph Input["🎯 INPUT"]
User["👤 User"]
end
subgraph Intelligence["🤖 AI LAYER"]
Claude["Claude Desktop"]
MCP["MCP Server"]
end
subgraph OktaOps["🔐 OKTA OPERATIONS"]
CreateUser["Create User"]
CreateGroup["Create Group"]
AssignGroup["Assign to Group"]
end
subgraph GitOps["📦 GITOPS WORKFLOW"]
Repo["GitHub Repo"]
PR["Pull Request"]
Actions["GitHub Actions"]
Projects["GitHub Projects"]
end
subgraph Infra["☁️ INFRASTRUCTURE"]
Okta["Okta"]
AWS["AWS"]
end
subgraph Notify["📢 NOTIFICATIONS"]
Slack["Slack"]
end
User -->|Natural Language| Claude
Claude -->|MCP Protocol| MCP
MCP -->|Create User| CreateUser
MCP -->|Create Group| CreateGroup
CreateUser --> AssignGroup
CreateGroup --> AssignGroup
AssignGroup -->|Sync to| Okta
MCP -->|Generate IaC| Repo
MCP -->|Alert Team| Slack
Repo -->|Opens| PR
PR -->|Triggers| Actions
PR -->|Creates Card| Projects
Actions -->|Plan Output| PR
Actions -->|On Merge| AWS
Actions -->|Update Status| Projects
Actions -->|Notify| Slack
Okta -.->|SSO Federation| AWS| 组件 | 目的 |
|---|---|
| 用户 | 自然语言请求(“创建用户和EC2实例”) |
| 克劳德桌面版 | AI助手界面 |
| MCP 服务器 | 策略执行、验证、编排 |
| 创建用户 | 在Okta提供新用户 |
| 创建组 | 创建Okta组以进行访问控制 |
| 分配到组 | 将用户添加到适当的组 |
| 八月 | 身份和访问管理(同步用户/组) |
| GitHub回购 | 地形代码存储 |
| 拉取请求 | 人工审查门 |
| GitHub操作 | CI/CD管道(规划/应用/销毁) |
| GitHub项目 | 自动跟踪:积压→ 进行中→ 完成 |
| 亚马逊云服务 | EC2、IAM、S3基础架构 |
| Slack | 警报、批准、状态通知 |
______________________________________________________________________
🔑 主要财产
| 属性 | 描述 |
|---|---|
| 🛡️ 人类审批门 | 未经PR审查和合并,不得部署 |
| 📜 不可变审计跟踪 | Git历史记录中跟踪的每一个更改 |
| 🔒 政策强制执行 | MCP在采取任何行动之前进行验证 |
| 🚫 零直接人工智能部署 | 人工智能辅助;人类授权 |
| 📊 自动项目跟踪 | 卡流:积压→ 进行中→ 完成 |
______________________________________________________________________
🔐 安全模型
| 安全功能 | 实现 |
|---|---|
| 没有硬编码的秘密 | 仅环境变量 |
| 凭证隔离 | 每个服务都有单独的令牌 |
| Git支持的审计跟踪 | 跟踪的每一个变化 |
| 最低权限IAM | 作用范围和政策 |
| 国家加密 | S3中加密的地形状态 |
| MFA就绪 | Okta政策支持执法 |
| 成本保护 | 3分钟后自动销毁演示资源 |
______________________________________________________________________
🛠️ CI/CD管道(GitHub操作)
关于Pull请求
┌─────────────────┐
│ terraform fmt │ → Code formatting check
├─────────────────┤
│ terraform init │ → Initialize providers
├─────────────────┤
│ terraform plan │ → Preview changes
├─────────────────┤
│ Post to PR │ → Plan visible to reviewers
├─────────────────┤
│ Update Project │ → Moves card to "Backlog"
└─────────────────┘关于合并到主
┌─────────────────┐
│ terraform apply │ → Create resources
├─────────────────┤
│ Wait 3 minutes │ → Demo observation window
├─────────────────┤
│ terraform destroy│ → Auto-cleanup (cost control)
├─────────────────┤
│ Slack notify │ → Confirm completion
├─────────────────┤
│ Update Project │ → Moves card to "Done"
└─────────────────┘______________________________________________________________________
安装
先决条件
| 要求 | 版本 |
|---|---|
| Python | 3.10+ |
| 地形 | 1.6+ |
| AWS CLI | 已配置 |
| Okta | neneneba API访问 |
| GitHub | 帐户+PAT |
| 克劳德桌面 | 最新 |
快速开始
# Clone the repository
git clone https://github.com/metalfa/infra-automation-mcp.git
cd infra-automation-mcp
# Create virtual environment
python -m venv venv
# Activate (Windows)
.\venv\Scripts\Activate.ps1
# Activate (Mac/Linux)
source venv/bin/activate
# Install package
pip install -e .配置
- 创建环境文件:
cp .env.example .env- 在中配置凭据
.env:
# Okta
OKTA_BASE_URL=https://your-org.okta.com
OKTA_API_TOKEN=your-okta-token
# AWS
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
# GitHub
GITHUB_TOKEN=your-github-pat
GITHUB_REPO=your-username/infra-automation-mcp
# Slack
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/xxx- 在Claude Desktop中注册MCP服务器并更新Claude_Desktop_config文件,重新启动,您就准备好了。
______________________________________________________________________
💬 示例用例
👤 员工入职
Create user maria.garcia@company.com (Maria Garcia, DevOps Engineer),
add her to the devops-team group, generate Terraform for her IAM access,
create a PR, and send a Slack welcome message.🖥️ 开发环境
Provision a free-tier EC2 instance called "dev-sandbox" with SSH access,
generate the Terraform code, and create a PR for review.🔒 SOC2访问审查
Generate a comprehensive access review report showing all Okta users,
their group memberships, inactive accounts, and security recommendations.🚀 完整的基础架构工作流程
Set up infrastructure for the new Data Science team:
1. Create Okta group "data-science"
2. Create user alex.kim@company.com
3. Generate EC2 and IAM Terraform
4. Create PR and notify approvers via Slack所有这些都是通过对话驱动的——所有这些都通过GitOps强制执行。
______________________________________________________________________
📊 业务影响
| 度量 | 传统 | 带MCP | 改进 |
|---|---|---|---|
| 配置时间 | 30-45分钟 | ~30秒 | 速度提高98% |
| 手动错误 | 常见 | 零 | 淘汰 |
| 审计合规性 | 部分 | 100% | 完成 |
| 机载摩擦 | 高 | 最小 | 流线型 |
| 操作风险 | 升高 | 降低 | 受控的 |
______________________________________________________________________
🗺️ 路线图
- \[x\] Okta用户和组管理
- \[x\] AWS EC2和IAM配置
- \[x\] 地形代码生成
- \[x\] GitHub公关自动化
- \[x\] 松弛通知
- \[x\] 自动销毁以控制成本
- \[\]Azure AD/Entra ID集成
- \[\]Intune和Kandji MDM支持
- \[\]Kubernetes清单生成
- \[\]政策即代码(OPA/哨兵)
- \[\]成本估算(基础设施成本)
- \[\]多云支持(GCP、Azure)
______________________________________________________________________
🎓 为何这很重要
| 传统DevOps | 人工智能增强DevOps |
|---|---|
| CLI记忆 | 意图驱动的请求 |
| 人工IaC编写 | 生成并验证的代码 |
| 持续的工具切换 | 单一对话界面 |
| 部落知识孤岛 | 可访问、有文件记录的工作流程 |
DevOps的未来是对话式的 --工程师专注于 *什么* 需要发生,而不是 *如何* 在数十个工具上执行它。
______________________________________________________________________
🎯 这如何应对挑战
| 挑战要求 | 该项目如何交付 |
|---|---|
| “设计CI/CD管道” | GitHub Actions工作流,包括计划、应用和销毁阶段 |
| “管理Okta实例” | 完整的Okta集成:用户、组、SSO映射、访问审查 |
| “EC2或ECS/EKS服务器集” | EC2(免费层)和S3 Bucket的地形生成 |
| “天生开放” | 超越静态设计——构建了一个可工作的、由人工智能驱动的系统 |
| “无数的答案” | 选择一种创新的方法:自然语言→ 基础设施 |
💡 是什么让这个解决方案与众不同
- 这是真的 --不是图表,而是可以克隆和运行的工作代码
- 这很有创新性 --AI驱动的界面,同时保持GitOps规范
- 这很实用 --解决实际痛点(入职、配置、合规)
- 很安全 --人工审批门、自动销毁、最低权限默认值
- 它是可扩展的 --模块化设计,适用于Entra ID、Intune、Kubernetes、多云
______________________________________________________________________
👤 作者
法伊卡尔·本·萨西\ IT系统工程师
](https://github.com/metalfa)  
______________________________________________________________________
Built to demonstrate an AI-driven infrastructure automation for ActiveCampaign — Systems Engineer technical assessment
"The best way to predict the future is to build it — and the future of DevOps is conversational."
