AWS Terraform MCP Serverとは
公式から引用すると、「AWSのベストプラクティス、Infrastructure as Codeパターン、CheckovによるセキュリティコンプライアンスのためのTerraform用MCPサーバー」とのこと。
引用:https://awslabs.github.io/mcp/servers/terraform-mcp-server/
何ができるか?
主に次のような特徴があります。
Terraformのベストプラクティスに基づいてより良いAWS環境の構築に役立ちそうです。ドキュメントだけではなく、実際にTerraformコマンドを実行することもできそうです。他にも特徴が公式ドキュメントに記載されているので是非ご一読ください。
- Terraform のベストプラクティス- AWS 上でアプリケーションを構築するための Terraform の具体的なアドバイスを入手
- Terraform 構成に関する AWS Well-Architected ガイダンス
- セキュリティとコンプライアンスに関する推奨事項
- セキュリティファースト開発ワークフロー- 安全なコードを作成するための構造化されたプロセスに従う
- AWS プロバイダードキュメント- AWS および AWSCC プロバイダーのリソースを検索
- Terraform ワークフロー実行- Terraform コマンドを直接実行します
AWS Terraform MCP ServerをClaude Desktopから利用する方法
Claude DesktopでAWS Terraform MCP Serverを利用する方法、セットアップ方法を記載します。併せてAWS Documentation MCP Serverも同時に設定します。
前提条件
インストール要件
手順1. AstralまたはGitHubのREADMEからuv
をインストールする
PS C:\> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Downloading uv 0.6.14 (x86_64-pc-windows-msvc)
Installing to C:\Users\UserName\.local\bin
uv.exe
uvx.exe
everything's installed!
To add C:\Users\UserName\.local\bin to your PATH, either restart your shell or run:
set Path=C:\Users\UserName\.local\bin;%Path% (cmd)
$env:Path = "C:\Users\UserName\.local\bin;$env:Path" (powershell)
手順2. パスを追加する
PS C:\> $env:Path = "C:\Users\UserName\.local\bin;$env:Path"
PS C:\> uv --version
uv 0.6.14 (a4cec56dc 2025-04-09)
手順3. uv python install 3.10
を使ってPythonをインストールする。(またはより新しいバージョン)をインストールします。
PS C:\> uv python install 3.10
Installed Python 3.10.17 in 6.43s
+ cpython-3.10.17-windows-x86_64-none
Claude Desktopでの設定
AWS Documentation MCP Serverの手順に記載のとおり、Claudeの設定ファイルにMCP設定用のコードを追加します。
このMCPサーバーをAmazon QまたはClaudeに追加するには、MCP設定ファイルに以下の行を追加してください。Amazon Qの場合は、
.amazonq/mcp.json
を実行しているディレクトリと同じディレクトリにという名前のファイルを作成します(まだ存在しない場合)q chat
。そして、以下の設定行を追加してください。
https://awslabs.github.io/mcp/servers/aws-documentation-mcp-server/
Claudeの場合
左上の三 > ファイル > 設定
claude_desktop_config.jsonを開き(C:\Users\UserName\AppData\Roaming\Claude)以下を記入します。
{
"mcpServers": {
"awslabs.aws-documentation-mcp-server": {
"command": "/Users/UserName/.local/bin/uvx",
"args": [
"--from",
"awslabs-aws-documentation-mcp-server",
"awslabs.aws-documentation-mcp-server.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
},
"awslabs.terraform-mcp-server": {
"command": "/Users/UserName/.local/bin/uvx",
"args": [
"--from",
"awslabs-terraform-mcp-server",
"awslabs.terraform-mcp-server.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"PYTHONUTF8": "1"
},
"disabled": false,
"autoApprove": []
}
}
}
terraform-mcp-serverについて、環境変数に"PYTHONUTF8": "1”
を追加しないと正常に使用できない。
エラーログをClaudeに調査してもらったところ、以下のエラーが発生していた。
エラータイプ: UnicodeDecodeError
詳細内容: 'cp932' codec can't decode byte 0xef in position 566: illegal multibyte sequence
このエラーは、文字エンコーディングの問題を示しています。cp932(日本語Windows環境でよく使われるエンコーディング)が、ファイル内のバイトシーケンスを正しくデコードできていません。
Claude Desktopでのエラー内容
AWS Documentation MCP Server やAWS Terraform MCP Serverのドキュメントでは args
に "awslabs.terraform-mcp-server@latest”
と指定していますが、Windows 環境では書き方が異なるらしいです。
その点に触れられている記事はこちらです。
https://qiita.com/revsystem/items/1e4c738ecaeacb7f133d
左上の三 > ファイル > 終了からClaudeを終了し、再度開きます。
これで設定は完了です。次はきちんと設定ができているか確認し、実際に使ってみます。
実際に使ってみる
使用前確認
使用前にきちんと設定ができているか確認します。
awslabs.terraform-mcp-serverとの接続確認
awslabs.aws-documentation-mcp-serverとの接続も確認
使用してみる
「“awslabs.terraform-mcp-server”からのツールを許可しますか?」との表示がでており、正常に利用できる状態となっていることがわかります。
感想
Terraformを使用してAWS環境を構築する場合はとても役立ちそうだと思いました。AWS Terraform MCP ServerとAWS Documentation MCP Serverを組み合わせて利用することで、AWS・Terraformどちらのベストプラクティスも踏まえたTerraformコード、AWS環境が構築できそうです。
今回は実際にTerraformコマンドを実行してもらってはいないですが、次はTerraformコマンドを実行してもらうところまでやってみようと思います。
参考URL
AWS Terraform MCP Server
- https://awslabs.github.io/mcp/servers/terraform-mcp-server/
- https://github.com/awslabs/mcp/blob/main/src/terraform-mcp-server/README.md
- https://github.com/awslabs/mcp?tab=readme-ov-file#aws-terraform-mcp-server