stdioとSSEという名前は何を意味しますか?
stdioはstandard input/outputの略で「標準入出力」を意味します。プログラム間の最も基本的な通信方式で、見えないパイプで2つをつなぐイメージ。片方が書き込み、もう片方が読み出す。ネットワークもポートも不要で設定は最小限です。
SSEはServer-Sent Eventsの略で、HTTP接続を開いたままにしてサーバーが継続的にクライアントへメッセージを送る技術です。「サーバーが言いたいことがあればいつでも話せるよう電話をつなぎっぱなし」のイメージ。MCPではSSEとHTTPの組み合わせでClaudeとサーバーがマシンをまたいでリアルタイムにやりとりし、認証情報はサーバーに留まりClaudeには渡りません。
ローカル開発後にチーム向けに公開する場合、stdioからSSE/HTTPに切り替える必要がありますか?
通常は必要ですが、ロジックをゼロから書き直す必要はありません。多くのMCPサーバーフレームワークはトランスポート層とビジネスロジックを分離しており、切り替えはその層だけです。ツール定義と実行コードはそのまま。
同時に対応すべきことがあります。認証の追加(APIキーまたはOAuth)、HTTPS有効化、対象ユーザーからの接続を許可するファイアウォール設定。ローカルでは不要でも本番では一つも省けません。最終確認:有効なトークンのない誰かがこのサーバーを呼んだとき、拒否しますか?
SSE/HTTPサーバー構築後、安全かどうかをどう確認しますか?
第一層は認証:有効なトークンのないリクエストがエラー返却ではなく拒否されることを確認。第二層は認可スコープ:各トークンが呼べるツールとデータ範囲を確認。
第三層は入力検証:Claudeのパラメータが必ず清浄だと仮定せず外部入力と同様に確認。第四層はログ:すべてのリクエストを記録し、問題時に根本原因を追跡できるように。この四層が揃えば問題の根本原因を特定できます。
上級:MCP仕様は進化していますか、トランスポートは変わりますか?
MCP仕様はAnthropicが主導し、現在も活発に開発中です。stdioとSSE/HTTPが現在の主要オプションですが、仕様は拡張可能に設計されており、新トランスポートの追加で既存実装を壊しません。
開発者への示唆:トランスポートの選択をハードコードせず差し替えやすく実装すること。ツール定義とトランスポートが分離されているのがMCPの利点です。Anthropicとコミュニティのアナウンスを追い、破壊的変更には通常移行ガイドが付きます。
場面:陳さんはClaude DesktopがローカルのSQLiteを読めるMCPサーバーを作りました。
開発初期:stdioを使用。サーバーとClaude Desktopは同じMacで動き、設定ファイルにパスを指定するだけで3分完了。ネットワークも認証設定も不要。1ヶ月試験してロジックを安定させました。
チームが使いたくなったとき:トランスポートをSSE/HTTPに切り替え、APIキー認証とHTTPS証明書を追加。各メンバーはURLと自分のキーを設定して接続。ツール定義もクエリロジックも1行も変更なし。
stdioとSSE/HTTPの核心的なトレードオフはシンプルさ対拡張性です。
stdioの利点はゼロ摩擦:ネットワーク設定なし、認証なし、HTTPSなし——3分で完了。代償は単一ユーザー・単一マシン限定。
SSE/HTTPの利点は到達範囲:どこにでも置け、認可ユーザーが接続可能。代償は真剣に対処すべきセキュリティ層の追加。実際の用途で選択:個人ツールはstdio、共有が必要ならSSE/HTTP。「より専門的に見える」だけで複雑さを追加しないこと。