Azure Terraform 向け Azure MCP Server ツールの概要

Azure MCP Server ツールは、自然言語プロンプトを使用して Terraform for Azureを操作するのに役立ちます。 conftest を使用して、AzureRM と AzAPI プロバイダーのドキュメントを取得し、Azure検証済みモジュールを検出し、既存のAzure リソースを Terraform 構成にエクスポートし、Azure ポリシー ライブラリ (policy-library-avm) に対して Terraform ワークスペースとプランを検証できます。

Azure Terraform ツールは、プロバイダードキュメントの参照からリソースのエクスポートとポリシー検証まで、Azure上の Terraform を使用したコードとしてのインフラストラクチャの完全なライフサイクルをカバーします。 詳細については、Azureドキュメントの Terraform を参照してください。

Note

ツールの注釈は、Azure側の動作のみを記述します。 このファミリの一部のツールでは、エージェントを実行するためのローカル ファイルまたはコマンドが生成されます。これは注釈ヒントには反映されません。

Note

ツール パラメーター: Azure MCP Server ツールは、タスクを完了するために必要なデータのパラメーターを定義します。 これらのパラメーターの一部は、各ツールに固有であり、ここに記載されています。 その他のパラメーターはグローバルであり、すべてのツールで共有されます。 詳細については、「 ツールパラメーター」を参照してください。

AzureRM プロバイダーのドキュメントを取得する

指定したリソースの種類に関する包括的な AzureRM Terraform プロバイダードキュメントを取得します。 リソースの概要、説明と要件を含む引数、属性、使用例、および重要な注意事項を返します。

プロンプトの例を次に示します。

  • リソース ドキュメントを取得する: "azurerm_resource_groupの Terraform ドキュメントを表示する"
  • データ ソースを検索する: "azurerm_storage_accountのデータ ソースドキュメントを取得する"
  • 引数でフィルター処理する: "address_spaceazurerm_virtual_network引数のドキュメントを表示します。"
  • 属性を確認する: "azurerm_key_vaultの属性を表示する"
パラメーター 必須またはオプション Description
リソースの種類 Required AzureRM Terraform リソースの種類名 (たとえば、 azurerm_resource_groupazurerm_storage_account)。 azurerm_ プレフィックスは省略可能です。
ドキュメントの種類 Optional 取得するドキュメントの種類。 オプション: resource (既定)、 data-source
引数 Optional 結果を特定の引数名にフィルター処理します。
属性 Optional 結果を特定の属性名にフィルター処理します。

ArgumentまたはAttributeのいずれかを指定します。ツールはその特定の要素の種類のドキュメントを検索します。

ツール注釈ヒント:

破壊的な 冪等性 オープン ワールド [読み取り専用] Secret ローカル必須

AzAPI プロバイダーのドキュメントを取得する

指定したAzure リソースの種類の AzAPI Terraform プロバイダーのドキュメントとスキーマを取得します。 型と要件を持つプロパティ定義、親リソース情報、Terraform の使用例など、 azapi_resource ブロックに適した HCL 形式のリソース スキーマを返します。 このツールは、Azure Bicep型定義を再利用して、正確な AzAPI スキーマを生成します。

プロンプトの例を次に示します。

  • リソース スキーマを取得: "Microsoft.Compute/virtualMachines の AzAPI スキーマを表示して"
  • 特定の API バージョン: "API バージョン 2023-05-01 の Microsoft.Storage/storageAccounts に関する AzAPI ドキュメントを取得します"
  • リソースの種類を調べる: 「AzAPI では Microsoft.Network/virtualNetworks にはどのようなプロパティがありますか?」
パラメーター 必須またはオプション Description
リソースの種類 Required ARM 形式のAzureリソースの種類 (例: Microsoft.Compute/virtualMachinesMicrosoft.Storage/storageAccounts)。
API バージョン Optional リソース スキーマに使用する API バージョン。 省略すると、最新の安定バージョンが使用されます。

ツール注釈ヒント:

破壊的な 冪等性 オープン ワールド [読み取り専用] Secret ローカル必須

検証済みモジュールAzure一覧表示する

Terraform で使用可能なすべてのAzure検証済みモジュール (AVM) を取得します。 モジュールの名前、説明、ソース参照、およびリポジトリ URL を含むモジュールの一覧を返します。 ソース フィールドは、Terraform モジュール ブロックで直接使用できます。

プロンプトの例を次に示します。

  • すべてのモジュールを一覧表示します: "Terraform の検証済みモジュールAzure使用可能なすべてのモジュールを一覧表示する"
  • Find モジュール: "どのようなAzure検証済みモジュールをストレージに使用できますか?
  • モジュールを参照する: "AVM モジュール カタログを表示する"

このツールには、必要なパラメーターはありません。

ツール注釈ヒント:

破壊的な 冪等性 オープン ワールド [読み取り専用] Secret ローカル必須

Azure Verified Modules のバージョンを取得

指定した Azure Verified Module (AVM) の使用可能なすべてのバージョンを取得します。 新しい日付から最も古いものに並べ替えられた、作成日を含むバージョン タグを返します。 一覧の最初のバージョンが最新です。

プロンプトの例を次に示します。

  • バージョンを確認する: "avm-res-storage-storageaccount で使用できるバージョンは何ですか?
  • 最新バージョン: "仮想ネットワーク用 AVM モジュールの最新バージョンは何ですか?
パラメーター 必須またはオプション Description
モジュール名 Required Azure検証済みモジュールの名前 (例: avm-res-storage-storageaccount)。

ツール注釈ヒント:

破壊的な 冪等性 オープン ワールド [読み取り専用] Secret ローカル必須

検証済みモジュールAzureドキュメントを取得する

Azure検証済みモジュール (AVM) の特定のバージョンのドキュメント (README.md) を取得します。 使用例、入力変数、出力値、リソースの説明など、モジュールの完全なドキュメントを返します。

プロンプトの例を次に示します。

  • モジュール ドキュメントを取得する: "avm-res-storage-storageaccount バージョン 0.4.0 のドキュメントを表示する"
  • 使用例: "AVM キー コンテナー モジュール バージョン 0.3.0 の使用例を取得する"
パラメーター 必須またはオプション Description
モジュール名 Required Azure検証済みモジュールの名前 (例: avm-res-storage-storageaccount)。
モジュールのバージョン Required Azure検証済みモジュールのバージョン (たとえば、0.4.0)。

ツール注釈ヒント:

破壊的な 冪等性 オープン ワールド [読み取り専用] Secret ローカル必須

1 つのリソースを Terraform にエクスポートする

1 つのAzure リソースを Terraform 構成にエクスポートする aztfexport コマンドを生成します。 ローカルで実行するエージェントのコマンドと引数を返します。 aztfexportがローカルにインストールされていない場合は、代わりにインストール手順を返します。

プロンプトの例を次に示します。

  • リソースのエクスポート: "ストレージ アカウントを Terraform 構成にエクスポートする"
  • AzAPI プロバイダーを使用する: "リソース /subscriptions/.../storageAccounts/myaccount を azapi プロバイダーを使用してエクスポートする"
  • カスタム名: "リソース名 'primary_vm' を使用して Terraform にこの VM をエクスポートする"

権威のあるエクスポートの場合、これを false に設定します。true の場合、エクスポートは、リソースがスキップされたり、「コードとしてのインフラ」が不完全な状態で完了する場合があります。

パラメーター 必須またはオプション Description
リソース ID Required エクスポートする完全なAzure リソース ID (たとえば、/subscriptions/.../resourceGroups/.../providers/Microsoft.Storage/storageAccounts/mystorageaccount)。
出力フォルダー Optional 生成された Terraform ファイルの出力フォルダー名。 既定値なし - 省略すると、ツールによってパスの入力が求められます。
プロバイダー Optional 使用する Terraform プロバイダー: azurerm (既定) または azapi
Terraform リソース名 Optional 生成された Terraform 構成で使用するカスタム リソース名。
ロールの割り当てを含める Optional ロールの割り当てをエクスポートに含めます。
並列処理 Optional 並列操作の数 (既定値: 10、最大: 50)。
エラーが発生した場合は続行 Optional 一部のリソースが失敗した場合でもエクスポートを続行します (既定値: true)。

ツール注釈ヒント:

破壊的な 冪等性 オープン ワールド [読み取り専用] Secret ローカル必須

リソース グループを Terraform にエクスポートする

Azure リソース グループとそのすべてのリソースを Terraform 構成にエクスポートするaztfexport コマンドを生成します。 ローカルで実行するエージェントのコマンドと引数を返します。 aztfexportがローカルにインストールされていない場合は、代わりにインストール手順を返します。

プロンプトの例を次に示します。

  • リソース グループのエクスポート: "my-app-rg リソース グループを Terraform にエクスポートする"
  • カスタム名前付け: "名前パターン 'prod_{type}' を使用してリソース グループ production-rg をエクスポートする"
  • AzAPI を使用する: "azapi プロバイダーを使用してリソース グループを Terraform にエクスポートする"

権威のあるエクスポートの場合、これを false に設定します。true の場合、エクスポートは、リソースがスキップされたり、「コードとしてのインフラ」が不完全な状態で完了する場合があります。

パラメーター 必須またはオプション Description
リソース グループ Required エクスポートするAzure リソース グループの名前。
出力フォルダー Optional 生成された Terraform ファイルの出力フォルダー名。 既定値なし - 省略すると、ツールによってパスの入力が求められます。
プロバイダー Optional 使用する Terraform プロバイダー: azurerm (既定) または azapi
名前パターン Optional 生成された Terraform 構成でリソースに名前を付けるためのパターン。
ロールの割り当てを含める Optional ロールの割り当てをエクスポートに含めます。
並列処理 Optional 並列操作の数 (既定値: 10、最大: 50)。
エラーが発生した場合は続行 Optional 一部のリソースが失敗した場合でもエクスポートを続行します (既定値: true)。

ツール注釈ヒント:

破壊的な 冪等性 オープン ワールド [読み取り専用] Secret ローカル必須

クエリによるリソースの Terraform へのエクスポート

aztfexport コマンドを生成して、Azure Resource Graph クエリに一致するリソースAzure Terraform 構成にエクスポートします。 ローカルで実行するエージェントのコマンドと引数を返します。 aztfexportがローカルにインストールされていない場合は、代わりにインストール手順を返します。

プロンプトの例を次に示します。

  • 種類別のエクスポート: "すべてのストレージ アカウントを Terraform にエクスポートする"
  • クエリによるエクスポート: "type =~ 'Microsoft.Web/sites' に一致するリソースを Terraform にエクスポート"
  • カスタム出力: "'infra-output' フォルダー内のすべての VM を Terraform にエクスポートする"

権威のあるエクスポートの場合、これを false に設定します。true の場合、エクスポートは、リソースがスキップされたり、「コードとしてのインフラ」が不完全な状態で完了する場合があります。

パラメーター 必須またはオプション Description
Query Required エクスポート対象のリソースを選択するための Azure Resource Graph KQL の WHERE 句 (たとえば、type =~ 'Microsoft.Storage/storageAccounts')。
出力フォルダー Optional 生成された Terraform ファイルの出力フォルダー名。 既定値なし - 省略すると、ツールによってパスの入力が求められます。
プロバイダー Optional 使用する Terraform プロバイダー: azurerm (既定) または azapi
名前パターン Optional 生成された Terraform 構成でリソースに名前を付けるためのパターン。
ロールの割り当てを含める Optional ロールの割り当てをエクスポートに含めます。
並列処理 Optional 並列操作の数 (既定値: 10、最大: 50)。
エラーが発生した場合は続行 Optional 一部のリソースが失敗した場合でもエクスポートを続行します (既定値: true)。

ツール注釈ヒント:

破壊的な 冪等性 オープン ワールド [読み取り専用] Secret ローカル必須

ポリシーに対して Terraform ワークスペースを検証する

Azure ポリシーに対してワークスペース内の Terraform conftest ファイルを検証する .tf コマンドを生成します。 ローカルで実行するエージェントのコマンドと引数を返します。 構成可能なポリシー セットを使用した検証には、Azure ポリシー ライブラリ (policy-library-avm) を使用します。 conftestがローカルにインストールされていない場合は、代わりにインストール手順を返します。

プロンプトの例を次に示します。

  • ワークスペースを検証: "Azure ポリシーに照らして Terraform ワークスペースを検証する"
  • 特定のポリシー セット: "Azure Proactive Resiliency Library に照らして Terraform ファイルを確認する"
  • セキュリティ ポリシー: "Terraform ワークスペースで重大度の高いフィルターを使用して avmsec ポリシーを実行する"
パラメーター 必須またはオプション Description
ワークスペース フォルダー Required 検証するファイル .tf 含む Terraform ワークスペース フォルダーへのパス。
ポリシー セット Optional 検証に使用するポリシー セット: all (既定値)、Azure-Proactive-Resiliency-Library-v2、または avmsec
重大度フィルター Optional avmsec ポリシーの重大度フィルター: highmediumlow、または info。 ポリシー セットが avmsecされている場合にのみ適用されます。 デフォルトなし — すべての重大度を含む。
カスタム ポリシー Optional 検証に含めるカスタム ポリシー パスのコンマ区切りの一覧。

ツール注釈ヒント:

破壊的な 冪等性 オープン ワールド [読み取り専用] Secret ローカル必須

ポリシーに対して Terraform プランを検証する

conftest コマンドを生成して、Azure ポリシーに対して Terraform プランの JSON ファイルを検証します。 ローカルで実行するエージェントのコマンドと引数を返します。 構成可能なポリシー セットを使用した検証には、Azure ポリシー ライブラリ (policy-library-avm) を使用します。 conftestがローカルにインストールされていない場合は、代わりにインストール手順を返します。

プロンプトの例を次に示します。

  • プランの検証: "Terraform プランが Azure ポリシーに準拠しているか検証する"
  • Resiliency check: "Azure プロアクティブな回復性ライブラリに対する tfplan.json の確認"
  • 重大度でフィルター処理する: "Terraform プランで重大度が中程度の avmsec ポリシーを実行する"
パラメーター 必須またはオプション Description
プラン フォルダー Required 検証する Terraform プラン JSON ファイル (tfplan.json) を含むフォルダーへのパス。
ポリシー セット Optional 検証に使用するポリシー セット: all (既定値)、Azure-Proactive-Resiliency-Library-v2、または avmsec
重大度フィルター Optional avmsec ポリシーの重大度フィルター: highmediumlow、または info。 ポリシー セットが avmsecされている場合にのみ適用されます。 デフォルトなし — すべての重大度を含む。
カスタム ポリシー Optional 検証に含めるカスタム ポリシー パスのコンマ区切りの一覧。

ツール注釈ヒント:

破壊的な 冪等性 オープン ワールド [読み取り専用] Secret ローカル必須