AIが外部サービスと連携すると、さまざまな作業を自動で実行することが可能です。しかし、外部サービスごとに接続方法がバラバラだと、連携の開発や運用がとても大変です。
その課題を解決するために登場したのがMCP(Model Context Protocol)です。MCPは、AIと外部サービスを統一された方法でつなぐための共通ルールで、AI活用に欠かせない重要な技術です。
この記事では『MCP(Model Context Protocol)』について、以下の内容を図を用いてわかりやすく解説します。
- MCPとは?
- MCPのイメージをわかりやすく説明
- MCPのアーキテクチャ
- MCPホスト
- MCPクライアント
- MCPクライアント
- MCPホスト・MCPクライアント・MCPサーバーの関係性と流れ
- MCPプロトコルについて
- MCPの主要機能
- ツール (Tools)
- リソース (Resources)
- プロンプト(Prompts)
MCPとは?

MCP(Model Context Protocol)は、大規模言語モデル(LLM)を使ったAIと外部サービスをスムーズにつなぐための共通ルール(プロトコル)です。簡単に言うと「AIと外部サービスをつなげるための統一規格」です。
たとえば、AIがGitHub、Google Drive、Slack、社内ツールなどとやりとりしたいとき、従来はそれぞれの組み合わせに合わせて個別の接続方法を用意する必要がありました。これでは開発コストが高く、運用も煩雑になります。
その課題を解決するために登場したのがMCPです。MCPは、AIが様々な外部サービスと、共通のやり方でつながれるようにします。これにより、複雑な連携を個別に構築する必要がなくなり、MCPに対応したAIであれば共通の形式で安全にやりとりが可能になります。
MCPは、2024年末にAnthropic社(Claudeを開発した企業)によって提案され、急速に注目を集めています。今後のAIの実用化において、非常に重要な役割を果たすと期待されています。
MCPのイメージをわかりやすく説明
MCPを理解する上でイメージしやすい例を3つ紹介します。
- AI界のUSB-C
- MCPは「AI界のUSB-C」とよく言われます。USB-Cは、パソコンやスマホ、モニターなど様々な機器を同じケーブルで接続できるようにした標準規格です。USB-Cにより以前は機器ごとに違っていた充電器やケーブルの規格が統一され、誰でもどこでも便利に使えるようになりました。MCPもこれと同じように、AIといろんな外部サービスとの接続方式を統一しようという考え方です。
- AI向けのAPIエンドポイント
- MCPは「AI向けのAPIエンドポイント」とも言えます。たとえば、企業が自社のサービスを外部のアプリと連携できるようにするためにAPIを公開するように、MCPはAIがどんなサービスにも同じ形式でアクセスできるようにする共通の窓口を提供します。たとえばAIが「Slackにメッセージを送る」「Notionのドキュメントを見る」といったことをしたい場合、MCPを通せば、複雑な連携を個別に構築する必要がなくなります。
- AI用のコンセント
- MCPは「AI用のコンセント」のような存在でもあります。掃除機や冷蔵庫など、どんな家電も共通規格のコンセントに差し込めば動くように、MCPもまさにこの「コンセント」のようなものです。どんなAIでも、このMCPというコンセントに差し込めば、外部サービスとやりとりできるようになります。
MCPのアーキテクチャ

MCPのアーキテクチャは、大きく分けて次の3つの役割(登場人物)で構成されています。
- MCPホスト
- MCPクライアント
- MCPクライアント
順番に各役割について説明します。
MCPホスト
MCPホストは、ユーザーとAIがやり取りするための「入り口」となる存在です。ユーザーはこのMCPホストを通じて、AIに質問したり、命令を出したりします。
たとえば、Claude DesktopやCursorのようなチャット形式のAIアプリに「最近の開発状況、GitHubで何か進んでる?」と入力したとします。この入力はまずMCPホストが受け取り、MCPホスト内部のMCPクライアントを介して、MCPサーバーにリクエストを送ります。
MCPホストの例
- Claude Desktop(チャット型AI)
- Cursor(開発支援ツール)
- Amazon Q Developer(AWS開発者向けAI)
- Amazon Q Business(ビジネス支援AI)
MCPクライアント
MCPクライアントは、MCPホストの内部に組み込まれている裏方の「中継役」です。
MCPクライアントは、ユーザーからの入力をLLMに渡し、LLMの出力をもとに、「MCPサーバーが理解できる形式(=MCPプロトコルに準拠した形式)」のリクエストを構築します。
たとえば、ユーザーが「最近の開発状況、GitHubで何か進んでる?」と入力したとします。この入力はMCPホストによって受け取られ、MCPクライアントはその入力をLLMに渡します。LLMは入力内容を分析して「GitHubのリポジトリの最新のPull Request(PR)の一覧を取得する必要がある」と判断します。MCPクライアントは、そのLLMの出力をもとに、「GitHub MCPサーバーが理解できる形式(=MCPプロトコルに準拠した形式)」に変換し、GitHub MCPサーバーにリクエストを送ります。
MCPホストとMCPクライアントは別々の役割ではありますが、通常は一体化して動いているため、区別がつきにくいという点に注意が必要です。MCPクライアントは基本的にMCPホストの内部にあり、ユーザーが直接意識することはありません。
MCPサーバー
MCPサーバーは、外部サービス(GitHubやSlack)にアクセスするときに接続する「窓口」です。
MCPサーバーは、MCPクライアントから受け取ったリクエストに応じて、特定の外部サービス(GitHubやSlack)APIを呼び出し、データを取得・変更したり、特定の操作を実行したりします。たとえばGitHub MCPサーバーであれば、「GitHubのリポジトリの最新のPull Request(PR)の一覧を取得する」や「Issueを作成する」といった操作を実行し、その結果をMCPクライアントに返します。Slack MCPサーバーであれば、「あるチャンネルにメッセージを投稿する」「履歴を取得する」といった操作を実行し、その結果をMCPクライアントに返します。
これらのMCPサーバーは、MCPプロトコルに準拠している限り、どのMCP対応AIアプリからも呼び出せるように設計されています。つまり、Claude DesktopでもCursorでも、同じMCPサーバーにアクセスできる設計になっています。
さらに、MCPサーバーは外部サービスに限らず、ローカルファイルやデータベースにも対応可能です。たとえばローカルファイルのMCPサーバーでは、「指定されたパスのテキストファイルを読み取る」「ファイルに内容を書き込む」といった操作を実行できます。データベースに対応したMCPサーバーであれば、「特定のテーブルからレコードを取得する」「クエリを実行してデータを更新する」といった操作を実行し、その結果をMCPクライアントに返します。
MCPサーバーの例
- GitHub MCPサーバー
- Slack MCPサーバー
- ローカルファイルMCPサーバー
- データベースMCPサーバー
MCPホスト・MCPクライアント・MCPサーバーの関係性と流れ
この3つの役割を、実際のやり取りの流れで説明すると、次のようになります。
- ユーザーが、たとえばCursorなどのAIアプリに「最近の開発状況、GitHubで何か進んでる?」と入力します。
- この入力は、MCPホストによって受け取られ、内部のMCPクライアントに渡されます。
- MCPクライアントは、この曖昧な入力をLLM(大規模言語モデル)に送ります。
- LLMは入力内容を分析し、「GitHubのリポジトリの最新のPull Request(PR)の一覧を取得する必要がある」と判断し、「GitHubのPR一覧を取得する」という具体的な操作内容をMCPクライアントに返します。
- MCPクライアントは、この操作内容を「MCPサーバーが理解できる形式(=MCPプロトコルに準拠した形式)」に変換し、GitHub MCPサーバーにリクエストを送ります。
- GitHub MCPサーバーは実際にAPIを呼び出し、GitHubと通信して、該当するリポジトリの最新PR一覧を取得し、MCPクライアントに返します。
- 最終的に、その結果がユーザーの画面に表示され、「開発の進捗」に関する情報がわかるようになります。
MCPプロトコルについて
MCPプロトコルでは、AIと外部サービス(たとえばGitHubやSlack)の間でやり取りするメッセージに「JSON-RPC 2.0」というルール(フォーマット)が使われます。
たとえば、
- GitHubのPR一覧を取得する
- この内容でSlackに投稿する
といった命令や応答を、「JSON-RPC 2.0」という形式でやりとりします。
JSON-RPC 2.0の特徴
- テキストベースだから人間にも読みやすい
- ルールが決まっているから、いろんなアプリやツールで共通して使える
- シンプルだから処理が早くて軽い
例えば、「リポジトリ(example/repo
)のPR一覧をください」というリクエストを送るとき、こんな形になります。
{
"jsonrpc": "2.0",
"method": "getPullRequests",
"params": { "repo": "example/repo" },
"id": 1
}
MCPの主要機能
MCP(Model Context Protocol)では、AIが外部サービスやデータと連携して高度な処理を行うために、以下の主要な機能(プリミティブ)が提供されます。
- ツール (Tools)
- リソース (Resources)
- プロンプト(Prompts)
順番に各機能について説明します。
ツール(Tools)
AIが、外部で特定のアクションを実行できるようにするための機能です。
例えば、ツールを通じて、AIは以下のような操作を行うことができます。
ツール(Tools)の例
- ファイルの読み書き
- 外部APIの呼び出し(例:天気情報を取得)
- GitHubでIssueを作成
- Webページをスクレイピング
- データベースの操作
リソース(Resources)
AIが、外部のデータやコンテンツにアクセスできるようにする機能です。MCPサーバーは、リアルタイムに更新されるさまざまな情報をAIに公開し、文脈理解や高度な判断を可能にします。
例えば、以下のようなリソースが提供されます。
リソース(Resources)の例
- 現在のドキュメントの内容(例:Notionのページ)
- 特定のファイルの内容(例:MarkdownやCSV)
- APIから取得した最新情報
- 企業内のナレッジベース
プロンプト(Prompts)
AIが、ツールやリソースを使って処理を行う際に、どういう文脈や指示で動くかを定義する機能です。
たとえば以下のようなプロンプトが考えられます。プロンプトに応じて、AIは適切なツールやリソースを選択し、自律的に処理を行います。
プロンプト(Prompts)の例
- このPDFを要約してください
- このコードのバグを見つけて修正してください
- 最新の売上データをもとにレポートを作成してください
本記事のまとめ
この記事では『MCP(Model Context Protocol)』について、以下の内容を説明しました。
- MCPとは?
- MCPのイメージをわかりやすく説明
- MCPのアーキテクチャ
- MCPホスト
- MCPクライアント
- MCPクライアント
- MCPホスト・MCPクライアント・MCPサーバーの関係性と流れ
- MCPプロトコルについて
- MCPの主要機能
- ツール (Tools)
- リソース (Resources)
- プロンプト(Prompts)
お読み頂きありがとうございました。