inframcp代理🚀
用于Kubernetes基础设施自动化的最小控制平面(MCP)服务器和客户端。使用Python和FastAPI构建,专为在AKS或任何Kubernetes集群内安全、结构化的任务执行而设计。
______________________________________________________________________
🧠 为什么这个项目存在
现代基础设施团队通常需要轻量级、安全的方法来将内部操作(如扩展部署或重启Pod)暴露给自动化工具、人工智能代理或内部仪表板。该项目通过提供:
- ✅ 基于FastAPI的MCP服务器,接收结构化JSON任务
- ✅ 一个安全发送任务的Python客户端
- ✅ 基于令牌的身份验证
- ✅ 使用官方Python客户端的Kubernetes原生操作
无论您是在构建内部工具、与LLM集成,还是自动化DevOps工作流程, infra-mcp-agent 为您提供了一个干净、可扩展的控制界面。
______________________________________________________________________
📦 特性
| 特性 | 描述 |
|---|---|
scale_deployment | 更改部署的副本计数 |
restart_pod | 删除pod以触发重启 |
get_status | 返回吊舱或部署状态 |
apply_manifest | 应用base64编码的Kubernetes YAML清单 |
| 🔐 身份验证 | 基于令牌 Authorization: Bearer |
| 🐳 容器化 | 在AKS或任何Kubernetes集群中作为pod运行 |
______________________________________________________________________
🧱 建筑
Client → API Gateway → MCP Server → Kubernetes API- MCP服务器:接收和路由任务的FastAPI应用程序
- MCP客户端:发送任务的Python CLI或SDK
- 认证:基于令牌(存储在Kubernetes Secret或Azure密钥库中)
- Kubernetes集成:用途
kubernetes开发包
______________________________________________________________________
🚀 入门指南
1.克隆回购
git clone https://github.com/AbhuSteyn/infra-mcp-agent.git
cd infra-mcp-agent2.构建并推送Docker镜像
docker build -t yourusername/infra-mcp-agent:latest .
docker push yourusername/infra-mcp-agent:latest3.部署到AKS
kubectl apply -f manifests/deployment.yaml
kubectl apply -f manifests/service.yaml💡 确保创建一个名为的Kubernetes Secret mcp-secret 使用您的令牌:kubectl create secret generic mcp-secret --from-literal=token=your-secure-token______________________________________________________________________
🧪 使用MCP客户端
from src.client import send_task
task = {
"task": "scale_deployment",
"namespace": "default",
"deployment_name": "web-api",
"replicas": 3
}
response = send_task(task, token="your-token")
print(response)______________________________________________________________________
🔧 任务有效载荷示例
✅ 重新启动Pod
{
"task": "restart_pod",
"namespace": "default",
"pod_name": "my-app-pod"
}📈 扩展部署
{
"task": "scale_deployment",
"namespace": "default",
"deployment_name": "web-api",
"replicas": 5
}📦 应用清单
{
"task": "apply_manifest",
"manifest": ""
}______________________________________________________________________
🧪 测试
使用模拟运行单元测试:
python -m unittest tests/test_kube_ops.py______________________________________________________________________
🔐 安全说明
- 所有请求都必须包含有效的承载令牌
- 根据环境变量验证令牌(
MCP_AUTH_TOKEN) - 推荐:将令牌存储在Azure密钥库或Kubernetes Secrets中
- 可选:扩展以支持mTLS或OAuth2
______________________________________________________________________
📚 扩展项目
您可以通过以下方式轻松添加新任务:
- 在中定义新函数
kube_ops.py - 在中添加路线
task_router.py - 更新客户端负载
______________________________________________________________________
📄 许可证
MIT许可证。请随意分叉、扩展和贡献。
______________________________________________________________________
______________________________________________________________________
您是否需要帮助编写GitHub Actions工作流以自动化测试和Docker构建?或者可以使用示例Helm chart在AKS中更干净地部署它?
