この記事では、複数の Azure サービスを操作する方法、エラーを処理する方法、パフォーマンスを最適化する方法、実際のシナリオに共通パターンを適用する方法など、Azure MCP Server を効果的に使用するための基本的な概念について説明します。
マルチサービス ワークフロー
Azure MCP Server は、1 つの会話またはワークフローで複数の Azure サービス間で操作を調整できます。 この機能を使用すると、コンテキストを切り替えることなく、Azure Storage、Azure Cosmos DB、Azure Key Vault などのサービス間で操作をチェーンできます。
マルチサービス操作のサーバー モード
Azure MCP Server では、ツールの公開方法と、複数のサービスとの対話方法に影響するさまざまなモードがサポートされています。
名前空間モード (既定)
名前空間モードでは、Azure サービスごとにツールがグループ化され、サービス名前空間ごとに 1 つのツールが公開されます。 このモードは、マルチサービス ワークフローにバランスの取れたアプローチを提供します。
{
"mcpServers": {
"Azure MCP Server": {
"command": "npx",
"args": ["-y", "@azure/mcp@latest", "server", "start"]
}
}
}
名前空間モードでは、次のような要求を行うことができます。
- "ストレージ アカウントを一覧表示し、最初のアカウントのコンテナーを表示する"
- "キー コンテナーからシークレットを取得し、それらを使用して Cosmos DB データベースに接続する"
統合モード (AI エージェントに推奨)
統合モードでは、関連する操作が AI エージェント用に最適化されたキュレーションされたツールにグループ化されます。 このモードは、機能と使いやすさの最適なバランスを提供します。
{
"mcpServers": {
"Azure MCP Server": {
"command": "npx",
"args": ["-y", "@azure/mcp@latest", "server", "start", "--mode", "consolidated"]
}
}
}
統合ツールは、ユーザーの意図 ( get_azure_databases_details など) に名前が付けられ、自然言語の操作に対してより直感的になります。
使用可能なサーバー モードとその構成の完全な一覧については、 トラブルシューティング ガイドを参照してください。
すべてのモード
all モードでは、200 以上の個々のツールが個別に公開されます。 このモードは、細かく制御する必要があるが、一部のクライアントでツールの制限を超える可能性がある場合に便利です。
{
"mcpServers": {
"Azure MCP Server": {
"command": "npx",
"args": ["-y", "@azure/mcp@latest", "server", "start", "--mode", "all"]
}
}
}
サービス間の操作の連鎖
1 つの会話で複数の Azure サービス間で操作を連結できます。 例えば、あなたは次のことができます:
- Azure Key Vault にデータベース資格情報のクエリを実行する
- これらの資格情報を使用して Azure Cosmos DB に接続する
- Cosmos DB からデータを照会する
- Azure Storage に結果を格納する
サービス間で操作をチェーンするプロンプトの例を次に示します。
- "キー コンテナー 'my-vault' からデータベース接続文字列を取得し、データベースに接続してコレクションを一覧表示する"
- "サブスクリプション内のすべてのストレージ アカウントを一覧表示し、アカウントごとにコンテナーが表示されます"
- 新しいストレージ コンテナーを作成し、キー ボールトのシークレットの内容を Blob にアップロードする
サービスごとのツールのフィルタリング
--namespace オプションを使用して、特定のサービスのみを公開するように Azure MCP サーバーを構成できます。 この方法は、集中型ワークフローや複数の MCP サーバー インスタンスを操作する場合に便利です。
{
"mcpServers": {
"Azure Storage": {
"command": "npx",
"args": ["-y", "@azure/mcp@latest", "server", "start", "--namespace", "storage"]
},
"Azure KeyVault": {
"command": "npx",
"args": ["-y", "@azure/mcp@latest", "server", "start", "--namespace", "keyvault"]
}
}
}
この構成では、Storage と Key Vault 用に個別の MCP サーバー インスタンスが作成されるため、ドメインまたはプロジェクトの要件に応じてツールを整理できます。
エラー処理と再試行のロジック
Azure MCP サーバーは、Azure サービスとの対話時に発生する可能性のあるさまざまなエラー シナリオを処理します。 これらのパターンを理解することは、問題のトラブルシューティングと回復性のあるワークフローの構築に役立ちます。
認証エラー
認証は、Azure リソースを操作するときのエラーの一般的な原因です。
401 未承認のエラー
401 エラーは、アクセス トークンが無効または不足していることを示します。 このエラーは、以下のような場合に発生します。
- リソースでローカル承認 (アクセス キー) が無効になっている
- 認証トークンの有効期限が切れています
- 有効な資格情報は利用可能ではありません
解決方法:
-
az loginまたは優先する認証方法を使用して Azure に対して認証されていることを確認します - リソースで使用している認証方法が許可されていることを確認します
- アクセス キーが無効になっているリソースの場合は、適切な Role-Based アクセス制御 (RBAC) アクセス許可があることを確認します
403 禁止エラー
403 エラーは、認証されたユーザーが要求されたリソースにアクセスするための十分なアクセス許可を持っていないことを示します。
一般的な原因:
- リソース グループまたはサブスクリプション レベルで RBAC アクセス許可がない
- サブスクリプションまたはテナント のコンテキストが正しくありません
- 複数のアカウントがサインインしているときに意図しないアカウントを使用する
解決方法:
- RBAC アクセス許可が適切なスコープで割り当てられているかどうかを確認する
- プロンプトで、サブスクリプションとテナントを明示的に指定します。"テナント
subscription-nameにあるサブスクリプションtenant-name内のすべてのストレージ アカウントを一覧表示する" -
AZURE_MCP_ONLY_USE_BROKER_CREDENTIAL環境変数をtrueに設定して、アカウントの選択を求めるメッセージを表示する
ネットワークとファイアウォールの制限
エンタープライズ環境には、多くの場合、Azure MCP サーバーの接続に影響を与える可能性があるネットワーク制御があります。
認証に必要なエンドポイント:
login.microsoftonline.com:443login.windows.net:443management.azure.com:443graph.microsoft.com:443
リソース固有のエンドポイントは、 使用している Azure サービスによって異なります。次に例を示します。
- Azure Storage:
*.blob.core.windows.net:443 - Azure Key Vault:
*.vault.azure.net:443 - Azure Cosmos DB:
*.documents.azure.com:443
企業プロキシの背後にいる場合は、環境変数を使用してプロキシ設定を構成します。
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
export NO_PROXY=localhost,127.0.0.1
一時的な障害
Azure MCP サーバーは、一時的な障害に対する再試行ロジックが組み込まれている Azure SDK に依存しています。 これらの SDK では、次の処理が自動的に行われます。
- ネットワーク接続の問題
- サービスの調整とレート制限
- 一時的なサービスの利用不可
再試行ポリシーでは、指数バックオフを使用して、負荷が高い状況や障害発生時にサービスが過負荷にならないようにします。
エラー メッセージと診断
エラーが発生すると、Azure MCP サーバーには、問題の理解と解決に役立つ詳細なエラー メッセージが表示されます。 包括的なトラブルシューティング ガイダンスについては、 トラブルシューティング ガイドを参照してください。
Optimization tips (最適化のヒント)
Azure MCP サーバー構成を最適化すると、パフォーマンスが向上し、トークンの使用が減り、ユーザー エクスペリエンスが向上します。
ツール数の管理
MCP クライアントによっては、処理できるツールの数に制限があります。 たとえば、Visual Studio Code Copilot には、要求ごとに 128 ツールの制限があります。
統合モードを使用する
統合モードは、クライアント ツールの制限を十分に満たしながら、完全な機能を提供します。
{
"mcpServers": {
"Azure MCP": {
"command": "npx",
"args": ["-y", "@azure/mcp@latest", "server", "start", "--mode", "consolidated"]
}
}
}
この構成では、関連する操作をグループ化するキュレーションされたツールが公開され、機能と AI エージェントの有効性の両方に最適化されます。
選択的ツールの読み込みを使用する
特定のワークフローに必要なツールのみを読み込みます。
{
"mcpServers": {
"Azure Essentials": {
"command": "npx",
"args": [
"-y",
"@azure/mcp@latest",
"server",
"start",
"--tool",
"azmcp_subscription_list",
"--tool",
"azmcp_group_list",
"--tool",
"azmcp_storage_account_get"
]
}
}
}
カスタム チャット モードを使用する
Visual Studio Code では、さまざまなシナリオに合わせてさまざまなツール セットを構成できる カスタム チャット モード がサポートされています。 この方法では、クライアントの制限内に留めながら、現在のタスクに基づいてツール構成を切り替えることができます。
トークン管理
効果的なトークン管理により、応答時間が向上し、言語モデルを使用するときのコストが削減されます。
特定のプロンプトを使用する
特定のプロンプトにより、ツール呼び出しの数と必要なコンテキストの量が減ります。
効果が低い:
- "Azure リソースについて教えてください"
より効果的:
- "リソース グループ 'my-rg'' のサブスクリプション 'my-subscription' のストレージ アカウントを一覧表示する
- "ストレージ アカウント 'mystorageaccount' の接続文字列を表示する"
操作の範囲を適切に指定する
可能な場合は、サブスクリプション全体を照会するのではなく、特定のリソースまたはリソース グループに操作をスコープします。
効率が低い:
- "サブスクリプション内のすべてのリソースを一覧表示し、ストレージ アカウントをフィルター処理する"
より効率的:
- "リソース グループ 'production-rg' のストレージ アカウントを一覧表示する"
バッチ操作
Azure MCP Server では、特定のシナリオでのバッチ操作がサポートされています。 複数のリソースを使用する場合:
シーケンシャル操作:
List storage accounts, then for each one show the containers
必要に応じて並列操作:
Get details for storage accounts 'account1', 'account2', and 'account3'
Azure MCP サーバーと基になる Azure SDK は、必要に応じてバッチ処理を自動的に処理し、ネットワーク呼び出しを最適化し、待機時間を短縮します。
キャッシュと再利用
Azure MCP サーバーは、セッション中に接続状態を維持します。 パフォーマンスを最適化するには
- 頻繁に起動および停止するのではなく、MCP サーバー インスタンスを実行したままにする
- 後続のクエリでサブスクリプションとリソース グループの情報を再利用する
- リソースの詳細を複数回参照する必要がある場合に、ワークフローにリソースの詳細をキャッシュする
一般的なユース ケース
Azure MCP Server では、さまざまな実際のシナリオがサポートされています。 このセクションでは、一般的なパターンとワークフローの例を示します。
新しいサービスのデプロイ
新しい Azure サービスをデプロイするときに、Azure MCP サーバーを使用して、インフラストラクチャのセットアップと構成を自動化できます。
リソース グループとリソースを作成します。
Create a resource group called 'webapp-prod' in East US, then create a storage account called 'webappdata' in that resource groupリソースを構成します。
Get the storage account connection string and store it as a secret in key vault 'webapp-kv' with name 'StorageConnectionString'デプロイを確認する:
List all resources in resource group 'webapp-prod' and verify that the storage account and key vault exist
ライブ サイトの問題のデバッグ
Azure MCP サーバーは、運用環境の問題の診断とトラブルシューティングに役立ちます。
リソースの正常性を確認する:
Check the health status of App Service 'my-webapp' and list any recent service health incidentsクエリ ログ:
Query Application Insights for exceptions in the last hour from application 'my-webapp'構成を調べる:
Get the application settings for App Service 'my-webapp' and check if the database connection string is configured correctly依存関係を確認します。:
List the databases in SQL server 'my-sql-server' and verify connectivity to database 'my-database'
シークレットと構成の管理
一般的なパターンには、環境間でのシークレットと構成の管理が含まれます。
監査シークレット:
List all secrets in key vault 'production-kv' and show me which ones are expiring in the next 30 daysシークレットをローテーションする:
Generate a new connection string for storage account 'mystore', update the secret 'StorageConnection' in key vault 'production-kv', and restart App Service 'my-webapp'同期の構成:
Get all key-value pairs from App Configuration 'my-appconfig' with label 'production' and compare them to the staging environment
サービス間のデータ操作
Azure MCP Server は、複数のサービス間でのデータ操作の調整に優れています。
抽出、変換、読み込み (ETL):
Get data from Cosmos DB container 'raw-data', transform it using the provided logic, and upload the results to blob container 'processed-data' in storage account 'analytics'バックアップとアーカイブ:
Export all documents from Cosmos DB container 'transactions' and create a snapshot in blob storage with timestampサービス間クエリ:
Query Azure Data Explorer for events where error count is greater than 100, then lookup the associated user data from Cosmos DB
インフラストラクチャの監査とコンプライアンス
Azure MCP サーバーを使用してインフラストラクチャを監査し、コンプライアンスを確認します。
セキュリティ監査:
List all storage accounts in my subscription and check which ones don't have firewall rules configuredコスト分析:
List all SQL databases in my subscription, show their pricing tiers, and identify candidates for downgradingリソースのタグ付け:
List all resources in subscription 'production-sub' without an 'Environment' tag and show their resource groups
開発とテストのワークフロー
開発者は、Azure MCP サーバーを使用して開発ワークフローを効率化できます。
環境のセットアップ:
Create a development environment with a storage account, key vault, and App Service in resource group 'dev-environment'テスト データ管理:
Copy data from production storage container 'data' to development storage container 'test-data', anonymizing sensitive fields構成管理:
Compare App Service settings between 'staging-webapp' and 'production-webapp' and highlight differences