近年、大規模言語モデル(LLM)の登場は、人工知能の分野に革新をもたらしました。しかし、依然として解決すべき課題が残っています。それは、これらのモデルと独自のデータを効果的に統合することです。LLMはインターネット上の膨大な情報を処理する能力に優れていますが、その真価は、アプリケーションやデータに対する自然言語インターフェースとして機能し、制御された環境内で予測および生成能力を活用できることにあります。
LLMの出力の信頼性と関連性を確保するために、様々な戦略が登場しています。これらの戦略は、カスタム埋め込みの作成、検索拡張生成(RAG)技術の採用(グラフデータベースを活用してデータ内の複雑な関係を明らかにする)、ユーザープロンプトによってトリガーされたOpenAPI呼び出しを通じて取得したデータをLLMを使用して抽出し提示することなど、モデルと特定のデータセット間のギャップを埋めるように設計されています。さらに、OpenAIのChatGPTによって普及したプラグインモデルは、データ統合のための別の手段を提供します。これらの多様なアプローチの中で、Model Context Protocol(MCP)は、LLMと外部データソース間の接続を標準化するための有望なソリューションとして際立っています。
Model Context Protocol(MCP)とは
Anthropicによって2024年後半に発表されたModel Context Protocolは、LLMとユーザー固有のデータ間の相互作用を合理化するための重要な一歩です。このプロトコルは、AIアプリケーションにおけるコンテキストの重要な役割を強調し、AIが首尾一貫した意味のある出力を提供する能力は、関連するコンテキスト情報の利用可能性に依存することを認識しています。分別のある応答を引き出すためにチャットプロンプトだけに頼ることは、楽観主義の練習に過ぎず、最悪の場合、不正確または誤解を招く結果につながる可能性があります。データの周りのワークフローを調整できる堅牢な半自律エージェントを構築するには、それらのエージェントにデータを配信するための信頼できるメカニズムが不可欠です。
オープンソースイニシアチブとして、MCPは幅広いプログラミング言語向けのSDK実装を提供し、GitHubリポジトリ内に包括的なドキュメントが付属しています。このドキュメントにより、開発者はMCPサーバーを効果的に実装または利用することができます。MCPを「AIアプリケーション用のUSB-Cポート」として説明しているプロジェクトは、その本質を適切に捉えており、多様なデータソースへの接続を標準化する能力を強調しています。標準化された基盤上に構築されたMCPは、既存のプロジェクトと容易に統合され、様々なLLMおよび推論プロバイダーとシームレスに連携します。
MCPのアーキテクチャは、確立されたクライアント/サーバーモデルに従っており、ブローカーはMCPリクエストをローカルまたはリモートリクエストに変換する責任を負います。この設計は、CORBAのようなインターフェース定義言語の機能に似ており、MCPを情報ソースとLLMアプリケーション間のシームレスな切り替えを促進する汎用性の高い相互運用性レイヤーに変換します。JSON RPC接続を活用することで、MCPはAzure API Managementのようなツールを通じて、個々のユーザーレベルで詳細な制御を可能にします。
MCPは、MicrosoftのAI開発プラットフォーム全体での採用の増加によって証明されるように、AI主導のコード用の汎用インターフェースの開発を促進します。Semantic Kernelモデルオーケストレーションツール内での統合から、Azure OpenAIおよびAzure AI Foundryと互換性のあるMCPサーバーとしてのデプロイまで、MCPは急速に勢いを増しています。Microsoftはまた、ユーザーの資格情報に基づいてデータアクセスを制御する機能をAzure API Managementに追加し、セキュアで管理されたAIデプロイにおけるMCPの役割をさらに強化しています。
Azure MCP Server:初期の実装
最近パブリックプレビューでリリースされたオープンソースのAzure MCP Serverは、MicrosoftプラットフォームでのMCPの初期実装の一例です。このサーバーは、主要なAzureサービスへのAIアクセスのための共通ブローカーとして機能し、最近の多くのAzureプロジェクトで採用されているオープンソースの原則を遵守しています。そのコードはGitHubで容易にアクセスできます。Azure MCP Serverは、データベース、ストレージソリューション、Azure CLIなどのサービスを含む、Azureプラットフォームのかなりの部分へのアクセスを提供します。
Azure CLI(およびDeveloper CLI)のサポートが含まれていることは特に注目に値します。これにより、MCP駆動のエージェントはAzureと直接対話でき、MCP呼び出しをオペレーターとして扱います。この機能は、Azureへの自然言語セルフサービスインターフェースを提供するエージェントを構築するための道を開きます。たとえば、エージェントはインフラストラクチャの説明を取得し、そのデプロイに必要なARMテンプレートを自動的に生成できます。この概念をさらに拡張すると、ホワイトボードのスケッチを分析し、必要なリソースの説明を取得し、インフラストラクチャをデプロイして、即時のコード開発を可能にするマルチモーダルエージェントを想像できます。Azure MCP Serverを通じてアクセスできる追加のシステム管理サービスには、現在のリソースグループのリスト表示、およびKQLを利用したAzure Monitoringログのクエリが含まれます。
GitHub Copilot ChatとのAzure MCP Serverの統合
Azure MCP ServerはMCP標準に準拠しているため、GitHub Copilot Agent Modeなど、MCPをサポートするあらゆるAIツールとシームレスに統合できます。サーバーをテナントに追加するだけで、Copilotを通じて、直接またはVisual Studio Code統合を介して質問を始めることができます。後者のオプションは、MCPを活用する方法と、独自のMCPベースのAIアプリケーション用のプロンプトを構築する方法を学ぶための効果的な手段を提供します。
現在、Microsoftはプログラミング言語専用のMCPツールをまだリリースしていないため、カスタムコードを開発するには公式SDKを使用する必要があります。TypeScript、C#、Pythonのサポートにより、開発者は独自のAzure MCPエージェントを作成するために必要なツールにアクセスできます。実験は、既存のAzure資格情報を使用してVisual Studio Code内で行うことができます。
サーバーは開発PCで動作し、Node.jsが必要です。インストールは、プロジェクトのGitHubリポジトリからVS Codeに直接実行されます。インストールしたら、GitHub Copilot拡張機能とGitHub Copilot Chat拡張機能の両方が、実験的なエージェントモードを使用するように構成されていることを確認します(VS Code設定ツールからアクセス可能)。その後、GitHub Copilotチャットペインを開き、エージェントモードに切り替えます。Azure MCP Serverがツールドロップダウン内にインストールされていることを確認します。これで、「Azureサブスクリプションをリストする」などのクエリを送信できます。
このツールは、Azureを使用する人にとって非常に貴重であり、Copilot統合を超えて拡張されます。Azure MCP Serverは、Node.jsがサポートされている場所であればどこにでもインストールできるため、カスタムエージェントに統合できます。
Azure AI FoundryにおけるMCPの役割
MicrosoftはMCPツールのポートフォリオを急速に拡大しており、既存の機能をMCPを通じて公開したり、エージェントアプリケーション内での消費を可能にしたりしています。この急速な展開には、この記事の執筆中に発表された、Copilot Studioのノーコードエージェント開発用のツールが含まれます。
大規模なAIアプリケーション開発のためのMicrosoftの主要な開発プラットフォームであるAzure AI Foundryも、AzureのAI Agent Serviceを補完するためにMCP Serverを積極的に開発しています。この統合は、Azure AI Foundry内で実行されているエージェントを、他のAIアプリケーションの一部として動作するクライアントと接続することを目的としています。
このサービスにより、既存のAIコードとサービスを迅速に再利用し、それらを新しいアプリケーションにリンクできます。Fabricなどのサービスは、エージェント機能をAI Agent Serviceエンドポイントとして公開し、AIアプリケーションがコア基幹業務データにシームレスに接続できるようにし、幻覚やエラーのリスクを軽減するために不可欠な接地を提供します。
インストールすると、サーバーはエージェントに接続してクエリを送信するためのMCPアクションのセットを提供します。また、利用可能なエージェントをリストしたり、特定のタスクにデフォルトのエージェントを利用したりすることもできます。会話スレッドのサポートが含まれており、エージェントにコンテキストのある会話のための基本的なセマンティックメモリを提供します。MCPを使用してそれらを呼び出すには、Azure AI Agent ServiceエージェントIDが必要です。
サーバーはPythonで実装されており、Azure CLIを使用してpip
経由でインストールできます。または、TypeScriptバージョンを好む人のために、TypeScriptバージョンも利用できます。Azure MCP Serverと同様に、このサーバーはAI Foundry環境の外で動作するため、開発PCにインストールしたり、独自のコンテナまたはVM内のクラウドホストアプリケーションの一部としてインストールしたりできます。Windows、macOS、Linuxのサポートが含まれています。
Semantic Kernel AIアプリケーションからのMCPサーバーの活用
オープンスタンダードとして、MCPはあらゆるクライアントとのサーバー互換性を実現します。GitHubリポジトリには、AnthropicのClaude Desktopを使用して接続を確立する方法が記載されていますが、真の価値は、Semantic Kernel内でカスタムエージェントワークフローを構築することにあります。
Microsoftは、MCPのサポートをSemantic Kernelオーケストレーションに統合する方法を示すサンプルコードを提供しており、それを使い慣れた関数呼び出しと統合するカーネルプラグインとして扱います。これらの統合はエージェントとしてラップし、必要に応じてアクセスできます。Semantic Kernel内のMCP統合はまだ開発中ですが、既存の機能セットとシームレスに統合され、サーバーからAIアプリケーションにMCPツールを公開するために必要な追加のコードは最小限です。
MCPのようなツールは、最新のAIスタックの重要なコンポーネントであり、ローカルおよびリモートアプリケーションの両方に対して発見可能なインターフェースを構築するための標準化されたアプローチを提供します。定義されると、MCPツールは簡単に呼び出すことができ、サーバーは利用可能なツールのリストを提供し、MCPはLLMにこれらのツールを呼び出してその出力を利用するための標準化された手段を提供します。このアプローチは、AIアプリケーションの普遍的な接地ツールを提供するのに大きく貢献し、標準API、データベースクエリ、およびAIエージェントと連携します。