mcpField
M
MCP Infrastructure as Code Assistant

MCP Infrastructure as Code Assistant

Local
github.com/guilhermeyoshidaCloud & Infra1Updated 81w ago

About MCP Infrastructure as Code Assistant

MCP Infrastructure as Code Assistant is an MCP server for managing Terraform infrastructure. It supports teams working with Terraform directories, plans, configurations, state, and workspaces.

Key features

  1. 01Initialize Terraform working directories
  2. 02Generate and inspect execution plans
  3. 03Apply or destroy infrastructure
  4. 04Validate configurations and inspect state
  5. 05Manage Terraform workspaces

Use cases

  1. 01Initialize a Terraform project
  2. 02Review a plan before applying changes
  3. 03Validate configuration and inspect current state
  4. 04Switch Terraform workspaces

MCP support

The MCP server exposes Terraform operations to MCP clients, including initialization, planning, applying, validation, and workspace management.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

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:

    git clone https://github.com/yourusername/mcp-iac.git
    cd mcp-iac
    
  2. Install dependencies using uv:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    uv pip install -e .
    
Docker Installation
  1. Clone the repository:

    git clone https://github.com/yourusername/mcp-iac.git
    cd mcp-iac
    
  2. Build and run the Docker container:

    docker-compose up -d
    

Usage

Local Usage
  1. Start the MCP server:

    python main.py
    
  2. Use the MCP CLI to interact with the server:

    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:

    docker-compose up -d
    
  2. Use the MCP CLI to interact with the server:

    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:

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:

    python main.py
    
  2. Connect to the server using an MCP client:

    mcp connect http://localhost:8000
    
  3. The AI agent can now help you with Terraform operations. For example:

    • Initialize a Terraform working directory
    • Generate and review execution plans
    • Apply changes to infrastructure
    • Destroy infrastructure resources
    • Validate Terraform configurations

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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.