AIエージェント活用実践編 / Tool Use と MCP — 外部システム連携
MCP とは何か
無料公開レッスン / 読了目安 6 分
学習のねらい
前レッスンで Claude Agent SDK の基礎を学びました。エージェントが外部システムと連携するためには Tool (ツール) が不可欠です。 しかし、様々な AI モデルや外部システムが登場する中で、ツールの連携方法がバラバラだと開発が複雑になります。 そこで登場するのが MCP (Model Context Protocol、モデルコンテキストプロトコル) です。 本レッスンでは、MCP がどのような課題を解決し、どのように動作するのかを学び、AI と外部システムの連携を標準化する重要性を理解しましょう。
AI と外部ツールの標準プロトコル
MCP は、AI モデルが外部ツールと安全かつ効率的に通信するための オープンな標準プロトコル です。 AI モデル (例えば Claude) が「何か情報を検索したい」「メールを送りたい」と考えたとき、その要求をどのような形式でツールに伝え、ツールの実行結果をどのように受け取るか、というルールを定めています。
なぜ標準プロトコルが必要なのでしょうか?
- 互換性: 異なる AI モデル (Claude, GPT, Gemini など) が同じツールを利用できるようになります。
- 開発効率: ツール開発者は一度 MCP に準拠したツールを作れば、多くの AI モデルから利用される可能性があります。
- 安全性と制御: AI がどのようなツールを、どのような権限で使うかを開発者が細かく制御できるようになります。
MCP は、AI エージェントが外部の機能を利用するための「共通言語」のようなものだと考えると良いでしょう。
MCP サーバ / クライアントのモデル
MCP は、大きく分けて MCP サーバ と MCP クライアント の2つの役割で構成されます。
- MCP クライアント: AI モデル自身、または AI モデルを呼び出すアプリケーションがこれに該当します。クライアントは、AI がツールを使いたいと判断したときに、MCP サーバに対してツールの呼び出しを要求します。
- MCP サーバ: 実際のツール機能を提供する側です。例えば、GitHub の API を叩く機能を提供するサーバや、Slack にメッセージを送る機能を提供するサーバなどがあります。MCP サーバは、クライアントからの要求を受け取り、ツールを実行して、その結果をクライアントに返します。
このモデルにより、AI モデルはツールの実装詳細を知る必要がなく、MCP プロトコルに沿って要求を送るだけで外部機能を利用できます。
通信フローの例
- AI (クライアント): 「ユーザーが GitHub の Issue 一覧を見たいと言っている。GitHub ツールが必要だ。」
- AI (クライアント): MCP プロトコルに従って、GitHub MCP サーバに「
github.list_issuesツールを呼んでくれ」と要求。 - GitHub MCP サーバ: 要求を受け取り、実際に GitHub の API を呼び出す。
- GitHub MCP サーバ: GitHub API からの応答 (Issue 一覧) を受け取り、MCP プロトコルに従って AI クライアントに結果を返す。
- AI (クライアント): 受け取った Issue 一覧を解釈し、ユーザーに分かりやすく表示。
ローカル MCP と公開 MCP
MCP サーバは、その動作環境によって大きく2つの種類に分けられます。
- ローカル MCP (Local MCP): 開発者のローカル環境や、組織内の閉じたネットワークで動作する MCP サーバです。セキュリティ要件が厳しく、外部に公開できない社内システムと連携する場合などに利用されます。開発中のツールをテストする際にも便利です。
- 公開 MCP (Public MCP): インターネット経由でアクセス可能な MCP サーバです。一般に公開されている SaaS (Software as a Service) やクラウドサービスと連携するツールを提供する場合に利用されます。多くのユーザーが利用する汎用的なツール (例: Web 検索、天気予報など) は公開 MCP として提供されることがあります。
どちらのタイプも、MCP プロトコルに従って動作しますが、セキュリティやアクセス制御の設計において考慮すべき点が異なります。公開 MCP を利用する際は、認証や認可 (OAuth など) の仕組みが非常に重要になります。
まとめ
MCP は、AI と外部ツール間の通信を標準化し、互換性、開発効率、安全性と制御を向上させるための重要なプロトコルです。 MCP クライアント (AI) と MCP サーバ (ツール提供者) の役割分担により、AI はツールの詳細を知らずに外部機能を利用できます。 また、ローカル MCP と公開 MCP の違いを理解し、それぞれの用途に応じた設計が求められます。 次の演習では、公開されている MCP サーバの例を見て、その用途と権限要件を考えてみましょう。