流行りの MCP(Model Context Protocol)というものが何かを理解しようと思ってのメモ書きです。
MCP(Model Context Protocol)
MCP(Model Context Protocol)は、Anthropic 社がオープンソースとして公開した、外部データソースやツールと、AI搭載ツール間の安全な双方向接続を構築できるようにするための標準プロトコルとのことです。
- Introducing the Model Context Protocol \ Anthropic
- Model Context Protocol · GitHub
- Introduction - Model Context Protocol
仕様
JSON-RPC 、ステートフル接続、サーバーとクライアントのCapability Negotiation(サーバークライアント間で適切な機能で通信する)が基本仕様のようで、その他セキュリティや実装ガイドラインに関して言及があるようです。
アーキテクチャ
アーキテクチャの図は下記に記載があります。 開発者は、MCPサーバーを介してAIアプリケーション)向けにデータを公開するか、これらのサーバーに接続するAIアプリケーション(MCPクライアント)を構築する形のシンプルなものであるとのことです。
登場するコンポーネントは下記のようです。リンクの内容ほぼ直訳です。
- MCPホスト … Claude Desktop、IDEまたはMCPを介してデータにアクセスするAIツールなどのプログラム (≒AIアプリケーション、AIエージェント、AIアシスタント)
- MCPクライアント … サーバーと1対1の接続を維持するプロトコルクライアント。MCPホストの中で動く
- MCPサーバー … 標準化されたModel Context Protocolを通じて特定の機能を公開する軽量なプログラム
- ローカルデータソース … MCPサーバーが安全にアクセスできるコンピューターのファイル、データベース、サービス
- リモートサービス … MCPサーバーが接続できるインターネット経由(API経由など)で利用可能な外部システム
つまり
AIエージェントなどのプログラムが外部のツール等と接続するための規格で、用途に応じて適切なMCPサーバーと接続することで、より実用的でコンテキストを理解した応答を提供できるようになる点(会話ができるようになる)、といったところでしょうか。
例えば、あるデータベースに対応するMCPを使用すると、従来のやり方だとSQL文を直接書いていましたが、代わりに、自然言語での会話を通じてデータベースとやり取りできるようになる、といったイメージかと思います。