最終更新:

MCPの仕組み——AIとツールをつなぐ標準プロトコルをわかりやすく解説


MCPの仕組み:Host / Client / Server Host (AIアプリ) AIモデル (Claude / GPT等) MCP Client (通信担当) ユーザー入力 MCP プロトコル MCP Server (外部ツール側) GitHub Server Slack Server DB Server 5800+ servers... リクエスト → ← レスポンス ①ユーザーが依頼 ②MCPで通信 ③ツールが処理&返答
MCPの3層構造:HostのAIがClient経由でServer(ツール)と標準プロトコルで通信する
ひよこ ひよこ
MCPって最近よく聞くんだけど、どんな仕組みで動いてるの?
ペンギン先生 ペンギン先生
MCPはHost・Client・Serverの3層構造で動いてるよ。HostはClaude DesktopやCursorみたいなAIアプリのこと。ClientはそのApp内でMCP通信を担当する部分。ServerはGitHubSlackなどの外部ツール側が提供するMCPエンドポイントだよ。
ひよこ ひよこ
AIアプリがツールに話しかけるときはどんな流れになるの?
ペンギン先生 ペンギン先生
まずHostがMCP Serverに接続して、使えるツール一覧(ツールリスト)を取得するよ。次にユーザーがAIに「GitHubのIssueを見て」と依頼すると、AIはツールリストを参照して適切なMCPツールを呼び出す。Server側が処理して結果を返し、AIがその結果を使って回答するんだ。
ひよこ ひよこ
MCPが登場する前はどうやってたの?
ペンギン先生 ペンギン先生
以前は各AIと各ツールを個別に連携させる必要があって、nツールとmのAIがあればn×m個のコネクタを書く必要があったんだ。MCPが登場してからは、ツール側がMCPサーバーを一つ作ればすべてのMCP対応AIとつながれる。これをn×m問題の解決と呼ぶよ。
ひよこ ひよこ
MCPと昔からある「Function Calling」って何が違うの?
ペンギン先生 ペンギン先生
違いを比べてみようか。
比較項目Function CallingMCP
接続方式API経由(HTTP標準プロトコル(ローカル/HTTP
互換性AIごとに個別実装どのAIでも同じ仕様
状態管理ステートレス(基本)2026年7月の仕様更新でステートレスなコアに移行
認証各ツールで個別設定プロトコルレベルで統一
再利用性低い(AI依存)高い(標準準拠)
要するにFunction Callingは各AI専用の実装だけど、MCPはどのAIでも動く共通インターフェースだよ。
ひよこ ひよこ
MCPサーバーって自分でも作れるの?難しそう...
ペンギン先生 ペンギン先生
実は意外と簡単で、PythonTypeScriptJavaなどのSDKが公式で提供されてるよ。SDKを使えば、ツールの定義(何ができるか)を書いてMCPサーバーとして公開するだけ。既存のREST APIをラップしてMCPサーバーに変換する手法も広く使われてるよ。
ひよこ ひよこ
セキュリティは大丈夫なの?AIがいろんなツールにアクセスできるのは怖い気も...
ペンギン先生 ペンギン先生
MCPOAuth 2.0認証や権限スコープ(何にアクセスできるか)の仕組みを標準で持ってるよ。ユーザーがどのツールへのアクセスを許可するかを明示的に制御できるし、Serverはリクエストを検証してから実行するんだ。完全に信頼できるとは言えないけど、設計段階からセキュリティが考慮されてるよ。
ひよこ ひよこ
MCPって仕様がどんどん更新されてるって聞いたけど、最近大きく変わったところはあるの?
ペンギン先生 ペンギン先生
うん、2026年7月に「2026-07-28」という大きな仕様更新があったよ。それまでは接続ごとに状態を保持する「セッション管理」が前提だったんだけど、これを撤廃してステートレスなコアに変わったんだ。おかげで普通のHTTPロードバランサーの上でも大規模にスケールできるようになったよ。あわせてRoots・Sampling・Loggingといった機能は非推奨になって拡張機能(extension)側に切り出されたし、古いHTTP+SSEトランスポートも今後1年ほどかけて廃止される予定なんだ。PythonTypeScriptJavaC#の主要SDKはすでにこの新仕様に対応しているよ。