Mac mini M4 を OpenClaw ゲートウェイ用にレンタルするチームは、Model Context Protocol(MCP) を文書より速く配線しがちです—stdio の npx ブリッジを入れる班、HTTP/SSE コンパニオンを指す班が分かれ、数日でカタログに同名の read_file が二つ並び、三つ目の MCP バンドルが tools.fs が封じたワークスペース外へ静かに手を伸ばします。本稿 2026-05-13 はトランスポート比較、許可リスト整合、衝突プレイブックを示し、launchd ヘッドレス下のリロードを「最後に SSH した人」ではなく手順で決定可能にします。
インストール前提は LaunchAgent 導入とログ位置、FS 方針は tools.fs ワークスペース強制、新 MCP を信頼する前に インストール後スモーク を通してください。トランスポートがループバックを離れるなら ループバックと公開 ingress の分割 を照合し、サンプル設定が 0.0.0.0 にバインドしないよう防ぎます。
「MCP JSON をもう一段」が障害になる理由
MCP はオーケストレーションを意図的に薄くし、サーバーがツールを宣言しゲートウェイがカタログを合流、クライアントは名前の安定を仮定します。CI エージェントやバックアップと同居するレンタル Mac では stdio サーバーがゲートウェイと同じ PATH・キーチェーン状態を継承し、速度は上がり横移動リスクも上がります。HTTP ブリッジは TLS 検証・DNS ピン留め・アイドル接続揺らぎへ故障モードを移しますが、コピペ設定が広いリスナーを開けると新たな露出面になります。
- カタログ非決定性:プレフィックス無しでは後勝ちの同名ツールがリロード間で挙動を反転。
- プロセス嵐:stdio ごとに別インタプリタ—プロンプト集中で小型ミニの熱予算を超える fork が起きる。
- パス二重国籍:MCP ルートと OpenClaw ワークスペースがズレると監査が不可能に近づく。
黄金律:各 MCP はゲートウェイ tools.fs と同じ有効ワークスペース契約を宣言すること—契約下で説明できないパスを持つツールはマージ前に無効化する。
マトリクス A—トランスポート × 隔離 × 適合 × ヘッドレスリスク
| トランスポート | 隔離 | 適合 | ヘッドレス |
|---|---|---|---|
| ローカル stdio(絶対パス固定) | チェックサム門番付きで高い。 | ツールとゲートウェイ同居の Mac mini M4。 | 中—ソフトリロード後に子が残る恐れ。 |
| ループバック HTTP / SSE | mTLS または UDS 前段で中高。 | 常駐デーモンや別言語スタックをゲートウェイ UID に入れたくない場合。 | 127.0.0.1 限定なら低—LAN 誤バインドなら高。 |
| トンネル無し遠隔 HTTP | ゼロトラスト無ければ低。 | 稀—SSH トンネル運用 と併用。 | 高—WAN が MCP 遅延に直結。 |
| コンテナサイドカー | FS 境界は高いが運用は重い。 | 同一 Mac で CI が OCI 標準化済みのとき。 | 中—再起動でソケットパスがズレる。 |
マトリクス B—症状 × 思い込み × 是正
| 症状 | 思い込み | 是正 |
|---|---|---|
| ツール順序が毎晩変わる | 「クラウドは非決定的」 | プレフィックス無し衝突—改名か無効化し順序神話を捨てる。 |
| MCP 三本で RSS が跳ねる | 「メモリは無限」 | stdio 並発を絞り重いものは HTTP へ。ドレイン再起動 で段階リロード。 |
| MCP は読めるが tools.fs は同パスで失敗 | 「ベンダー不具合」 | 二重政策—許可リストを合流させるかツールを拒否。 |
launchd 上 stdio のライフサイクル
OpenClaw が stdio MCP を起動すると macOS はゲートウェイのプロセス群の子として扱います。シグナル伝播は LaunchAgent の包み方次第、環境は文書化済みの優先順位に従い、最後に SSH した zsh の export には依存しません。同じ JSON がノートでは動いて NodeMac では HOME や NODE_OPTIONS の差で壊れる典型です。argv を本番コードとして固定し、不安定 WAN では裸 npx を避け、ログは秘匿しつつ diff 可能にしてください。
終了処理も対称に設計します。ゲートウェイが強制終了すると孤児 MCP が SQLite ミラーや索引にロックを残し「database busy」を誘発します。SIGTERM の猶予→SIGKILL 予算を決め、HTTP ブリッジは接続ゼロを確認してから healthy に戻す運用を文書化してください。
- argv 凍結:リリースタグごとに解決済み argv をコミット。
- cwd 契約:MCP の cwd をワークスペース根に明示。
- シグナル演習:四半期ごとに合成負荷で SIGINT、子が 20 秒以内に終わるか検証。
パラメータ表
| 項目 | 既定 | 上限 | 担当 | ロールバック |
|---|---|---|---|---|
| ハンドシェイク | 45 秒 | 120 秒(承認付き) | SRE | prev-known-good から MCP ブロックを外す |
| stdio MCP 並列 | M4 24GB で 4 | 24h 緑なら 7 | 自動化リード | bundle ID フラグで無効化 |
| ツール実行 | 読み取り 30 秒 | バッチ 180 秒(チケット付き) | セキュリティ | ゲートウェイポリシーでスロットル |
| バイナリ検証 | デプロイ毎 SHA-256 | mtime だけ動いたら週次アラート | リリース工学 | 署名 tarball を復元 |
本番前の五訓練
- list-tools を二回:再起動前後で JSON を diff。
- 破壊的操作はステージングのみ:ステージング/本番プール の使い捨てワークスペースで実施。
- 意図的断線:HTTP ブリッジの外向きを塞ぎ、エラーが行動可能か確認。
- セッション中のキーローテーション:GUI ログイン無しで拾えるか検証し 環境優先度 と整合。
- launchctl スナップショット:子 PID と突合。
数値つまみ
- 常時 stdio MCP 子は 4 以下、CPU がピークでも 55% 下なら再評価。
- 15 分無呼び出しで stdio セッション終了。
- 同一都市圏 HTTP MCP RTT p95 250 ms、トンネルが二週 600 ms 超ならエスカレーション。
八ステップ(JSON-LD と一致)
- トランスポートと Unix 所有者を棚卸し。
- プレフィックス統一。
- tools.fs と許可リストを合流。
- stdio 並発を制限。
- ハンドシェイク/ツール/アイドルのタイムアウト公開。
- リロード後スクリプトスモーク。
- ロールバックタグ。
- 四半期 argv/チェックサム監査。
FAQ
MCP は tools.fs の代替か
いいえ—能力は拡張しても FS 契約は緩めない。
NodeMac の Mac mini M4 は複数 MCP stdio を常駐させても Apple Silicon ユニファイドメモリでページング負荷を抑え、ハイパーバイザが帯域を奪いません。ネイティブ macOS は MCP 子を OpenClaw と同じキーチェーン/launchd ライフサイクルに載せられます。SSH と任意の VNC で 香港・日本・韓国・シンガポール・米国 の実機 argv と GUI を再現検証できます。テナント物理分離と予測可能な熱設計 の上で並発を上げる判断はテレメトリのみが正当化し、料金ページ と併せて説明すれば財務も納得しやすくなります。