tfmcp: Terraform ã¢ãã«ã³ã³ããã¹ããããã³ã«ããŒã«
â ïž ãã®ãããžã§ã¯ãã¯è©Šéšçãªãã®ã§ããæ©èœã¯äºåãªã倿Žãããå ŽåããããŸããã䜿çšã®éã¯ã泚æãã ãããâ ïž
tfmcp ã¯ãModel Context Protocol (MCP) ãä»ã㊠Terraform ãšããåãããããã®ã³ãã³ãã©ã€ã³ããŒã«ã§ããLLM ã¯ã以äžã® Terraform ç°å¢ã管çããã³æäœã§ããŸãã
ð® ãã¢
Claude Desktop ã§ tfmcp ã®åäœã確èªããŠãã ããã

Terraform æ§æãã¡ã€ã«ã®èªã¿åã
Terraform ãã©ã³ã®åºåãåæãã
Terraformæ§æã®é©çš
Terraformã®ç¶æ ã®ç®¡ç
Terraform æ§æã®äœæãšå€æŽ
Related MCP server: terraform-cloud-mcp
ð ææ°ãªãªãŒã¹
tfmcp ã®æåã®å®å®çãªãªãŒã¹ (v0.1.1) ã Crates.io ã§å©çšå¯èœã«ãªããŸãããCargo ã䜿ãã°ç°¡åã«ã€ã³ã¹ããŒã«ã§ããŸãã
ç¹åŸŽ
ð 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 ãµãŒã㌠ãã°ã¯æ¬¡ã®å Žæã«ãããŸãã
ããããåé¡ãšè§£æ±ºç:
ã¯ããŒãã¯ãµãŒããŒã«æ¥ç¶ã§ããŸãã: 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 Desktop ãšã®ã·ãŒã ã¬ã¹ãªçµ±åããµããŒãããŸãã[x]ã³ã¢MCPã¡ãœãã
resources/list ã prompts/list ãªã©ã®éèŠãª MCP ã¡ãœããã®å®è£ ã[x]ãšã©ãŒåŠçã®æ¹å
å ç¢ãªæäœã®ããã®ãšã©ãŒåŠçããã³å埩ã¡ã«ããºã ã®æ¹åã[x]åçãªãããžã§ã¯ããã£ã¬ã¯ããªã®åãæ¿ã
ãµãŒãã¹ãåèµ·åããã«ã¢ã¯ãã£ã㪠Terraform ãããžã§ã¯ã ãã£ã¬ã¯ããªã倿Žããæ©èœã远å ããŸããã[x] Crates.io åºç
Cargo çµç±ã§ç°¡åã«ã€ã³ã¹ããŒã«ã§ããããã«ãããã±ãŒãžã Crates.io ã«å ¬éããŸããã[x] DockerãµããŒã
ããç°¡åãªå±éãšã¯ãã¹ãã©ãããã©ãŒã ã®äºææ§ã®ããã«ã³ã³ããåã®ãµããŒãã远å ããŸããã
é²è¡äž
[ ]匷åãããTerraformåæ
Terraform æ§æããã©ã³ãç¶æ ãã¡ã€ã«ã®ãã詳现ãªè§£æãšåæãå®è£ ããŸãã[ ]ãã«ãç°å¢ãµããŒã
è€æ°ã® Terraform ç°å¢ãã¯ãŒã¯ã¹ããŒã¹ãã¢ãžã¥ãŒã«ã管çããããã®ãµããŒãã远å ããŸãã[ ]ã»ãã¥ãªãã£åŒ·å
ããåªããèªèšŒããã³æ¿èªã¡ã«ããºã ãå«ãã»ãã¥ãªãã£æ©èœãæ¹åããŸãã[ ]æ¡åŒµãããMCPãããã³ã«ãµããŒã
AI ã¢ã·ã¹ã¿ã³ããšã®ããå å®ããçµ±åã®ããã«ã远å ã® MCP ã¡ãœãããšæ©èœãå®è£ ããŸãã[ ]ã€ã³ã¿ã©ã¯ãã£ãTUI
ããŒã«ã«ã§ã®äœ¿çšãšãããã°ã容æã«ããããã«ãã¿ãŒããã«ããŒã¹ã®ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ãéçºããŸãã[ ]ã³ã¹ãèŠç©ãã
ã¯ã©ãŠã ãããã€ããŒã®äŸ¡æ Œèšå® API ãšçµ±åããŠãTerraform ãã©ã³ã®ã³ã¹ãèŠç©ãããæäŸããŸãã[ ]ããã©ãŒãã³ã¹ã®æé©å
å€§èŠæš¡ãª Terraform ãããžã§ã¯ãã®ãªãœãŒã¹äœ¿çšéãšå¿çæéãæé©åããŸãã[ ]ä»ã®AIãã©ãããã©ãŒã ãšã®çµ±å
Claude ãè¶ ããŠæ¡åŒµããä»ã® AI ã¢ã·ã¹ã¿ã³ãããã©ãããã©ãŒã ããµããŒãããŸãã[ ]å æ¬çãªãã¹ããã¬ãŒã ã¯ãŒã¯
å®éã® Terraform æ§æãšã®çµ±åãã¹ããå«ããã¹ãç¯å²ãæ¡åŒµããŸãã[ ]ãã©ã°ã€ã³ã·ã¹ãã
ã³ã¢æ©èœã®æ¡åŒµãå¯èœã«ãããã©ã°ã€ã³ ã¢ãŒããã¯ãã£ãéçºããŸãã
ã©ã€ã»ã³ã¹
ãã®ãããžã§ã¯ã㯠MIT ã©ã€ã»ã³ã¹ã«åºã¥ããŠã©ã€ã»ã³ã¹ãããŠããŸã - 詳现ã«ã€ããŠã¯LICENSEãã¡ã€ã«ãåç §ããŠãã ããã