MCPとは?AIと外部ツールをつなぐ仕組みをやさしく解説

MCPとは?AIと外部ツールをつなぐ仕組みをやさしく解説について、用途ごとの考え方と選び方のポイントを整理します。

AIものさし編集部

MCP(Model Context Protocol)は、AIアプリと外部のデータ・機能をつなぐためのprotocolです。AIモデルそのものでも、データベースでも、完成したAIサービスでもありません。たとえばAIアプリが、承認された文書を検索したり、外部の機能を呼び出したりするための共通の接続形式を定めます。導入時に見るべきなのは「MCP対応か」だけでなく、何を読めて、何を実行できる接続なのかです。

MCPを使うと何が変わる?

外部サービスとAIをつなぐ方法をサービスごとに個別実装すると、AIアプリごとに接続の作り方や機能の見せ方が分かれます。MCPはAIアプリ側と外部機能側の間に共通の約束事を置き、対応するclientとserverが機能を発見して呼び出せるようにします。

MCPは接続やcontext exchangeを扱います。どのmodelを使うか、AIが何を判断するか、仕事を自動化してよいかまでは決めません。MCPがあるだけで、外部データが自動的に正確になる、権限が適切になる、安全な結果になるという意味ではありません。

Host・Client・Serverの役割

表は横にスクロールできます

役割何をするか例え
HostAIアプリ全体を動かし、利用者とのやりとりや接続を管理AIアシスタントを使うアプリ
ClientHostの中で、特定のMCP Serverとの接続を担当その接続用の窓口
Server利用可能なdataや機能をMCP形式で提供文書検索やissue作成を公開するprogram

Hostは複数のserverへ接続できます。通常、serverという名前でも必ず大規模なインターネット上の機械を指すわけではなく、利用者のPCで動くprogramの場合もあります。Hostはserverごとにclient接続を持つため、どの接続へ何の権限を渡すかを管理します。

Serverが公開できる3つの要素

Toolは、AIアプリから呼び出せる機能です。検索、ファイル作成、外部API呼び出しなど、処理を実行する入口になります。名前や説明が示されても、何をするか・どのdataへ触るかは実装と権限を確認してください。

Resourceは、AIがcontextとして参照するデータです。たとえば文書、schema、recordなどを読み込む用途です。Toolのような実行機能とResourceのような参照情報を分けて考えると、AIが読むだけなのか、外部状態を変えるのか把握しやすくなります。

Promptは、繰り返し使える指示やtemplateを共有する仕組みです。Promptを使うこと自体は、外部処理を実行することとは違います。実際にToolを呼ぶ場合は、別途そのToolの権限を確認します。

ひとつの接続が動く流れ

たとえばAIアプリから社内ドキュメントを探す場合、流れは次のようになります。

  1. Hostが利用可能なMCP Serverへ接続する。

  2. ClientとServerが対応するprotocolや機能を確認する。

  3. HostがServerから利用可能なTools / Resources / Promptsを取得する。

  4. AIアプリが必要な候補を提示し、利用者やHostのルールに沿って実行可否を決める。

  5. Toolを呼び出す場合、Serverが処理し、結果をHostへ返す。

  6. Hostが返答へ取り込む前に、結果を表示・確認する。

接続と実行判断は別です。MCP ServerがToolを公開したからといって、Hostが必ず自動実行するわけではありません。利用者への確認が必要な操作や、組織の承認が必要な操作は、その設計に沿って止める必要があります。

LocalとRemoteの接続

Local Serverは利用者の端末上で動き、stdio(標準入力・出力)でHostと直接やりとりする構成が代表例です。Remote Serverはnetwork越しに接続し、現在のMCP仕様ではStreamable HTTPが使われます。remote接続では認証、通信保護、利用者ごとの権限やrate limitなど、network serviceとしての管理が重要です。

どちらが安全かは名前だけでは決まりません。localでも端末上のfileへ広いアクセスを持つなら影響が大きく、remoteでも適切にscopeを絞り監査できる場合があります。利用者が追加するserver設定、実行file、接続先domain、要求する権限を確認します。

よくある誤解

  • MCPはAI modelの一種: 違います。AIアプリと外部機能の接続形式です。

  • MCPがあればどのToolでも使える: Serverが公開する機能とHostの対応範囲によります。

  • Resourceは実行機能: 主な役割はcontextとして参照すること。外部状態を変えるToolと分けます。

  • MCP Serverは常にremote: local端末内のprocessとして動く場合もあります。

  • 接続protocolが安全性を保証する: 認証・権限・利用者確認・data処理は実装、Host、契約に依存します。

  • MCPはAPIを置き換える: MCP Serverの内部で既存APIを呼ぶ構成もあり、レイヤーが異なります。

導入を考えるときの判断

既に固定されたbackend処理を一つのAI機能から呼ぶだけなら、専用のAPI integrationで十分な場合があります。複数のAI Hostへ同じ機能を公開したい、ToolsやResourcesを共通形式で発見・利用させたい場合は、MCP Serverを検討する意味があります。導入前に、各Toolの動作、read / write権限、認証主体、入力data、結果の扱い、停止方法を一覧にしてください。

AIものさしの判断

MCPはAIが外部dataや機能へつながる接続protocolです。Host・Client・Serverの役割と、Tool・Resource・Promptの違いを押さえれば、接続先が何を読めて何を実行できるかを見分けやすくなります。まず一つのserverについて、公開する機能と必要権限を確認してください。「MCP対応」という表示だけで、自動化範囲や安全性まで判断しないことが大切です。

具体例:FAQを検索し、回答案を作る

社内FAQをAIへつなぐ例では、HostがAIアプリ、Clientが接続管理、ServerがFAQ検索を提供するprogramです。Serverには、たとえば「FAQを検索するTool」と「指定された文書を読むResource」を公開させます。問い合わせを検索するだけならread-only権限にし、顧客へ返信を送る機能は別のToolに分けて、実行前に担当者の確認を求めます。

この区切りを作ると、「FAQから候補を探す」と「顧客へ送信する」が一つの大きな権限にまとまらず、どこで確認が必要か見えます。検索結果に誤った文書が混ざった場合も、参照した文書とAIの要約を照合してから回答を作れます。MCPのTool名を見ただけでは権限範囲は分からないので、server側の実装と実際のscopeを確認します。

Serverを追加する前の確認

利用者がMCP Serverを追加する前に、次の欄を埋めると目的と権限が整理できます。

  • 提供元・実行場所: 社内で管理するprogramか、第三者のremote serviceか。

  • 必要なdata: どのfolder、database、API、browser情報へアクセスするか。

  • 公開するTool: 参照だけか、作成・更新・削除・送信もできるか。

  • 認証: 個人credential、service account、OAuthのどれを使うか。

  • 利用者の確認: どの操作をAIが提案し、どの操作は人が承認するか。

  • 記録・停止: 誰が利用履歴を見て、接続を止め、credentialを失効できるか。

これらが分からない場合、広い権限のserverを実データへ接続せず、sandboxやテスト情報で確認します。

MCP仕様のversionにも注意する

MCPは仕様が更新されるため、概念記事だけで実装手順を決めないでください。公式仕様には日付付きversionがあり、通信や機能の細部が変わる場合があります。2026年10月8日時点で公式DocsのArchitecture overviewとSpecificationを確認し、記事ではHost / Client / Server、Tools / Resources / Promptsなどの基本概念に絞っています。実装時にはclientとserverが対応するversion、transport、認証方式、更新履歴を同じ時点で確かめます。過去のサンプルをそのまま現在のSDKへ貼り付ける前に、versionを合わせてください。 仕様が違うclientとserverが混在する場合は、接続前に対応versionを確認し、非対応なら接続や実行を停止する手順を決めます。 古い仕様の例と現在の実装を混ぜず、公式のversioned specificationに合わせて動作確認します。 2026-07-28版では、従来のinitialize/initializedとMcp-Session-Idを使う接続から、各requestでprotocol versionとclient情報を渡す方式へ変わりました。能力を先に調べるserver/discoverは任意です。古いSDKやHostは別versionを使う場合があるため、実装前に対応版と接続方式を照合してください。

引用・データ出典

公式情報を編集部が見た内容です。Hands-on未実施の記述は本文かここに分けています。

確認日: