Labsco
nwiizo logo

Terraform MCP

โ˜… 370

from nwiizo

A command-line tool that acts as an MCP server to interact with Terraform environments.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

tfmcp: Terraform Model Context Protocol Tool

Trust Score

โš ๏ธ This project includes production-ready security features but is still under active development. While the security system provides robust protection, please review all operations carefully in production environments. โš ๏ธ

tfmcp is a command-line tool that helps you interact with Terraform via the Model Context Protocol (MCP). It allows LLMs to manage and operate your Terraform environments, including:

๐ŸŽฎ Demo

See tfmcp in action with Claude Desktop:

tfmcp Demo with Claude Desktop

  • Reading Terraform configuration files
  • Analyzing Terraform plan outputs
  • Applying Terraform configurations
  • Managing Terraform state
  • Creating and modifying Terraform configurations

๐ŸŽ‰ Latest Release

The latest version of tfmcp (v0.1.9) is now available on Crates.io! You can easily install it using Cargo:

cargo install tfmcp

๐Ÿ†• What's New in v0.1.9

  • ๐Ÿ“Š Plan Analysis: Structured plan analysis with risk scoring and recommendations
  • ๐Ÿ” State Analysis: Deep state inspection with drift detection
  • ๐Ÿ“ Workspace Management: Full terraform workspace support (list, show, new, select, delete)
  • ๐Ÿ“ฅ Import Helper: Guided resource import with config generation
  • โœจ Code Formatting: terraform fmt integration
  • ๐Ÿ”— Dependency Graph: terraform graph visualization with DOT output
  • ๐Ÿ“ค Output Management: terraform output access
  • ๐Ÿท๏ธ Taint/Untaint: Resource taint management (with deprecation notices for 1.5+)
  • ๐Ÿ”„ State Refresh: Explicit state refresh operations
  • ๐Ÿ“ฆ Provider Info: Detailed provider information with lock file parsing
  • ๐Ÿฆ€ Rust Edition 2024: Migrated to Rust Edition 2024 (requires Rust 1.85.0+)

Features

  • ๐Ÿš€ Terraform Integration Deeply integrates with the Terraform CLI to analyze and execute operations.

  • ๐Ÿ“„ MCP Server Capabilities Runs as a Model Context Protocol server, allowing AI assistants to access and manage Terraform.

  • ๐Ÿ”ฌ Module Health Analysis Whitebox approach to Infrastructure as Code with cohesion/coupling analysis, health scoring, and refactoring suggestions based on software engineering principles.

  • ๐Ÿ“Š Resource Dependency Graph Visualize resource relationships including explicit depends_on and implicit reference dependencies.

  • ๐Ÿ“ฆ Module Registry Integration Search and explore Terraform modules from the registry, get module details and versions.

  • ๐Ÿ” Enterprise Security Production-ready security controls with configurable policies, audit logging, and access restrictions.

  • ๐Ÿ“Š Advanced Analysis Detailed Terraform configuration analysis with best practice recommendations and security checks.

  • ๐Ÿ“‹ Guideline Compliance (v0.1.8) Future Architect Terraform guidelines integration with compliance scoring, secret detection, and variable quality checks.

  • โšก๏ธ Blazing Fast High-speed processing powered by the Rust ecosystem with optimized parsing and caching.

  • ๐Ÿ› ๏ธ Automatic Setup Automatically creates sample Terraform projects when needed, ensuring smooth operation even for new users.

  • ๐Ÿณ Docker Support Run tfmcp in a containerized environment with all dependencies pre-installed.

MCP Tools

tfmcp provides 31 MCP tools for AI assistants:

Core Terraform Operations

ToolDescription
init_terraformInitialize Terraform working directory
get_terraform_planGenerate and show execution plan
analyze_planNEW Analyze plan with risk scoring and recommendations
apply_terraformApply Terraform configuration
destroy_terraformDestroy Terraform-managed infrastructure
validate_terraformValidate configuration syntax
validate_terraform_detailedDetailed validation with guidelines
get_terraform_stateShow current state
analyze_stateNEW Analyze state with drift detection
list_terraform_resourcesList all managed resources
set_terraform_directoryChange active project directory

Workspace & State (v0.1.9)

ToolDescription
terraform_workspaceNEW Manage workspaces (list, show, new, select, delete)
terraform_importNEW Import existing resources
terraform_taintNEW Taint/untaint resources
terraform_refreshNEW Refresh state

Code & Output (v0.1.9)

ToolDescription
terraform_fmtNEW Format code
terraform_graphNEW Generate dependency graph
terraform_outputNEW Get output values
terraform_providersNEW Get provider info with lock file

Analysis & Security

ToolDescription
analyze_terraformAnalyze configuration
analyze_module_healthModule health with cohesion/coupling metrics
get_resource_dependency_graphResource dependencies visualization
suggest_module_refactoringRefactoring suggestions
get_security_statusSecurity scan with secret detection

Registry

ToolDescription
search_terraform_providersSearch providers
get_provider_infoProvider details
get_provider_docsProvider documentation
search_terraform_modulesSearch modules
get_module_detailsModule details
get_latest_module_versionLatest module version
get_latest_provider_versionLatest provider version

Environment Variables

Core Configuration

  • TERRAFORM_DIR: Set this to specify a custom Terraform project directory. If not set, tfmcp will use the directory provided by command line arguments, configuration files, or fall back to ~/terraform. You can also change the project directory at runtime using the set_terraform_directory tool.
  • TFMCP_LOG_LEVEL: Set to debug, info, warn, or error to control logging verbosity.
  • TFMCP_DEMO_MODE: Set to true to enable demo mode with additional safety features.

Security Configuration

  • TFMCP_ALLOW_DANGEROUS_OPS: Set to true to enable apply/destroy operations (default: false)
  • TFMCP_ALLOW_AUTO_APPROVE: Set to true to enable auto-approve for dangerous operations (default: false)
  • TFMCP_MAX_RESOURCES: Set maximum number of resources that can be managed (default: 50)
  • TFMCP_AUDIT_ENABLED: Set to false to disable audit logging (default: true)
  • TFMCP_AUDIT_LOG_FILE: Custom path for audit log file (default: ~/.tfmcp/audit.log)
  • TFMCP_AUDIT_LOG_SENSITIVE: Set to true to include sensitive information in audit logs (default: false)

Security Considerations

tfmcp includes comprehensive security features designed for production use:

๐Ÿ”’ Built-in Security Features

  • Access Controls: Automatic blocking of production/sensitive file patterns
  • Operation Restrictions: Dangerous operations (apply/destroy) disabled by default
  • Resource Limits: Configurable maximum resource count protection
  • Audit Logging: Complete operation tracking with timestamps and user identification
  • Directory Validation: Security policy enforcement for project directories

๐Ÿ›ก๏ธ Security Best Practices

  • Default Safety: Apply/destroy operations are disabled by default - explicitly enable only when needed
  • Review Plans: Always review Terraform plans before applying, especially AI-generated ones
  • IAM Boundaries: Use appropriate IAM permissions and role boundaries in cloud environments
  • Audit Monitoring: Regularly review audit logs at ~/.tfmcp/audit.log
  • File Patterns: Built-in protection against accessing prod*, production*, and secret* patterns
  • Docker Security: When using containers, carefully consider volume mounts and exposed data

โš™๏ธ Production Configuration

# Recommended production settings
export TFMCP_ALLOW_DANGEROUS_OPS=false    # Keep disabled for safety
export TFMCP_ALLOW_AUTO_APPROVE=false     # Require manual approval
export TFMCP_MAX_RESOURCES=10             # Limit resource scope
export TFMCP_AUDIT_ENABLED=true           # Enable audit logging
export TFMCP_AUDIT_LOG_SENSITIVE=false    # Don't log sensitive data

Roadmap

Here are some planned improvements and future features for tfmcp:

Completed

  • Basic Terraform Integration
    Core integration with Terraform CLI for analyzing and executing operations.

  • MCP Server Implementation
    Initial implementation of the Model Context Protocol server for AI assistants.

  • Automatic Project Creation
    Added functionality to automatically create sample Terraform projects when needed.

  • Claude Desktop Integration
    Support for seamless integration with Claude Desktop.

  • Core MCP Methods
    Implementation of essential MCP methods including resources/list and prompts/list.

  • Error Handling Improvements
    Better error handling and recovery mechanisms for robust operation.

  • Dynamic Project Directory Switching
    Added ability to change the active Terraform project directory without restarting the service.

  • Crates.io Publication
    Published the package to Crates.io for easy installation via Cargo.

  • Docker Support
    Added containerization support for easier deployment and cross-platform compatibility.

  • Security Enhancements Comprehensive security system with configurable policies, audit logging, access controls, and production-ready safety features.

  • Module Health Analysis (v0.1.6) Whitebox approach to IaC with cohesion/coupling metrics, health scoring, and refactoring suggestions.

  • Resource Dependency Graph (v0.1.6) Visualization of resource relationships including explicit and implicit dependencies.

  • Module Registry Integration (v0.1.6) Search and explore Terraform modules from the registry.

  • Comprehensive Testing Framework 85+ tests including integration tests with real Terraform configurations.

  • RMCP SDK Migration (v0.1.8) Migrated to official RMCP SDK with proper tool annotations for better MCP compliance.

  • Future Architect Guidelines (v0.1.8) Terraform coding standards compliance checks with secret detection and variable quality validation.

In Progress

  • Multi-Environment Support Add support for managing multiple Terraform environments, workspaces, and modules.

Planned

  • Expanded MCP Protocol Support Implement additional MCP methods and capabilities for richer integration with AI assistants.

  • Performance Optimization
    Optimize resource usage and response times for large Terraform projects.

  • Cost Estimation
    Integrate with cloud provider pricing APIs to provide cost estimates for Terraform plans.

  • Interactive TUI
    Develop a terminal-based user interface for easier local usage and debugging.

  • Integration with Other AI Platforms
    Extend beyond Claude to support other AI assistants and platforms.

  • Plugin System
    Develop a plugin architecture to allow extensions of core functionality.