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
先决条件
- 安装
uv从 星体 或 - 使用以下命令安装Python
uv python install 3.10 - 安装Terraform CLI以执行工作流
- 安装Checkov进行安全扫描
- 设置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": []
}
}
}地方发展
在本地运行和开发:
- 创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate- 升级pip并安装项目依赖项
pip install --upgrade pip
pip install -e .- 运行MCP服务器
uvicorn gcp_terraform_mcp_server.main:app --host 0.0.0.0 --port 8080- (可选)使用脚本入口点
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更改应用于生产环境之前,您应该进行自己的独立评估,以确保您的基础设施符合您自己的特定安全和质量控制实践和标准,以及管理您和您的内容的当地法律、规则和法规。
