azure-mcp-server について
azure-mcp-serverは、ツールを使ってAzureサービスを管理するための、mcp-framework製MCPサーバーです。Storage、Virtual Machines、App Serviceに対応し、認証にはDefaultAzureCredentialを使用します。
主な機能
- 01BlobとコンテナーのCRUD操作
- 02VMの一覧表示とライフサイクル管理
- 03App Serviceの詳細と構成の確認
- 04App Serviceの起動・停止・再起動
- 05DefaultAzureCredentialによる認証
活用シーン
- 01Azure Blobのコンテナーやファイルの一覧・管理
- 02仮想マシンの起動・停止・再起動・削除
- 03App Serviceの構成確認と状態の操作
MCP 対応
Azure Storage、Virtual Machines、App Serviceを操作するツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Azure MCP サーバー
Azure サービスを操作するためのツールを提供する、mcp-framework で構築された Model Context Protocol(MCP)サーバーです。
クイックスタート
# Install dependencies
npm install
# Build the project
npm run build
# Start the server
npm start
プロジェクト構成
azure-mcp-server/
├── src/
│ ├── tools/ # MCP Tools
│ │ ├── Storage/ # Azure Storage tools
│ │ ├── VirtualMachine/ # Azure VM tools
│ │ └── AppService/ # Azure App Service tools
│ └── index.ts # Server entry point
├── package.json
└── tsconfig.json
Azure ツールの概要
このサーバーは、複数の Azure サービスを操作するためのツールを提供します。
| サービス | ツールのプレフィックス | 説明 |
|---|---|---|
| Storage | azure_* | Blob ストレージ操作 |
| Virtual Machines | azure_vms_* | VM 管理操作 |
| App Service | azure_apps_* | App Service 操作 |
認証
すべてのツールは @azure/identity の DefaultAzureCredential を使用します。次の順序で複数の認証方法を試します。
- 環境変数(AZURE_TENANT_ID、AZURE_CLIENT_ID、AZURE_CLIENT_SECRET)
- マネージド ID
- Azure CLI の認証情報
- Visual Studio Code の認証情報
- インタラクティブなブラウザーでのログイン(フォールバック)
利用可能なツール
Azure Storage ツール
必要なアクセス許可
- Storage Account Contributor:ストレージアカウント設定の管理用
- Storage Blob Data Contributor:Blob とコンテナーの CRUD 操作用
コンテナー操作
| ツール | 説明 | 入力例 |
|---|---|---|
| azure_list_containers | コンテナーの一覧表示 | { "accountName": "yourstorageaccount" } |
| azure_create_container | コンテナーの作成 | { "accountName": "yourstorageaccount", "containerName": "mycontainer" } |
| azure_delete_container | コンテナーの削除 | { "accountName": "yourstorageaccount", "containerName": "mycontainer" } |
Blob 操作
| ツール | 説明 | 入力例 |
|---|---|---|
| azure_list_blobs | Blob の一覧表示 | { "accountName": "yourstorageaccount", "containerName": "mycontainer" } |
| azure_upload_blob | Blob のアップロード | { "accountName": "yourstorageaccount", "containerName": "mycontainer", "blobName": "example.txt", "content": "This is the content" } |
| azure_download_blob | Blob のダウンロード | { "accountName": "yourstorageaccount", "containerName": "mycontainer", "blobName": "example.txt" } |
| azure_delete_blob | Blob の削除 | { "accountName": "yourstorageaccount", "containerName": "mycontainer", "blobName": "example.txt" } |
Azure Virtual Machine ツール
必要なアクセス許可
- Virtual Machine Contributor:VM の管理用
- Reader:VM の一覧表示と詳細の表示用
VM の操作
| ツール | 説明 | 入力例 |
|---|---|---|
| azure_vms_list | VM を一覧表示 | { "subscriptionId": "your-subscription-id" } |
| azure_vms_start | VM を起動 | { "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" } |
| azure_vms_stop | VM を停止 | { "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" } |
| azure_vms_restart | VM を再起動 | { "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" } |
| azure_vms_delete | VM を削除 | { "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "vmName": "your-vm-name" } |
Azure App Service ツール
必要なアクセス許可
- Website Contributor:App Services の管理に必要です
- Reader:App Service の詳細の一覧表示と確認に必要です
App Service の操作
| ツール | 説明 | 入力例 |
|---|---|---|
| azure_apps_list | App Services を一覧表示 | { "subscriptionId": "your-subscription-id" } |
| azure_apps_get | App Service の詳細を取得 | { "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" } |
| azure_apps_get_config | App Service の構成を取得 | { "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" } |
| azure_apps_start | App Service を起動 | { "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" } |
| azure_apps_stop | App Service を停止 | { "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" } |
| azure_apps_restart | App Service を再起動 | { "subscriptionId": "your-subscription-id", "resourceGroupName": "your-resource-group", "appName": "your-app-name" } |
ツールの開発
新しいツールの作成
import { MCPTool } from 'mcp-framework';
import { z } from 'zod';
interface MyToolInput {
message: string;
}
class MyTool extends MCPTool<MyToolInput> {
name = 'my_tool';
description = 'Describes what your tool does';
schema = {
message: {
type: z.string(),
description: 'Description of this input parameter'
}
};
async execute(input: MyToolInput) {
// Your tool logic here
return `Processed: ${input.message}`;
}
}
export default MyTool;
デバッグ
Azure ツールで問題が発生した場合は、コンソールログを確認して詳細なデバッグ情報を確認してください。よくある問題は次のとおりです。
- 認証の失敗
- アクセス許可の不足
- 存在しないリソース
- ネットワーク接続の問題
ビルドとテスト
- ツールに変更を加えます
npm run buildを実行してコンパイルします- サーバーは起動時にツールを自動的に読み込みます
詳細情報
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。