Terraform GCP 服务器

一个用于在GCP上实施Terraform最佳实践、基础设施即代码模式和Checkov安全合规的服务器。

  • by Kamalesh-Seervi
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 kamalesh-seervi/gcp-terraform-mcp-server

使用说明

GCP Terraform MCP服务器

用于Terraform的MCP服务器,遵循GCP最佳实践、基础设施即代码模式以及Checkov的安全合规性。

特性

  • Terraform最佳实践 -获取在GCP上构建应用程序的规范性Terraform建议

    • 地形配置的GCP架构指南
    • 安全和合规建议
    • GCP提供者配置的最佳实践
  • 安全第一开发工作流程 -遵循结构化流程创建安全代码

    • 验证和安全扫描的分步指南
    • 在正确的发展阶段整合Checkov
    • 明确人工智能辅助和开发人员部署之间的切换点
  • Checkov集成 -与Checkov合作进行安全性和合规性扫描

    • 对Terraform代码运行安全扫描以识别漏洞
    • 在可能的情况下自动修复已识别的安全问题
    • 获取合规问题的详细补救指导
  • GCP提供商文件 -搜索Google Cloud提供商资源

    • 查找特定资源和属性的文档
    • 获取示例片段和实现指南
    • 访问GCP服务配置的最佳实践
  • GCP GenAI模块 -访问AI/ML工作负载的专用模块

    • 用于生成式人工智能应用程序的顶点人工智能模块
    • BigQuery和BigTable用于数据存储功能
    • 无服务器工作负载的云功能
    • 用于AI工作负载编排的Google Kubernetes引擎
  • 地形注册表模块分析 -分析Terraform注册表模块

    • 按URL或标识符搜索模块
    • 提取输入变量、输出变量和README内容
    • 了解模块使用和配置选项
    • 分析模块结构和依赖关系
  • Terraform工作流执行 -直接运行Terraform命令

    • 初始化、计划、验证、应用和销毁操作
    • 传递变量并指定GCP区域
    • 获取格式化的命令输出以供分析

工具与资源

  • Terraform开发工作流程:通过以下方式遵循以安全为重点的开发流程 terraform://workflow_guide
  • GCP最佳实践:通过以下方式访问GCP特定指南 terraform://gcp_best_practices
  • GCP提供商资源:通过访问资源列表 terraform://gcp_provider_resources_listing

先决条件

  1. 安装 uv 从 星体 或 GitHub自述
  2. 使用以下命令安装Python uv python install 3.10
  3. 安装Terraform CLI以执行工作流
  4. 安装Checkov进行安全扫描
  5. 设置GCP身份验证(建议使用gcloud CLI)

安装

安装FastMCP

我们建议使用 uv 安装和管理FastMCP:

uv add fastmcp

或者,直接用pip或uv pip安装:

uv pip install fastmcp
# or
pip install fastmcp

安装FastMCP(支持型号)

FastMCP的PyPI版本可能不包括 fastmcp.models CLI所需的子模块。要直接从GitHub安装最新代码:

pip install --upgrade git+https://github.com/jlowin/fastmcp.git@main#egg=fastmcp

然后通过以下方式进行验证:

fastmcp version

验证安装

运行:

fastmcp version

有关更多详细信息,请参阅FastMCP文档:https://github.com/jlowin/fastmcp

以下是一些使用MCP的方法:(例如,用于MCP客户端配置):

{
  "mcpServers": {
    "gcp-terraform-mcp-server": {
      "command": "uvx",
      "args": ["gcp-terraform-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

或docker成功后 docker build -t gcp-terraform-mcp-server .:

{
  "mcpServers": {
    "gcp-terraform-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "--interactive",
        "--env",
        "FASTMCP_LOG_LEVEL=ERROR",
        "gcp-terraform-mcp-server:latest"
      ],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}

地方发展

在本地运行和开发:

  1. 创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate
  1. 升级pip并安装项目依赖项
pip install --upgrade pip
pip install -e .
  1. 运行MCP服务器
uvicorn gcp_terraform_mcp_server.main:app --host 0.0.0.0 --port 8080
  1. (可选)使用脚本入口点
gcp-terraform-mcp-server

确保 fastmcp 其他依赖项已成功安装。如果你看到 ModuleNotFoundError: No module named 'fastmcp.models',请确保虚拟环境处于活动状态,并且安装的依赖项没有错误。

运行服务器

使用FastMCP CLI启动服务器,而不是直接调用主模块:

# Start with stdio transport (default)
fastmcp run src/gcp_terraform_mcp_server/main.py:mcp

# Or start as an SSE server on port 8080
fastmcp run src/gcp_terraform_mcp_server/main.py:mcp --transport sse --host 0.0.0.0 --port 8080

确保你有 fastmcp 安装在您的活动环境中。此CLI会自动定位 mcp = FastMCP(...) 实例导出到您的 main.py.

可用的MCP命令

当将此服务器与GitHub Copilot Chat或其他MCP客户端一起使用时,可以使用以下命令:

Terraform工作流工具

命令 描述 示例
terraform_workflow_guide 在GCP上获取Terraform的全面指南 /mcp gcp-terraform-mcp terraform_workflow_guide
terraform_init 初始化Terraform项目 /mcp gcp-terraform-mcp terraform_init path="./my-project"
terraform_validate 验证Terraform项目 /mcp gcp-terraform-mcp terraform_validate path="./my-project"
terraform_plan 规划一个Terraform项目 /mcp gcp-terraform-mcp terraform_plan path="./my-project"
terraform_apply 应用地形图 /mcp gcp-terraform-mcp terraform_apply path="./my-project" plan_file="tfplan"
terraform_destroy 破坏地形资源 /mcp gcp-terraform-mcp terraform_destroy path="./my-project"

Checkov安全工具

命令 描述 示例
terraform_run_checkov 运行Checkov安全扫描 /mcp gcp-terraform-mcp terraform_run_checkov path="./my-project"
terraform_fix_security_issues 使用Checkov修复安全问题 /mcp gcp-terraform-mcp terraform_fix_security_issues path="./my-project"

GCP最佳实践和安全

命令 描述 示例
terraform_gcp_best_practices 获取GCP最佳实践 /mcp gcp-terraform-mcp terraform_gcp_best_practices
terraform_gcp_security_recommendations 获取GCP安全建议 /mcp gcp-terraform-mcp terraform_gcp_security_recommendations impact="HIGH"

GCP提供商文件

命令 描述 示例
terraform_gcp_provider_resources_listing 列出GCP提供商资源 /mcp gcp-terraform-mcp terraform_gcp_provider_resources_listing service="compute"
terraform_gcp_resource_documentation 获取GCP资源文档 /mcp gcp-terraform-mcp terraform_gcp_resource_documentation resource_name="google_storage_bucket"

地形注册表工具

命令 描述 示例
terraform_search_modules 搜索地形模块 /mcp gcp-terraform-mcp terraform_search_modules query="gcp storage"
terraform_analyze_module 分析地形模块 /mcp gcp-terraform-mcp terraform_analyze_module module_id="GoogleCloudPlatform/storage/google/latest"

GenAI模块工具

命令 描述 示例
terraform_genai_modules 列出GenAI模块 /mcp gcp-terraform-mcp terraform_genai_modules
terraform_vertex_ai_module 获取顶点AI模块模板 /mcp gcp-terraform-mcp terraform_vertex_ai_module
terraform_gke_ai_module 获取GKE AI模块模板 /mcp gcp-terraform-mcp terraform_gke_ai_module

GitHub复制集成

要将此MCP服务器与GitHub Copilot Chat一起使用,请将以下配置添加到您的VS Code settings.json中:

"mcp": {
  "inputs": [],
  "servers": {
    "gcp-terraform-mcp": {
      "command": "/path/to/your/venv/bin/fastmcp",
      "args": [
        "run",
        "/path/to/your/src/gcp_terraform_mcp_server/main.py:mcp"
      ],
      "env": {
        "FASTMCP_LOG_LEVEL": "INFO"
      },
      "autoApprove": ["terraform_"]
    }
  }
}

添加此配置并重新启动VS Code后,您可以使用GitHub Copilot Chat面板中列出的命令。

安全考虑

使用此MCP服务器时,您应该考虑:

  • 遵循结构化的开发工作流程 它集成了验证和安全扫描
  • 手动查看所有Checkov警告和错误
  • 尽可能解决安全问题,而不是忽略它们
  • 记录任何必要例外的明确理由
  • 定期使用RunCheckovScan工具验证安全合规性
  • 为您的基础设施遵循GCP安全最佳实践

在将Terraform更改应用于生产环境之前,您应该进行自己的独立评估,以确保您的基础设施符合您自己的特定安全和质量控制实践和标准,以及管理您和您的内容的当地法律、规则和法规。