云代理基础设施管理工具

Cloud Seed MCP是一个自进化的云代理工具,安装在客户的GCP环境中,通过对话式界面提供基础设施配置、代码管理、应用部署和数据管理功能,主要面向缺乏内部DevOps团队的中小企业。

  • by Gianlucaboni
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Gianlucaboni/cloud-seed-mcp

使用说明

云种子MCP

一个自我进化的云代理,作为可安装的“种子”在客户端的GCP环境中交付。建立在 模型上下文协议(MCP),它为基础设施配置、代码管理、应用程序部署和数据管理提供了一个对话界面,针对缺乏内部DevOps团队的中小型企业(SMB)。

关键差异化因素: 系统自我进化。它从一组基本工具开始,当客户需要不存在的东西时,自动生成新的MCP工具——在推广到生产环境之前通过测试管道对其进行测试。

建筑

种子是一个Docker Compose包,在内部网络上运行4个容器:

┌───────────────────────────────────────────────────────┐
│                    seed-net (bridge)                   │
│                                                       │
│  ┌───────────┐  ┌──────┐  ┌────────────┐  ┌────────┐ │
│  │  Core MCP │  │  OPA │  │ Tool Forge │  │ State  │ │
│  │  :8000    │  │ :8181│  │            │  │ Store  │ │
│  │  (Python) │→ │(Rego)│  │  (Python)  │  │ :5432  │ │
│  └───────────┘  └──────┘  └────────────┘  │(Postgres)││
│       ↑ only port exposed to host         └────────┘ │
└───────────────────────────────────────────────────────┘
容器 角色
核心MCP服务器 主编排器通过MCP协议为Terraform、GitHub、Cloud Run和数据库管理提供工具
策略引擎(OPA) Open Policy Agent根据预算、地区、资源和安全策略验证每个Terraform计划
工具锻造 自主生成、测试、扫描和推广新的MCP工具
州立商店 PostgreSQL数据库维护基础设施状态、工具注册表和审计日志的可查询视图

快速开始

# Clone
git clone https://github.com/Gianlucaboni/cloud-seed-mcp.git
cd cloud-seed-mcp

# Configure
cp .env.example .env
# Edit .env with your settings

# Start all services
docker compose up -d

# Verify
docker compose ps
curl http://localhost:8000/mcp  # Core MCP server

项目结构

cloud-seed-mcp/
├── docker-compose.yml          # 4 services on seed-net
├── .env.example                # Environment variables template
├── core-mcp/                   # Core MCP Server
│   ├── Dockerfile
│   ├── pyproject.toml
│   └── src/core_mcp/
│       ├── server.py           # FastMCP server (11 tools registered)
│       ├── config.py           # Settings via CORE_MCP_ env vars
│       └── tools/
│           ├── _subprocess.py  # Async CLI wrapper (shared helper)
│           ├── terraform.py    # terraform init/plan/apply/show + OPA validation
│           ├── github.py       # gh repo create/list, git push
│           ├── cloudrun.py     # gcloud run deploy/list
│           └── database.py     # BigQuery + Cloud SQL via Terraform HCL generation
├── policy-engine/              # OPA Policy Engine
│   ├── Dockerfile
│   ├── opa-config.yaml
│   ├── policies/
│   │   ├── budget.rego         # Monthly cost limits (default 500 EUR)
│   │   ├── regions.rego        # Allowed regions (default: europe-west)
│   │   ├── resources.rego      # Resource type whitelist + GPU controls
│   │   └── security.rego       # Encryption, no public access, naming
│   ├── data/defaults.json      # Configurable policy values
│   └── tests/                  # OPA test suite + JSON fixtures
├── tool-forge/                 # Tool Forge Pipeline
│   ├── Dockerfile
│   ├── pyproject.toml
│   └── src/tool_forge/
│       ├── generator.py        # Template-based MCP tool code generation
│       ├── tester.py           # Auto-generated pytest runner
│       ├── scanner.py          # AST-based security scanner
│       ├── sandbox.py          # Isolated execution environment
│       ├── registry.py         # PostgreSQL tool registry (staging → active)
│       └── templates/          # Jinja2 templates for code generation
├── state-store/                # PostgreSQL State Store
│   └── init/01-schema.sql      # Schema: projects, resources, tool_registry, logs
├── bootstrap/                  # GCP Bootstrap & SA Hierarchy
│   ├── install.sh              # One-time bootstrap script
│   ├── sa_hierarchy.tf         # 4-level Service Account hierarchy
│   ├── deny_policy.tf          # IAM deny policies for Orchestrator
│   └── modules/
│       ├── project_sa/         # Per-project SAs (Runtime, Deploy, Data)
│       └── ephemeral_sa/       # TTL-based read-only SAs for sandbox
└── CLAUDE.md                   # Full architecture specification

运作原理

示例:“将我的物联网传感器数据保存到新数据库”

  1. 用户 通过MCP客户端发送请求
  2. 核心MCP 电话 database_create_dataset → 生成Terraform HCL→ runs terraform plan
  3. 核心MCP 电话 terraform_apply → 读取计划JSON→ 发送至 OPA 用于验证
  4. OPA 评估所有4个策略(预算、地区、资源、安全)→ 返回违规或空数组
  5. 如果OPA批准→ terraform apply 在GCP上创建BigQuery数据集
  6. 向用户返回了包含详细信息的响应

动作分类

级别 行动 行为
绿色 读取操作, terraform plan,列出资源 直接执行
黄色 terraform apply、部署、数据库创建 需要人工批准
红 项目删除、SA修改、禁用OPA 始终被阻止

自我进化工具

当客户需要一个不存在的工具时:

  1. 工具锻造 按照MCP工具模式生成Python代码
  2. 自动生成 pytest测试 验证该工具
  3. 基于AST的安全扫描器 检查危险模式(eval、子流程、未经授权的网络)
  4. 沙盒 在受限环境中独立执行工具
  5. 如果所有门都通过→ 工具是 晋升 到活动注册表

服务帐户层次结构

4级最低权限模型:

级别 SA 目的 生命周期
1 安装程序 在引导过程中创建所有其他SA 安装后禁用
2 编排器 通过Terraform+OPA进行日常操作 永久性,有拒绝政策
3 每个项目 每个客户端项目的运行时、部署、数据SA 每个项目创建
4 短暂 Tool Forge沙盒测试的只读SA 基于TTL的自动清理

发展

核心MCP测试

cd core-mcp && uv sync --dev && uv run pytest -v
# 64 tests

OPA政策测试

brew install opa  # if not installed
opa test policy-engine/policies/ policy-engine/tests/ --ignore '*.json' -v
# 24 tests

工具锻造测试

cd tool-forge && uv sync --dev && uv run pytest -v
# 59 tests

技术栈

组件 技术 基本原理
IaC Terraform OPA的行业标准JSON计划输出
策略引擎 OPA(Rego) 开源、供应商中立、确定性
打包 Docker Compose 对中小企业来说很简单,可升级到K8
State Store PostgreSQL 强大、可查询
VCS GitHub Actions生态系统,带有GCP的原生WIF
云 GCP 初始目标,多云计划
语言 Python 核心MCP和工具生成

许可证

私人——尚未获得分销许可。