AI コラム

MCPとは何か 〜AIエージェントの為の標準プロトコル〜

はじめに

こんにちはおかしんです。

今日はAIのお話をしようかなと思います。いやほんとに大規模言語モデル(LLM)の進化は目覚ましいものがありますね。

新たなモデルが出るスピードも早いですし、賢くなっていくスピードが尋常じゃないです。数ヶ月前「うわ、これやばいな。まじで世界変わる。優秀すぎ。」と思ってたモデルが今では「Gemini 2.5 Proやo1 Proと比べちゃうとなー」みたいな状況ですし、それはこれからも数ヶ月単位で繰り返されていくんだと思います。

ちなみに私は最近GoogleのNotebookLMにお熱です。

さて、そんな進化の激しいLLMですが、最近ではもっぱら「MCP(Model Context Protocol)」が話題なので、今日はMCPについて自分の学習のまとめも兼ねて解説してみたいと思います。
私は日常的にAIコーディングで何かプロダクトを作ったりということしているわけでは無いので、具体例などがいまいち不十分になってしまうかもしれませんが、お付き合い頂ければ幸いです。

TL;DR

本記事では、AIエージェントの進化とともに登場した「MCP(Model Context Protocol)」について、

  • AIエージェントとは何か
  • MCPがなぜ必要とされるのか
  • どのような仕組みで動作しているのか
  • どんな場面で活用されているのか
  • セキュリティや今後の展望

といった観点で、出来るだけ基礎から解説してみようと思います。

AIエージェントとは

さて、MCPの話をする前に「AIエージェント」の話をします。

AI(LLM)といえば、ChatGPTに代表されるように、LLMに人間が指示を与え、そこに対して回答となるテキストを生成するといった使い方が、最もポピュラーな利用方法です。
また、そこから一段階先の使い方として、AIに指示を出して何らかの処理をさせるような使い方もあります。例えば、受け取ったテキストデータをAIに翻訳や要約させた上で、別の処理に受け渡すような、関数・タスクレベルの粒度の処理です。

直近1年ほどの間に注目されている「AIエージェント」とは、これを更に拡張して、AIにより自律的にワークフロー全体を担わせるような仕組みのことです。

一連のワークフローの中で、AIは都度、人間から指示をもらうのではなく、いくつかの対話を行ったり、時には何の指示もなく、自律的に外部のツールやデータソースと連携して様々なタスクを実行し、エージェント(代理人)としてワークフロー全体を担います。

例えば、新入社員の入社対応をAIエージェントにやらせる場合は以下のようなフローを構築します。

出典:https://n8n.io/

これはn8nというIPaaSを使ってAIエージェントを構築した例です。新入社員が登録されたらAIエージェントとチャットでいくつかやり取りをした後、AIエージェントがそのやりとりに応じて各社内システムのアカウント発行やSlackのチャンネル招待などを自動で行ってくれるようになっています。

もちろん、しっかりとルールを決めて条件分岐させればAIを使わないIPaaSでも実装可能ですし、IdPによるプロビジョニングだけでも実現可能な自動化ではありますが、条件分岐が多すぎるような組織ではこういった自動化をメンテナンスし続けることは非常に困難です。私はZapierやMicrosoft Power Automate、MakeなどのIPaaSが好きですが、IPaaSは条件分岐が5つ以上くらいになってくると途端にしんどくなる印象があります。

しかし、こういった処理にAIを組み込んで、AIと自然言語でやり取りをして、後続処理をAIに任せることで、多数の分岐があるような業務フローも、IPaaSやコードで自動化する際に分岐を少なく実装することができます。また、新たなパターン(例えばマーケティング部門に配属だけど、ちょっとだけインサイドセールス業務もやる人)なんかが出てきた時にも、新たに分岐開発をしなくて良いというのがAIエージェントのメリットでしょう。

AIエージェントの構築にはn8n以外にもDifyPydantic AI, Crew AI, といったフレームワークがよく使われています。

AIエージェントに多様な外部ツールの操作を行わせるには、それぞれのツールに合わせて個別の連携機能(インテグレーション)を開発する必要があり、これは非常に複雑でコストのかかる作業でした。
先ほどの例では、n8nの開発元はAIエージェントがEntraやJira、SlackのAPIを実行できるように様々な開発しています。

また当然ですがフレームワークごとに多様な実装方法で実現されています。使っているモデルやインターフェースが同じでも、フレームワークの数だけ色んな実装があるわけで、これは非効率と言えるでしょう。

もし、様々なデバイスを共通のポートで接続できるように、AIエージェントも様々なツールに標準化された方法で接続できたらどうでしょう?そこで登場したのが、Model Context Protocol(MCP)です。

MCPとは?

MCPは、AIモデル(LLM)が外部のデータソースやツールとコンテキストを共有し、シームレスに連携するためのオープンな標準プロトコルです。

これを理解するための最も一般的な例えは、「AIアプリケーションのためのUSB-Cポート」と言われてます。(提唱したAnthropic自身もドキュメントの中でそのように述べています)

出典:https://qiita.com/syukan3/items/f74b30240eaf31cb2686

USB-Cが、PC、スマートフォン、外部ディスプレイ、充電器など、様々なデバイスや周辺機器を標準化された単一のポートで接続できるようにしたように、MCPはAIモデルと多様な外部ツールやサービスを標準化された方法で接続することを可能にします。

似たような例では「コンセント」なんかも分かりやすい例えな気がします。掃除機や冷蔵庫、TVなど様々な家電に電力を供給する規格(プロトコル)が定まっているからこそ、色んな家や建物は共通の設備(ブレーカーやコンセント)で電力を供給できるわけです。

また、MCPは「AIエージェントのためのAPIエンドポイント」とも考えられます。企業が自社のサービスを他のアプリケーションに公開するためにAPIを使用するように、MCPはAIエージェント向けにツールを公開する方法を提供します。

なぜMCPが必要なのか?(登場背景にある課題)

MCPの出現は、ここまでで述べたような多様な連携先とAIモデルを共通規格で繋ぎたいという欲求から来ていますが、ここではもう少し深堀りしてその「欲求」が何故生まれるのかも考察してみたいと思います。(あくまで個人的な考察ですので、参考程度に捉えてください。)

LLMを使ってコードを書いたりなどしていると、構造化されたコンテクストデータを渡すことで、より精度の高いコードが返ってくるということは皆さん経験されたことがあるんじゃないかと思います。インプットとなるデータサンプルと、アウトプットのデータサンプルをCSVで渡せばそのまま使えるコードが生まれるということです。

2022年11月30日にChatGPTの「GPT-3.5」が登場しましたが、あの頃はみんなスプレッドシートなんかからデータをコピペで貼ってみたり、セルを番号で指定したりなんかしてデータ構造をChatGPTに伝えたりしてGASを作ってみたりとかしましたよね?(私はめちゃくちゃしました)

複雑な処理を行おうとすればするほど、こういったプロセスはどんどん難易度が上がります。

程なくして2023年の半ばくらいにはOpenAIもGoogleもAPIや外部ツールとの連携機能をどんどん拡充します。こういった機能追加自体が、「構造化されたコンテクストデータをAIに渡す」というニーズから来ているはずです。AIモデルが構造化されたデータを扱うには当然データソースに直接アクセスさせた方が効率的な為です。

OpenAIもGoogleもAnthropicもそれぞれAPIを持っていますが、それらの呼び出し方法は互換性が無いのでコードを書くにしろIPaaSで実装するにしろ、全て違う個別に開発する必要があります。また、同じ提供元のモデルですら、モデルが切り替わればコードを書き直す必要がある場合もあります。

当然AIモデルだけではなく、連携させたいデータソースやツール側も複数存在するので、M x Nの組み合わせで更に開発コストは高くなります。

まとめるとMCP登場の背景には以下のような課題があったということです。

  • AI x 連携先ツールのかけ合わせによる開発コストの高さ
    • AIの提供元・モデルの数だけ開発が必要
    • LLMアプリケーションやエージェントが連携するツールの数だけ開発が必要
      • ツール側のAPIの変更に追随する必要がありメンテナンスコストが高い
  • ツールや機能の再利用の難しさ
    • あるAIエージェントのために開発したツール連携機能を、別のAIエージェントや異なるフレームワーク(例: PydanticAI, Crew AI, n8nなど)で再利用するのが困難。
    • 同じような機能が様々な場所で繰り返し開発されるという無駄が生じていた。

MCPはこういった課題を解決し、エコシステム全体の発展を目指した共通規格(プロトコル)として、提唱されました。MCPに準拠することで、様々なAIアプリケーションやAIエージェントが特定のツール(例えばGitHub)とAIを連携させようとした際に、そのツール用のMCPサーバーを用いることで、AIのモデルに左右されず共通の方法で開発することが出来るのです。

また、連携先のツールが変わったり追加された際に、そのツール用のMCPサーバーがあれば、コードの再利用が出来る部分が多くなるため、M x Nの組み合わせを解消し、エコシステム全体として開発効率が大きく上がるというわけです。

2024年末にClaude開発元のAnthropicがMCPを提唱し、その後2025年3月にはOpenAIのサム・アルトマンCEOががAgents SDKやChatGPT DesktopでMCPをサポートすることを公言したことでMCPはAIエージェントにおける標準プロトコルとしての地位を確立しました。

Model Context Protocol (MCP) – Anthropic

Sam Altman のXでの発言

Microsoftも同月Azure Open AIにおいてMCPの統合についての記事を公開、Googleも同様の記事を公開したことで、今後はエコシステム全体としてMCPのプロトコルに準拠した形で開発が進んでいくことが予想されます。

Model Context Protocol (MCP): Integrating Azure OpenAI for Enhanced Tool Integration and Prompting | Microsoft Community Hub

モデルコンテキストプロトコル(MCP)を使用する  |  Google AI for Developers

MCPのアーキテクチャ

MCPのアーキテクチャは、以下の主な3つの役割によって構成されます。

役割説明
MCPホストLLMと対話を行う為の橋渡し役。
ユーザーはチャットなどによって指示や質問を入力し、MCPホストはMCPクライアントを介してその入力を処理してLLMを呼び出します。
・Claude Desktop
・Cursor
・etc.
MCPクライアントMCPホストの中で動く。1つまたは複数の適切なMCPサーバーとの接続を確立する。
MCPクライアントはユーザーの入力をLLMに渡し、LLMから返ってきた提案をMCPサーバーへの要求に変換する役割を担います。
MCPホストに内包されており、MCPホストごとに異なる実装
MCPサーバーMCPサーバーはMCPクライアントから受け取った要求に応じて、特定のツールやデータソースに対して、データを取得・変更したり、APIを用いて特定の操作やタスクを実行します。・GitHub MCPサーバー
・Slack MCPサーバー
・etc.

MCPプロトコルはこれらの登場人物が通信を行う方法を定めた標準プロトコルであり、JSON-RPC2.0のメッセージを使用します。

例えばCursorとGitHub MCPサーバーを用いて、IssueやPull Requestレビューの内容をコードに反映して、再度プッシュして、といったことを効率化するようなシナリオでは、MCPホストはCursor、MCPクライアントはCursorの機能に組み込まれているエージェントモードの機能のプログラム、MCPサーバーはGitHub MCPサーバーということになります。

MCPホストとMCPクライアントは同一であることが多いので、ここを具体的にイメージするのは結構難しいかもしれません。

VS CodeのClineRoo Code拡張機能、もしくはGitHub Copilotを用いて同様のことを行う場合には、VS CodeをMCPホスト、ClineやRoo Code、GitHub CopilotをMCPクライアントと見なせるかもしれません。
また、例えば今後AlexaなどがMCPサーバーと通信する機能を持った際には、Amazon EchoがMCPホスト、AlexaがMCPクライアントということになるのかもしれません。(厳密に言えばやはりAlexaがホストなのかもしれませんが)

正直ここらへんはまだ自分でもしっくりきていないので、私の例が間違ってたり、より良い例をお持ちの方はご連絡頂けると幸いです。

MCPでAIエージェントは何ができる?

さて、MCPというプロトコルにおいて、MCPサーバーはAIエージェント(クライアント)に対して以下の主要な機能(プリミティブ)を公開できます。

ツール (Tools)

AIエージェントが外部で特定のアクションを実行できるようにする機能です。
例えば、ファイルの読み書き、外部APIの呼び出し、ウェブスクレイピング、データベースの操作などが可能です。MCPクライアントは、サーバーが提供するツールのリストとそれぞれの説明を取得し、プロンプトの内容に応じて最適なツールを選択して実行します。

リソース (Resources)

リアルタイムに更新されるデータやコンテンツをAIエージェントに公開できます。
例えば、ローカルファイルの内容、データベースレコード、APIから取得した最新情報などがリソースとして提供されます。これにより、AIエージェントは常に最新のコンテキストを元に判断を下すことができます。

プロンプト (Prompts)

再利用可能なプロンプトのテンプレートやワークフローをサーバー側で定義し、AIエージェントに提供できます。
これは、AIエージェントに特定のタスクを実行させる際の手順や形式をガイドするのに役立ちます。

サンプリング (Sampling)

通常はクライアントがサーバーにリクエストを送りますが、サンプリング機能を使うと、MCPサーバー側からAIエージェント(LLM)にタスクの実行や補完を依頼することができます。
これにより、AIと外部ツールが相互に協調する、より柔軟で強力なシステム構築が可能になります。

(補足:この他に、ファイルアクセスを安全に行う「ルート(Roots)」や、通信方式を定義する「トランスポート(Transports)」といったプリミティブもありますが、ここでは詳細な説明は割愛します。)

MCPはどのように使われている?

MCPは、発表以来急速に様々なプラットフォームやアプリケーションで採用されています。いくつか調べてみたものをご紹介します。

多様なクライアント/ホストアプリケーション

AIコーディングIDEのCursorでは、MCPを使ってウェブサイトのデバッグ情報(コンソールログ、ネットワークログなど)の取得や、ウェブスクレイピング、仮想通貨の価格取得、さらには画像生成モデルへのアクセスなど、AIエージェントができることを大幅に拡張しています。

Claude Desktopでは、MCPサーバー経由でウェブ検索を実行したり、ウェブページを操作したり、データベースの内容を参照したりすることが可能です。

ワークフロー自動化ツールのn8nや、AIエージェント構築フレームワークのPydanticAIでもMCPクライアント機能が実装されており、MCPサーバーを通じて外部ツールを利用できます。PydanticAIでは、サンドボックス化されたPython実行環境をMCPサーバーとして提供する例もあります。

Microsoft Copilot Studioでは、MCPサーバーをコネクターインフラとして利用し、様々なデータソースへの安全な接続を実現しています。

その他、WindsurfClineZedJetBrainsOpenAI Agent SDKなど、多くの開発ツールやフレームワークがMCPをサポートしています。

Windsurfについては、直近でOpenAI社が買収された為、今非常に注目度が高くなっています。

個人的には、AIコーディングの面ではやはりVisual Studio CodeおよびGitHub Copilotが今後急速に進化してくると見ています。CursorやClineに先行されたものの、GitHub Copilotにも2025年2月にエージェントモードが追加され、CursorやClineのようなことがVS Code単体で出来るようになっています。 また、CursorやWindsurfはそもそもMicrosoftがOSSとして開発しているVS Codeのフォークですし、世界最大のコードベースであるGitHubはMicrosoftの傘下、OpenAI社はMicrosoftから巨額の投資を受けており、Azureともパートナーシップを締結しています。このようにMicrosoftは豊富な資金力に加えて、ソフトウェア開発およびAI開発におけるエコシステムを掌握している為、将来先行ツールを駆逐してくる可能性は結構高いと思ってます。

豊富なMCPサーバーエコシステム

ファイルシステム、ウェブ検索(Brave、Perplexity、Tavilyなど)、データベース(Postgres、Redis、Superbaseなど)、GitHub、Slackといった、様々なサービスに対応したMCPサーバーが既に多数存在します。

これらのMCPサーバーは、Anthropicによる公式コレクションに加え、SmitheryMCP.soGlamaAwesome MCP Serversといったコミュニティ主導のディレクトリやプラットフォームで公開・共有されています。これらのプラットフォームを通じて、利用したいMCPサーバーを見つけ、利用方法を確認することができます。

特定のサービス向けだけでなく、「Sequential Thinking」のようにエージェントの思考プロセスを補助するサーバーや、IETFドキュメント(RFC)を取得するサーバーなど、ユニークな機能を提供するサーバーも開発されています。

セキュリティについて

MCPは、エンドツーエンド暗号化、アクセスコントロール、データ隔離といったセキュリティベストプラクティスを組み込んで設計されています。しかし、MCPのエコシステムはまだ比較的新しく、急速に成長している段階です。サーバーの発見性やインストール、ツール間の名前衝突など、セキュリティやガバナンスの面では、今後の標準化やツール開発によってさらに強化されることが期待されています。特に、ローカルではなくリモートでMCPサーバーを運用する場合には、認証などの対策が必要になります。

OSSのMCPサーバーについて

また、これはMCPサーバーに限らずOSSアプリケーションなど全般に言えることですが、前項で紹介したコミュニティ等で公開されているMCPサーバーのプログラムは当然悪意のある動作が組み込まれている可能性を排除できません。

例えばNotionのMCPサーバーは「https://github.com/makenotion/notion-mcp-server」で公開されており、 makenotion のオーガニゼーションはNotion社自身のものであるため、notion-mcp-serverもNotion社が開発していることになり、比較的安全と言えるでしょう。もちろんNotion社が悪意なく開発していても、意図しない挙動や漏洩につながるような機能が実装されてしまう可能性はありますし。極論企業が悪意のある機能を盛り込む可能性も排除できません。

MCPサーバーは誰でも作れる

APIが公開されているWebアプリケーションのMCPサーバーは誰でも作る事ができます。

例えばRaindropというブックマーク管理サービスには公式のMCPサーバーは存在していませんが、個人によって開発されているMCPサーバーが存在しています。

https://github.com/adeze/raindrop-mcp

adeze さんというユーザーの個人リポジトリになっており、コミッターも adeze さん一人です。このリポジトリをフォークして、いくつかのモデルに悪意のある挙動やセキュリティに問題のある挙動が無いか確認してもらったところ、問題はなさそうでした。以下はClaude 3.7 Sonnetの回答です。

**Question**
このプロジェクトのコード全体を見て、悪意があったり、セキュリティ上問題のある実装が無いか確認してください。

**Answer**
プロジェクト全体のコードをレビューした結果、大きな悪意のある実装や明らかなセキュリティ上の問題は見つかりませんでした。以下にセキュリティ関連の所見をまとめます:
APIキー管理:
Raindrop.ioのアクセストークンは環境変数(RAINDROP_ACCESS_TOKEN)から取得しており、ハードコードされていません。
トークンの存在チェックが適切に行われています。
通信セキュリティ:
APIリクエストはHTTPS経由で行われています(<https://api.raindrop.io/rest/v1)。>
外部通信はすべて暗号化されています。
入力検証:
Zodライブラリを使用してスキーマベースの入力検証が行われています。
例えば、コレクションデータのバリデーションが適切に実装されています(CollectionSchema.array().parse(processedCollections))。
レート制限:
rate-limiter-flexibleが依存関係に含まれていますが、現在のコードではレート制限の実装が見当たりません。
APIリクエストの頻度を制限する機能があるとより安全です。
エラー処理:
エラーメッセージが適切に処理されており、センシティブな情報が漏洩する可能性は低いです。
しかし、本番環境ではより詳細なエラーログの制御が望ましいでしょう。
セキュリティ上の懸念事項:
SSEサーバーでは入力検証が強化される余地があります。
コンソールログの使用は開発環境では問題ありませんが、本番環境では最小限に抑えるべきです。
HTTPクライアントでのタイムアウト設定が明示的に行われていません。
その他の観察:
ログレベルの管理機能が実装されていますが、実際のログ制御機能は現在限定的です。
MCPサーバーのサブスクリプション機能はコメントアウトされており、現在は使用されていません。
結論:
コードベースには悪意のある実装は見当たらず、基本的なセキュリティ対策が講じられています。Zodによるバリデーション、環境変数による機密情報管理、HTTPS通信の使用など、適切なセキュリティプラクティスが採用されています。
改善点:
レート制限の実装を強化する
エラーログの詳細度を環境に応じて調整する
全ての入力に対するバリデーションを徹底する
HTTPリクエストのタイムアウト値を設定する
コード内の未使用機能(コメントアウトされているもの)を整理する
これらの改善点はあるものの、現状のコードには重大なセキュリティ問題は見受けられません。

このMCPサーバーのプログラムは、恐らく adeze さん自身が欲しかった機能なのだろうと思います。正しく開発されており問題はなさそうです。

しかし、インターネット上で公開されているあらゆるMCPサーバーが安全とは限らない為、特にサードパーティのMCPサーバーを利用する際には気をつけた方が良いでしょう。

AIによって元々プログラマーでなかったような方々が色んなツールを作ったり、色んな作業をAIにやらせている例をインターネットで目にします。むしろそういった方々の方が、活発な印象すら受けます。

元々OSSなどに馴染みのある方々は、当たり前にやっていることですが、そうでない方々は目的のために使えそうなツールを探し、見つかったらREADMEなどを読んでそのまま実行してしまう危険性があるので、今後インターネットで公開されているMCPサーバー経由で個人情報やクレジットカードの番号が窃取されてしまうような事例も出てくるのではないかと思います。

以下に簡単ですが、効果の高そうな対策をいくつか記載します。

安全にMCPサーバーを利用するために

まずはAnthropicのMCPサーバー集の中に使いたいものが無いか探す

https://github.com/modelcontextprotocol/servers

modelcontextprotocolというGitHubオーガニゼーションはClaude開発元のAnthropicがMCPというプロトコルをOSSとして提唱した際に作ったものです。認証されているドメイン modelcontextprotocol.io もAnthropic PBCのものであることがWHOIS検索からわかります。

Anthropicの公式サイトの「MCP」のページからも直接飛べるようになっています。

https://docs.anthropic.com/ja/docs/agents-and-tools/mcp

ここにはGoogle DriveなどいくつかのMCPサーバーの例が掲載されており、安全性が高いものです。数は少ないのですが、まずはここから探してみると良いでしょう。

公式など信頼のおける開発元のMCPサーバーを利用する

GitHubで公開されているMCPサーバーであれば、リポジトリのオーナーをチェックするようにしましょう。リポジトリ名を外してオーナーのページ(https://github.com/makenotion など)にアクセスし、Aboutを読んだりすることで概ね把握することができます。

Webサービスを操作するMCPサーバーを使いたいなら、そのWebサービスの開発元が開発・公開しているMCPサーバーを利用するのが最も安全です。

開発者の多いリポジトリのものを使う

GitHubのリポジトリであれば、リポジトリを開いて右側部分にContributorsという箇所があります。ここが多いものはそれだけ様々な開発者が開発に関わっており、監視の目があるということです。先程のAnthropicの公式MCPサーバー集のリポジトリは2025年5月時点で507人もContributorがいるようです。

使う前にAIに安全性を聞いてみる

複数人開発者がいるかいないかに依らず、サードパーティのMCPサーバーを使わざるを得ない場合はリポジトリをクローンして、CursorやClineなどで以下のように聞いてみましょう。

このプロジェクトのコード全体を見て、悪意があったり、セキュリティ上問題のある実装が無いか確認してください。

Claude, Gemini, OpenAIなど複数のモデルに質問してみるとより効果的です。

もちろん自分でコードをしっかりチェックできるならそれに越したことはないですが、0⇒1のコードリーディングに関しては多分もう人間はAIには勝てません。
3つのモデルに解析させても15分もかからないはずですが、それら3つのモデルからの回答を上回るような速度と精度でコードリーディングを行うのは人間には無理です。3つから「問題ない」と返ってきたらまず問題は無いでしょう。

MCPサーバーに限らずOSSを使う時は絶対やってもいいくらいです。

サードパーティのMCPサーバーはWebサービスのAPIを使う為、トークンなどを求めることが多いですが、AIはREADMEに書いてあるトークン発行方法や権限付与の仕方などもチェックしてくれるので、必要以上の権限を求めていたりする場合には注意を促してくれるはずです。

ソースの公開されていないMCPサーバーは利用しない

あまり見つかりませんでしたが、GitHubなどでソースが公開されていないようなMCPサーバーも存在しているようです。こういったMCPサーバーは連携先サービスの開発元がホストしているものでも無い限り原則利用しない方が良いでしょう。

以上のようなことを利用時に心がけていれば、比較的安全にMCPサーバーを扱えるでしょう。

今後の展望

MCPは、AIエージェントが外部世界と連携する方法を根本的に変える可能性を秘めています。標準化が進むことで、より多くの企業が自社サービスのMCPサーバーを提供し、AIによる自動化や高度なタスク実行がさらに加速すると予想されます。

今後のロードマップには、リモートMCPサーバーのサポート強化、より洗練された認証・認可メカニズム、複数のエージェントが連携する階層的なエージェントシステムのサポートなどが含まれており、MCPエコシステムのさらなる進化が期待されています。

A2A(Agent to Agent)プロトコルについて

実はこの記事は3月ころから色々と調査したりしながらゆっくり書いていたのですが、途中でGoogleからA2Aが発表されました。詳しくはGoogleのブログを参照して頂ければ一番分かりやすいです。

https://cloud.google.com/blog/ja/products/ai-machine-learning/a2a-a-new-era-of-agent-interoperability

簡単に言えば、MCPはAIエージェントが様々なデータベースやWebサービスを操作しやすくする為のもので、AIエージェント(「クライアントエージェント」)はMCPのプロトコルを介して間接的にAPI等を用いてWebサービス等を操作します。

A2Aの世界観では、操作する先のWebサービス側にもAIエージェント(「リモートエージェント」)を立てて、「クライアントエージェント」と「リモートエージェント」が通信することで、Webサービスを操作したり、情報を返したりということを自律的に行う仕組みです。 ワークフローの中で、「リモートエージェント」は逆に「クライアントエージェント」にもなり得ます。A2Aプロトコルによって、AIエージェント同士が安全に情報をやりとりし、様々なWebサービスやアプリケーション上で様々なタスクを実行したりデータをやりとりすることが可能になります。

現代の企業の情報システムは基幹システム中心であった時代から、様々なSaaSなどを疎結合させて構築されるように変化してきています。MCPやA2Aはまだ発展途中の技術ですが、まさにそういった時代に合った仕組みと言えると思います。様々なエンタープライズアプリケーション間を連携させるには、今まではコードやIPaaS等を用いて頑張って開発する必要がありました。MCPやA2Aの仕組みに乗っかるアプリケーションが増えることで、AIに指示するだけで全部やってくれる時代がやってくるかもしれません。

Googleの発表ではWorkdayやServicenow、Atlassian、SAPなど様々なエンタープライズアプリケーション企業が取り組みに参加しているとされ、実際にそういった方向を目指している取り組みだと感じました。

まとめ

Model Context Protocol(MCP)は、「AIアプリケーションのUSB-C」として、LLMと外部ツール・サービス間の連携を標準化する画期的なプロトコルです。これにより、従来のカスタム実装に依存していた複雑な連携から脱却し、ツールや機能を再利用可能なMCPサーバーとして提供・利用できるようになりました。

Claude Desktop、Cursorなどの様々なAIアプリケーションやIDE、PydanticAIのようなフレームワークがMCPをサポートし始めており、ファイルシステム、ウェブサービス、データベースなど、多様な機能を提供するMCPサーバーのエコシステムも急速に拡大しています。

様々な可能性のあるMCPですが、特にインターネット上で公開されているサードパーティ製のMCPサーバーはその他OSS同様様々なセキュリティリスクもあるため、利用に際して注意が必要です。

MCPはまだ発展途上の部分もありますが、AIエージェントの可能性を大きく広げ、A2AなどのMCPを補完するプロトコルも登場し、より高度で実用的なAIアプリケーションの開発を加速させる鍵となる技術として、今後の動向に注目が集まっています。

参考

okash1n

香川大学医学部医学科中退→SES・情シス・SREを経てクラウドネイティブ入社。趣味はIT。

・有限会社脇屋 代表取締役
・一般社団法人日本ビジネステクノロジー協会 代表理事
・一般社団法人 SRE NEXT 理事
・情シスSlack、BTCONJP、SRENEXT運営