trackmcp
Back to directory
guilhermeyoshida

mcp-terraform-assistant

View on GitHub

An MCP server for managing infrastructure as code using Terraform

1 stars PythonServers & Infrastructure Updated May 5, 2025

Documentation

MCP Infrastructure as Code Assistant

An MCP server for managing infrastructure as code with Terraform.

Features

  • Initialize Terraform working directories
  • Generate and show execution plans
  • Apply changes to infrastructure
  • Destroy infrastructure
  • Validate Terraform configurations
  • Show current state or saved plans
  • Manage Terraform workspaces

Prerequisites

  • Python 3.8 or higher
  • Terraform 1.5.7 or higher
  • Docker and Docker Compose (optional)

Installation

Local Installation

1. Clone the repository:

bash
git clone https://github.com/yourusername/mcp-iac.git
   cd mcp-iac

2. Install dependencies using uv:

bash
curl -LsSf https://astral.sh/uv/install.sh | sh
   uv pip install -e .

Docker Installation

1. Clone the repository:

bash
git clone https://github.com/yourusername/mcp-iac.git
   cd mcp-iac

2. Build and run the Docker container:

bash
docker-compose up -d

Usage

Local Usage

1. Start the MCP server:

bash
python main.py

2. Use the MCP CLI to interact with the server:

bash
mcp terraform_init --working-dir ./terraform
   mcp terraform_plan --working-dir ./terraform
   mcp terraform_apply --working-dir ./terraform --auto-approve

Docker Usage

1. Start the MCP server:

bash
docker-compose up -d

2. Use the MCP CLI to interact with the server:

bash
mcp terraform_init --working-dir ./terraform
   mcp terraform_plan --working-dir ./terraform
   mcp terraform_apply --working-dir ./terraform --auto-approve

Example Terraform Configuration

The repository includes an example Terraform configuration that creates an EC2 instance in AWS:

hcl
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = var.region
}

resource "aws_instance" "example" {
  ami           = var.ami_id
  instance_type = var.instance_type

  tags = {
    Name = var.instance_name
  }
}

Contributing

1. Fork the repository

2. Create a feature branch

3. Commit your changes

4. Push to the branch

5. Create a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

  • `terraform_init`: Initialize a Terraform working directory
  • `terraform_plan`: Generate and show an execution plan for Terraform
  • `terraform_apply`: Apply the changes required to reach the desired state
  • `terraform_destroy`: Destroy the infrastructure managed by Terraform
  • `terraform_validate`: Validate the syntax and internal consistency of Terraform files
  • `terraform_show`: Show the current state or a saved plan
  • `terraform_workspace_list`: List Terraform workspaces
  • `terraform_workspace_select`: Select a Terraform workspace

Example Usage

Here's an example of how to use the MCP server with an AI agent:

1. Start the MCP server:

bash
python main.py

2. Connect to the server using an MCP client:

bash
mcp connect http://localhost:8000

3. The AI agent can now help you with Terraform operations. For example:

    Examples

    Check out the `examples` directory for sample Terraform configurations that demonstrate how to use the MCP server:

    • `examples/aws-s3`: A simple AWS S3 bucket example

    Frequently asked questions

    What is mcp-terraform-assistant?

    mcp-terraform-assistant is An MCP server for managing infrastructure as code using Terraform

    How do I install mcp-terraform-assistant?

    Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

    Is mcp-terraform-assistant open source?

    Yes — it is hosted on GitHub at https://github.com/guilhermeyoshida/mcp-terraform-assistant and has 1 stars.

    Related MCP tools

    Run your own MCP server? See who uses it and what to fix.

    Measure it with TrackMCP