TL;DR
- SSE:旧仕様で常時接続が必要。非推奨。
- Streamable HTTP:現行標準。HTTP POST/必要に応じてストリーミング。柔軟・ステートレス対応。
0. 背景
claude mcp add --transport sse <name> <url>
のsse
のところで指定するもの。
- MCPサーバのトランスポート形式がわからなかった
- 公式ドキュメント
- MCPサーバの説明には当たり前のように書かれている
- 詳細説明もあるけれど難しい
- ググると説明は書いておらず「使ってみた」記事が多かった
- 公式ドキュメント
- そのためChatGPTに聞いた
- 聞いたことを備忘に書いたので、生半可なことや誤っていることが書かれてしまっているかもです
1. SSE(旧 transport)
-
text/event-stream
による常時ストリーミング- 接続維持コストが高く、スケーラビリティに課題あり
-
/sse
(GET)で接続、/sse/messages
(POST)で送信 -
Server-Sent Events
の略 - MCPバージョン 2024‑11‑05 までの標準
2. Streamable HTTP(現行 transport)
- SSEと違い常時ストリーミングが不要
- 必要に応じて常時ストリーミングで対応することも可能
- 通常は JSON 応答、必要に応じて SSE に切り替わる
- セッションIDによる再接続やステートレス運用も可能
- 単一の /mcp などのエンドポイント
- 2025‑03‑26 以降の標準 transport
3. 誤解されやすい表現
- 「SSE=標準」「HTTP=双方向通信」と単純化すると誤解を招く
- 実際は Streamable HTTP が新標準で、柔軟な運用が可能