MCPとは?AIと外部のツールをつなぐ仕組み

MCP、AIとツールを、つなぐしくみ。寅次郎先生と記事の内容を表すイラスト。
確認日:2026年10月6日
仕様の版:2026-07-28(前の版は2025-11-25)

AIに「Googleドライブの資料を探して」と頼むとき、AIのアプリは外部のサービスとどうつながるのでしょうか。MCPで何と何がつながり、AIがどこまで操作できるようになるのかを、公式の仕様をもとに説明します。

MCPとは

MCP(Model Context Protocol)は、AIを使うアプリと、外部のデータやツールをつなぐための公開の取り決め(プロトコル)です。

AIのアプリが、MCPという共通の決まりを通して、ファイル、データベース、Webサービスにつながる図

AIのアプリは、そのままでは自分のパソコンのファイルや、会社のデータベースを読めません。MCPに対応したアプリなら、MCPの形で用意された接続用のプログラムをつなぐだけで、AIがそれらを読んだり操作したりできるようになるわけです。

公式サイトでは、MCPを「AIアプリ向けのUSB-Cポート」にたとえています。どのメーカーの機器でもUSB-Cの差し込み口に挿せば使えるのと同じように、MCPの形で作ったものはClaude、ChatGPT、Visual Studio CodeなどMCPに対応したどのアプリからでも使える、という意味です。

MCPが生まれた背景

MCPは、2024年11月25日にAnthropicが公開した仕組みです。

それまでは、AIにGoogle DriveやSlack、社内のデータベースを読ませようとすると、AIのアプリとデータの置き場所の組み合わせごとに、専用の連携を作る必要がありました。AIのアプリが3つ、データの置き場所が4つあれば、連携は12通りになる計算です。

MCP以前は3つのアプリと4つのデータの組み合わせごとに12通りの連携が必要だったが、MCP以後はそれぞれがMCPに1回ずつ対応すれば済むことを示す図

Anthropicは発表の中で、データの置き場所ごとに専用の実装が要ることと、AIがデータから切り離されていることを課題に挙げていました。

MCPは、この連携の形を1つにそろえるものです。データやツールを持つ側は、MCPの形で1回だけ用意すれば、MCPに対応したどのAIアプリからも使えるようになります。公開と同時に、仕様と開発キット(SDK)、Claude Desktopアプリでの対応、Google Drive、Slack、GitHub、PostgreSQL向けの接続用プログラムが出されました。

仕様には、Language Server Protocol(LSP)から着想を得たと書かれています。LSPは、プログラミング言語の入力補完やエラー表示を、どの開発ツールにも共通の形で足せるようにした取り決めです。言語ごと、ツールごとに作り直さなくてよくなった点が、MCPの考え方と重なります。

2025年12月9日には、Linux FoundationのもとにAgentic AI Foundation(AAIF)が作られ、MCPはその最初のプロジェクトの1つとして移りました。AAIFはAnthropic、Block、OpenAIが共同で設立したもので、特定の企業から独立して運営するための組織です。

登場する3つの役割

MCPの仕様は、登場するものをホスト、クライアント、サーバーの3つに分けています。

役割 何にあたるか 主な仕事
ホスト(Host) 利用者が触るアプリ。AIのチャットアプリ、AIを組み込んだ開発ツールなど クライアントを作って管理する。接続の許可と利用者の同意を受け持ち、AIとの受け渡しをする
クライアント(Client) ホストの中で動く、接続の係 1つのサーバーとだけやりとりする
サーバー(Server) データや機能を差し出す側 ファイル、データベース、Webサービスなどの機能を、MCPの形で差し出す

ホストの中に3つのクライアントがあり、それぞれが1つのサーバーとだけ1対1でつながる図。会話の履歴はホストだけが持ち、サーバー同士は互いの中が見えない

名前に「サーバー」と付きますが、インターネットの向こうにあるとは限りません。自分のパソコンの中で動くプログラムもあれば、Webサービスとして提供されるものもあります。

押さえておきたいのは、クライアントとサーバーが1対1でつながる点です。ホストに3つのサーバーをつなぐと、ホストの中には3つのクライアントができます。

この形にしたのは、安全のためでした。仕様の設計原則の1つが、サーバーは会話の全体を読めず、ほかのサーバーの中も見えないようにする、というものです。会話の履歴を持つのはホストだけで、サーバーには必要な情報だけが渡されます。あるサーバーが別のサーバーのデータを勝手に読む、といったことが起きない作りです。

サーバーが差し出す3つの機能

サーバーがクライアントに差し出す機能は、Prompts、Resources、Toolsの3種類です。仕様では、誰が使うかを決めるかで、この3つを分けています。

機能 使うかを決める人 仕様に挙がっている例
Prompts 利用者 スラッシュコマンド、メニューの項目
Resources アプリ ファイルの中身、Gitの履歴
Tools AIモデル WebサービスへのデータのPOST、ファイルの書き込み

Promptsは利用者、Resourcesはアプリ、ToolsはAIモデルが使うかを決める、という3つの機能の違いを示す図

Promptsは、決まった指示のひな形です。利用者がメニューから選んだときだけ使われます。

Resourcesは、AIに読ませる材料です。どのファイルを会話に加えるかは、AIではなくアプリの側が決めます。

Toolsは、AIが自分の判断で呼び出す機能で、MCPでもっともよく使われるものです。「AIがデータベースを検索する」「AIがチケットを作る」といった動きも、ほとんどがToolsで実現されています。

やりとりの流れ

ここでは、天気を調べるツールを持つサーバーを例に、AIがツールを使うまでの流れを追います。

  1. クライアントが、サーバーに使えるツールの一覧を求めます(tools/list)
  2. サーバーは、ツールの名前、説明、受け取る値の形を返します。たとえば「get_weather:地名を受け取り、その地点の天気を返す」という内容です
  3. ホストは、この一覧をAIモデルに渡します。利用者が「明日の大阪の天気は?」と尋ねると、AIモデルは一覧の中から get_weather を使うと判断します
  4. クライアントが、地名に「大阪」を入れてツールを呼び出します(tools/call)
  5. サーバーが天気の情報を返し、ホストはそれをAIモデルに渡して、回答を作らせます

クライアントがサーバーからツールの一覧を受け取ってAIモデルに渡し、AIモデルが選んだツールについてホストが利用者の許可を得てから、クライアントがツールを呼び出し、結果をAIモデルに渡す流れの図

この流れで、AIモデル自身はサーバーに直接つながっていません。AIモデルは「このツールをこの値で使いたい」と伝えるだけで、実際に呼び出すのはホストの中のクライアントです。そのため、ホストは呼び出す前に利用者へ確認を求められます。

やりとりの書式は、JSONでメッセージを送り合う既存の取り決め、JSON-RPC 2.0です。

通信の方法

クライアントとサーバーのつなぎ方は、標準で2つ決まっています。

stdioは自分のパソコンの中でクライアントがサーバーを子プロセスとして起動して標準入出力でやりとりし、Streamable HTTPはインターネット上のサーバーの1つの窓口へHTTPで送ることを示す図

stdioは、自分のパソコンの中で動くサーバー向けの方法です。クライアントがサーバーのプログラムを起動し、標準入出力でメッセージを1行ずつ送り合います。

Streamable HTTPは、インターネット上のサーバー向けの方法で、サーバーの1つの窓口(エンドポイント)にHTTPでメッセージを送る形です。

AIのアプリにサーバーを足すときに選ぶ「手元のサーバー」と「リモートのサーバー」も、多くの場合この2つにあたります。

安全に使うための考え方

MCPのサーバーをつなぐと、AIはファイルの書き込みや外部サービスの操作までできるようになります。仕様もこの点を重く見ていて、ツールは任意のプログラムを実行できるものとして慎重に扱うよう求めている点に注意してください。

仕様が挙げる原則は、次の3つです。

  • 利用者の同意と管理:どのデータを渡し、どの操作をさせるかを、利用者が理解したうえで決められるようにする
  • データの保護:利用者の同意なしに、データをサーバーへ渡したり、ほかへ送ったりしない
  • ツールの安全:ツールを呼び出す前に、利用者の明示的な同意を得る

ツールについては、利用者がいつでも呼び出しを拒否できる状態にしておくべきだ、とも書かれています。AIのアプリがツールを使う前に許可を求めてくるのは、この考え方に沿った作りです。

AIモデルがツールを使いたいとき、利用者が確認し、許可すればサーバーで実行し、拒否すれば実行しない流れの図。あわせて、悪意のあるツールの説明と、Webやメールに紛れた指示の2つに気をつけることを示す

一方で、仕様はこれらの原則をプロトコルの仕組みだけでは守らせられないと認めており、守る責任はホストやサーバーを作る側と、使う側にあるとしています。利用者として気をつけたいのは、次の2点です。

まず、信頼できるサーバーだけをつなぎましょう。サーバーが返すツールの説明は、AIモデルがそのまま読むため、悪意のある説明が書かれていると、AIが意図しない操作をしかねません。仕様も、信頼できるサーバー以外から来たツールの説明は信用しないよう求めています。

次に、外部の内容を取ってくるサーバーには注意してください。Webページやメールを読み込むサーバーは、その中に紛れ込んだ指示(プロンプトインジェクション)をAIに渡してしまうことがあるためです。Claude Codeのドキュメントも、つなぐ前にサーバーを信頼できるか確かめるよう書いています。

仕様は版ごとに変わる

MCPの仕様には 2025-11-25、2026-07-28 のように日付の版があり、公開から2年たたないうちに何度も改訂されています。

MCPの年表。2024年11月にAnthropicが公開、2025年3月にHTTP+SSE方式を非推奨、2025年11月に仕様を改訂、2025年12月にAAIFへ移り、2026年7月の版でステートレスになった

2026-07-28の版では、接続ごとに状態を持つ方式をやめ、1つひとつの要求に必要な情報をすべて載せる方式(ステートレス)に変わりました。サーバーが対応する版と機能を知らせる server/discover という問い合わせも、必ず用意するものになっています。あわせて、Roots(作業するフォルダーをサーバーに知らせる機能)とSampling(サーバーがAIモデルに文章を作らせる機能)は非推奨になりました。

この版から、非推奨にした機能は最低12か月残す決まりもできています。MCPについて書かれた記事を読むときは、どの版を前提にしているかを確かめてください。

製品での使われ方

MCPの公式サイトによると、ClaudeやChatGPTといったAIアシスタント、Visual Studio CodeやCursorといった開発ツールなど、多くの製品がMCPに対応済みです。対応しているアプリでは、多くの場合、サーバーを足す操作だけで使い始められます。

例として、AnthropicのClaude Codeでサーバーを足すコマンドは claude mcp add です。手元で動かすサーバーには --transport stdio、インターネット上のサーバーには --transport http を付けてください。設定を保存する範囲は3つあり、自分だけが今のプロジェクトで使う(local)、チームでプロジェクトごとに共有する(project、.mcp.json に保存)、自分のすべてのプロジェクトで使う(user)から選べます。

ClaudeのアプリでGoogle DriveやSlackなどの「コネクタ」をつなぐと、AIがそのサービスのデータを読めるようになるのも、同じ仕組みです。Claude Codeのドキュメントでも、コネクタは同じMCPの仕組みで動いていると説明されています。

参考にした一次情報

当サイトが作成した本文はCC BY 4.0です。引用画像は対象外です。AIエージェントの記事の一覧へもどる