awslabs.terraform-mcp-server 1.0.15
An AWS Labs Model Context Protocol (MCP) server for terraform
Requires Python: >=3.10

# AWS Terraform MCP Server

MCP server for Terraform on AWS best practices, infrastructure as code patterns, and security compliance with Checkov.

## Features

- **Terraform Best Practices** - Get prescriptive Terraform advice for building applications on AWS
  - AWS Well-Architected guidance for Terraform configurations
  - Security and compliance recommendations
  - AWSCC provider prioritization for consistent API behavior

- **Security-First Development Workflow** - Follow a structured process for creating secure code
  - Step-by-step guidance for validation and security scanning
  - Integration of Checkov at the right stages of development
  - Clear handoff points between AI assistance and developer deployment

- **Checkov Integration** - Work with Checkov for security and compliance scanning
  - Run security scans on Terraform code to identify vulnerabilities
  - Automatically fix identified security issues when possible
  - Get detailed remediation guidance for compliance issues

- **AWS Provider Documentation** - Search for AWS and AWSCC provider resources
  - Find documentation for specific resources and attributes
  - Get example snippets and implementation guidance
  - Compare AWS and AWSCC provider capabilities

- **AWS-IA GenAI Modules** - Access specialized modules for AI/ML workloads
  - Amazon Bedrock module for generative AI applications
  - OpenSearch Serverless for vector search capabilities
  - SageMaker endpoint deployment for ML model hosting
  - Serverless Streamlit application deployment for AI interfaces

- **Terraform Registry Module Analysis** - Analyze Terraform Registry modules
  - Search for modules by URL or identifier
  - Extract input variables, output variables, and README content
  - Understand module usage and configuration options
  - Analyze module structure and dependencies

- **Terraform Workflow Execution** - Run Terraform commands directly
  - Initialize, plan, validate, apply, and destroy operations
  - Pass variables and specify AWS regions
  - Get formatted command output for analysis

- **Terragrunt Workflow Execution** - Run Terragrunt commands directly
  - Initialize, plan, validate, apply, run-all and destroy operations
  - Pass variables and specify AWS regions
  - Configure terragrunt-config and and include/exclude paths flags
  - Get formatted command output for analysis

## Tools and Resources

- **Terraform Development Workflow**: Follow security-focused development process via `terraform://workflow_guide`
- **AWS Best Practices**: Access AWS-specific guidance via `terraform://aws_best_practices`
- **AWS Provider Resources**: Access resource listings via `terraform://aws_provider_resources_listing`
- **AWSCC Provider Resources**: Access resource listings via `terraform://awscc_provider_resources_listing`

## Prerequisites

1. Install `uv` from [Astral](https://docs.astral.sh/uv/getting-started/installation/) or the [GitHub README](https://github.com/astral-sh/uv#installation)
2. Install Python using `uv python install 3.10`
3. Install Terraform CLI for workflow execution
4. Install Checkov for security scanning

## Installation

| Kiro | Cursor | VS Code |
|:----:|:------:|:-------:|
| [![Add to Kiro](https://kiro.dev/images/add-to-kiro.svg)](https://kiro.dev/launch/mcp/add?name=awslabs.terraform-mcp-server&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22awslabs.terraform-mcp-server%40latest%22%5D%2C%22env%22%3A%7B%22FASTMCP_LOG_LEVEL%22%3A%22ERROR%22%7D%7D) | [![Install MCP Server](https://cursor.com/deeplink/mcp-install-light.svg)](https://cursor.com/en/install-mcp?name=awslabs.terraform-mcp-server&config=eyJjb21tYW5kIjoidXZ4IGF3c2xhYnMudGVycmFmb3JtLW1jcC1zZXJ2ZXJAbGF0ZXN0IiwiZW52Ijp7IkZBU1RNQ1BfTE9HX0xFVkVMIjoiRVJST1IifSwiZGlzYWJsZWQiOmZhbHNlLCJhdXRvQXBwcm92ZSI6W119) | [![Install on VS Code](https://img.shields.io/badge/Install_on-VS_Code-FF9900?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=Terraform%20MCP%20Server&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22awslabs.terraform-mcp-server%40latest%22%5D%2C%22env%22%3A%7B%22FASTMCP_LOG_LEVEL%22%3A%22ERROR%22%7D%2C%22disabled%22%3Afalse%2C%22autoApprove%22%3A%5B%5D%7D) |

Configure the MCP server in your MCP client configuration (e.g., for Kiro, edit `~/.kiro/settings/mcp.json`):

```json
{
  "mcpServers": {
    "awslabs.terraform-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.terraform-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
```
### Windows Installation

For Windows users, the MCP server configuration format is slightly different:

```json
{
  "mcpServers": {
    "awslabs.terraform-mcp-server": {
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--from",
        "awslabs.terraform-mcp-server@latest",
        "awslabs.terraform-mcp-server.exe"
      ],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR",
        "AWS_PROFILE": "your-aws-profile",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}
```


or docker after a successful `docker build -t awslabs/terraform-mcp-server .`:

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

## Security Considerations

When using this MCP server, you should consider:
- **Following the structured development workflow** that integrates validation and security scanning
- Reviewing all Checkov warnings and errors manually
- Fixing security issues rather than ignoring them whenever possible
- Documenting clear justifications for any necessary exceptions
- Using the RunCheckovScan tool regularly to verify security compliance
- Preferring the AWSCC provider for its consistent API behavior and better security defaults

Before applying Terraform changes to production environments, you should conduct your own independent assessment to ensure that your infrastructure would comply with your own specific security and quality control practices and standards, as well as the local laws, rules, and regulations that govern you and your content.