DevOps导师服务

一个基于Docker的MCP服务器,作为高级DevOps和云工程导师,用于审查GitHub仓库、分析CI/CD管道、审计Terraform基础设施、提供AWS成本和安全性建议,并跟踪技能进展。

  • by iEric0228
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 iEric0228/MCP-DevOps-Mentor

使用说明

MCP DevOps导师

一个Docker化的MCP(模型上下文协议)服务器,充当高级DevOps和云工程导师。它审查GitHub存储库,分析CI/CD管道,审计Terraform基础设施,就AWS成本和安全性提供建议,并跟踪您随时间推移的技能进步。

为教学而建 如何像DevOps工程师一样思考,而不仅仅是做什么。

建筑学

flowchart TD
    Client["MCP Client (IDE / Claude)"] -->|MCP protocol| Server["MCP DevOps Mentor Server<br/>(FastAPI + FastMCP, Docker)"]
    Server --> Brain["Mentor Brain<br/>system prompt + 4 modes"]
    Server --> Repo["Repo Analyzer<br/>stack detection, maturity scoring"]
    Server --> CICD["CI/CD Review Engine<br/>GitHub Actions YAML"]
    Server --> TF["Terraform Review Engine<br/>HCL2 parsing, security, state"]
    Server --> AWS["AWS Advisor<br/>cost + security posture"]
    Server --> Enhancer["Prompt Enhancer<br/>domain detection, skill-aware"]
    Server --> Tracker["Skill Tracker<br/>weighted scoring, SQLite"]
    Repo & CICD & TF & AWS -->|read-only token| GitHub[("GitHub API")]

特征

11 MCP工具

工具 说明
set_review_mode 在导师、审查、调试和面试模式之间切换
analyze_github_repo 分析技术栈和DevOps成熟度的回购
review_cicd_pipeline 使用YAML解析查看GitHub Actions工作流
review_terraform 审核Terraform文件的安全性、状态管理和最佳实践
review_aws_infrastructure AWS成本优化和安全态势分析
analyze_terraform_modules 分析Terraform模块的结构、安全性和成本估算
enhance_prompt 通过结构、上下文和最佳实践考虑改进原始DevOps提示
get_skill_profile 查看您当前的技能水平和证据计数
get_learning_path 根据技能差距获得个性化的学习路线图
read_github_file 从GitHub存储库读取单个文件
read_github_workflows 读取所有GitHub Actions工作流文件
read_terraform_files 从存储库中读取所有Terraform文件

审核模式

  • 导师 --教学模式。解释概念,提出指导性问题,假设初级水平。
  • 回顾 --公关风格回顾。直接、以生产为重点、标记风险。
  • 调试 --故障排除模式。形成假设,缩小范围,要求记录。
  • 面试 --挑战模式。质疑你的设计决策,暴露权衡。

CI/CD审查引擎

解析GitHub Actions YAML并检查:

  • 缺失 permissions block(最小特权)
  • 动作固定(SHA与标签引用)
  • 作业超时
  • 依赖缓存
  • AWS OIDC与长期证书
  • 地形适用,无需环境保护
  • 自托管跑步者安全
  • 矩阵策略 fail-fast 设置
  • 并发组
  • 工作流调度输入验证

地形审查引擎

使用解析HCL2 python-hcl2 并检查:

  • 硬编码凭据和AWS访问密钥
  • 缺少远程后端(本地状态风险)
  • S3后端没有DynamoDB状态锁定
  • 缺少提供程序版本约束
  • 没有标签的资源
  • 过于宽松的安全组(0.0.0.0/0)
  • 没有加密或版本控制的S3存储桶
  • 带有通配符操作的IAM策略
  • 有状态资源缺少生命周期规则

AWS成本+安全顾问

分析检测到的地形资源,并建议:

成本:

  • 用于开发/转移的NAT网关替代方案
  • EC2实例的自动扩展
  • 容错工作负载的定点实例
  • EIP审计
  • RDS保留实例/Aurora无服务器
  • 用于集装箱的Fargate Spot/Karpeter

安全:

  • 用于API审核日志记录的CloudTrail
  • VPC流日志
  • S3公共访问块
  • IAM用户上的IAM角色
  • RDS加密处于静止状态
  • Lambda VPC放置

提示增强器

受...启发 克劳德的快速改进者提示增强器通过以下方式自动改进原始DevOps提示 6级确定性管道 (没有LLM API调用--纯模板逻辑):

舞台 它做什么
1.域检测 关键字与8个DevOps域(CI/CD、Docker、Terraform、AWS、安全性、可观察性、网络、成本)匹配
2.维度注入 检查提示中是否已经包含关键考虑因素(安全性、成本、回滚、可扩展性等)——注入缺失的因素
3.云提供商上下文 检测或默认为AWS,预添加特定于提供商的上下文
4.技能水平调整 读取您跟踪的技能档案并调整语气/细节(初学者=详细,高级=简洁)
5.模式感知结构 应用主动审查模式模板(导师/审查/调试/面试)
6.XML组装 将所有内容包装在结构化XML标记中(<context>, <task>, <thinking>, <output_format>)

参数:

enhance_prompt(
    prompt="Set up a CI/CD pipeline for my Python app",
    mode="mentor",           # optional, defaults to current mode
    cloud_provider="aws",    # optional, auto-detected or defaults to AWS
    focus_areas="security"   # optional, comma-separated dimension filter
)

输出结构示例:

<context>
Cloud provider context: AWS. ...
Domains: ci_cd
User experience level: beginner
Response detail: detailed
</context>

<instructions>
You are helping a DevOps learner understand and implement the following. ...
</instructions>

<task>
Set up a CI/CD pipeline for my Python app
</task>

<additional_considerations>
- Consider security implications: action pinning, least-privilege permissions...
- Include a rollback strategy: how to revert a failed deployment safely.
- Address build performance: dependency caching, artifact reuse...
- Include testing requirements: what tests to run, coverage thresholds...
</additional_considerations>

<thinking>
Think through this step by step, explaining your reasoning at each stage.
</thinking>

<output_format>
Structure your response as:
1. Conceptual explanation (the WHY)
2. Implementation approach (the HOW)
3. Common pitfalls to avoid
4. Next steps for learning
</output_format>

技能跟踪

使用加权关键字评分跟踪7个技能领域:

域 示例关键字
CI/CD github操作、管道、工作流、部署
Docker Docker文件,Docker组合,容器,多级
地形 地形、hcl、tfstate、远程后端
AWS iam、s3、ec2、eks、安全组、vpc
安全 秘密、oidc、rbac、加密、最小权限
可观测性 普罗米修斯、格拉法纳、云层观察、追踪
测试 pytest、jest、覆盖率、集成测试、e2e

5级进展: 未知->初级->发展->扎实->高级

水平基于累积的加权分数和成熟度乘数。学习路径引擎识别薄弱环节,发现先决条件差距(例如,“安全性”取决于“aws”),并生成可操作的下一步。

快速开始

先决条件

  • Docker和Docker Compose
  • GitHub个人访问令牌(只读范围就足够了)

使用Docker运行

export GITHUB_TOKEN=ghp_your_token_here
docker-compose up --build

服务器启动于 http://localhost:3333.

本地运行(开发)

pip install -r requirements.txt
export GITHUB_TOKEN=ghp_your_token_here
uvicorn main:app --host 0.0.0.0 --port 3333

运行测试

pip install -r requirements.txt
pytest tests/ -v

项目结构

MCP-DevOps-Mentor/
  main.py                           # FastAPI + MCP server, tool registration
  requirements.txt                  # Dependencies
  Dockerfile                        # Python 3.11-slim container
  docker-compose.yml                # Single-service deployment
  analyzer/
    repo_analyzer.py                # Tech stack detection and maturity scoring
  reviewers/
    cicd_reviewer.py                # GitHub Actions review (YAML parsing)
    terraform_reviewer.py           # Terraform review (HCL2 parsing)
    aws_advisor.py                  # AWS cost + security advisor
  tools/
    github.py                       # GitHub REST API integration
  enhancer/
    prompt_enhancer.py              # 6-stage prompt enhancement pipeline
    domain_rules.py                 # Domain keywords, dimension injections, templates
    skill_adapter.py                # Skill-level to enhancement behavior bridge
  memory/
    models.py                       # SkillState, UserProfile dataclasses
    store.py                        # SQLite persistence
    tracker.py                      # Weighted skill tracking + learning path
  mentor/
    system_prompt.txt               # Base mentor persona
    mode_loader.py                  # Dynamic prompt composition
    modes/
      mentor.txt                    # Teaching mode prompt
      review.txt                    # PR review mode prompt
      debug.txt                     # Troubleshooting mode prompt
      interview.txt                 # Challenge mode prompt
  tests/
    conftest.py                     # Shared fixtures (tmp_db, sample data)
    test_repo_analyzer.py           # 10 tests
    test_cicd_reviewer.py           # 15 tests
    test_terraform_reviewer.py      # 15 tests
    test_aws_advisor.py             # 11 tests
    test_tracker.py                 # 17 tests
    test_store.py                   # 5 tests
    test_mode_loader.py             # 8 tests
    test_prompt_enhancer.py         # 38 tests
    test_domain_rules.py            # 10 tests
    test_skill_adapter.py           # 10 tests

技术栈

组件 技术
语言 Python 3.11
框架 FastAPI
协议 MCP(模型上下文协议)
CI/CD解析 PyYAML
地形解析 python-hcl2
持久性 SQLite
测试 pytest(182次测试)
容器化 Docker
外部API GitHub REST API v3

示例用法

一旦通过MCP客户端连接:

> "Analyze my repo and tell me its DevOps maturity."

> "Switch to review mode and review my CI/CD pipeline."

> "Review the Terraform files in my infrastructure repo."

> "What are my weakest DevOps skills? Give me a learning path."

> "Switch to interview mode. Challenge my system design."

> "Enhance my prompt: Set up a CI/CD pipeline for my Python app"

> "Enhance this prompt with a focus on security: Deploy containers to ECS with Terraform"

设计决策

基于信号的启发式方法,而不是魔法。 分析使用具有确定性检查功能的结构化解析(YAML、HCL2)。每个发现都有严重性级别、消息和建议。

严重性驱动的输出。 所有审阅者将结果分类为 critical, warning,或 info成熟度级别是从严重性计数中得出的,而不是任意规则。

加权技能跟踪。 特定领域的关键字得分高于通用关键字。成熟度乘数奖励与生产级存储库的接触。技能进步是通过证据积累,而不是一次性匹配。

向后兼容的持久性。 新SkillState字段(weighted_score, history)有违约。旧数据库记录无需迁移即可加载。

精简编排,深度模块。 工具功能 main.py 是5-10个线包装。所有分析逻辑都存在于可独立测试的专用模块中。

环境变量

变量 必填 描述
GITHUB_TOKEN 是 用于API访问的GitHub个人访问令牌

安全

  • 只读GitHub API访问(无写操作)
  • 代码或数据库中未存储凭据
  • Terraform审查器检测用户代码中的硬编码秘密
  • 所有数据保持本地(SQLite文件,无外部遥测)