基础设施自动化MCP服务

AI驱动的CI/CD平台,通过自然语言管理Okta、AWS和Terraform基础设施,实现自动化部署和审批流程。

  • by metalfa
  • HCL
  • 本地部署
  • 更新于
在 GitHub 查看 metalfa/infra-automation-mcp

使用说明

基础设施自动化MCP

适用于Okta、AWS和Terraform的AI驱动CI/CD

⚡ 快速开始

选项A:观看视频

🎥 点击此处观看5分钟演示

选项B:自己试试

  1. 克隆和安装
   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 .
  1. 配置 (参见 安装)

  2. 问克劳德:

   Create a new user john.doe@example.com, generate Terraform 
   for an EC2 instance, and show me the access review report.
  1. 看魔术发生 ✨

将基础设施管理从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 .

配置

  1. 创建环境文件:
   cp .env.example .env
  1. 在中配置凭据 .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
  1. 在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的地形生成
“天生开放” 超越静态设计——构建了一个可工作的、由人工智能驱动的系统
“无数的答案” 选择一种创新的方法:自然语言→ 基础设施

💡 是什么让这个解决方案与众不同

  1. 这是真的 --不是图表,而是可以克隆和运行的工作代码
  2. 这很有创新性 --AI驱动的界面,同时保持GitOps规范
  3. 这很实用 --解决实际痛点(入职、配置、合规)
  4. 很安全 --人工审批门、自动销毁、最低权限默认值
  5. 它是可扩展的 --模块化设计,适用于Entra ID、Intune、Kubernetes、多云

👤 作者

法伊卡尔·本·萨西
IT系统工程师


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."