AIエージェントとツールの連携標準として急速に普及しつつあるModel Context Protocol(MCP)。そのMCPツールに本格的なUI体験を持たせる「MCP Apps」が、Azure Functionsのエコシステムでさらに開発しやすくなった。Microsoftは.NET isolated worker向けのFluent APIを新たにプレビュー提供し、設定コードをわずか数行に圧縮することに成功している。

MCP Appsとは何か

通常のMCPツールはAIエージェントからテキストベースで呼び出される関数にすぎない。MCP Appsはそこから一歩踏み込み、ツールに以下の機能を持たせることができる。

  • HTMLビューのアタッチ: MCP クライアントがレンダリングするインタラクティブなUI
  • 静的アセットの配信: HTML・CSS・JavaScript・画像をツールと一緒に提供
  • 権限制御: クリップボードアクセスなど、ユーザー環境との安全なやり取り
  • Content Security Policy(CSP)の定義: ロードや通信先を厳格に制限

要は「AIエージェントから呼び出せる、かつ人間向けのUIも持つWebアプリ」を1つのAzure Functionsで完結させる仕組みだ。

Fluent APIが解決する問題

MCPプロトコルの仕様上、ツールをUIビューに接続するには細かな調整が必要だった。ui:// URIのリソースエンドポイント、text/html;profile=mcp-app という特殊なMIMEタイプ、ツールとリソース双方への _meta.ui メタデータ注入——これらを手動で揃えるのは煩雑で、仕様の理解コストも高かった。

Fluent APIはこの複雑さを完全に隠蔽する。 AsMcpApp を呼び出すだけで、拡張機能が合成リソース関数の生成・MIMEタイプ設定・メタデータの自動注入をすべて肩代わりしてくれる。開発者はHTMLファイルのパスとセキュリティポリシーを宣言するだけでいい。

3ステップで動くサンプル

実際のコードは驚くほどシンプルだ。

Step 1: MCPツール関数を定義する


出典: この記事は MCP as Easy as 1-2-3: Introducing the Fluent API for MCP Apps の内容をもとに、筆者の見解を加えて独自に執筆したものです。