tfmcp
tfmcp: Terraform ๋ชจ๋ธ ์ปจํ ์คํธ ํ๋กํ ์ฝ ๋๊ตฌ
โ ๏ธ ์ด ํ๋ก์ ํธ๋ ์คํ ๋จ๊ณ์ ๋๋ค. ๊ธฐ๋ฅ์ ์๊ณ ์์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์ฃผ์ํด์ ์ฌ์ฉํ์ธ์! โ ๏ธ
tfmcp๋ ๋ชจ๋ธ ์ปจํ ์คํธ ํ๋กํ ์ฝ(MCP)์ ํตํด Terraform๊ณผ ์ํธ ์์ฉํ ์ ์๋๋ก ์ง์ํ๋ ๋ช ๋ น์ค ๋๊ตฌ์ ๋๋ค. LLM์ tfmcp๋ฅผ ํตํด ๋ค์์ ํฌํจํ Terraform ํ๊ฒฝ์ ๊ด๋ฆฌํ๊ณ ์ด์ํ ์ ์์ต๋๋ค.
๐ฎ ๋ฐ๋ชจ
Claude Desktop์์ tfmcp๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ํ์ธํ์ธ์.

Terraform ๊ตฌ์ฑ ํ์ผ ์ฝ๊ธฐ
Terraform ๊ณํ ์ถ๋ ฅ ๋ถ์
Terraform ๊ตฌ์ฑ ์ ์ฉ
Terraform ์ํ ๊ด๋ฆฌ
Terraform ๊ตฌ์ฑ ์์ฑ ๋ฐ ์์
Related MCP server: terraform-cloud-mcp
๐ ์ต์ ๋ฆด๋ฆฌ์ค
tfmcp(v0.1.1)์ ์ฒซ ๋ฒ์งธ ์์ ๋ฒ์ ์ด Crates.io์ ์ถ์๋์์ต๋๋ค! Cargo๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๊ฒ ์ค์นํ ์ ์์ต๋๋ค.
์ง์์คํผ1
ํน์ง
๐ Terraform ํตํฉ
Terraform CLI์ ๊ธด๋ฐํ๊ฒ ํตํฉ๋์ด ์์ ์ ๋ถ์ํ๊ณ ์คํํฉ๋๋ค.๐ MCP ์๋ฒ ๊ธฐ๋ฅ
๋ชจ๋ธ ์ปจํ ์คํธ ํ๋กํ ์ฝ ์๋ฒ๋ก ์คํ๋์ด AI ์ด์์คํดํธ๊ฐ Terraform์ ์ก์ธ์คํ๊ณ ๊ด๋ฆฌํ ์ ์๋๋ก ํฉ๋๋ค.โก๏ธ ๋งค์ฐ ๋น ๋ฆ
Rust ์ํ๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ณ ์ ์ฒ๋ฆฌ.๐ ๏ธ ์๋ ์ค์
ํ์ํ ๋ ์๋์ผ๋ก Terraform ์ํ ํ๋ก์ ํธ๋ฅผ ์์ฑํ์ฌ ์๋ก์ด ์ฌ์ฉ์๋ ์ํํ๊ฒ ์์ ํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.๐ณ Docker ์ง์
๋ชจ๋ ์ข ์์ฑ์ด ๋ฏธ๋ฆฌ ์ค์น๋ ์ปจํ ์ด๋ํ๋ ํ๊ฒฝ์์ tfmcp๋ฅผ ์คํํฉ๋๋ค.
์ค์น
์ถ์ฒ์์
# Clone the repository
git clone https://github.com/nwiizo/tfmcp
cd tfmcp
# Build and install
cargo install --path .Crates.io์์
cargo install tfmcpDocker ์ฌ์ฉ
# Clone the repository
git clone https://github.com/nwiizo/tfmcp
cd tfmcp
# Build the Docker image
docker build -t tfmcp .
# Run the container
docker run -it tfmcp์๊ตฌ ์ฌํญ
๋ฌ์คํธ(2021๋ ํ)
Terraform CLI๊ฐ PATH์ ์ค์น๋์ด ์ฌ์ฉ ๊ฐ๋ฅํจ
Claude Desktop(AI ์ด์์คํดํธ ํตํฉ์ฉ)
Docker(์ปจํ ์ด๋ํ๋ ๋ฐฐํฌ๋ฅผ ์ํ ์ ํ ์ฌํญ)
์ฉ๋ฒ
$ tfmcp --help
โจ A CLI tool to manage Terraform configurations and operate Terraform through the Model Context Protocol (MCP).
Usage: tfmcp [OPTIONS] [COMMAND]
Commands:
mcp Launch tfmcp as an MCP server
analyze Analyze Terraform configurations
help Print this message or the help of the given subcommand(s)
Options:
-c, --config <PATH> Path to the configuration file
-d, --dir <PATH> Terraform project directory
-V, --version Print version
-h, --help Print helpDocker ์ฌ์ฉ
Docker๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด tfmcp ๋ช ๋ น์ ์คํํ ์ ์์ต๋๋ค.
# Run as MCP server (default)
docker run -it tfmcp
# Run with specific command and options
docker run -it tfmcp analyze --dir /app/example
# Mount your Terraform project directory
docker run -it -v /path/to/your/terraform:/app/terraform tfmcp --dir /app/terraform
# Set environment variables
docker run -it -e TFMCP_LOG_LEVEL=debug tfmcpClaude Desktop๊ณผ ํตํฉ
Claude Desktop๊ณผ ํจ๊ป tfmcp๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด:
์์ง ์ค์นํ์ง ์์๋ค๋ฉด tfmcp๋ฅผ ์ค์นํ์ธ์.
cargo install tfmcp๋๋ Docker๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
docker build -t tfmcp .์ค์น๋ tfmcp ์คํ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ผ์ธ์.
which tfmcp~/Library/Application\ Support/Claude/claude_desktop_config.json์ ๋ค์ ๊ตฌ์ฑ์ ์ถ๊ฐํฉ๋๋ค.
{
"mcpServers": {
"tfmcp": {
"command": "/path/to/your/tfmcp", // Replace with the actual path from step 2
"args": ["mcp"],
"env": {
"HOME": "/Users/yourusername", // Replace with your username
"PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
"TERRAFORM_DIR": "/path/to/your/terraform/project" // Optional: specify your Terraform project
}
}
}
}Claude Desktop๊ณผ ํจ๊ป Docker๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ์ ์ค์ ํ ์ ์์ต๋๋ค.
{
"mcpServers": {
"tfmcp": {
"command": "docker",
"args": ["run", "--rm", "-v", "/path/to/your/terraform:/app/terraform", "tfmcp", "mcp"],
"env": {
"TERRAFORM_DIR": "/app/terraform"
}
}
}
}Claude Desktop์ ๋ค์ ์์ํ๊ณ tfmcp ๋๊ตฌ๋ฅผ ํ์ฑํํฉ๋๋ค.
tfmcp๋ ์ํ Terraform ํ๋ก์ ํธ๊ฐ ์๋ ๊ฒฝ์ฐ
~/terraform์ ์๋์ผ๋ก ์์ฑํ์ฌ Claude๊ฐ ๋ฐ๋ก Terraform ์์ ์ ์์ํ ์ ์๋๋ก ํฉ๋๋ค. ์ํ ํ๋ก์ ํธ๋ ์ด ์ ์ฅ์์example/demo๋๋ ํฐ๋ฆฌ์ ํฌํจ๋ ์์ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
๋ก๊ทธ ๋ฐ ๋ฌธ์ ํด๊ฒฐ
tfmcp ์๋ฒ ๋ก๊ทธ๋ ๋ค์ ์์น์์ ํ์ธํ ์ ์์ต๋๋ค.
~/Library/Logs/Claude/mcp-server-tfmcp.log์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฐ ํด๊ฒฐ์ฑ :
Claude๊ฐ ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค . ๊ตฌ์ฑ์์ tfmcp ์คํ ํ์ผ์ ๊ฒฝ๋ก๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธํ์ธ์.
Terraform ํ๋ก์ ํธ ๋ฌธ์ : tfmcp๋ ์ํ Terraform ํ๋ก์ ํธ๋ฅผ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ ์๋์ผ๋ก ์์ฑํฉ๋๋ค.
๋ฉ์๋๋ฅผ ์ฐพ์ ์ ์์ ์ค๋ฅ : MCP ํ๋กํ ์ฝ ์ง์์๋ ๋ฆฌ์์ค/๋ชฉ๋ก ๋ฐ ํ๋กฌํํธ/๋ชฉ๋ก ๋ฉ์๋๊ฐ ํฌํจ๋ฉ๋๋ค.
Docker ๋ฌธ์ : Docker๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ปจํ ์ด๋์ ์ ์ ํ ๋ณผ๋ฅจ ๋ง์ดํธ ๋ฐ ๊ถํ์ด ์๋์ง ํ์ธํ์ธ์.
ํ๊ฒฝ ๋ณ์
TERRAFORM_DIR: ์ฌ์ฉ์ ์ง์ Terraform ํ๋ก์ ํธ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ง์ ํฉ๋๋ค. ์ค์ ํ์ง ์์ผ๋ฉด tfmcp๋ ๋ช ๋ น์ค ์ธ์, ๊ตฌ์ฑ ํ์ผ์์ ์ ๊ณต๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋~/terraform์ผ๋ก ๋์ฒดํฉ๋๋ค.set_terraform_directory๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐํ์์ ํ๋ก์ ํธ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค.TFMCP_LOG_LEVEL: ๋ก๊น ์ ์์ธํ ์ ๋๋ฅผ ์ ์ดํ๊ธฐ ์ํดdebug,info,warn๋๋error๋ก ์ค์ ํฉ๋๋ค.TFMCP_DEMO_MODE: ์ถ๊ฐ ์์ ๊ธฐ๋ฅ์ด ์๋ ๋ฐ๋ชจ ๋ชจ๋๋ฅผ ํ์ฑํํ๋ ค๋ฉดtrue๋ก ์ค์ ํฉ๋๋ค.
๋ณด์ ๊ณ ๋ ค ์ฌํญ
tfmcp๋ฅผ ์ฌ์ฉํ ๋ ๋ค์ ๋ณด์ ๊ณ ๋ ค ์ฌํญ์ ์์งํ์ธ์.
tfmcp๋ ์ธํ๋ผ๋ฅผ ์์ฑ, ์์ ๋๋ ํ๊ดดํ ์ ์๋ Terraform ๋ช ๋ น์ ์ฌ์ฉ์๋ฅผ ๋์ ํ์ฌ ์คํํฉ๋๋ค.
ํ๋ก๋์ ํ๊ฒฝ์์๋ ์ ์ ํ IAM ๊ถํ ๋ฐ ์ญํ ๊ฒฝ๊ณ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์.
ํนํ AI์์ ์์ฑ๋ ๊ฒฝ์ฐ ์ ์ฉํ๊ธฐ ์ ์ ๋ชจ๋ Terraform ๊ณํ์ ๊ฒํ ํ์ญ์์ค.
Terraform ์ํ์ ๋ฏผ๊ฐํ ์ ๋ณด๋ AI ๋์ฐ๋ฏธ๊ฐ ์ ๊ทผํ ์ ์์ต๋๋ค.
Docker๋ฅผ ์ฌ์ฉํ ๋ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ ธ์ถํ ์ ์๋ ๋ณผ๋ฅจ ๋ง์ดํธ์ ์ฃผ์ํ์ธ์.
๊ธฐ์ฌํ๋ค
๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค! ํ ๋ฆฌํ์คํธ๋ฅผ ์ ์ถํด ์ฃผ์ธ์.
์ ์ฅ์๋ฅผ ํฌํฌํ์ธ์
๊ธฐ๋ฅ ๋ธ๋์น๋ฅผ ์์ฑํฉ๋๋ค(
git checkout -b feature/amazing-feature)๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐํ์ธ์(
git commit -m 'Add some amazing feature')๋ธ๋์น์ ํธ์(
git push origin feature/amazing-feature)ํ ๋ฆฌํ์คํธ ์ด๊ธฐ
๋ก๋๋งต
tfmcp์ ๋ํ ๋ช ๊ฐ์ง ๊ณํ๋ ๊ฐ์ ์ฌํญ๊ณผ ํฅํ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ ํ
[x] ๊ธฐ๋ณธ Terraform ํตํฉ
Terraform CLI์์ ํต์ฌ ํตํฉ์ ํตํด ์์ ์ ๋ถ์ํ๊ณ ์คํํฉ๋๋ค.[x] MCP ์๋ฒ ๊ตฌํ
AI ์ด์์คํดํธ๋ฅผ ์ํ ๋ชจ๋ธ ์ปจํ ์คํธ ํ๋กํ ์ฝ ์๋ฒ์ ์ด๊ธฐ ๊ตฌํ.[x] ์๋ ํ๋ก์ ํธ ์์ฑ
ํ์ํ ๋ ์๋์ผ๋ก ์ํ Terraform ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.[x] Claude ๋ฐ์คํฌํฑ ํตํฉ
Claude Desktop๊ณผ์ ์ํํ ํตํฉ์ ์ง์ํฉ๋๋ค.[x] ํต์ฌ MCP ๋ฐฉ๋ฒ
๋ฆฌ์์ค/๋ชฉ๋ก ๋ฐ ํ๋กฌํํธ/๋ชฉ๋ก์ ํฌํจํ ํ์ MCP ๋ฐฉ๋ฒ์ ๊ตฌํํฉ๋๋ค.[x] ์ค๋ฅ ์ฒ๋ฆฌ ๊ฐ์
๊ฒฌ๊ณ ํ ์ด์์ ์ํด ๋ ๋์ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ๋ณต๊ตฌ ๋ฉ์ปค๋์ฆ์ด ์ ๊ณต๋ฉ๋๋ค.[x] ๋์ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ์ ํ
์๋น์ค๋ฅผ ๋ค์ ์์ํ์ง ์๊ณ ๋ ํ์ฑ Terraform ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.[x] Crates.io ์ถํ
Cargo๋ฅผ ํตํด ์ฝ๊ฒ ์ค์นํ ์ ์๋๋ก Crates.io์ ํจํค์ง๋ฅผ ๊ฒ์ํ์ต๋๋ค.[x] Docker ์ง์
๋ณด๋ค ์ฌ์ด ๋ฐฐํฌ์ ํ๋ซํผ ๊ฐ ํธํ์ฑ์ ์ํด ์ปจํ ์ด๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
์งํ ์ค
[ ] ํฅ์๋ Terraform ๋ถ์
Terraform ๊ตฌ์ฑ, ๊ณํ ๋ฐ ์ํ ํ์ผ์ ๋ํ ์ฌ์ธต์ ์ธ ๊ตฌ๋ฌธ ๋ถ์ ๋ฐ ๋ถ์์ ๊ตฌํํฉ๋๋ค.[ ] ๋ค์ค ํ๊ฒฝ ์ง์
์ฌ๋ฌ Terraform ํ๊ฒฝ, ์์ ๊ณต๊ฐ ๋ฐ ๋ชจ๋์ ๊ด๋ฆฌํ๋ ๋ฐ ๋ํ ์ง์์ ์ถ๊ฐํฉ๋๋ค.[ ] ๋ณด์ ๊ฐํ
๋ ๋์ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ๋ฉ์ปค๋์ฆ์ ํฌํจํ์ฌ ๋ณด์ ๊ธฐ๋ฅ์ ๊ฐ์ ํฉ๋๋ค.[ ] ํ์ฅ๋ MCP ํ๋กํ ์ฝ ์ง์
AI ์ด์์คํดํธ์์ ๋์ฑ ํ๋ถํ ํตํฉ์ ์ํด ์ถ๊ฐ์ ์ธ MCP ๋ฐฉ๋ฒ๊ณผ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค.[ ] ๋ํํ TUI
๋ก์ปฌ ์ฌ์ฉ๊ณผ ๋๋ฒ๊น ์ ๋ณด๋ค ์ฝ๊ฒ ํ๊ธฐ ์ํด ํฐ๋ฏธ๋ ๊ธฐ๋ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ๋ฐํฉ๋๋ค.[ ] ๋น์ฉ ์ถ์
ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ๊ฐ๊ฒฉ API์ ํตํฉํ์ฌ Terraform ํ๋์ ๋ํ ๋น์ฉ ๊ฒฌ์ ์ ์ ๊ณตํฉ๋๋ค.[ ] ์ฑ๋ฅ ์ต์ ํ
๋๊ท๋ชจ Terraform ํ๋ก์ ํธ์ ๋ฆฌ์์ค ์ฌ์ฉ๊ณผ ์๋ต ์๊ฐ์ ์ต์ ํํฉ๋๋ค.[ ] ๋ค๋ฅธ AI ํ๋ซํผ๊ณผ์ ํตํฉ
ํด๋ก๋๋ฅผ ๋์ด ๋ค๋ฅธ AI ์ด์์คํดํธ์ ํ๋ซํผ๋ ์ง์ํฉ๋๋ค.[ ] ํฌ๊ด์ ์ธ ํ ์คํธ ํ๋ ์์ํฌ
์ค์ Terraform ๊ตฌ์ฑ์ ํตํ ํตํฉ ํ ์คํธ๋ฅผ ํฌํจํ์ฌ ํ ์คํธ ๋ฒ์๋ฅผ ํ์ฅํฉ๋๋ค.[ ] ํ๋ฌ๊ทธ์ธ ์์คํ
ํต์ฌ ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์๋ ํ๋ฌ๊ทธ์ธ ์ํคํ ์ฒ๋ฅผ ๊ฐ๋ฐํฉ๋๋ค.
ํนํ
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ผ์ด์ ์ค๊ฐ ๋ถ์ฌ๋์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ผ์ด์ ์ค ํ์ผ์ ์ฐธ์กฐํ์ธ์.
This server cannot be deployed
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoโฆ
FinOps agent MCP: allocated AWS, GCP, Azure, Kubernetes, SaaS & AI cost for Claude or any agent
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client โ Claude, ChatGPT, Cursor, Cline, Windsurf.
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
Related MCP Servers
- FlicenseCqualityDmaintenanceA Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with your AWS environment. This allows for natural language querying and management of your AWS resources during conversations. Think of better Amazon Q alternative.13296-
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server that integrates Claude with the Terraform Cloud API, allowing Claude to manage your Terraform infrastructure through natural conversation.6223MIT
- AlicenseAqualityBmaintenanceA Model Context Protocol (MCP) server for producing better Terraform through CLI analysis (tflint, checkov, trivy, kics, infracost), best-practice guidance from terraform-best-practices.com, cloud provider recommendations (Azure, AWS, GCP), and Terraform Registry resource and module guidance.18443 npm1MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes Terraform CLI operations as tools for Claude and other MCP-compatible AI assistants, enabling AI-driven infrastructure-as-code workflows including planning, applying, and validating Terraform configurations.41 npmMIT
Appeared in Searches
- A server for finding information about Terraform infrastructure-as-code tool
- Information about AWS MCP
- Using Terraform to Provision AWS Resources and Ansible to Configure Services
- A server for finding information about mobile app development
- Evaluating an Expo Go App and Associated React Native Code in an Android Emulator