🌐

MCP入門:AIとツールをつなぐ“共通言語”の通信方式3種を比べてみた

に公開

背景

  • AIエージェントが外部ツール連携をするためのプロトコルとして、MCP(モデルコンテキストプロトコル:LLMツール連携のためのプロトコルの一種)がよく使われているようです
  • 社内チャットボットでも外部ツール連携するためにMCPを使いたいため、まずは概要について調べました

対象読者

  • AIエージェントを作りたい方
  • 外部ツール連携でMCPを使いたい方

MCPとは

MCPはモデルコンテキストプロトコルの略で、「アプリケーションがLLMにコンテキストを提供する方法を標準化するオープンプロトコル」です。[1]
提唱者のAnthropic社の例えによるとMCPは「AIアプリケーション用のUSB-Cポートのようなもの」と表現しています。これはUSB-Cが様々なデバイスと接続する標準規格であるのと同様に、MCPも様々な外部ツールと接続・連携するための共通インターフェースであることを意味しています。

MCPの通信方式

MCPの通信方式は2025年6月現在以下の3つがあります。
・STDIO(標準入出力)
・SSE(Server-Sent Events)
・Streamable HTTP

それぞれの特徴をまとめたものが以下の表になります。

通信方式 主な用途 特長 適した環境
STDIO ローカル開発、CLI連携 軽量、セットアップが簡単 ローカル、開発環境
SSE リアルタイム出力 一方向ストリーミング Webクライアント
Streamable HTTP Web統合、クラウド環境 双方向ストリーミング、柔軟性 Webアプリ、クラウド

STDIO(標準入出力)[2][3]

  • 特長
    • 通信方式:ローカルプロセス間で stdin / stdout を使ってJSON-RPCメッセージをやりとり
    • 構成:クライアントがサーバーを子プロセスとして起動し、標準入出力で通信
  • 利点
    • ネットワーク不要:完全にローカルで動作
    • 低レイテンシ:メモリやパイプを使った高速通信
  • 欠点
    • 拡張性が低い:複数クライアント対応が困難
    • 分散処理に不向き:リモートアクセス不可
  • 適用例
    • ローカルツールの統合

SSE(Server-Sent Events)[4]

  • 特長
    • 通信方式:HTTPによりサーバーからクライアントへ一方向のイベント送信
  • 利点
    • リアルタイム性:サーバーからの通知が可能
    • 分散対応:ネットワーク越しの通信が可能
  • 欠点
    • 一方向通信:クライアントからサーバは別リクエストが必要
    • 将来的に非推奨:Streamable HTTPに置き換わる予定
  • 適用例
    • 通知サービス

Streamable HTTP[5]

  • 特長
    • 通信方式:HTTPストリーミングによる通信
  • 利点
    • ステートレス:サーバーがステートレスで動作可能
    • インフラ互換性: 既存のインフラを活用しやすい
    • ストリーミング:長文生成に適している
  • 欠点
    • 実装コスト:セッション管理や状態保持が必要な場合の実装コストが大きい
  • 適用例
    • 分散システム

考察

社内でAIチャットボットを作る際に、外部ツール連携でMCPを使いたいと思っていました。
SSEの使用は将来的に非推奨であることと、クラウド環境など既存のインフラを生かしつつ高度なWeb統合を行うにはStreamable HTTPが適していると判断したため、今後開発するMCPの通信方式にはStreamable HTTPを採用していきたいと思いました。

まとめ

  • MCPはAIアプリケーションが様々なツールと連携するための標準規格である
  • STDIO、SSE、Streamable HTTPの3つの通信方式がある
  • 既存のインフラを活用しつつ、高度なAIアプリケーションを作るならStreamable HTTPを使うのが望ましい

参考リンク

脚注
  1. モデルコンテキストプロトコル (MCP) ↩︎

  2. MCPクライアント、サーバー間の通信内容を見てみる ↩︎

  3. AIエージェント連携プロトコルの現在と未来:MCP・A2Aの技術的考察 ↩︎

  4. 初学者向け: Server-Sent Events(SSE)の徹底解説と実装方法 ↩︎

  5. MCP サーバーの Streamable HTTP transport を試してみる ↩︎

セリオ株式会社 テックブログ

Discussion