ADHDの転職と資格取得

【応用情報・高度試験】MCPとは?RAGとの違いから学ぶ、次世代AI連携プロトコル徹底解説

応用情報や高度試験の勉強をしていると新しい技術や用語が次から次へと出てきて、正直「もう暗記するしかない…」ってなっちゃう時、ありますよね(^^;

でも、現場で本当に頼られるエンジニアって、「なんでこの技術が必要なの?」っていう“背景”や“ストーリー”を自分の言葉で語れる人だと思いませんか?

そこで今回フォーカスするのが「Model Context Protocol (MCP)」💡
これ、ちょっと聞き慣れないかもですが、実は未来のAIアプリケーションを支える、めちゃくちゃ面白くて重要な技術なんです。

この記事は、単なる用語の丸暗記で終わらせません。あなたと一緒に、楽しくレベルアップしていくための「冒険の書」になることを約束します!

  1. ストーリーでわかる!
    「なぜMCPが必要なの?」という背景から解説するから、スッと腹落ちします。
  2. 一歩ずつレベルアップ!
    基本のキから、RAGとの違い、そして試験対策まで。ちゃんと階段を登れるように、僕がしっかりガイドしますね💪
  3. 未来の武器になる!
    この知識が、試験合格の先にあるあなたのキャリアで、どれだけ強力な武器になるか。そのワクワクする未来まで見えちゃいます。

さあ、小難しい話は一旦脇に置いて、未来の技術を先取りする冒険へ、一緒に出発しましょう!🚀


【1. イントロダクション:AIエージェントの進化と新たな壁】

最近、AIが自らタスクを実行する「AIエージェント」のデモを見かける機会が増えてきました。

これは、ただ対話をするだけでなく、私たちの指示に基づいて外部のツールを操作し、具体的なアクションを起こすAIのことです。アシスタントのように、指示を解釈してタスクを処理してくれます。

ここで一つ、技術的な課題が浮かび上がります。AIエージェントは、外部の予約サイトや社内データベースといった、多種多様なツールとどのように連携しているのでしょうか。

現状では、その接続部分はAIやツールごとに個別の開発が必要になるケースがほとんどです。これは、接続先のツールが増えるほど開発コストが増大するという課題に繋がります。身近な例で言えば、様々な形状の電源プラグとコンセントの関係に似ており、接続のたびに専用の変換アダプタを用意するような非効率さが存在します。

この非効率を解消し、AIとツール間の接続を標準化しよう、という目的で登場したのが、今回解説する「Model Context Protocol (MCP)」です。

この記事では、MCPがどのような仕組みでこの課題を解決するのかを、順を追って見ていきましょう。

MCPって何?一言でいうと?

結論から言うと、MCP(Model Context Protocol)とは、

「生成AIと、外部のツールやAPIを接続するための『標準規格(プロトコル)』」

です。

より身近なものに例えるなら、PCと周辺機器を繋ぐ「USB規格」のような存在だと考えると分かりやすいでしょう。

かつてキーボードやマウス、プリンターは、それぞれ異なる形の端子(ポート)でPCに接続していましたが、USBが登場したことで接続方法が統一され、非常に便利になりました。

MCPは、このUSBと同じ役割をAIの世界で果たそうとしています。AIと多種多様な外部ツールとの間の「接続の形」を統一することで、より簡単で効率的な連携を実現しよう、という考え方に基づいています。

 大図解:MCPの仕組みをビジュアルで理解する

MCPの全体像を掴むために、ここではその基本的な仕組みをシンプルな図と共に見ていきましょう。MCPは、大きく分けて「クライアント」と「サーバー」という2つの登場人物で成り立っています。

登場人物①:クライアント(AIモデル側)

クライアントは、生成AIモデル(例: ChatGPT, Geminiなど)の側です。ユーザーからの「〇〇を予約して」といった指示を受け取り、「どのツールを、どう使えばタスクを達成できるか?」を考え、サーバーに問い合わせる役割を担います。

登場人物②:サーバー(外部ツール側)

サーバーは、予約サイトのAPIや社内データベースなど、AIが利用したい外部ツールの側です。クライアントからの問い合わせに応じて、「私はこういうツールです」「こうすれば使えますよ」といった情報を提供したり、実際にツールの機能を実行したりします。

基本的な2つの対話(RPCコール)

クライアントとサーバー間のやり取りは、主に以下の2つのシンプルな対話(RPCコール)で行われます。

1. 「このツールの使い方を教えて?」(get_context)
まずAI(クライアント)は、ツール(サーバー)に対して「あなたは何ができて、どうやって使うの?」という問い合わせをします。これが get_context です。ツール側は、「私は〇〇ができます。使うには△△という情報が必要です」といった、自己紹介や使い方(=OpenAPI仕様など)を返します。

2. 「使い方を理解したから、これで実行して」(invoke_tool)
ツールの使い方を理解したAI(クライアント)は、必要な情報(例: 予約したい日時)を添えて、「この内容でツールを実行してください」と依頼します。これが invoke_tool です。依頼を受けたツール側は、実際にデータベースへの書き込みやAPIの実行を行い、その結果をAIに返します。

この2ステップのシンプルな対話によって、AIは未知のツールでもその使い方を動的に学び、タスクを実行できるのです。

 なぜ?がわかる深掘り解説:RAG(検索拡張生成)との決定的な違い

生成AIの外部連携技術として「RAG(Retrieval-Augmented Generation)」を思い浮かべる方も多いでしょう。どちらもAIが外部情報を使う点は共通していますが、その目的と仕組みは根本的に異なります。

RAGの役割:AIの「知識」を拡張する技術

RAGは、一言でいえば「AIのための高度な検索エンジン」です。そのプロセスは以下の通りです。

  1. ユーザーの質問に関連する情報を、外部の文書データベースから検索(Retrieve)します。
  2. 検索結果をプロンプトに含めて、AIが回答を生成(Generate)します。

これは基本的に「情報を取ってきて、それを基に話す」という一方向のフローです。RAGの主な目的は、AIが知らない最新情報や専門知識を回答に含めることであり、ハルシネーション(事実に基づかない発言)を抑制することにあります。しかし、データベースの情報を読み取れても、そこに新しい情報を書き込んだり、何かのアクションを命令したりすることはできません。

RAGが利用されているサービス例

  • Microsoft Copilot (旧Bingチャット) あなたがCopilotに質問をすると、CopilotはまずBing検索エンジンを使ってWeb上の最新情報を検索します(検索)。そして、見つけてきた複数のWebサイトの情報とあなたの質問を基に、要約された回答を生成します(生成)。回答に[1]、[2]といった形で情報源のリンクが表示されるのは、まさにRAGで情報を検索してきた証拠です。
  • Perplexity AI こちらもCopilotと同様に、質問に対してWeb検索を行い、その結果を基に回答を生成するAI検索エンジンです。どの情報源(サイト)を参考にしたかを明示してくれる点が特徴で、RAGの仕組みを分かりやすく体感できます。

企業のウェブサイトや社内ポータルに設置されている「AIチャットボット」の多くが、RAGを利用して回答の精度を高めています。

  • 東京メトロの「お客様お問合せAIチャットボット」 「〇〇駅から△△駅までの乗り換え方法は?」といった質問に対し、一般的な知識ではなく、東京メトロの公式ウェブサイトの膨大な情報(時刻表、駅構内図、運賃など)の中から正しい情報を検索し、それに基づいて最適な回答を生成しています。 これにより、AIは他の鉄道会社の情報を間違えて答えることがなく、24時間正確な案内が可能になります。
  • LINEヤフーの社内ツール「SeekAI」 社員が社内ルールや業務手順について質問すると、AIが膨大な社内文書やマニュアルのデータベースを検索し、適切な回答を生成します。 これにより、新入社員でも担当者に聞くことなく、素早く正確な情報を得ることができます。

正確性が特に求められる専門分野でもRAGは活躍しています。

  • くすりの窓口のAIチャットボット 利用者が薬に関する質問をした際、AIが参照するのは一般的なWebの情報ではなく、信頼性が担保された医療情報データベースや自社のナレッジです。 これにより、安全で正確な情報提供を実現しています。

MCPの役割:「行動」を可能にする双方向の対話

一方、MCPはAIに「行動」を促すための技術です。セクション3で見た通り、MCPのやり取りは「ツールの使い方を尋ね、ツールを実行する」という双方向の対話に基づいています。

RAGが「知っていること」を増やす技術だとすれば、MCPは「できること」を増やす技術です。例えば、MCPを使えばAIエージェントは以下のようなアクションが可能になります。

  • 顧客データベースに新しい予約情報を書き込む
  • ホテルの予約システムAPIを実行する
  • IoTデバイスを操作して部屋の照明をつける。

このように、RAGは「知識参照(Read-Only)」、MCPは「タスク実行(Read/Write/Execute)」と整理すると、その決定的な違いが明確になります。

応用情報技術者試験対策: 厳選過去問と思考トレース

ここからは、これまで学んだ知識が実際の試験でどのように問われるのか、応用情報技術者試験の午後問題を想定したオリジナル問題で実践力を養います。

単に答え合わせをするのではなく、設問のどこに着目し、どの知識を使って、どのように解答を組み立てるのか、その「思考のプロセス」を丁寧に解説します。この思考トレースこそが、応用力を高める最短ルートです。

【想定問題】

Eコマースサイトを運営するA社は、顧客からの問い合わせ対応の効率化と顧客満足度の向上を目指し、生成AIを活用したチャットボット(以下、AIボット)の導入を計画している。このAIボットは、顧客からの自然言語での注文内容の変更依頼(商品の追加、削除、数量変更など)を受け付け、社内の注文管理システムと連携して注文情報を更新する機能を持つ。

システムアーキテクトであるあなたは、AIボットと注文管理システムとの連携方式について、RAG(Retrieval-Augmented Generation)とMCP(Model Context Protocol)を比較検討することになった。検討の結果、セキュリティと拡張性の観点からMCPの採用を決定した。

設問1:AIボットが注文情報を「更新」する、という要件において、RAGではなくMCPが適している理由を、RAGの特性と対比させて30字以内で述べよ。

設問2:MCPを採用するアーキテクチャにおいて、クライアントとサーバーはそれぞれ何に相当するか。また、AIボットが注文変更を行う際のクライアントとサーバー間の基本的なやり取りを、get_contextinvoke_toolの2つの命令を用いて説明せよ。

【思考トレースと解答例】

■設問1の思考トレース

  1. まず設問のキーワードは「更新」「RAGとの対比」
  2. セクション4の比較を思い出す。RAGは「知識参照(Read-Only)」、MCPは「タスク実行(Read/Write/Execute)」だった。
  3. 「更新」は、データベースへの「書き込み(Write)」処理に他ならない。
  4. したがって、RAGは読み取り専用なので更新はできず、書き込みまで可能なMCPが適している、というロジックを組み立てる。
  5. これを30字以内で簡潔にまとめる。「RAGは情報の読み取りに限定されるが、MCPは情報の書き込み(更新)まで可能だから」といった要素を圧縮しよう。

【解答例】
RAGは読み取り専用だが、MCPは書き込み処理も可能だから。(29字)

■設問2の思考トレース

  1. 前半は「クライアントとサーバーはそれぞれ何か」を問われている。
  2. セクション3の解説を思い出す。クライアントは「AIモデル側」、サーバーは「外部ツール側」だった。
  3. 今回の問題文に当てはめると、AIモデル側は「AIボット」、外部ツール側は「注文管理システム」となる。
  4. 後半は「基本的なやり取り」get_contextinvoke_toolを使って説明する問題。
  5. これもセクション3の基本的な2つの対話を思い出す。まず使い方を聞き(get_context)、次に関数を実行する(invoke_tool)。
  6. これを問題文の状況(注文変更)に合わせて具体的に記述する。「まずAIボットが注文管理システムにAPIの仕様を問い合わせ、仕様を理解した上で、具体的な注文変更内容を渡して実行を依頼する」という流れを組み立てる。

【解答例】
クライアント・サーバー:
クライアントはAIボット、サーバーは注文管理システムに相当する。

基本的なやり取り:
まず、クライアント(AIボット)がサーバー(注文管理システム)に対しget_contextを発行し、注文更新APIの仕様(利用可能な関数や必要なパラメータなど)を取得する。次に、クライアントは取得した仕様に基づき、顧客の指示内容(例:商品IDと変更後の数量)をパラメータとして設定し、invoke_toolを発行してAPIを実行させ、注文情報を更新する。

高度IT国家試験で今後出題が予想される問題

応用情報技術者試験の次のステップである高度試験では、MCPは単なる知識だけでなく、より深いレベルでの理解と応用力が問われます。ここでは、主要な試験区分ごとに、考えられる論点を予測してみましょう。

システムアーキテクト(SA):設計思想の理解

SA試験では、技術の「なぜ」が問われます。MCPに関しては、従来のREST APIによる連携と比較した際のアーキテクチャ上の利点・欠点が論点となる可能性があります。

【論述テーマ例】
「マイクロサービスアーキテクチャで構築された業務システム群と生成AIエージェントを連携させるにあたり、APIゲートウェイを介したREST API連携ではなく、MCPを採用した。システムアーキテクトとして、そのように判断した理由を、スケーラビリティ、疎結合性、開発効率の観点から述べよ。」

ITストラテジスト(ST):事業へのインパクト

ST試験では、技術がビジネスに与える影響を考察する力が求められます。MCPが普及することで、どのような新しいビジネスやサービスが生まれ、競争優位性がどう変化するか、といった視点が重要です。

【論述テーマ例】
「MCPの標準化が、SaaS業界のビジネスモデルに与える影響について、製品開発、マーケティング、エコシステム形成の観点から、あなたの考えを述べよ。」

情報処理安全確保支援士(SC):新たなセキュリティリスク

SC試験では、新しい技術に伴うセキュリティリスクと対策が中心となります。MCPはAIが自律的に外部ツールを実行するため、従来のWeb APIとは異なる観点での脅威分析と対策が求められます。

【論述テーマ例】
「MCPを用いて社内の複数システムと連携するAIエージェントを導入するにあたり、想定されるセキュリティリスクを3つ挙げ、それぞれに対する技術的な対策を具体的に述べよ。特権の昇格と意図しないデータ漏洩のリスクについては必ず言及すること。」

MCP関連の知識を体系化する関連マップ

MCPを学ぶ上で、周辺の関連技術を理解すると、知識が体系化されてより深く定着します。ここでは、MCPを中心とした技術の関連マップを示し、それぞれの関係性を整理しましょう。

[ここに、マインドマップや関係図を挿入]

  • AIエージェント(親カテゴリ)
    • MCPは、AIエージェントが外部ツールと連携するための「手段」の一つです。AIエージェントという大きな目的を達成するための、具体的なプロトコルと位置づけられます。
  • RAG(比較対象)
    • AIに外部「知識」を与えるのがRAG、外部への「行動」を可能にするのがMCPです。目的は異なりますが、高度なAIエージェントは両者を組み合わせて利用するケースも考えられます。
  • API(連携先)
    • MCPは、既存のWeb API(REST, GraphQLなど)をラップして(包み込んで)、AIが使いやすい統一された形式を提供する役割を担います。MCPサーバーが、個別のAPI仕様の違いを吸収するアダプタのように機能します。
  • JSON-RPC(基盤技術)
    • MCPのクライアント・サーバー間の通信は、JSON-RPCというプロトコルをベースにしています。これは、JSON形式で遠隔手続き呼び出し(Remote Procedure Call)を行うためのシンプルな仕様です。
  • OpenAPI Specification(関連規格)
    • AIがツールの使い方を理解する際(get_context)、サーバーが返す「ツールの仕様書」として、REST APIの記述標準であるOpenAPI Specificationが利用されることがあります。

-ADHDの転職と資格取得