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๋ฅผ ์คํํฉ๋๋ค.
์ค์น
์ถ์ฒ์์
Crates.io์์
Docker ์ฌ์ฉ
์๊ตฌ ์ฌํญ
๋ฌ์คํธ(2021๋ ํ)
Terraform CLI๊ฐ PATH์ ์ค์น๋์ด ์ฌ์ฉ ๊ฐ๋ฅํจ
Claude Desktop(AI ์ด์์คํดํธ ํตํฉ์ฉ)
Docker(์ปจํ ์ด๋ํ๋ ๋ฐฐํฌ๋ฅผ ์ํ ์ ํ ์ฌํญ)
์ฉ๋ฒ
Docker ์ฌ์ฉ
Docker๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด tfmcp ๋ช ๋ น์ ์คํํ ์ ์์ต๋๋ค.
Claude Desktop๊ณผ ํตํฉ
Claude Desktop๊ณผ ํจ๊ป tfmcp๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด:
์์ง ์ค์นํ์ง ์์๋ค๋ฉด tfmcp๋ฅผ ์ค์นํ์ธ์.
cargo install tfmcp๋๋ Docker๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
docker build -t tfmcp .์ค์น๋ tfmcp ์คํ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ผ์ธ์.
which tfmcp~/Library/Application\ Support/Claude/claude_desktop_config.json์ ๋ค์ ๊ตฌ์ฑ์ ์ถ๊ฐํฉ๋๋ค.
Claude Desktop๊ณผ ํจ๊ป Docker๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ์ ์ค์ ํ ์ ์์ต๋๋ค.
Claude Desktop์ ๋ค์ ์์ํ๊ณ tfmcp ๋๊ตฌ๋ฅผ ํ์ฑํํฉ๋๋ค.
tfmcp๋ ์ํ Terraform ํ๋ก์ ํธ๊ฐ ์๋ ๊ฒฝ์ฐ
~/terraform์ ์๋์ผ๋ก ์์ฑํ์ฌ Claude๊ฐ ๋ฐ๋ก Terraform ์์ ์ ์์ํ ์ ์๋๋ก ํฉ๋๋ค. ์ํ ํ๋ก์ ํธ๋ ์ด ์ ์ฅ์์example/demo๋๋ ํฐ๋ฆฌ์ ํฌํจ๋ ์์ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
๋ก๊ทธ ๋ฐ ๋ฌธ์ ํด๊ฒฐ
tfmcp ์๋ฒ ๋ก๊ทธ๋ ๋ค์ ์์น์์ ํ์ธํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฐ ํด๊ฒฐ์ฑ :
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 ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ผ์ด์ ์ค๊ฐ ๋ถ์ฌ๋์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ผ์ด์ ์ค ํ์ผ์ ์ฐธ์กฐํ์ธ์.