MCP(Model Context Protocol)とは?今さら聞けない仕組みを図解【2026年版】

はじめに

こんにちは、NTT西日本の中川です。
生成AIやAIエージェントの話題で「MCP(Model Context Protocol)」という言葉をよく耳にするようになりました。「なんとなくAIとツールをつなぐもの」というイメージはあるものの、HostやServerといった用語が入り乱れ、説明文だけだとつかみにくいことがあります。。

本記事では、「今一度ちゃんと理解しよう」というスタンスで、MCPが何を解決するのか、Host・Client・Server の関係、Tools / Resources / Prompts の違いを、図を中心に整理します。Cursor に既存 Server を1つ足すときの設定例と、再起動忘れといった注意点にも触れていこうと思います。
本記事は2026年6月時点の情報に基づきます。

MCP は、AIホストと外部ツール・データをつなぐオープンなプロトコルです。Cursor や Claude Desktop の設定に MCP の項目が出てきても、Host と Server の境目は、全体像がつかみきれていない方も多いのではないでしょうか。まず Before/After と シーケンスを先に例に出し、そのあとで用語を説明する構成にしています。

対象読者

  • MCP という言葉は見たことあるけど、自分の言葉で説明できるレベルではないなと思う方
  • AIコーディングツールに Slack やデータベース連携を足したいが、仕組みから知りたい方
  • 実装の前に全体像をつかみ、既存 Server を1つ試す手順が欲しい方

目次

1. MCPとは何か

生成AIに「社内の議事録を検索して」「このリポジトリのテストを走らせて」と頼む場面が増えています。ここで毎回、ツールごとに専用の接続コードを書くのは手がかかります。Slack 用、データベース用、ファイル用……と実装が増えるほど、認証やエラー処理の書き方もバラつきます。

MCP は、その「AI と外部のあいだの接続」を共通フォーマットにしようとするオープンなプロトコルです。Anthropic が 2024年11月に公開し、2025〜2026年にかけて Cursor、VS Code、ChatGPT、Gemini などがクライアント側の対応を進めてきました。Linux Foundation 傘下の AAIF(Agentic AI Foundation)へ寄贈されています(参考資料参照)。

LangChain や LlamaIndex が処理の流れを組み立て、MCP がホストと外部ツールの接続形式を決める、という分担になります。どちらか一方で置き換える話ではありません。

ここでは MCP の役割と部品の名前を説明し、エディタに Server を1つ足すときの設定例も載せます。ブラウザ内にデータを閉じる設計と並んで、エディタ側で「どのフォルダや API を AI に触らせるか」を決める話もあります。最初から自前 Server を書くより、公開されているファイル参照用 Server を設定に載せて動くか確かめる方が手数は少ないです。

2. MCPが解く問題

従来は、大規模言語モデル(LLM)が外部機能を使うたびに、その製品専用の API ラッパーをアプリ側に書いていました。Function Calling や Tools API も便利ですが、接続の形はモデルやホストごとに異なり、同じ「カレンダー取得」を Claude 用と別製品用で二重に保守する場面がありました。

MCP では、外部側を MCP Server として実装し、ホストアプリ(Cursor など)が MCP Client 経由で Server を見つけて呼び出す形になります。Server を一度書けば、対応しているクライアントから同じ手順で使える点が大きいです。社内で「Slack 検索だけ」「読み取り専用のデータベース参照だけ」と Server を小さく分けておくと、後から Host を変えても接続の作り直しが少なくて済みます。

図のとおり、変わるのは「各ホストがバラバラに API を叩く」状態から、「Server が共通の窓口になる」状態です。同じ外部連携をホストごとに別実装で持つと、片方だけ直し忘れる、という保守上の負担も共通化の動機になります。

3. 仕組みと3つの部品

以降の文中で単に Server と書く場合は、MCP Server(外部ツール側)を指します。Host や Client と混同しやすいので、表では MCP Server と表記しています。

MCP の会話は JSON-RPC 2.0 ベースです。公式仕様では、ローカル向けに標準入出力(stdio)、リモート向けに Streamable HTTP などのトランスポートが定義されています。どちらにしても、「Host の設定ファイルに Server の起動方法を書く → Client が自動で見つける」という流れは同じです。細部の仕様は公式サイト(modelcontextprotocol.io)にありますが、ここでは役割の分担に絞って話します。

役割 説明
Host ユーザーが触るアプリ本体(Cursor、Claude Desktop など)
MCP Client Host の内側で Server と通信する部品
MCP Server 外部ツールやデータを MCP の形で公開する側

Server が外に出す機能は、大きく3つに分かれます。

部品 ざっくりした意味
Tools AI が実行できる操作 ファイル作成、API 呼び出し、クエリ実行
Resources AI が読むためのデータ ドキュメント本文、レコード一覧
Prompts 再利用する指示の型 レビュー用テンプレート、定型ワークフロー

Tools は「やらせる」、Resources は「見せる」、Prompts は「始め方の型を渡す」、と覚えると区別しやすいです。社内 Wiki を Resources で読ませ、チケット起票だけ Tools で許可する、といった分け方がわかりやすい例です。全部を Tool にすると、AI が不要な操作まで実行しようとする余地が広がります。

実際の製品では、Host が内部の LLM と Client をまとめて動かします。画面から見えるのは「AI が社内ツールに触れた」という結果で、その裏で Client が Server と JSON-RPC でやり取りしている、と考えればそれで足ります。

4. どこで使われ、何に気をつけるか

2026年6月時点で、設定例を書きやすいのは Cursor と Claude Desktop です。VS Code 系のエディタでも MCP 連携の情報は出ていますが、メニュー位置は更新で変わりやすいので、ここでは Cursor を例にします。公開されている MCP Server は Slack、GitHub、データベース、ファイルシステムなどがあり、一覧サイトから探せます。

手順は単純で、Host の設定に Server の起動コマンドを書き、Host を再起動して Client に認識させます。Cursor では MCP 用の設定 JSON に、次のようなjson形式で記述していきます(パスは読み替えてください)。

{
  "mcpServers": {
    "local-files": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/path/to/allowed-folder"
      ]
    }
  }
}

command が Server を起動するコマンド、args がその引数です。JSON を保存したあと Host を再起動し忘れると、設定は入っているのに Tools が増えない、という状態になり得ます。あわせて、npx や Node.js のパスが通っていない環境では Server プロセス自体が立ち上がりません。ターミナルから同じ command / args を手打ちで試すと、原因の切り分けが早いです。

動かないときは、まず次の3点を確認してみてください。

  • Host を再起動したか(設定変更後は再起動が必要な場合がある)
  • command がそのマシンで実行できるか(パス・権限・ネットワーク)
  • 最初から書き込み系 Tool を足していないか(読み取り専用の Server から試す)

一方で、便利さの裏には注意点もあります。例えば、/path/to/allowed-folder に業務データ一式を渡すと、AI の誤操作で触られる範囲も広がります。試すときは、業務フォルダではなく空のテスト用ディレクトリだけを path に指定し、Tools の名前を確認してから範囲を広げるのが安全です。社内メモを外部に送るか迷う場面と同種で、最初から広いパスを渡すのは避けた方がよいです。本番系の Tool は別 Server に分け、どの Tool が呼ばれたかログに残す、という運用が現実的です。MCP は接続を楽にする仕組みにすぎず、「何を見せ、何をさせるか」は人間が決める必要があります。設定画面に Server が並んでいるから安全、とは考えないほうがいいです。

5. まとめ

MCP は、AIホストと外部ツールの接続を共通化するプロトコルです。Host・Client・Server の三層と、Server が提供する Tools / Resources / Prompts の名前がわかると、設定画面やエージェント機能の説明が読みやすくなります。

用語より先に、既存 Server を1つ設定に載せて再起動してみる方が、全体像はつかみやすいです。自前 Server や権限設計は、そのあとでよいと思います。

執筆者

中川 拓哉(NTT西日本 デジタル革新本部 デジタル改革推進部所属)
NTT西日本のWebアプリケーションの開発・運営に従事。
好きな技術スタック:TypeScript, Vue.js, GraphQL, Laravel

参考資料・出典

本記事を執筆するにあたり、以下のサイトを参考にしました。

商標

  • Cursor は Anysphere, Inc. の商標または登録商標です。
  • Claude は Anthropic, PBC の商標または登録商標です。
  • GitHub、Visual Studio Code は Microsoft Corporation の商標または登録商標です。
  • ChatGPT は OpenAI OpCo, LLC の商標または登録商標です。
  • Gemini は Google LLC の商標または登録商標です。
  • Slack は Salesforce, Inc. の商標または登録商標です。
  • 記載の会社名・製品名は、各社の商標または登録商標です。

© NTT WEST, Inc.