RAGとMCPの違いとは?APIとの関係や役割をわかりやすく解説

AI
B!

生成AIを利用したシステム開発では、「RAG(Retrieval-Augmented Generation)」と「MCP(Model Context Protocol)」という言葉を目にする機会が増えています。

どちらもLLM(大規模言語モデル)と外部情報を組み合わせる際に利用できますが、両者の役割は異なります。

簡単に整理すると、RAGは「外部から必要な情報を取得し、その情報を使ってLLMに回答を生成させる仕組み・設計パターン」です。一方、MCPは「AIアプリケーションと外部のデータやツールを接続するためのプロトコル」です。

そのため、「RAGとMCPのどちらを使うか」という二者択一ではありません。MCPを利用して情報検索を行い、その結果を使ってRAGを構成することも可能です。

この記事では、RAGとMCPの違い、MCPとAPIの関係、RAGとMCPを組み合わせた場合の処理、認証・認可との違いについて解説します。

RAGとは

RAGは「Retrieval-Augmented Generation」の略で、日本語では「検索拡張生成」などと呼ばれます。

LLMが回答を生成する前に、質問に関連する情報を外部のデータソースから検索・取得し、その情報をLLMのコンテキストとして与える手法です。

基本的な流れは次のようになります。

ユーザーが質問する

質問に関連する情報を検索する

関連情報を取得する

取得した情報をLLMに渡す

LLMが情報を参照して回答を生成する

RAGを構成する重要な要素は「Retrieval」「Augmentation」「Generation」の3つです。

Retrieval(検索・取得)

ユーザーの質問に関連する情報を検索し、必要な情報を取得します。

検索対象としては、社内文書、データベース、検索エンジン、ベクトルデータベースなど、さまざまなデータソースを利用できます。

Augmentation(情報の追加)

検索によって取得した情報を、ユーザーの質問などとともにLLMが利用できるコンテキストへ追加します。

LLMは、自身が事前学習した知識だけではなく、この追加情報も踏まえて回答を生成できるようになります。

Generation(生成)

LLMが与えられた質問と取得情報を基に回答を生成します。

この「検索・取得 → 情報の追加 → 回答生成」という一連の処理がRAGの基本的な考え方です。

MCPとは

MCPは「Model Context Protocol」の略で、AIアプリケーションと外部システムを接続するためのオープンなプロトコルです。

MCPでは、MCP ClientとMCP Serverなどの仕組みを通じて、AIアプリケーションが外部から提供されるツールやデータなどを利用できます。

概念的には次のような構成になります。

LLMを利用するAIアプリケーション

MCP Client

MCP Server

外部システム

MCP Serverの先には、データベース、ファイル、検索システム、既存APIなど、さまざまな仕組みを配置できます。

そのため、AIアプリケーションから「文書を検索する」「データを取得する」「外部サービスの機能を実行する」といった処理を行うための接続方法として利用できます。

RAGとMCPの違い

RAGとMCPの大きな違いは「何を実現するためのものなのか」という目的です。

RAGは、外部情報を取得してLLMの回答生成に利用するための手法です。

一方のMCPは、AIアプリケーションと外部のデータやツールを接続するためのプロトコルです。

両者の役割を比較すると、次のようになります。

比較項目RAGMCP
正式名称Retrieval-Augmented GenerationModel Context Protocol
主な役割外部情報を検索・取得し、LLMの回答生成に利用するAIアプリケーションと外部のデータやツールを接続する
分類手法・アーキテクチャパターンプロトコル
主な目的LLMに必要な情報を追加して回答を生成する外部機能やデータへの接続方法を標準化する
主な対象文書、データベース、検索システムなどから取得した情報ツール、リソース、外部システムなど
情報検索RAGの中心的な処理検索機能をMCP経由で提供することが可能
LLMへの情報提供取得情報をコンテキストに追加して回答生成に利用する外部から取得した情報をAIアプリケーションへ提供できる
外部システムの操作基本的な目的ではないツールとして外部処理を実行できる
APIとの関係APIなどを利用して検索・取得を実装できるMCP Serverが既存APIを利用して機能を提供できる
MCPとの関係MCPを利用してRAGの検索処理を実装することも可能RAG以外のツール実行やデータ取得にも利用できる
認証・認可RAGそのものの役割ではないMCPそのものがユーザー管理を意味するわけではなく、システムとして適切な認証・認可が必要
具体例社内文書を検索して、その内容を基にLLMが回答するAIから社内検索、DB、外部サービスなどの機能を利用する

つまり、簡潔に表現すると次のようになります。

RAG:LLMが外部情報を利用して回答するための仕組み・設計パターン

MCP:AIアプリケーションと外部のデータやツールを接続するためのプロトコル

この違いを理解すると、「RAGとMCPは競合する技術ではない」ということも分かります。

MCPを使った場合、どこがRAGになるのか

MCPを利用して社内文書を検索するシステムを考えてみましょう。

処理の流れは次のようになります。

ユーザー

LLMを利用するAIアプリケーション

MCP Client

MCP Server

社内文書を検索

関連文書を取得

取得した情報をLLMのコンテキストに追加

LLMが関連文書を参照して回答

ユーザーへ回答

この構成では、「MCP Server」がそのままRAGなのではありません。

RAGに相当するのは、質問に関連する情報を検索・取得し、その情報をLLMに与えて回答を生成する一連の処理です。

具体的には、

社内文書を検索

関連文書を取得

取得情報をLLMのコンテキストに追加

LLMが情報を基に回答

という部分がRAGの中心になります。

MCPは、そのRAGに必要な検索機能などへAIアプリケーションがアクセスするための接続方法として利用できます。

RAGにMCPは必須ではない

RAGを実現するためにMCPが必須というわけではありません。

例えば、AIアプリケーションから独自の検索処理やAPIを直接利用して関連文書を取得し、その結果をLLMへ渡す構成でもRAGを実現できます。

AIアプリケーション

検索APIなど

データベース・文書検索

関連情報を取得

LLMへ追加

回答生成

これもRAGです。

MCPを利用する場合は、検索機能などをMCP経由でAIアプリケーションから利用できるようにします。

AIアプリケーション

MCP Client

MCP Server

検索システム

関連情報を取得

LLMへ追加

回答生成

つまり、RAGを実装する方法の一つとしてMCPを組み合わせることができます。

MCPはAPIなのか

MCPを理解する際に混同しやすいのがAPIとの違いです。

MCPは特定サービスのAPIそのものではなく、AIアプリケーションと外部システムを接続するためのプロトコルです。

APIは一般に、あるソフトウェアやサービスが別のソフトウェアから機能やデータを利用できるように提供するインターフェースです。

例えば、あるサービスが独自のAPIを提供している場合、通常はそのAPIの仕様に従ってリクエストを送信する必要があります。

MCP Serverは、そのような既存APIを内部で利用し、AIアプリケーション側にMCPを通じて機能を提供する構成を取ることもできます。

例えば次のような構成です。

AIアプリケーション

MCP Client

MCP Server

外部サービスのAPI

外部サービス

この場合、MCP Serverが既存APIとの橋渡しをしています。

ただし、MCP Serverが必ずAPIを呼び出すわけではありません。ローカルファイル、データベース、検索システムなどに接続することもできます。

そのため、「MCP=API」と考えるよりも、「AIアプリケーションが外部のデータやツールを利用するための共通プロトコル」と考えたほうが理解しやすいでしょう。

MCP Serverでは何を提供するのか

MCP Serverでは、AIアプリケーションから利用できる機能や情報を提供できます。

例えば社内システム向けのMCP Serverであれば、次のような機能が考えられます。

社内文書を検索する
顧客情報を取得する
商品情報を取得する
問い合わせチケットを作成する
業務システムの処理を実行する

このうち、「社内文書を検索して取得し、その結果をLLMの回答生成に利用する」という処理はRAGとして利用できます。

一方、「問い合わせチケットを作成する」という処理は、外部ツールの実行であり、それ自体はRAGではありません。

MCPはRAGよりも用途が広く、情報取得だけでなく、外部システムの機能をAIから利用するためにも使えます。

MCP Serverでユーザーや組織を制御するのか

企業システムでMCPを利用する場合、ユーザーや組織ごとのアクセス制御は非常に重要です。

例えば、複数企業が利用するサービスでは、A社のユーザーがB社の社内文書を取得できてはいけません。

そのため、システム全体として適切な認証・認可を実装する必要があります。

ただし、「MCP Serverですべてのユーザー管理や組織管理を行う」と決まっているわけではありません。

実際のシステムでは、認証基盤、AIアプリケーション、MCP Server、検索サービス、データアクセス層などを組み合わせてアクセス制御を実現することがあります。

例えば次のような構成です。

ユーザー

認証

AIアプリケーション

MCP Client

MCP Server

検索サービス

データベース

このとき、ユーザーの所属組織や権限に応じて、アクセス可能なデータだけを検索・取得できるようにします。

特に複数組織を扱うマルチテナントシステムでは、データアクセス層を含めてテナント境界を適切に強制することが重要です。

認証・認可とRAG・MCPは別の概念

RAG、MCP、認証、認可はそれぞれ役割が異なります。

RAGは「必要な情報を検索・取得してLLMの回答生成に利用する」という考え方です。

MCPは「AIアプリケーションと外部のデータやツールを接続するためのプロトコル」です。

認証(Authentication)は、「そのユーザーが誰なのか」を確認する仕組みです。

認可(Authorization)は、「そのユーザーが何を利用できるのか」を判断する仕組みです。

企業向け生成AIシステムを設計する場合は、これらを一つの技術として考えるのではなく、それぞれ別の役割として設計する必要があります。

RAGとMCPを組み合わせた具体例

例えば、社内規程について回答するAIを考えてみましょう。

ユーザーが「国内出張の日当はいくら?」と質問します。

AIアプリケーションは、社内規程を検索する必要があると判断し、MCP Serverが提供する検索機能を利用します。

MCP Serverの先にある検索システムでは、ユーザーがアクセス可能な社内文書を検索します。

検索結果として「国内出張の日当は3,000円とする」という規程が取得されたとします。

この情報がLLMのコンテキストに追加され、LLMは取得した規程を基に「国内出張の日当は3,000円です」と回答します。

この例では、MCPが検索機能へアクセスするための接続方式として使われ、RAGが検索結果を回答生成に利用する方式として使われています。

RAGとMCPを混同しないことが重要

RAGとMCPは、どちらも生成AIシステムで外部情報を扱う場面に登場するため混同されやすい技術です。

しかし、それぞれの役割を分けると理解しやすくなります。

RAGは、外部から関連情報を取得してLLMの回答生成に利用するための手法です。

MCPは、AIアプリケーションと外部のデータやツールを接続するためのプロトコルです。

したがって、「RAGかMCPか」ではなく、「RAGをどのように実装するか」「外部の検索機能やツールへの接続にMCPを利用するか」という観点で考えることが重要です。

さらに、企業システムでは認証や認可も別途設計する必要があります。

生成AIシステム全体を考える場合は、

RAG=外部情報を取得して回答生成に利用する仕組み・設計パターン
MCP=AIアプリケーションと外部システムを接続するプロトコル
API=ソフトウェア同士が機能やデータをやり取りするためのインターフェース
認証=ユーザーが誰なのかを確認する仕組み
認可=ユーザーが何を利用できるのかを制御する仕組み

と整理すると、それぞれの役割を明確に理解できます。

B!
← 一覧へ戻る