SRE MCP服务器
MCP(模型上下文协议)服务器,旨在通过AWS Bedrock集成自动化SRE任务、运行手册和交互式剧本,以实现智能决策。
特性
- 自动Runbook:执行预定义的SRE程序(pod重启、健康检查、磁盘清理)
- 交互式播放手册:事件响应和维护的分步指导工作流程
- AWS基岩集成:智能日志分析和决策支持
- Kubernetes原生:与EKS集群深度集成
- 安全第一:RBAC、非根容器、只读文件系统
快速开始
先决条件
- 带有kubectl访问权限的EKS集群
- Docker用于构建镜像
- 为基岩访问配置的AWS凭据
部署到EKS
# Set your container registry (optional)
export REGISTRY=your-registry.com
# Deploy to cluster
./deploy.sh地方发展
# Install dependencies
pip install -r requirements.txt
# Run locally (requires kubeconfig)
python src/sre_mcp_server.pyMCP工具可用
核心业务
execute_runbook:运行预定义的自动化程序start_interactive_playbook:开始指导事件响应工作流程get_cluster_health:全面的集群状态和指标analyze_logs:使用AWS Bedrock的人工智能日志分析scale_deployment:通过确认实现安全部署扩展create_incident_response:结构化事件管理
示例用法
# Execute a runbook
await execute_runbook(
runbook_name="pod_restart",
parameters={"namespace": "production", "selector": "app=web"},
dry_run=True
)
# Start incident response
await start_interactive_playbook(
playbook_type="incident_response",
incident_id="INC-001",
severity="high"
)
# Analyze logs with AI
await analyze_logs(
service_name="api-service",
time_range="1h",
log_level="error"
)可用的Runbook
- pod_restart:优雅的pod重启并进行健康验证
- 服务_健康_检查:全面的服务和端点验证
- 磁盘清理:自动清理临时文件和日志
交互式播放手册
- 偶发事件响应:结构化事件管理工作流程
- 部署_回退:带验证的安全回滚程序
- 维护:指导性维护操作
配置
环境变量
AWS_REGION:基岩的AWS区域(默认值:us-east-1)LOG_LEVEL:日志记录级别(默认值:INFO)
Kubernetes RBAC
服务器需要以下群集级权限:
- 阅读Pod、服务、部署
- 更新/修补部署以实现扩展
- 访问度量API
建筑
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ MCP Client │────│ SRE MCP Server │────│ AWS Bedrock │
│ (Q Developer) │ │ │ │ (Claude-3) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
│
┌──────────────────┐
│ EKS Cluster │
│ (Kubernetes) │
└──────────────────┘安全考虑
- 非根容器执行
- 只读根文件系统
- 最低RBAC权限
- AWS凭据的安全机密管理
- pod到pod通信的网络策略
监测和可观察性
- 带相关ID的结构化JSON日志记录
- 健康和准备状态探测器
- 普罗米修斯指标端点(计划中)
- 分布式跟踪支持(计划中)
发展
添加新的Runbook
- 将runbook定义添加到
src/runbooks.py - 注册
SREMCPServer.setup_tools() - 更新文档
添加新播放簿
- 在中创建剧本模板
src/playbooks.py - 定义分步工作流程
- 在适当的地方添加自动化挂钩
贡献
- 遵循现有的代码模式
- 添加全面的错误处理
- 包括结构化日志记录
- 更新文档
- 具有干运行能力的测试
