Terraform MCP Server について
Terraform MCP Serverは、Terraform Registryの情報をMCPクライアントに提供するサーバーです。IaC開発者向けに、プロバイダー文書の検索やモジュールの探索・確認を支援します。
主な機能
- 01プロバイダー文書の検索
- 02プロバイダーのリソースとデータソース文書の取得
- 03Terraformモジュールの検索
- 04モジュールの入出力とサンプルの確認
活用シーン
- 01Terraformプロバイダーと関連文書の検索
- 02プロバイダーのリソースやデータソースの確認
- 03インフラプロジェクト向けモジュールの探索
- 04モジュール設定とサンプルの確認
MCP 対応
Terraform Registryのプロバイダーおよびモジュールを検索・参照するツールをMCPクライアントに公開します。プロバイダー文書の取得にも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Terraform MCP サーバー
Terraform MCP サーバーは、Model Context Protocol(MCP)サーバーです。Terraform Registry API とシームレスに統合し、Infrastructure as Code(IaC)開発の高度な自動化機能と操作機能を提供します。
ユースケース
- Terraform プロバイダーとモジュールの検索を自動化する
- Terraform Registry からデータを抽出して分析する
- プロバイダーのリソースとデータソースに関する詳細情報を取得する
- Terraform モジュールを調査して理解する
Caution: MCP サーバーが提供する出力や推奨事項は動的に生成されるため、クエリ、モデル、接続されている MCP サーバーによって異なる場合があります。ユーザーは、実装前にすべての出力/推奨事項を十分に確認し、組織のセキュリティのベストプラクティス、コスト効率の目標、コンプライアンス要件に沿っていることを確認してください。
前提条件
- サーバーをコンテナーで実行するには、Docker がインストールされている必要があります。
- Docker をインストールしたら、Docker が実行中であることを確認してください。
インストール
VS Code での使用
以下の JSON ブロックを VS Code のユーザー設定(JSON)ファイルに追加します。Ctrl + Shift + P を押して Preferences: Open User Settings (JSON) と入力すると追加できます。
VS Code で MCP サーバーツールを使用する方法については、エージェントモードのドキュメントをご覧ください。
{
"mcp": {
"servers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"hashicorp/terraform-mcp-server"
]
}
}
}
}
必要に応じて、同様の例(mcp キーなし)を、ワークスペース内の .vscode/mcp.json というファイルに追加できます。これにより、設定をほかのユーザーと共有できます。
{
"servers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"hashicorp/terraform-mcp-server"
]
}
}
}
Claude Desktop で MCP サーバーツールを使用する方法については、ユーザードキュメントをご覧ください。
Claude Desktop での使用
{
"mcpServers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"hashicorp/terraform-mcp-server"
]
}
}
}
ツールの設定
利用可能なツールセット
以下のツールセットを利用できます。
| ツールセット | ツール | 説明 |
|---|---|---|
providers | resolveProviderDocID | Terraform Registry を検索し、指定された serviceSlug を使用して特定のプロバイダーで利用可能なドキュメントを一覧表示します。リソース、データソース、関数、ガイドのドキュメント ID を、タイトルとカテゴリとともに返します。 |
providers | getProviderDocs | resolveProviderDocID ツールで取得したドキュメント ID を使用して、特定のプロバイダーのリソース、データソース、関数に関するドキュメント全体を取得します。生のドキュメントを Markdown 形式で返します。 |
modules | searchModules | 指定した moduleQuery に基づいて、ページネーションを使用しながら Terraform Registry のモジュールを検索します。モジュール ID、名前、説明、ダウンロード数、検証状況、公開日を一覧で返します。 |
modules | moduleDetails | searchModules ツールで取得したモジュール ID を使用して、入力、出力、設定、サブモジュール、例を含むモジュールの詳細なドキュメントを取得します。 |
ソースからインストール
最新のリリースバージョンを使用します。
go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@latest
main ブランチを使用します。
go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@main
{
"mcp": {
"servers": {
"terraform": {
"command": "/path/to/terraform-mcp-server",
"args": ["stdio"]
}
}
}
}
Docker イメージをローカルでビルドする
サーバーを使用する前に、Docker イメージをローカルでビルドする必要があります。
- リポジトリをクローンします。
git clone https://github.com/hashicorp/terraform-mcp-server.git
cd terraform-mcp-server
- Docker イメージをビルドします。
make docker-build
これにより、次の設定で使用できるローカル Docker イメージが作成されます。
{
"servers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"terraform-mcp-server"
]
}
}
}
開発
前提条件
- Go(特定のバージョンについては go.mod ファイルを確認してください)
- Docker(任意。コンテナのビルドに使用します)
テストの実行
# Run all tests
make test
# Run e2e tests
make test-e2e
利用可能な Make コマンド
make build # Build the binary
make test # Run all tests
make test-e2e # Run end-to-end tests
make clean # Remove build artifacts
make deps # Download dependencies
make docker-build # Build docker image
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- テストを実行します
- プルリクエストを送信します
ライセンス
このプロジェクトは、MPL-2.0 オープンソースライセンスの条件に基づいてライセンスされています。詳細な条件については、LICENSE ファイルを参照してください。
セキュリティ
セキュリティに関する問題は、[email protected] に連絡するか、セキュリティポリシーに従って報告してください。
サポート
バグの報告や機能のリクエストについては、GitHub でイシューを作成してください。
一般的な質問やディスカッションについては、GitHub Discussion を開始してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。