mcp-azure について
mcp-azureは、Azure Resource Managerを介してAzureリソースを棚卸し、操作するMCPサーバーです。ガバナンス設定で操作範囲や書き込み権限を制限し、破壊的操作に確認や監査を適用できます。
主な機能
- 01サブスクリプションとリソースの一覧表示
- 02リソースグループ作成とタグの追加
- 03VMの電源状態の制御
- 04権限で制限されたリソース削除
- 05許可リストとアクセスモードの設定
- 06ドライランとJSON監査ログ
活用シーン
- 01サブスクリプションとリソースグループの確認
- 02リソースへのタグ付けやVMの制御
- 03エージェントの操作先を承認済みの範囲に制限
- 04破壊的な変更前の確認必須化
MCP 対応
Azure Resource Managerの棚卸し・操作ツールをMCPクライアントに公開します。利用できるツールはアクセスモードに応じて変わり、破壊的操作には人間による確認や指定文字列の入力を要求できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @dockndevai/mcp-azureAZURE_TENANT_IDEntra ID tenant id.AZURE_CLIENT_IDApp registration (service principal) client id.AZURE_CLIENT_SECRETシークレットService principal client secret.AZURE_SUBSCRIPTION_IDDefault subscription id.AZURE_MODEAccess mode: read-only | read-write | admin.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
5掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
mcp-azure
Azure 用の Model Context Protocol サーバーです(Azure Resource Manager API 経由。Azure Portal の背後にあるプログラム用レイヤーです)。MCP 対応クライアント(Claude Desktop、Claude Code、Cursor、Codex、…)から Azure リソースをインベントリ化して操作できます。ガバナンスレイヤーにより、AI エージェントの動作を安全な範囲内に保ちます。
提供機能
- インベントリ — サブスクリプション、リージョン、リソースグループ、リソースを一覧表示し、ARM ID で任意のリソースを取得します。
- 操作 — リソースグループの作成(許可されたリージョンのみ)、任意のリソースへのタグのマージ、VM の電源状態の制御(起動/停止/再起動/割り当て解除)を行います。
- ライフサイクル — ガード付きで、リソースグループおよび個々のリソースを削除します。
- ガバナンスを組み込み済み — アクセスモード、サブスクリプション/リソースグループの許可リスト、保護対象のリソースグループ、新規グループ用のリージョン許可リスト、削除ゲート、高影響の削除に対する確認文字列の入力、ドライラン、JSON 監査ログを備えています。
ガバナンスとセキュリティモデル
| 懸念事項 | フラグ | デフォルト | 効果 |
|---|---|---|---|
| サーバーが実行できる操作 | AZURE_MODE | read-only | read-only → インベントリ、read-write → RG の作成、タグ付け、VM の電源操作、admin → 削除。現在のモードで許可されないツールは登録されません。 |
| 対象となるサブスクリプション | AZURE_SUBSCRIPTION_ALLOWLIST | (すべて) | 他のサブスクリプションに対する操作は拒否されます。 |
| 対象となるリソースグループ | AZURE_RESOURCE_GROUP_ALLOWLIST | (すべて) | リスト外の操作は拒否されます。 |
| 常時読み取り専用のグループ | AZURE_PROTECTED_RESOURCE_GROUPS | (なし) | 読み取りはできますが、変更はできません。 |
| 承認済みリージョン | AZURE_LOCATION_ALLOWLIST | (任意) | 新しいリソースグループは、この中のリージョンにのみ作成できます。 |
| 削除できるか | AZURE_ALLOW_DELETE | false | 削除には、この設定と admin モードの両方が必要です。 |
| 確認文字列の入力 | AZURE_REQUIRE_CONFIRMATION | true | 削除時には、単なるブール値ではなく、confirm が対象名と一致する必要があります。 |
| プレビュー | AZURE_DRY_RUN | false | 書き込み/admin ツールは検証して実行予定を記録した後、戻ります。 |
| 監査証跡 | AZURE_AUDIT_LOG | true | ガード対象の操作ごとに、JSON 形式の1行を stderr に出力します。 |
| 対話型確認 | (自動) | — | 破壊的な操作および高影響の操作を実行する前に、MCP elicitation を介して人間に承認を求めます。elicitation に対応していないクライアントでは、*_ALLOW_* ゲートにフォールバックします。 |
ツール
読み取り(read-only 以上):list_subscriptions、list_locations、list_resource_groups、list_resources、get_resource
書き込み(read-write 以上):create_resource_group、tag_resource、control_vm
管理者(admin):delete_resource_group、delete_resource(どちらも AZURE_ALLOW_DELETE と確認文字列 confirm が必要です)
クイックスタート — エージェントに追加する
npm で @dockndevai/mcp-azure として公開されています。Entra ID サービスプリンシパルを使用して npx 経由で実行します。各クライアントについては docs/CLIENTS.md、すべての変数については .env.example を参照してください。
Claude Code
claude mcp add azure -e AZURE_TENANT_ID="…" -e AZURE_CLIENT_ID="…" -e AZURE_CLIENT_SECRET="…" -e AZURE_SUBSCRIPTION_ID="…" -e AZURE_MODE="read-only" -- npx -y @dockndevai/mcp-azure
Claude Desktop · Cursor · Windsurf
{
"mcpServers": {
"azure": {
"command": "npx",
"args": ["-y", "@dockndevai/mcp-azure"],
"env": {
"AZURE_TENANT_ID": "…",
"AZURE_CLIENT_ID": "…",
"AZURE_CLIENT_SECRET": "…",
"AZURE_SUBSCRIPTION_ID": "…",
"AZURE_MODE": "read-only"
}
}
}
}
プロンプトの例
- 「サブスクリプション内のすべてのリソースグループと、それぞれのリージョンを一覧表示して」
- 「rg-web グループ内のすべてのリソースを表示して」
- 「app-plan リソースに env=prod と owner=team-a のタグを付けて」(read-write が必要です)
- 「rg-ci 内の build-agent VM を停止して」(read-write が必要です)
ソースから実行する(開発)
npm install
npm run build
node dist/index.js # with the environment variables set
開発
npm run dev
npm test # governance policy: modes, scoping, location allowlist, delete + confirmation
npm run typecheck
公開
公式 MCP レジストリ用の server.json と、npm の所有権検証用の mcpName が同梱されています。PUBLISHING.md を参照してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。