生成AIは日々進化して、次々と高度なことができるようになっています。
しかし、生成AI単体では、外部APIを呼び出せず、ローカルファイルを触れず、ましてや社内システムとも接続できません。
「カレンダーの予定を読んでリマインドして」
「アップロードしたCSVを要約して」
こうした要望に応えるには、生成AIと各種サービスをつなぐ必要があります。
そこで登場するのがMCPです。本記事では、MCPとは何か、MCPの裏側の仕組みを網羅的に解説します。
MCPとは – ツール呼び出しを共通化
MCPとは、「Model Context Protocol」の略です。
プロトコルとは通信の約束事のことで、MCPはサービス名ではなく、「生成AIがさまざまなツールとどのようなルールで通信すればいいか」を定めたものです。

MCPを理解する上で重要となるのは、「MCPホスト」「MCPクライアント」「MCPサーバー」です。
これらの関係を図示したものが下図です。

MCPホストとは、ユーザーが指示を出す部分で、
「カレンダーの予定を読んでリマインドして」
などと生成AIに指示する部分です。
指示された文章(プロンプト)は、MCPクライアントが解釈してMCPサーバーへ送られます。
MCPサーバーとは「サーバー」という名前がついていますが、実際にはサーバーではありません。
「天気を取得する関数」「メールを送る関数」など、さまざまな関数を集めたものです。
ちなみに、これらの関数のことをツールと呼んでいます。
MCPサーバーはツールを実行して、Webサイトを検索したり、データを取ってきたりします。
次節では、MCPの処理の流れを詳しく見ていきます。
MCPの具体的なフロー
MCPは生成AIを使った通信の約束事で、処理の流れが定義されています。
この基本フローをまとめてみました。
- ユーザーが自然文のプロンプトを入力
- MCPクライアントがツール一覧を生成AIモデルに渡す
- モデルがどのツールを使えばいいか推論して、呼びたいツール+引数を返す
- MCPクライアントがMCPサーバーへ実行を要求する
- MCPサーバーの結果を再度、生成AIモデルに渡して、最終説明文がユーザーに届く
この処理を、東京の天気を検索するシステムを例にして、順番に説明していきます。
まず最初に、ユーザーが「東京の天気を教えて」とMCPホストに入力します。

MCPホストに入力されたプロンプトは、MCPクライアントへ渡されます。
そして、MCPクライアントはMCPサーバーに対して、「このMCPサーバーではどんなツールが使えますか」とプログラムで問い合わせします。
MCPサーバーは利用可能なツールの一覧を、MCPクライアントに答えます。

これで、MCPクライアントは、どんなツールが使えるのか知ることができました。
そして、「東京の天気を教えて」というユーザーの入力から、生成AIがどのツールを使えばいいかを判断します。
判断できたら、ツールの実行をMCPサーバーに依頼します。

MCPサーバーはツールの実行をします。
東京の天気をWeb検索して、検索結果をMCPクライアントに返します。
そして、ユーザーは「東京の天気は晴れです。」という回答を得られます。

生成AIは「どのツールをどの引数で呼び出すか」を書いただけというのがポイントです。
この構造により、セキュリティも強固になり、いろいろなサービスを共通化することができます。
まとめ
本記事では、MCPの基本の仕組みを解説しました。
生成AI単体では、ファイルを読み込んだり、Web検索をしたりすることはできません。
そこで、MCPは生成AIと外部ツールのやり取りのルールを決めて、標準化しました。
MCPというルールができあがったので、MCPに沿ってシステムを作ると、生成AIとさまざまなサービスを連携させることができます。