tfmcp.com
tfmcp.com logo

tfmcp

Rust-based Terraform infrastructure management server that enables resource listing, configuration validation, and state...

Created byApr 22, 2025

tfmcp: Terraform Model Context Protocol Tool

  • This project is experimental. Features may change without notice. Use with caution! *
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 first stable release of tfmcp (v0.1.1) is now available on Crates.io! You can easily install it using Cargo:

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.
  • Blazing Fast
High-speed processing powered by the Rust ecosystem.
  • Automatically creates sample Terraform projects when needed, ensuring smooth operation even for new users.

Installation

From Source

From Crates.io

Requirements

  • Rust (edition 2021)
  • Terraform CLI installed and available in PATH
  • Claude Desktop (for AI assistant integration)

Usage

Integrating with Claude Desktop

To use tfmcp with Claude Desktop:
  1. If you haven't already, install tfmcp:
  1. Find the path to your installed tfmcp executable:
  1. Add the following configuration to ~/Library/Application\ Support/Claude/claude_desktop_config.json:
  1. Restart Claude Desktop and enable the tfmcp tool.
  1. tfmcp will automatically create a sample Terraform project in ~/terraform if one doesn't exist, ensuring Claude can start working with Terraform right away. The sample project is based on the examples included in the example/demo directory of this repository.

Logs and Troubleshooting

The tfmcp server logs are available at:
Common issues and solutions:
  • Claude can't connect to the server: Make sure the path to the tfmcp executable is correct in your configuration
  • Terraform project issues: tfmcp automatically creates a sample Terraform project if none is found
  • Method not found errors: MCP protocol support includes resources/list and prompts/list methods

Environment Variables

  • 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 Considerations

When using tfmcp, please be aware of the following security considerations:
  • tfmcp executes Terraform commands on your behalf, which can create, modify, or destroy infrastructure
  • In production environments, consider using appropriate IAM permissions and role boundaries
  • Review all Terraform plans before applying them, especially when generated by an AI
  • Sensitive information in your Terraform state might be accessible to the AI assistants

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.
  1. Fork the repository
  1. Create your feature branch (git checkout -b feature/amazing-feature)
  1. Commit your changes (git commit -m 'Add some amazing feature')
  1. Push to the branch (git push origin feature/amazing-feature)
  1. Open a Pull Request

Roadmap

Here are some planned improvements and future features for tfmcp:

Completed

  • Basic Terraform IntegrationCore integration with Terraform CLI for analyzing and executing operations.
  • MCP Server ImplementationInitial implementation of the Model Context Protocol server for AI assistants.
  • Automatic Project CreationAdded functionality to automatically create sample Terraform projects when needed.
  • Claude Desktop IntegrationSupport for seamless integration with Claude Desktop.
  • Core MCP MethodsImplementation of essential MCP methods including resources/list and prompts/list.
  • Error Handling ImprovementsBetter error handling and recovery mechanisms for robust operation.
  • Dynamic Project Directory SwitchingAdded ability to change the active Terraform project directory without restarting the service.
  • Crates.io PublicationPublished the package to Crates.io for easy installation via Cargo.

In Progress

  • Enhanced Terraform AnalysisImplement deeper parsing and analysis of Terraform configurations, plans, and state files.
  • Multi-Environment SupportAdd support for managing multiple Terraform environments, workspaces, and modules.
  • Security EnhancementsImprove security features including better authentication and authorization mechanisms.
  • Expanded MCP Protocol SupportImplement additional MCP methods and capabilities for richer integration with AI assistants.
  • Interactive TUIDevelop a terminal-based user interface for easier local usage and debugging.
  • Cost EstimationIntegrate with cloud provider pricing APIs to provide cost estimates for Terraform plans.
  • Performance OptimizationOptimize resource usage and response times for large Terraform projects.
  • Integration with Other AI PlatformsExtend beyond Claude to support other AI assistants and platforms.
  • Comprehensive Testing FrameworkExpand test coverage including integration tests with real Terraform configurations.
  • Plugin SystemDevelop a plugin architecture to allow extensions of core functionality.

License

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

tfmcp: Terraform Model Context Protocol Tool

  • This project is experimental. Features may change without notice. Use with caution! *
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 first stable release of tfmcp (v0.1.1) is now available on Crates.io! You can easily install it using Cargo:

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.
  • Blazing Fast
High-speed processing powered by the Rust ecosystem.
  • Automatically creates sample Terraform projects when needed, ensuring smooth operation even for new users.

Installation

From Source

From Crates.io

Requirements

  • Rust (edition 2021)
  • Terraform CLI installed and available in PATH
  • Claude Desktop (for AI assistant integration)

Usage

Integrating with Claude Desktop

To use tfmcp with Claude Desktop:
  1. If you haven't already, install tfmcp:
  1. Find the path to your installed tfmcp executable:
  1. Add the following configuration to ~/Library/Application\ Support/Claude/claude_desktop_config.json:
  1. Restart Claude Desktop and enable the tfmcp tool.
  1. tfmcp will automatically create a sample Terraform project in ~/terraform if one doesn't exist, ensuring Claude can start working with Terraform right away. The sample project is based on the examples included in the example/demo directory of this repository.

Logs and Troubleshooting

The tfmcp server logs are available at:
Common issues and solutions:
  • Claude can't connect to the server: Make sure the path to the tfmcp executable is correct in your configuration
  • Terraform project issues: tfmcp automatically creates a sample Terraform project if none is found
  • Method not found errors: MCP protocol support includes resources/list and prompts/list methods

Environment Variables

  • 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 Considerations

When using tfmcp, please be aware of the following security considerations:
  • tfmcp executes Terraform commands on your behalf, which can create, modify, or destroy infrastructure
  • In production environments, consider using appropriate IAM permissions and role boundaries
  • Review all Terraform plans before applying them, especially when generated by an AI
  • Sensitive information in your Terraform state might be accessible to the AI assistants

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.
  1. Fork the repository
  1. Create your feature branch (git checkout -b feature/amazing-feature)
  1. Commit your changes (git commit -m 'Add some amazing feature')
  1. Push to the branch (git push origin feature/amazing-feature)
  1. Open a Pull Request

Roadmap

Here are some planned improvements and future features for tfmcp:

Completed

  • Basic Terraform IntegrationCore integration with Terraform CLI for analyzing and executing operations.
  • MCP Server ImplementationInitial implementation of the Model Context Protocol server for AI assistants.
  • Automatic Project CreationAdded functionality to automatically create sample Terraform projects when needed.
  • Claude Desktop IntegrationSupport for seamless integration with Claude Desktop.
  • Core MCP MethodsImplementation of essential MCP methods including resources/list and prompts/list.
  • Error Handling ImprovementsBetter error handling and recovery mechanisms for robust operation.
  • Dynamic Project Directory SwitchingAdded ability to change the active Terraform project directory without restarting the service.
  • Crates.io PublicationPublished the package to Crates.io for easy installation via Cargo.

In Progress

  • Enhanced Terraform AnalysisImplement deeper parsing and analysis of Terraform configurations, plans, and state files.
  • Multi-Environment SupportAdd support for managing multiple Terraform environments, workspaces, and modules.
  • Security EnhancementsImprove security features including better authentication and authorization mechanisms.
  • Expanded MCP Protocol SupportImplement additional MCP methods and capabilities for richer integration with AI assistants.
  • Interactive TUIDevelop a terminal-based user interface for easier local usage and debugging.
  • Cost EstimationIntegrate with cloud provider pricing APIs to provide cost estimates for Terraform plans.
  • Performance OptimizationOptimize resource usage and response times for large Terraform projects.
  • Integration with Other AI PlatformsExtend beyond Claude to support other AI assistants and platforms.
  • Comprehensive Testing FrameworkExpand test coverage including integration tests with real Terraform configurations.
  • Plugin SystemDevelop a plugin architecture to allow extensions of core functionality.

License

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