MCP(Model Context Protocol)とは、AIが外部のツールやデータソースとやり取りするための共通ルールです。
生成AIは今や、ユーザーの質問へただ回答するだけでなく、ファイルの検索やデータベースの参照、GitHubの操作やSlackへの投稿など、さまざまな作業を実行できるようになってきています。
しかし、こうした外部ツールとの連携は、AIごとに異なるAPI(ソフトウェア同士をつなぐための接続窓口)や接続方法を実装する必要があり、開発者にとって大きな負担となっていました。
この記事では、MCPの基本的な仕組みや特徴、構成要素やメリット・デメリットなどについて解説します。
MCPとは
AIとツールをつなぐ共通ルール
MCP(Model Context Protocol)は、Anthropicが公開したオープンなプロトコル(通信の共通ルール)です。
AIと外部のツールやデータソースを、共通の手順でつなげられるようにする仕組みとして設計されています。
現在はオープンな仕様として公開されており、多くの開発者や企業が対応を進めています。
例えばAIに、ローカルファイルの検索やデータベースの参照、あるいはGitHubのIssueの確認やSlackへのメッセージ送信といった処理を実行させたい場合に、AIだけではこれらの情報へ直接アクセスすることはできません。
そこで、MCPサーバーが仲介役となり、AIからの要求を受け取って外部サービスとの通信を行います。
AIはMCPという共通仕様を利用するだけで、さまざまなツールへアクセスできるようになります。
イメージとしては次のような構図になります。
AIアプリケーション
│
MCP
│
├ GitHub
├ Slack
├ Filesystem
├ Database
└ Google DriveAIは個々のサービスの実装方法を意識せずに済み、MCPという共通インターフェースを通じてさまざまなサービスと連携できます。
イメージとしては、パソコンとさまざまな周辺機器をつなぐ「USB-C」のような役割と考えると分かりやすいかもしれません。
USB-Cが登場する以前は、機器ごとに異なる形状のケーブルや端子が必要でしたが、USB-Cという共通規格ができたことで、一本のケーブルでさまざまな機器を接続できるようになりました。MCPも同様に、AIと外部ツールをつなぐ「共通の差し込み口」を提供しています。
MCPが生まれた背景
生成AIの活用が広がるにつれて、AIが外部ツールやデータソースを利用する機会も増えています。
しかし、MCPが登場する以前はAIと外部サービスを連携させるための共通ルールが存在せず、ClaudeやCursorなど、AIアプリケーションごとに独自の方法で実装する必要がありました。
このような状況では、開発コストや保守コストが増大し、新しいツールを追加する際にも大きな負担となってしまいます。
この非効率さを解消する目的で設計されたのが、MCPです。
MCPは、AIアプリケーションと外部ツールを接続するための共通プロトコルとして設計されており、一度MCPサーバーを実装すれば、MCPに対応した複数のAIアプリケーションから利用できるようになります。
2024年11月の登場以降、MCPは急速に業界標準としての地位を築きつつあります。
2025年3月にはOpenAIが自社のAgents SDKでMCP対応を正式に発表し、同年6月にはChatGPTのデスクトップ版でもサポートが追加されました。
GoogleのGeminiやMicrosoftのAzure OpenAIでもMCP対応が進んでおり、主要なAIベンダーを巻き込んだエコシステムの形成が急速に進んでいます。
一方、AIに関連するオープンプロトコルには、MCPの他にA2A(Agent2Agent)があります。
A2Aは2025年4月にGoogleが提唱したプロトコルで、50社以上の企業が賛同を表明しています。
両者の違いは、対象とする接続先が外部ツールやデータソースか、もしくはAIであるかです。
| 規格 | 接続対象 | 目的 |
|---|---|---|
| MCP | AIと外部ツール・データソース | 外部システムとの接続方法を標準化する |
| A2A | AIエージェント同士 | AI同士のタスク連携・情報共有を標準化する |
近年、AIの活用がさらに進むにつれて、AI同士が連携して作業を分担するケースも増えています。
例えば、あるAIが情報収集を行い、その結果を別のAIが分析するといった連携です。
しかし、MCPはあくまでAIと外部ツールやデータソースを接続するための規格であり、AI同士のやり取りを目的として設計されたものではありません。
AI同士の連携を実現するために策定されたのが、A2Aです。
A2Aは、異なるAIエージェント(自律的にタスクを遂行するAI)同士がタスクや情報をやり取りし、協調して処理を進めるためのオープンプロトコルとなっています。
つまり、MCPとA2Aは競合する技術ではなく、それぞれ役割が異なります。
- MCP:AIと外部ツール・データソースを接続するための共通規格
- A2A:AIエージェント同士が連携して作業するための共通規格
両者は競合するのではなく、相互に補完し合う関係です。
AIエージェントを活用したシステムでは、MCPとA2Aを組み合わせて利用するケースが今後の主流になっていくはずです。
MCPの機能・特徴
MCPでは、AIが外部システムと連携するための機能を標準化しています。
公式仕様では、サーバーが提供する代表的な機能としてTools(ツール)、Resources(リソース)、Prompts(プロンプト)の3つが定義されています。
MCPが持つ3つの中核機能(ツール・リソース・プロンプト)
| 機能 | 役割 | 具体例 |
|---|---|---|
| Tools(ツール) | AIが操作を実行するための関数を公開する | ファイル作成、Pull Request作成、Slackへの投稿 |
| Resources(リソース) | AIが参照する情報を提供する | テキストファイル、PDF、データベース内のデータ |
| Prompts(プロンプト) | 再利用可能なテンプレート・ワークフローを提供する | コードレビュー、バグ調査、ドキュメント要約 |
【Tools(ツール)】
Toolsは、AIが具体的な操作を実行するための関数を公開する機能です。
関数は主に、以下のような外部システムに対する操作に対応できます。
例:
・ファイル作成
・Pull Request作成
・データベースへの問い合わせ
・Slackへの投稿
AIは利用可能なツールの一覧を受け取り、ユーザーの指示に応じて適切なツールを選択・実行します。
【Resources(リソース)】
Resourcesは、AIが参照する情報を提供する仕組みです。
例:
・テキストファイル
・PDF
・ソースコード
・データベース内のデータ
AIはリソースを読み取り、その内容を回答の根拠やコンテキストとして利用します。
リソースはURI(ファイルの場所を示すアドレスのようなもの)やMIMEタイプ(ファイルの種類を表す情報)などとともに提供され、必要な情報だけを取得できるよう設計されています。
【Prompts(プロンプト)】
Promptsは、MCPクライアントに向けて再利用可能なプロンプトテンプレートやワークフローを提供する機能です。
利用頻度の高い指示などをテンプレート化することにより、決まった作業を効率よく実行できます。
例:
・コードレビュー
・バグ調査
・ドキュメント要約
クライアント・サーバーモデルによる高い拡張性
MCPは、一般的なクライアント・サーバーモデルを採用しています。
AIアプリケーションが直接外部ツールやデータベースへ接続するのではなく、MCPサーバーを経由して通信します。
新しいツールを追加したい場合でも、AI本体を変更する必要はなく、新しいMCPサーバーを追加するだけで対応できます。
例えば、Slack連携を新しく追加したい場合も、既存のAIアプリケーション側のコードには一切手を入れず、Slack用のMCPサーバーを立てるだけで済みます。
また、一つのAIアプリケーションが複数のMCPサーバーへ同時に接続することも可能です。
こうした拡張性の高さが、MCPの大きな特徴の一つです。実際に複数のMCPサーバーを併用してみると、既存のAIアプリケーション側には一切手を加えずに済むため、機能を試しては入れ替える、といった気軽な運用がしやすいと感じます。
MCPのメリット・デメリット
MCP導入によるメリット
MCPを導入するメリットは、主に以下の点が挙げられます。
- AIアプリケーションごとに個別の処理を実装する必要がなくなる
- 共通利用できるため、AIアプリケーションの切り替えが容易になる
- ツールの新規追加が実行しやすくなる
- 保守性が高い
従来はAIアプリケーションごとに接続用のコードを個別開発する必要がありましたが、MCPに対応してさえいれば同じMCPサーバーをClaude DesktopでもCursorでも共通して使い回せるため、利用するAIアプリケーションを乗り換える際の作り直しコストがかかりません。
ツールを新しく追加する場合も、既存の仕組みに手を加えず新しいMCPサーバーを一つ用意するだけで済みます。
実際に、接続先のサービス仕様が変わった場合でも、修正が必要なのはMCPサーバー側のみで、AIアプリケーション本体には影響しません。
この分離こそが、保守性の高さにつながっています。
MCP導入の注意点
一方、以下のようなデメリットも挙げられます。
- Node.jsの知識が必要
- 権限設定を間違えると危険
- MCPサーバーごとに品質が異なる
- ローカル環境の構築が必要になる場合がある
MCPサーバーの使用にはNode.jsが必要になるケースが多いため、多少ではありますがその分の学習コストがかかります。
また、ファイルへのアクセス権限などが必要になるツールもあるため、権限設定を誤ると使用時の危険性が高まるリスクもあります。
複数のMCPサーバーを同時に接続している場合、いずれか一つに脆弱性があると、接続している他のAIやサービスにまで影響が及ぶ可能性がある点にも注意が必要です。
MCPサーバーは公式だけでなく有志の開発者によっても数多く公開されているため、サーバーによって実装の品質やメンテナンス状況にばらつきがある点にも注意が必要です。
導入前には、公式が提供しているサーバーかどうか、GitHub上での更新頻度やスター数、Issueへの対応状況などを確認しておくと、トラブルの少ないサーバーを見極めやすくなります。
MCPの仕組みを支える3つの要素(ホスト・クライアント・サーバー)
MCPでは、Host(ホスト)、Client(クライアント)、Server(サーバー)の3つが基本構成となります。
公式アーキテクチャでも、この3つの役割を明確に分けて定義しています。
それぞれの役割を詳しく見る
| 要素 | 役割 | 具体例 |
|---|---|---|
| Host(ホスト) | ユーザーが直接利用するAIアプリケーション | Claude Desktop、AI対応のIDE |
| Client(クライアント) | HostとMCP Serverの橋渡しを行う | (MCPの内部で動作するため、ユーザーが直接操作することは少ない) |
| Server(サーバー) | 外部ツールやデータへのアクセスを提供する | Filesystem Server、GitHub Server、PostgreSQL Server など |
【Host(ホスト)】
Hostは、ユーザーが直接利用するAIアプリケーションを指します。
例えば、Claude DesktopやAI対応のIDE(コードを書くための統合開発環境)などがHostに該当します。
ユーザーが入力した質問や指示は、まずHostが受け取り、必要に応じてMCP Clientへ処理を依頼します。
Hostはユーザーインターフェースを担当する存在であり、「AIと会話するためのアプリケーション」と考えると分かりやすいでしょう。
【Client(クライアント)】
Clientは、HostとMCP Serverの橋渡しを行う役割を担います。
Hostから受け取った要求をMCPの通信仕様に従ってサーバーへ送信し、サーバーから返ってきた結果をHostへ返します。
ユーザーが直接Clientを操作することはほとんどありませんが、MCPの通信を成立させるために欠かせない存在です。
【Server(サーバー)】
Serverは、実際に外部ツールやデータへのアクセスを提供します。
以下はその代表例です。
- Filesystem Server
- GitHub Server
- PostgreSQL Server
- SQLite Server
- Google Drive Server
Serverは利用可能なTools・Resources・Promptsを公開しており、Clientから要求を受けると必要な処理を実行します。
このように役割を分離することで、Hostはツールの実装を意識せずに利用でき、Server側も一度実装すれば複数のAIアプリケーションから再利用できます。
リクエストが処理されるまでの流れ
MCPでは、ユーザーの指示が次のような流れで処理されます。
![]()
- ユーザーがHostへ質問を入力する
- Hostが必要なツールを判断し、Clientへ要求を送信する
- ClientがMCP Serverへリクエストを送る
- Serverがファイルやデータベースなどへアクセスして処理を実行する
- Serverが結果をClientへ返す
- ClientがHostへ結果を返し、AIが回答を生成する
MCPは、AIと外部システムの間に共通の通信層を設けることで、安全かつ柔軟な連携を実現しています。
代表的なMCPサーバーの種類と活用シーン
現在では、公式・コミュニティの両方からさまざまなMCPサーバーが公開されており、用途に応じて組み合わせて利用できます。
以下は、代表的なサーバーの例です。
| MCPサーバー | 主な用途 |
|---|---|
| Filesystem | ローカルファイルの読み書き |
| GitHub | リポジトリ・Issue・Pull Requestの操作 |
| PostgreSQL | データベース検索・SQL実行 |
| SQLite | ローカルデータベースの操作 |
| Fetch | Webページの取得 |
| Google Drive | Drive内ファイルの検索・取得 |
例えば、GitHub Serverを利用すれば、AIにIssue一覧の取得やPull Requestの確認を依頼できます。
Filesystem Serverであれば、フォルダ構成の確認、ファイルの読み込み、テキストファイルへの書き込みといった操作が可能になります。
さらに、複数のMCPサーバーを組み合わせることで、GitHubからソースコードを取得し、ローカルの設計書と比較してレビューするといったような、複数のシステムを横断する処理も実現することができます。
【実践】Claude DesktopでMCPを使ってみる
ここからは、Claude DesktopへMCPサーバーを追加する基本的な流れを紹介していきます。
※MCPサーバーによって設定内容は異なりますが、基本的な手順は共通しています
事前準備:Node.jsのインストール
多くのMCPサーバーはNode.jsで提供されています。
そのため、まずはNode.jsを事前にインストールしておきましょう。
インストール用のコマンドは、公式サイトのダウンロードページでOSやバージョン、使用するツールを選ぶことで自動で生成されます。
![]()
参考:Node.js公式サイト
インストール後に以下のコマンドを実行し、正常にインストールされていることを確認しましょう。
node -v
npm -vバージョン番号が表示されれば準備完了です。
MCPサーバーのインストール
今回は、代表的なFilesystem Serverを例に、ローカルでMCPサーバーを使えるようにしていきます。
まずは以下のコマンドを実行して、filesystemのMCPサーバーをインストールします。
npm install -g @modelcontextprotocol/server-filesystemコマンド中の-gは、特定のプロジェクトだけでなくPC全体で使えるようにインストールするという意味のオプションです。
使用するサーバーによっては、事前にAPIキーの設定や認証情報の登録が必要になる場合があります。
導入する際は、サーバーのREADMEや公式ドキュメントを確認しておきましょう。
Claude DesktopでのMCP連携設定
サーバーのインストールが完了したら、Claude Desktop側の設定に移りましょう。
ローカルでMCPサーバーを使用する場合は、設定ファイル(claude_desktop_config.json)に利用するサーバーの情報を追加する必要があります。
まずは設定画面を開き、「開発者」の項目を選択します。
![]()
「設定を編集」ボタンをクリックするとディレクトリが開かれ、claude_desktop_config.jsonファイルが選択された状態になるので、任意のテキストエディタで開きましょう。
![]()
ファイルを開いたら、MCPサーバーの情報を追加します。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/User/Desktop"
]
}
}
}
上記の例はMac向けのパス表記です。Windowsの場合、パスの区切りに使う「\」はJSON内では「\\」と2つ重ねて書く必要があります(例:"C:\\Users\\ユーザー名\\Desktop")。
この書き方を忘れると、後述するJSONの記述ミスによるエラーの原因になるため注意しましょう。
なお、すでに他のMCPサーバーを設定済みの場合は、ファイルを上書きするのではなく「mcpServers」の中に、既存の設定と並べてカンマ区切りで追記してください。
記述が完了したら、Claude Desktopを再起動して設定を反映させましょう。
設定画面で、以下のように内容が表示されていれば無事に追加完了です。
![]()
MCPサーバーが正しく動いているか確認する
設定が完了したら、Claude Desktopへ簡単な質問を投げてみましょう。
ツールの初回利用時には、以下のように使用許可を求められる場合があります。
その際には、任意の内容で可否を回答してください。
![]()
正常に動作すれば、Claude DesktopがMCPサーバーへアクセスし、取得した情報をもとに回答を生成します。
![]()
よくあるトラブルと対処法
MCPを初めて導入する際は、設定ミスによって正常に動作しないことがあります。
代表的な症状と原因、対処法は以下のとおりです。
| 症状 | 原因 | 対処法 |
|---|---|---|
| MCPサーバーが起動しない | Node.jsがインストールされていない | Node.jsをインストールし、node -vでバージョンが表示されるか確認する |
| 設定を保存しても反映されない | JSONの記述ミス(カンマの付け忘れ・引用符の不足など) | JSONの構文を1文字ずつ見直す、またはエディタの整形機能を使う |
| サーバーへの接続に失敗する | パスの指定ミス | 絶対パスを指定する。Windowsは「\\」で区切りをエスケープする |
| 設定を変更したのに動作が変わらない | Claude Desktopを再起動していない | 設定変更後は必ずClaude Desktopを再起動する |
実際の画面では、それぞれ以下のようなエラーが表示されます。
どの症状にも当てはまらない場合は、「ログを表示」から詳細なエラー内容を確認すると、原因の特定につながります。
![]()
実際にMCPを使ってみた感想
実際にMCPサーバー(本記事で紹介したFilesystem Server)を設定して使ってみると、一度接続してしまえば、ファイルの中身をいちいちコピー&ペーストしなくてもAIが直接参照してくれる快適さを強く感じました。
一方で、初回設定でつまずきやすいのはパスの指定まわりです。特にWindows環境では、区切り文字のエスケープを忘れて接続エラーになるケースが多い印象があります。
エラーが出た場合は、まずパスの記述、次にJSONの構文(カンマ・引用符の対応)の順に確認すると、原因を切り分けやすいです。
また、MCPサーバーは公式のものだけでなく有志が公開しているものも多いため、導入前にGitHubの更新状況やドキュメントの整備状況を確認しておくと、余計なトラブルを避けやすくなります。
特にファイルアクセスなど権限を伴うサーバーは、まず動作に問題のないフォルダで試してから、業務で使うフォルダに範囲を広げていくと安心です。
まとめ
MCPは、AIアプリケーションと外部ツールを接続するためのオープンプロトコルです。
利用することで、各アプリケーションとツールを共通の仕組みで接続できるようになり、開発や保守の効率化につながります。
MCPはAIエージェント時代を支える重要な技術として注目されており、今後も対応するツールやサービスの拡大が見込まれます。
実際に手元のファイルを操作するMCPサーバーを試してみると、AIが「回答するだけの存在」から「実際に手を動かしてくれる存在」に変わる感覚があり、業務での活用イメージが一気に具体的になりました。
AIをより実用的に活用したい方は、まずはClaude Desktopと公式のMCPサーバーを使って、その便利さを体験してみてください。