こんにちは。データサイエンスチームYAMALEXの@Ssk1029Takashiです。
(YAMALEXについて詳細はこちらをぜひご覧下さい。)
www.acroquest.co.jp
MCP(Model Context Protocol)が登場して少し時間が経ちましたが、その間にMCPに対応するサービスが増え、LLM 用ツールとしてその利用も拡大しています。
ツール提供側・クライアント側のどちらのサービスも増えており、今後さらに対応が広がりそうです。
そのような中で、MicrosoftがAzure MCP ServerというAzureリソースをMCP経由で操作できるMCP Serverを公開しました。
github.com
現在は操作できるリソースは限られていますが、CosmosDBやBlob Storageなどのデータ参照などが可能です。
この記事では簡単にMCPについて説明した後、Github CopilotからAzure MCP Serverを呼び出してAzureリソースを使ったWebアプリを簡単に作成します。
MCPとは
MCPとはModel Context Protocolの略称であり、書いてある通りProtocol、つまり規格のことを指します。
では何の規格なのかというと、LLMモデルを使ったアプリケーションがツールを使用するときにどのようにコンテキストを取得してツールを呼び出すかというフローを規格にしたものになります。
ツール呼び出しというと、Function Callingが思い浮かびますが、MCPとは以下のようにレイヤが違う単語になります。
- Function Calling: ユーザーのプロンプトとツールごとの情報を入力して呼び出すツールを選択する機能
- MCP: LLMアプリケーションがどのようにツールを選択するか、ツール側はどのように提供するかを決めた規格
Model Context Protocol では『MCP Server』と『MCP Client』の 2 つの役割が定義されています。
- ホスト: MCPを利用したLLMアプリケーションのことを指す
- MCP Server: ツールを提供する。ツール情報の提供とツール実行を担当。
- MCP Client: MCP Serverからツールの情報を取得して、どのツールを呼び出すかを決めて呼び出す。

厳密にいえばMCP Serverはプロンプトテンプレートの提供などほかの機能も提供できるのですが、本記事では省略します。
例えばClaude DesktopやGitHub Copilotなどはツールを呼び出す側のサービスなので上記でいうホストにあたり、MCP Clientを内包していることになります。
本記事では以下の構成で作業することになります。
NodeJSから起動されたMCP Serverを通して、Azureリソースを操作します。

Azure MCP Serverについて
MSから今月公開されたMCP Serverであり、Azureのリソース操作をツール経由で提供しています。
標準入力・HTTP両方での通信が可能です。
操作できる内容の例として以下のとおりです。
- CosmosDBコンテナ一覧の取得
- CosmosDBコンテナーへのSQLクエリの実行
- Blob Storageコンテナ一覧の取得
Azureリソースを使ったWebアプリを作成する
今回は簡単にファイルをアップロード・ダウンロード・削除して、だれがいつ上げたのかを保存するWebアプリを作ってみます。
バックエンドとしてファイルストレージにBlob Storage、アップロード履歴管理にCosmosDBを使うものとします。
開発環境としては以下を使用します。
Azure MCP Serverを立ち上げる
Azure MCP Serverを立ち上げることは簡単です。
github.com
上記リポジトリをクローンし、以下のコマンドで起動します。
npx -y @azure/mcp@latest server start --transport sse
以下のような出力があれば無事起動しています。
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5008
Azure MCP ServerをVSCodeのGitHub Copilotを使用するよう設定する
MCP Serverは起動しただけではクライアントから認識されません。
LLMアプリケーションが認識できるように登録する作業が必要になります。
今回はGitHub Copilotを使用しているため、以下の手順を参照します。
code.visualstudio.com
今回やることとしては、.vscode/mcp.jsonに以下の内容を記載すればOKです。
{
"servers": {
"azure-mcp-dev": {
"url": "http://localhost:5008"
}
}
}
GitHub Copilotからアプリを作成する
まず、今回はAzureには以下のリソースグループ・リソースを事前に作成しておきます。
mcp-dev: リソースグループ
ssk-mcp-cosmos-dev: CosmosDB
sskmcpblobdev: ストレージアカウント
本当はリソース作成までAzure MCP Serverに実施させたいですが、リソース作成自体をLLMに任せるのはリスクもあるので、今回はここだけ手動で作成します。
この状態でAzure MCP Serverを連携したGitHub Copilotに以下のプロンプトを入れてみます。
mcp-devというリソースグループでBlob StorageとCosmosDBを使ってファイルアップロード管理システムを作りたいです。 - ユーザーごとにファイルのアップロード・ダウンロード・削除ができる。 - ユーザーごとにいつどのファイルを更新したかをCosmosDB上で管理する。 - PythonのFastAPIを使って開発する 上記条件で以下を実施してください。 - Azureリソースの設定を変更 - DB・ストレージの構成を示すドキュメントを出力する。
すると以下のように、まずは現状のリソースの状態をチェックします。

「Ran azmcp-group-list」というように表示されている箇所がAzure MCP Serverを実行している箇所になります。
リソースグループ・ストレージ・CosmosDBの状態を確認していることがわかります。

最初の回答では、必要な設計を教えてくれるので、続いてコードの出力を支持します。

ここではソースコードの生成まではしてくれますが、コンテナの作成はまだ実施されていません。
明確に指示しないとリソースに変更を加える操作は実施してくれない傾向があるので、指示を追加します。

するとリソース上に必要なコンテナがそれぞれ作成されます。


これで、ソースコードとバックエンドのリソース構築が完了しました。
実際に使ってみる
実際にアプリを動かしてみましょう。
画面についてはGitHub Copilotからプロンプトから生成しました。

見た目については何も指定せずに生成したので、最低限という状態です。
ここからschema.jsonというファイルをアップロードした状態ですが、Azureのリソースにも想定通りアップロードされたファイルと履歴が反映されています。


このようにAzure MCP ServerとGitHub Copilotを使えばAzureリソースの設定からアプリ作成まで一気にプロンプトで実施可能です。
ちょっとしたアプリをAzure上で作成したいときに便利に使えそうですね。
まとめ
本記事では、Azure MCP ServerとGitHub Copilotを使って、Azureリソースの設定・アプリ開発を簡単に検証しました。
もともとGitHub Copilotでできたアプリ作成に加えて、そのアプリに合わせたリソース設定がプロンプトで完結するのは便利ですね。
今後もMCP Serverによるツール拡張はさらに拡充されていくので、より便利な開発体験になりそうです。
それではまた。
Acroquest Technologyでは、キャリア採用を行っています。
- Azure OpenAI/Amazon Bedrock等を使った生成AIソリューションの開発
- ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
- マイクロサービス、DevOps、最新のOSSやクラウドサービスを利用する開発プロジェクト
- 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。