MCP 2026-07-28仕様では、従来のinitialize/initialized交換とMcp-Session-Idヘッダーが廃止されました。(公式リリース説明)
症状: ローカルのstdio型MCP Serverをそのまま外部公開したら、クライアントが接続できない、またはMac上の権限を広く渡してしまう。
最速解決: macOS固有のツールだけをクラウドMacへ置き、公開入口はStreamable HTTPに分離し、互換性を確認できるまで新旧方式を並行検証します。

この判断が必要なのは、MCP自体がmacOS専用の仕組みではないからです。Xcode、AppleScript、macOS専用コマンド、署名処理、Macアプリ操作などがツール実行環境に必要な場合だけ、MCP ServerのクラウドMac展開を選んでください。

本稿は、ローカルMCP Serverをチーム共有サービスへ移したい開発者、OpenAI Agents SDKなどのAI AgentからmacOSツールを呼び出したい連携担当者、クラウドMacの権限・プロセス監視・公開前検収を担うプラットフォーム担当者向けです。

最初に決めるのは「MCP」ではなくツールの実行環境です

失敗しやすいのは、stdioで動いているサーバーをそのままインターネット側へ出そうとする構成です。stdioはクライアントが子プロセスを起動し、標準入力と標準出力で通信する方式なので、URLを渡して接続する遠隔クライアントの入口にはなりません。公式のTypeScript SDKでも、ローカル子プロセスにはstdio、HTTPによる遠隔接続にはStreamable HTTPを使い分けています。(公式クライアントガイド)

さらに、Mac上のプロセスにホームディレクトリ全体、シェル実行権限、広い外向き通信を与えると、MCPの利便性よりも侵害時の影響範囲が大きくなります。典型的な隠れコストは次の3つです。

  • 接続方式の不一致: stdio、旧式HTTP+SSE、Streamable HTTPを混同すると、URLは正しくても接続できません。
  • 権限の過剰付与: ファイル、キーチェーン、シェル、Apple開発ツールを一つの実行アカウントに集約すると、誤操作の範囲が広がります。
  • 状態管理の誤解: 通信上のセッションがなくなっても、業務状態まで自動的に消えるわけではありません。状態を隠れた接続情報に依存すると、再試行や負荷分散で不整合が起きます。
  • 監視不足: 起動失敗、認証失敗、ツール拒否、外部APIエラーを分けて記録しないと、AI Agent側の「ツールがない」という表示だけでは原因を特定できません。

macOS固有の依存がなければ、通常のサーバーや手元のMacを優先してください。逆に、署名、Xcodeビルド、Macアプリ操作などが主目的なら、クラウドMacは「プロトコルのため」ではなく「ツールを実行するため」に選びます。

立ち上げ前に互換性マトリクスを作成します

MCP 2026-07-28仕様に対応しているSDKを導入しただけでは、既存プロジェクトが自動的に新仕様へ切り替わるとは限りません。対象クライアント、SDKの世代、採用する通信方式、回退条件を1枚にまとめてから実装を始めます。

最低限、次の項目を記録してください。

  1. 利用するAI Agentクライアントと対応プロトコル。
  2. サーバー側SDKとクライアント側SDKの安定版。
  3. 新仕様のStreamable HTTPを使うか、旧式HTTP+SSEを残すか。
  4. Mcp-Session-Id、initialize、GETストリームを前提にした実装が残っていないか。
  5. 接続失敗時に旧方式へ回退する条件。
  6. MCP Inspectorで再現できる最小接続コマンド。

新仕様のStreamable HTTPでは、MCPエンドポイントへHTTP POSTを送り、レスポンスはJSONまたはSSEになります。クライアントはapplication/jsonとtext/event-streamの両方を受け取れるようにし、リクエストごとのヘッダーと本文が一致しているか確認します。(Streamable HTTP公式仕様)

OpenAI Agents SDKの公式ガイドでは、Streamable HTTP、stdio、旧式SSEを別の接続方式として扱っています。新規の遠隔連携はStreamable HTTPを優先し、対象クライアントの対応状況が不明な場合だけ、旧方式の接続確認を回退試験として残す設計が安全です。(OpenAI Agents SDKのMCPガイド)

第一段階:クラウドMacの最初の1時間を固定化します

Macが納品された直後に、手作業で依存関係や秘密情報を設定するのは避けてください。あとで同じ環境を再構築できないため、障害時の切り戻しが難しくなります。

1. 専用アカウントを作る

ログイン用の管理者アカウントと、MCP Serverを実行する低権限アカウントを分けます。専用ユーザーには、必要な作業ディレクトリ、対象アプリ、必要なコマンドだけを許可し、ホームディレクトリ全体をツールの作業場所にしないでください。

2. 作業ディレクトリと依存関係を固定する

リポジトリ、依存関係ロックファイル、設定ファイル、生成物、ログの保存先を分離します。Node.jsなどのランタイム、SDK、CLIはバージョンを記録し、デプロイ手順をシェルスクリプトや構成管理に落とします。

3. 秘密情報をコードから切り離す

APIトークンやOAuth情報をソースコード、起動引数、通常ログへ書き込まないでください。環境変数、OSの秘密情報管理、または権限を絞ったシークレット注入機構を使い、ログ出力時にはAuthorizationヘッダーやトークン値をマスクします。

4. プロセスの再起動とログ輪転を設定する

プロセスが異常終了したときの再起動、標準出力と標準エラーの分離、ログ容量の上限、終了時の後処理を設定します。再起動だけで問題を隠さないよう、起動回数、終了理由、直前のエラーを記録してください。

5. 再現手順を残す

「何をインストールしたか」ではなく、「空のMacからどの順番で実行すれば同じ状態になるか」を記録します。これがないと、SDK更新後の互換性検証や、以前の安定版への切り戻しができません。

第二段階:stdioとHTTPの入口を分離します

既存のツール処理を二重実装する必要はありません。認証、入力検証、ファイル操作、外部API呼び出しなどの業務ロジックは共通化し、stdio用の起動部とStreamable HTTP用の公開部だけを分けます。

外部公開前には、次の順序で確認します。

  • MCPエンドポイントを1つの明確なパスに固定する。
  • TLSを有効にし、管理用ポートとMCP公開ポートを分離する。
  • リバースプロキシで許可するHTTPメソッド、ヘッダー、本文サイズを限定する。
  • Originを検証し、不正な値にはHTTP 403を返す。
  • 認証をすべての接続に要求し、匿名でツール一覧を取得できないようにする。
  • リクエストヘッダーのメソッド名と、JSON-RPC本文のメソッド名を照合する。
  • 複数回の呼び出しで必要な状態は、明示的な識別子または永続ストレージで管理する。

公式仕様はDNSリバインディング対策としてOrigin検証を求め、ローカル実行時は127.0.0.1へのバインドを推奨しています。不正なOriginにHTTP 403を返すことも仕様に記載されています。(公式セキュリティ記述)

SSRF、過度なファイルアクセス、危険なシェル実行、認証トークンの透過転送も確認対象です。入力されたURLをそのまま取得するツールでは、内部アドレス、クラウドのメタデータエンドポイント、管理用ネットワークへの到達を許可しない設計にします。(MCP公式セキュリティベストプラクティス)

第三段階:MCP Inspectorで公開前の動作を検収します

MCP Inspectorは、MCP Serverのツール、リソース、プロンプトを対話的またはCLIで確認するための公式開発者向けツールです。CLIではStreamable HTTPを指定して、ツール一覧や呼び出しを検証できます。(MCP Inspector公式リポジトリ)

検収は正常系だけで終わらせません。

  1. tools/listで公開ツール名、説明、入力スキーマを確認する。
  2. 必須引数をすべて渡した正常なtools/callを実行する。
  3. 必須引数の欠落、不正な型、長すぎる入力を試す。
  4. 存在しないツール名と存在しないファイルを指定する。
  5. 未認証リクエスト、期限切れトークン、権限外の操作を試す。
  6. ツール側のエラーが、AI Agentに誤解を招く文面で返らないか確認する。
  7. 実際のAI Agentから接続し、ツールの選択、承認、再試行を確認する。

Inspectorは、UIとプロキシを含む構成で動作します。公式リポジトリの現行案内では、UIの標準ポートは6274、プロキシの標準ポートは6277です。また、Node.js要件として^22.7.5が示されています。これらは公開サービスの待受ポートではなく、管理者の検収用として扱い、外部ネットワークへ直接公開しないでください。(Inspector公式README)

公開前の選択を表で判定します

選択肢 macOS固有ツール 遠隔AI Agent 運用上の主な条件 編集部評価
手元Macでstdio 必要 不要または同一端末 開発・個人利用、外部公開なし 開発向け
通常のサーバーでStreamable HTTP 不要 必要 API、DB、ファイル処理などが中心 第一候補
クラウドMacでStreamable HTTP 必要 必要 Mac専用権限、TLS、認証、監査が必要 条件付きで有力
クラウドMacでstdioのみ 必要 URL接続したい 入口が合わず、通常は不適 回避推奨

表の「クラウドMacでStreamable HTTP」に該当するのは、Macアプリ操作やApple開発ツールをチームで共有する場合です。単にMCP Serverをインターネットから呼びたいだけなら、OSをMacに固定する理由をもう一度確認してください。

公開後の1週間は互換性と切り戻しを監視します

初回公開後は、少なくとも起動失敗、認証拒否、ツール呼び出しエラー、入力検証エラー、外部依存先の失敗、CPU・メモリの逼迫を別々に記録します。具体的な性能目標は、実際のツール処理と利用クライアントを測定してから決めるべきで、一般的な固定値をそのまま採用しないでください。

同時に、次の4点を残します。

  • 直前に動作していたサーバー成果物。
  • SDKと依存関係のロックファイル。
  • 旧方式を含む接続設定。
  • DNS、リバースプロキシ、認証設定を戻す手順。

MCP仕様、SDKの主版本、主要AI Agentクライアントの接続方式が変わったときは、通常運用の変更として扱わず、再度互換性と権限の検収を行います。クラウドMacの利用環境を選ぶ段階では、Macレンタルのプランと利用条件も確認し、必要な期間と交付方式を先に整理しておくと、未検証のまま長期契約するリスクを抑えられます。運用中の接続トラブルでは、SSHMacのヘルプセンターにある案内も、公開ポートや接続手順の確認に利用できます。

よくある判断をFAQで確認します

ローカルのMCP Serverを遠隔サービスへ移すとき、最初に何を変更すべきですか?

stdioで起動する入口と、HTTPで受け付ける入口を分離します。ツール本体の処理は共通化し、外部公開側だけに認証、TLS、Origin検証、入力制限を追加します。既存クライアントが新方式に対応しているか確認できない場合は、Streamable HTTPを優先しつつ旧方式への回退経路も残します。

クラウドMacへ配置したMCP Serverにクライアントが接続できない場合、どこを確認しますか?

DNSやTLSだけでなく、接続先パス、HTTPメソッド、Acceptヘッダー、認証ヘッダー、プロトコルバージョンを順に確認します。MCP 2026-07-28仕様では従来のセッション前提が変わっているため、旧SDKがMcp-Session-Idを前提にしていないかも確認し、MCP Inspectorで同じURLを直接検査します。

MCP 2026-07-28仕様では、プロトコル上のセッション保持は必要ですか?

プロトコルの初期化交換とMcp-Session-Idは廃止され、各リクエストを独立して処理できる設計が基本になりました。ただし、業務上の状態まで自動的に消えるわけではありません。複数回の呼び出しで状態が必要なら、ツール引数や永続ストレージを使って明示的に状態を渡します。

遠隔MCP Serverのツール呼び出しと権限を、公開前にどう検収すればよいですか?

MCP Inspectorでtools/list、正常なtools/call、必須引数の欠落、不正な型、存在しないツール、未認証リクエストを確認します。さらに、実際のAI Agentから接続し、危険操作の承認、エラー文の分かりやすさ、タイムアウト時の挙動を検証します。Inspector自体は外部公開せず、ループバックまたは管理者だけが使える経路に限定します。

MCP ServerがmacOS環境を必須とするのは、どのような場合ですか?

MCPという通信規格だけを理由にmacOSを選ぶ必要はありません。Xcode、macOS専用コマンド、AppleScript、署名処理、Macアプリの自動操作など、ツールの実行環境がmacOSに依存する場合に限ってクラウドMacを検討します。一般的なAPI操作やファイル処理だけなら、通常のサーバーや手元の開発環境の方が運用しやすい場合があります。

最後に、現在の方式が手元Macや通常サーバーのままだと、端末が停止したときにチーム全体から使えない、stdioのままでは遠隔AI Agentへ接続しにくい、権限とログ設定が個人環境に埋もれやすいという問題が残ります。macOS固有ツールを共有する目的が明確なら、まず互換性マトリクス、必要権限、検収項目を固め、その条件に合う期間と交付方式でSSHMacのクラウドMacレンタルを比較してください。macOS依存が確認できない段階で先に拡張するより、通常サーバーやローカル実行を選ぶ方が、構成も費用も素直です。

最終更新:2026年8月13日。MCP 2026-07-28公式リリース、Streamable HTTP仕様、TypeScript SDK、MCP Inspector、OpenAI Agents SDKの公開資料を確認しています。