Zennの記事 やってみました Azure Function でMCPサーバー
ちょっと前にX (fka Twitter)のタイムラインに流れてきた✨大田一希さんのZennの記事やってみました。
Xユーザーのかずき(Kazuki Ota) | CSA & Evangelist at MSさん:
「Azure Functions で MCP サーバーが作れるようになりました!|Kazuki Ota https://t.co/5fCtO8yIgC #zenn」 / X
私は Visual Studio 2022 で C# のみでやります。
に惹かれて…
Azureへのデプロイまではやらずにローカル実行までです。
Azure Functions で MCP サーバーが作れるようになりました!
2025/04/05に公開 🔄2025/04/07
ところでMCP Inspector 便利ですね。
Inspector - Model Context Protocol
自分がやったときはv0.8.2 になっていました。
その他にもNuGet パッケージとか更新が入っていましたが、最新版でも動きました。
それからVS Codeの拡張機能にも同じ様な機能のものありました。
MCP Inspector - Visual Studio Marketplace
Dhananjay Senday さん
Last updated 2025/3/30 3:56:01
また自分…
書いてあるようにやっても…
うまくいかない…なぜ?(まあコピペしただけですが)
なんも知らんでまず動かしてみてから…
ってのがいけないんですよね…
MCP Inspector で…
プロパティ
location
天気を知りたい場所の名前
が表示されない…
最終的にはlocationの入力は出来るようになりましたが。
(アニメGIF、4o さんにつくってもらったら表示時間の間隔がうまく伝わらず…)
VS Codeの拡張機能 MCP Inspector でも同じ…
ということはコピーペーストしたコード側がなんか違う…
という感じですかね…?
まあちゃんといろいろ見ないといけないですよね(定期)
で 彷徨ってやっと出来ました。
自分の環境ではどこを変えたのか…
builder.EnableMcpToolMetadata();
を追加しました。
\McpAzureFunctions\McpAzureFunctions\Program.cs
using McpAzureFunctions;
using Microsoft.Azure.Functions.Worker.Builder;
using Microsoft.Extensions.Hosting;
var builder = FunctionsApplication.CreateBuilder(args);
builder.AddServiceDefaults();
builder.ConfigureFunctionsWebApplication();
builder.EnableMcpToolMetadata();
// builder.ConfigureMcpTool(nameof(MyMcpTools.GetWeatherForecast))
// .WithProperty("location", "string", "天気を知りたい場所の名前");
// Application Insights isn't enabled by default. See https://aka.ms/AAt8mw4.
// builder.Services
// .AddApplicationInsightsTelemetryWorkerService()
// .ConfigureFunctionsApplicationInsights();
builder.Build().Run();
builder.EnableMcpToolMetadata()
4o さん調べ
🔍 EnableMcpToolMetadata()
の役割
このメソッドを呼び出すことで、MCP サーバーは登録されているツールのメタデータ(名前、説明、引数のスキーマなど)をクライアントに提供できるようになりますこれにより、MCP Inspector や他のツールがサーバーのツール情報を取得し、適切な UI を生成することが可能になります
🛠 使用方法
Program.csまたは
AppHost` の構成ファイル内で、MCP サーバーのビルダーに対して以下のように呼び出しま:
builder.EnableMcpToolMetadata();
これにより、MCP サーバーはツールのメタデータを含むエンドポイントを公開し、クライアントがツールの詳細情報を取得できるようになりま。
という感じでいろいろと彷徨ってやっとちゃんと動きました。ほっ!
彷徨ったおかげでちょっとだけ、ほんのちょっとだけわかったかも知れません。おぃ!
thinks
Azure FunctionsでMCPサーバーを作る!|Junpei Tsuchida(07JP27)
[MCP再入門]「MCPはAIアプリにとってのUSB-C」がしっくりこなかったあなたに
Build AI agent tools using remote MCP with Azure Functions | Microsoft Community Hub
Apr 05, 2025
ローカルでの Azure Storage の開発に Azurite エミュレーターを使用する | Microsoft Learn
Issues · modelcontextprotocol/inspector
.NET .NET Aspire の概要 - .NET Aspire | Microsoft Learn
.NET Aspire Azure Functions の統合 (プレビュー) - .NET Aspire | Microsoft Learn
Release 0.9.0 · modelcontextprotocol/inspector
Discussion