はじめに
こんにちは、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
参考資料・出典
本記事を執筆するにあたり、以下のサイトを参考にしました。
- Model Context Protocol — Architecture overview
- Anthropic — Introducing the Model Context Protocol
- Linux Foundation — Anthropic Donates Model Context Protocol to New Agentic AI Foundation
商標
- Cursor は Anysphere, Inc. の商標または登録商標です。
- Claude は Anthropic, PBC の商標または登録商標です。
- GitHub、Visual Studio Code は Microsoft Corporation の商標または登録商標です。
- ChatGPT は OpenAI OpCo, LLC の商標または登録商標です。
- Gemini は Google LLC の商標または登録商標です。
- Slack は Salesforce, Inc. の商標または登録商標です。
- 記載の会社名・製品名は、各社の商標または登録商標です。