MCP DevOps导师
一个Docker化的MCP(模型上下文协议)服务器,充当高级DevOps和云工程导师。它审查GitHub存储库,分析CI/CD管道,审计Terraform基础设施,就AWS成本和安全性提供建议,并跟踪您随时间推移的技能进步。
为教学而建 如何像DevOps工程师一样思考,而不仅仅是做什么。
建筑
MCP Client (IDE / Claude)
|
| MCP Protocol
v
+-------------------------------+
| MCP DevOps Mentor Server |
| |
| Mentor Brain |
| - System Prompt + Modes |
| |
| Repo Analyzer |
| - Tech Stack Detection |
| - DevOps Maturity Scoring |
| |
| CI/CD Review Engine |
| - GitHub Actions (YAML) |
| - Security + Best Practices |
| |
| Terraform Review Engine |
| - HCL2 Parsing |
| - Security + State Mgmt |
| |
| AWS Advisor |
| - Cost Optimization |
| - Security Posture |
| |
| Prompt Enhancer |
| - Domain Detection |
| - Dimension Injection |
| - Skill-Aware Adaptation |
| |
| Skill Tracker |
| - Weighted Scoring |
| - Learning Path Engine |
| - SQLite Persistence |
+-------------------------------+
|
Docker特性
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并检查:
- 缺失
permissionsblock(最小特权) - 动作固定(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标记中(`, , , `) |
参数:
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
)输出结构示例:
Cloud provider context: AWS. ...
Domains: ci_cd
User experience level: beginner
Response detail: detailed
You are helping a DevOps learner understand and implement the following. ...
Set up a CI/CD pipeline for my Python app
- 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...
Think through this step by step, explaining your reasoning at each stage.
Structure your response as:
1. Conceptual explanation (the WHY)
2. Implementation approach (the HOW)
3. Common pitfalls to avoid
4. Next steps for learning
技能跟踪
使用加权关键字评分跟踪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文件,无外部遥测)
