MCPツールとは?AIモデルはどのように使っているのか

MCPツールとは何か、AIモデルがMCPサーバーを通じてMCPツールをどのように見つけて呼び出すのか、そして安全に使う方法を解説します。

Diagram of how MCP works: an AI app (the MCP host) sends tool requests through an MCP client to an MCP server, which connects to tools and returns results.

MCPツールとは、AIモデルが会話の外でタスクを実行するために呼び出せる関数です。たとえば、メモを検索したり、データベースにクエリを実行したりできます。各ツールはMCP(Model Context Protocol)サーバー上にあり、名前と短い説明を持っています。モデルはこれらを手がかりに、いつそのツールを使うかを判断します。

「MCPツール」という言葉は、ほかの意味でも使われます。日常的には、MCPサーバー(ツールを提供するアプリケーション)や、それらのサーバーを掲載したディレクトリを指して「MCPツール」と呼ぶことがあります。また、MCP Toolsは、MCPサーバー上のツールを一覧表示したり呼び出したりするためのコマンドラインプログラムの名前でもあります。

このガイドで扱うのは、サーバーやディレクトリ、コマンドラインではなく、プロトコルにおける関数としてのツールです。ツールの構成要素、サーバーが提供するツールの種類、そしてツールとリソース、プロンプト、関数呼び出しとの違いを説明します。続いて、モデルがツールを使う際の手順を順に解説し、最後にツールの利用に関するよくある問題を取り上げます。

MCPツールとは?

MCPツールは、AIモデルがほかのソフトウェアアプリケーションと連携してタスクを完了できるようにする関数です。たとえば私のAIエージェントやワークフローでは、MCPツールを使ってGmailでメールの下書きを作成したり(create_draft)、Trelloカードを作成したり(trelloWriteCard)、DataForSEOからリアルタイムの検索結果を取得したり(serp_organic_live_advanced)しています。これはほんの一例です。

ソフトウェアアプリは、多くの場合、自社のMCPサーバーで複数のMCPツールを提供しています。たとえばTrelloのMCPサーバーには現在14個のMCPツールがあり、AIモデルはボード、リスト、チェックリスト、カードなどを読み取ったり更新したりできます。

また、MCPはツールの記述方法と提供方法を標準化しているため、このプロトコルに対応したAIアプリであれば、どれでも同じMCPツールを使えます。

MCPツールの構成要素

どのMCPツールにも、次の3つの要素があります。

  • 名前:モデルがツールを呼び出すときに使う短い識別子です(例:Googleカレンダーのget_event)。
  • 説明:ツールが何をするのか、どのような場面で役立つのかを平易な言葉で説明したものです。大規模言語モデル(LLM)はこれを読んで、そのツールがリクエストに合っているかどうかを判断します(例:「Returns a single event on the given calendar.」)。
  • 入力:ツールの実行に必要な情報です。たとえばメモ検索であれば、クライアント名や日付などが該当します。入力はJSONで記述され、各入力の形式(テキスト、数値、リスト)を定めることから、開発者はこれを入力スキーマと呼びます。

ツールによっては、表示名、返す結果の説明(出力スキーマ)、ツールの動作に関するアノテーションといった追加のメタデータを含むものもあります。

AIモデルがツールの背後にあるコードを見ることはありません。モデルはツールが自身について示す情報をもとに動作するため、名前や説明があいまいだと、モデルは誤ったツールを選んでしまいます。

MCPツールの種類

MCPツールは、その機能によって4つのグループに分けられます。

  • 検索・参照ツール:情報を見つけたり取得したりします(例:メモの検索、ファイルの読み取り、データベースへのクエリ)。
  • アクションツール:別のアプリで何かを作成したり変更したりします(例:タスクの追加、カレンダーの予定の作成、サポートチケットの起票、メールの送信)。
  • データ処理ツール:データを変換・分析します(例:スプレッドシートファイルの分析、計算の実行)。
  • システムツール:ローカルシステムとやり取りします(例:ターミナルでのコマンド実行)。

MCPツールとリソース & プロンプトの違い

MCPサーバーは、MCPツールのほかに、プロトコルで「プリミティブ」と呼ばれる2種類の構成要素、つまりリソースとプロンプトを提供できます。

たとえば、GitHubの公式MCPサーバーは次のものを提供しています。

  • Issueを作成または更新するissue_writeというツール
  • リポジトリ内のファイルにアクセスできるrepository_contentというリソース
  • 問題をIssueとして報告し、GitHubのCopilotコーディングエージェントに修正用のpull requestを生成させる手順を設定するissue_to_fix_workflowというプロンプト

違いは、それぞれが何をするのか、そしていつ使うかを誰が決めるのか、という点にあります。決めるのは、ユーザー自身、ユーザーが使っているAIアプリ(例:Perplexity)、またはそのアプリ内で動作しているAIモデルのいずれかです。

  • MCPツールは、アクションを実行したり、情報を参照したりします。ツールをいつ呼び出すかはAIモデルが自律的に判断し、AIアプリがその呼び出しをサーバーに渡します。ツールを選ぶのはAIモデルですが、AIアプリは各呼び出しをユーザーに表示し、拒否できるようにする必要があります。
  • リソースは、ファイルやレコードのセットなど、MCPサーバー上で利用できるコンテンツで、それぞれに固有のアドレス(URI)があります。AIアプリはサーバーにどのようなリソースがあるかを問い合わせ、必要なものをそのアドレスで読み取り、その内容をコンテキストとして会話に追加します。
  • プロンプトは、サーバーが提供する既製のメッセージテンプレートで、空欄を埋めて使うものもあります。AIアプリが利用可能なプロンプトを表示し、ユーザーがその中から選択します。多くの場合、スラッシュコマンドとして使います。

AIモデルがMCPツールを使う仕組み

AIモデルは、検出、ツールの選択、呼び出し、結果、エラー処理という5つのステップでMCPツールを使います。モデルとサーバーの間のやり取りは、すべてAIアプリが仲介します。

たとえば、AIアプリに、Trelloの「This week」リストを確認して、編集者に近況を伝えるメールの下書きを作成するよう依頼したとします。最初から最後までの流れは次のとおりです。

  1. 検出:AIアプリがMCPクライアントを介してMCPサーバーに接続すると、サーバーで利用可能なツールの一覧を要求します(tools/listというリクエスト)。LLMが目にするのは、アプリから渡された情報、つまり各ツールの名前、説明、入力だけです。
  2. ツールの選択:AIモデルはリクエストとそれらの説明を照らし合わせ、適したツールを選びます。この例では、リストを読み取るためのTrelloのtrelloReadListと、メールを作成するためのGmailのcreate_draftです。また、どのリストを読み取るかといった入力も埋めます。
  3. 呼び出し:モデルは、ツールを実行するための構造化されたリクエストを返します(「関数呼び出し」と呼ばれるステップ)。AIアプリはそのリクエストを適切なサーバーに送信します(tools/callリクエスト)。このとき、アプリは呼び出し内容をユーザーに表示し、拒否できるようにする必要があります。
  4. 結果:サーバーは関数を実行してresultを返します。この例では、リスト上のカードです。AIアプリはその結果を会話に追加し、モデルが次に何をするか、つまりユーザーに回答するか、別のツールを呼び出すかを判断します。たとえば、それらのカードをもとにしたメールを作成するためにcreate_draftを呼び出します。
  5. エラー処理:ツールは実行されたものの失敗した場合(たとえばリストが存在しない場合)、エラーは結果の一部として返されます。モデルはそれを読み取り、別の入力で再試行できます。一方、リクエスト自体に問題がある場合(たとえばサーバーに存在しないツールを呼び出した場合)、アプリにはプロトコルエラーが返されます。この場合、モデルが回復できる可能性は低くなります。

重要なのは、モデルはツールの説明だけを頼りにツールを選び、サーバーとのやり取りはすべてAIアプリが担うという点です。

MCPツールでよくある問題とその回避方法

MCPツールの問題は、接続しているツールの数、ツールの名前と説明の付け方、返されるデータの量、ツールの提供元のサーバーという4つの要素に集約されます。

それぞれの問題の現れ方と対策は次のとおりです。

問題

症状

対策

接続しているツールが多すぎる

何も質問しないうちから、すべてのツール定義がモデルのコンテキストウィンドウに置かれ、一覧が長くなるほどツール選択の精度が下がります。

タスクに必要なサーバーだけを接続し、AIアプリで可能な場合は使わないツールをオフにしましょう。例:GitHubのMCPサーバーでは、必要なツールのグループ(ツールセット)だけを有効にできます。

説明があいまい、または重複している

2つの説明が似ていたり、説明が不十分だったりするため、モデルが誤ったツールを呼び出したり、正しいツールを誤った入力で呼び出したりします。

明確で具体的な名前と説明を付け、できればツールを使うべき場面の例も示しましょう。サーバーのツールが何度も誤作動する場合は、公式のテストツールであるMCP Inspectorを使えば、各ツールが自身についてどう説明しているかを正確に確認できます。

2つのサーバーで同じツール名が使われている

2つのサーバーがそれぞれsearchというツールを提供しており、呼び出しがどちらに向けたものなのか判別できません。

ツール名の先頭にサーバー名を付けましょう。例:Trelloのサーバー(trelloSearch、trelloReadList)。

結果が大きすぎる

ツールが、書式付きのメールスレッド全体など、タスクに必要以上のデータを返し、モデルのコンテキストを圧迫します。

コンパクトな形式に対応したツールを使いましょう。例:Gmailのget_threadツールの説明では、「コンテキストの枯渇を防ぐため」にプレーンテキスト形式が推奨されています。

信頼できないサーバー

管理がずさんなサーバーや悪意のあるサーバーは、ツール呼び出しを利用して会話からデータを抜き取る可能性があります。

信頼できる提供元のサーバーだけを接続し、何かを変更したりデータを外部に送信したりするツールについては、承認を有効にしたままにしておきましょう。

MCPツールにユーザーの承認が必要なのはなぜですか?

MCPツールにユーザーの承認が必要なのは、承認がなければ、AIモデルが意図しない変更を加えたり、ユーザーが管理していないサーバーと機密データを共有したりする可能性があるからです。

リクエストの読み違いや、説明があいまいなツールによって、誤ったアクションが実行されることがあります。また、呼び出しのたびに、ユーザーの情報の一部がサーバーに送信されます。

そのためプロトコルでは、AIアプリが人間の関与を維持し、あらゆるツール呼び出しを拒否できるようにすることを求めています。

必要な確認の度合いに応じてツールを分類する、実践的な方法を紹介します。

  • 読み取りのみのアクション:TrelloのtrelloReadListでリストを読み取るなど、情報を参照するだけの操作は何も変更しません。こうした呼び出しは、AIアプリがどのツールを実行し、何を参照したかを表示するのであれば、事前に確認せずに実行してもかまいません。
  • 元に戻せるアクション:Gmailのcreate_draftでメールの下書きを作成したり、Trelloカードを追加したりする操作は、元に戻せる変更です。呼び出しが実行される前に入力内容を確認しましょう。
  • 元に戻せないアクション:Gmailのsend_messageでメールを送信する、レコードを削除する、あるいは支払いや機密データに関わる操作は、元に戻せません。こうした操作には、毎回明示的に許可を与えましょう。

PerplexityでMCPツールを使う

PerplexityはMCPツールと双方向で連携します。接続したMCPサーバーのツールを使えるだけでなく、ほかのAIアプリに独自のツールを提供することもできます。

  • MCPサーバーをPerplexityに接続する:Pro、Max、Enterpriseプランでは、MCPサーバーを備えたあらゆる外部ツールやデータソースにPerplexityを接続し、回答やPerplexity Computerのエージェント型ワークフローで利用できます。Macアプリでは、お使いのコンピューター上で動作するMCPサーバーも接続できます
  • ほかのAIアプリでPerplexityのツールを使う:PerplexityのMCPサーバーは、Claude CodeなどリモートMCPサーバーに対応したあらゆるAIアプリに、4つのツール(perplexity_search、perplexity_ask、perplexity_research、perplexity_reason)を提供しています。また、別のサーバーを使えば、ほかのAIアプリから複数ステップのタスクをPerplexity Computerに任せることができます。

MCPツールに関するよくある質問

MCPは単なるツール呼び出しですか?

いいえ、MCPは単なるツール呼び出しではありません。ツール呼び出しはモデルがツールの実行を求める仕組みであり、MCPはAIアプリがツールを見つけ、各呼び出しをそのツールを実行するサーバーに振り分ける仕組みです。

ツール呼び出し(関数呼び出しとも呼ばれます)は、AIモデルが担う部分です。モデルはツールの一覧を見て、そのうちの1つを実行するリクエストを返します。ツール呼び出しだけでは、各AIアプリがすべてのツールを自ら定義し、実行しなければなりません。

MCPを使えばツールをサーバー上に置けるため、MCPに対応したAIアプリであれば、どれでもそのツールを自身のモデルに提供し、モデルからのリクエストを適切なサーバーに送信できます。

MCPはAPIに取って代わりますか?

いいえ、MCPがAPIに取って代わることはありません。MCPとAPIは連携して機能するからです。MCPツールは既存のAPIの上に構築されていることが多く、モデルがツールを呼び出すと、通常はMCPサーバーがAPIリクエストを送信します。

MCPツールに対応しているAIアプリは?

MCPツールは、Claude、ChatGPT、PerplexityなどのAIアシスタントや、Visual Studio CodeやCursorなどの開発ツールで利用できます。MCPのドキュメントではこれらのアプリが挙げられており、ほかにも多くのアプリが対応していると記載されています。

AIモデル自体がMCPに対応している必要はありますか?

いいえ。プロトコルはAIアプリが処理するため、AIモデルがMCPに対応している必要はありません。AIアプリがサーバーに接続し、サーバーのツールをモデルに渡し、モデルからのツールリクエストを適切なサーバーに送り返します。モデルに必要なのは、関数呼び出しへの対応だけです。

MCPは時代遅れになりつつありますか?

いいえ、MCPは現在も活発に開発が続けられています。メンテナーは2026年7月にMCP仕様の新バージョンをリリースし、2026年8月には更新されたロードマップを公開しました。このロードマップには、会話の焦点が絞られるにつれて、サーバーがツールを段階的に公開できるようにする取り組みが含まれています。