https://github.com/guilhermeyoshida/mcp-terraform-assistant
An MCP server for managing infrastructure as code using Terraform
https://github.com/guilhermeyoshida/mcp-terraform-assistant
Last synced: 6 months ago
JSON representation
An MCP server for managing infrastructure as code using Terraform
- Host: GitHub
- URL: https://github.com/guilhermeyoshida/mcp-terraform-assistant
- Owner: guilhermeyoshida
- Created: 2025-04-07T23:14:25.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2025-04-07T23:25:02.000Z (7 months ago)
- Last Synced: 2025-04-08T00:25:04.853Z (7 months ago)
- Language: Python
- Size: 19.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-devops-mcp-servers - guilhermeyoshida/mcp-terraform-assistant - An MCP server for managing infrastructure as code using Terraform. (Cloud Infrastructure / 🏗️ Infrastructure as Code)
- awesome-mcp-servers - **mcp-terraform-assistant** - An MCP server for managing infrastructure as code using Terraform `python` `mcp` `server` `http` `git` `pip install git+https://github.com/guilhermeyoshida/mcp-terraform-assistant` (🤖 AI/ML)
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:
```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:
- 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