Azure MCP Server について
Azure MCP Serverは、Azure CLIコマンドを通じてAzure Cloudの操作を提供します。サービスプリンシパル認証に対応し、MCPクライアントから幅広いAzureリソースを管理するユーザー向けです。
主な機能
- 01仮想マシンとスケールセットの管理
- 02ストレージアカウントとコンテナーの管理
- 03WebアプリとFunction Appsの操作
- 04ネットワークとデータベースの確認
- 05Key VaultのシークレットとマネージドIDの管理
- 06リソースグループ、ロール、サブスクリプションの管理
活用シーン
- 01Azureのコンピューティングリソースの一覧表示や管理
- 02ストレージやアプリリソースの作成・削除
- 03Azureサブスクリプションとリソースグループの確認
- 04Key Vaultのシークレットとロール割り当ての管理
MCP 対応
Azure CLIを介した操作をツールとしてMCPクライアントに提供し、コンピューティング、ストレージ、ネットワーク、データベース、セキュリティ、サブスクリプションを管理します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Azure MCP サーバー
Azure CLI コマンドを通じて、Azure Cloud リソースへのプログラムによるアクセスを提供する Model Context Protocol(MCP)サーバーの実装です。このサーバーにより、Azure サービスとシームレスに統合でき、幅広い Azure 操作を実行できます。
機能
認証
- Service Principal 認証のサポート
- トークンの自動管理
- 環境変数による設定
サポート対象の Azure 操作
コンピューティング
- Virtual Machines(一覧表示、詳細表示、起動、停止、削除、再起動)
- Virtual Machine Scale Sets(一覧表示、スケーリング、更新)
- Azure Kubernetes Service(クラスターの一覧表示)
ストレージ
- Storage Accounts(一覧表示、詳細表示、作成、削除)
- Storage Containers(一覧表示、作成、削除)
App Services
- Web Apps(一覧表示、詳細表示、作成、削除、起動、停止、再起動)
- Function Apps(一覧表示、詳細表示、削除、起動、停止、再起動)
- デプロイの管理
ネットワーク
- Virtual Networks(一覧表示)
- Network Security Groups(一覧表示)
- Public IP Addresses(一覧表示)
データベース
- SQL Servers(一覧表示)
- Cosmos DB Accounts(一覧表示)
セキュリティ
- Key Vaults(一覧表示、作成、削除)
- シークレット管理(一覧表示、設定、削除)
- Managed Identities(一覧表示)
Container Registry
- レジストリ管理(一覧表示、作成、削除、更新)
- リポジトリ管理(一覧表示)
リソース管理
- Resource Groups(一覧表示、詳細表示、作成、削除)
- Role Assignments(一覧表示、作成、削除)
- Role Definitions(一覧表示)
- サブスクリプション管理(一覧表示、詳細表示)
前提条件
- Python 3.13 以降
- Azure CLI がインストールされ、設定済みであること
- Azure サブスクリプションと適切な権限
- 必要なアクセス権を持つ Service Principal
インストール
- リポジトリをクローンします:
git clone <repository-url>
cd py-az-mcp
uvを使用して依存関係をインストールします:
uv pip sync
または、pyproject.toml から直接インストールします:
uv pip install -e .
設定
- ユーティリティスクリプトを実行して、Service Principal を作成し、環境変数を設定します:
python create_service_principal.py
このスクリプトでは、次の処理が行われます:
- Azure に対話形式で認証します
- Contributor ロールを持つ新しい Service Principal を作成します
- 必要な認証情報を含む
.envファイルを自動的に生成します:- AZURE_CLIENT_ID
- AZURE_CLIENT_SECRET
- AZURE_TENANT_ID
- AZURE_SUBSCRIPTION_ID
注:セキュリティ上の理由により、.env ファイルは自動的に git の追跡対象から除外されます。
Claude Desktop の設定
この MCP サーバーを Claude Desktop で使用するには、次のように設定します:
- Claude Desktop の設定ファイルを作成または更新します:
{
"mcpServers": {
"Azure": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"/your-path-to/py-az-mcp/server-azure.py"
]
}
}
}
設定ファイルの場所:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
-
両方のパスの
YOUR_USERNAMEを、実際のシステムユーザー名に置き換えます。 -
仮想環境が適切に設定されていることを確認します:
cd /Users/YOUR_USERNAME/Source/Code/py-az-mcp
python -m venv .venv
source .venv/bin/activate
pip install mcp[cli]
- 設定を確認します:
- Claude Desktop を開きます
- 設定アイコン(⚙️)をクリックします
- 「MCP Servers」セクションに移動します
- Azure サーバーが一覧に表示され、有効になっていることを確認します
注:Claude Desktop が必要に応じてサーバーを自動的に起動します。Claude を通じて Azure コマンドを使用する前に、.env ファイル内のすべての環境変数が適切に設定されていることを確認してください。
使用方法
- MCP サーバーを起動します:
uv run --with mcp[cli] mcp run server-azure.py
- サーバーは
http://127.0.0.1:6274で利用できます。
API 呼び出しの例
すべてのサブスクリプションを一覧表示します:
curl -X POST http://127.0.0.1:6274/tool/azure-cli -H "Content-Type: application/json" -d '{"command": "account list --output json"}'
すべてのリソースグループを一覧表示します:
curl -X POST http://127.0.0.1:6274/tool/azure-cli -H "Content-Type: application/json" -d '{"command": "group list --output json"}'
依存関係
- Python >= 3.13
- mcp[cli] >= 1.6.0
- python-dotenv >= 1.0.0
- asyncio >= 3.4.3
- Azure CLI >= 2.57.0(システム要件)
プロジェクト構成
server-azure.py:Azure CLI 統合を含む MCP サーバーのメイン実装create_service_principal.py:Azure Service Principal を作成するユーティリティスクリプトmain.py:パッケージのエントリーポイント(プレースホルダー)pyproject.toml:プロジェクトの依存関係と設定.env:環境変数の設定(git では追跡されません).python-version:Python のバージョン要件
エラー処理
サーバーには、包括的なエラー処理が含まれています。
- すべてのレスポンスに対する JSON 検証
- Azure CLI のエラー捕捉と整形
- 認証エラーの処理
- パラメーターの検証
セキュリティに関する考慮事項
- サービスプリンシパル認証を使用します
- 機密データの環境変数による設定をサポートします
- 情報漏えいを防ぐため、適切なエラー処理を実装します
- すべての入力パラメーターを検証します
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更をコミットします
- ブランチにプッシュします
- 新しいプルリクエストを作成します
ライセンス
MIT ライセンス
Copyright (c) 2025
本ソフトウェアおよび関連するドキュメントファイル(以下「本ソフトウェア」)の複製を取得するすべての人に対し、本ソフトウェアを無制限に取り扱うことを無償で許可します。これには、本ソフトウェアを使用、複製、変更、結合、公開、配布、サブライセンス、販売する権利、および本ソフトウェアを提供する人に同様の権利を許可する権利が含まれますが、これらに限定されません。ただし、以下の条件に従うものとします。
上記の著作権表示および本許諾表示は、本ソフトウェアのすべての複製または重要な部分に含めるものとします。
本ソフトウェアは「現状のまま」提供され、商品性、特定の目的への適合性、および権利非侵害に関する保証を含むがこれらに限定されない、明示または黙示を問わず、いかなる種類の保証もありません。作者または著作権者は、契約、不法行為、その他の行為に起因するかを問わず、本ソフトウェアまたは本ソフトウェアの使用、その他の取引に起因または関連して生じるいかなる請求、損害、その他の責任についても責任を負いません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。