第 14
MCP と自前 AI からの操作
FrontierStack を MCP サーバとして動かし、Claude Code・Cursor などの MCP クライアントからサーバを操作。すでに支払っている定額プランで、トークン課金なし。
第 13 章ではアプリ内蔵の AI 管理者を扱いました。本章は逆方向 — すでに使っている AI ツールに FrontierStack を公開する話です。FrontierStack は自身が MCP サーバとして動作するため、外部のハーネス(Claude Code・Claude Desktop・Cursor・Codex など Model Context Protocol クライアント)からアプリ全体を操作できます。同じガード付きエグゼキュータ、同じ承認カード、同じ「既定は読み取り専用」の姿勢を — あなたのエディタやターミナルから。
14.1なぜ MCP で FrontierStack を操作するのか
主な理由は 2 つです。
- 従量課金の AI 請求がない。ハーネスが自分のサブスクツール(Claude プランの Claude Code、Cursor のシート)なら、AI はすでに支払っている定額プランで動きます。サーバ操作にトークン課金は発生しません。
- コードとインフラを 1 つのエージェントで。エディタにいるコーディングエージェントが、そのコードが動くサーバを調査・操作できます — 本番ログを読む、サービスを再起動、証明書を確認、マイグレーションを実行 — 作業中のツールを離れずに。
14.2仕組み
FrontierStack はツールレジストリを MCP 経由で公開し、サーバを localhost にバインドして必須のトークンで保護します。クライアントからのツール呼び出しは、内蔵の管理者が使うのと同じエグゼキュータに渡り、ライブのアプリ状態に作用します — だからコーディングエージェントは、コピーではなく実際のサービス・サイト・フリート・ヘルスを見ます。安全モデルは第 13 章と同一です。
- 許可するまで読み取り専用。MCP の面は、変更とスクリプトを有効化するまで読み取り専用のままです(アプリ内アシスタントと同じ)。
- 変更のたびに同じ承認カード。Cursor や Claude Code からの変更ツール呼び出しは、アプリ内リクエストと同じ承認を FrontierStack に出します。
- 秘密情報は Mac を出ない。ボールトの挙動も同じで、スクリプトは名前を参照し、値は実行時に注入され、モデルには決して送られません。
初めて接続するエージェントにもFrontierStack自体を説明します。読み取り専用のsearch_app_helpツールはアプリ作成のヘルプ索引だけを検索するため、外部ハーネスも任意のファイルへアクセスせずに、設定場所やコントロールの意味を回答できます。frontierstack://manualリソースは、英語/日本語のデスクトップ版とiPhone/iPad版マニュアルの正規URLを返します。どちらもMCPディスカバリで案内されます。
ステートレスMCPが既定です。FrontierStackはMCP 2026-07-28に対応し、各HTTPリクエストがプロトコル版・クライアント機能・ルートを運ぶため、隠れたセッションやMcp-Session-Idは不要です。server/discoverはサーバ機能とキャッシュ情報を返します。まだ新しい版に移行していないClaude Code・Cursorなどのため、所有者専用のKeychainブリッジは従来のinitialize方式も維持します。ベアラートークンをクライアント設定へ書き込むことはありません。
14.3MCP サーバを有効化する
初回接続時、FrontierStack は MCP サーバの起動を提案します。自分で有効化することもできます。
- FrontierStack の MCP 設定を開き、MCP サーバをオンにします。
localhostにバインドし、トークンとエンドポイント URL を表示します。 - ペインでクライアント(Claude Code・OpenAI Codex CLI・Cursor・Gemini CLI・Claude Desktop)を選び、用意されたコマンドまたは設定をコピーします。ウェブの MCP ページにも同じスニペットがあります。
- あるいはワンクリックの「追加」ボタンで、そのクライアントの設定ファイル(
~/.codex/config.toml・~/.cursor/mcp.json・~/.gemini/settings.json・Claude Desktop の設定)に直接書き込めます。MCP はオープンな標準なので、他のどの MCP クライアントでも接続できます。 - ツールで会話を始め、FrontierStack のツール一覧やフリートを尋ねて接続を確認します。
インストール済みのfrontierstack CLIも既定でステートレスMCPを使います。frontierstack discoverでプロトコルと機能を機械可読形式で確認でき、frontierstack infoは推奨するステートレス版と対応する従来版の両方を表示します。
別のMCPサーバペインでは、新旧どちらのサーバも管理できます。「自動」は最初にserver/discoverを試し、必要な場合だけ従来のinitializeへ切り替えます。HTTPサーバが対応を実証した場合だけ、一覧に緑のステートレス表示が出ます。stdioサーバは外部クライアントがプロセスとハンドシェイクを管理するため、明示的にステートレスとして設定できます。
localhost のみで待ち受けます。トークンはパスワードと同様に扱ってください。別デバイスから到達するには、ポートを公開せず、正しくペアリング(次節)してください。14.4署名付きリクエストとデバイスペアリング(FS1)
コントロールサーバと MCP サーバは、ベアラートークンと TLS の上に、デバイスごとの署名付きリクエスト層 — FS1 — を追加します。各ペアリング済みデバイスは独自の Ed25519 秘密鍵を持ち、すべてのリクエストに署名します。FrontierStack は承認済みデバイスに対して署名を検証するため、トークンが漏れただけでは何も操作できません。
- デバイスごとのスコープ。各デバイスには読み取り専用〜フルコントロールのスコープを Mac で付与します。
- ワンタップ失効。デバイスを削除すれば即座に遮断され、他には影響しません。
- これは iPhone/iPad アプリのペアリングと同じ仕組みです — モバイル版マニュアルと、第 10 章の信頼モデルを参照。
14.5外部 AI ジョブ
ライブの MCP に加え、FrontierStack はサブスクの AI CLI にジョブを渡すことができます — タスクをまとめてローカルの Claude(など)にあなたのプランで処理させ、結果をアプリに戻します。これにより、重め・長時間の分析を従量課金なしで実行でき、Data Map(ロケーションごとのデータフロー図)と組み合わせてエージェントに必要な文脈を与えます。外部 AI ジョブは AI スタック(第 15 章)から管理します。
14.6MCP 経由のスキル・ノート・メモリ・Obsidian
外部ハーネスは、内蔵管理者と同じナレッジ面に、同じゲートのもとで到達します。
- スキル — 厳選したプレイブックを発見・オンデマンド読み込み。
- 共有ノート — 「AI と共有」で解除したノートのみ読み取り可能。
- 長期メモリ — 設定や恒常ルールの同じ
memory.md。 - Obsidian — Obsidian ボールトを連携していれば、SOP やランブックを検索し、文書化された手順に従えます(第 12 章)。
14.7フリートスキル — あらゆるエージェント向けのポータブルな文脈
MCP サーバはエージェントにフリートを操作させます。フリートスキルはもう半分 — エージェントが何かに触れる前にあなたの環境を教える静的な文脈です。フリートスキルペインは SKILL.md を生成します。サーバとその役割・OS・サービス・到達方法、ネットワークの場所、KVM と電源ソース、そしてあなた自身のルールと設定の自由記述 — すべてシークレットを除去した上で。これを読んだエージェントは、当て推量ではなく正しいホストを選び、正しい経路を使い、あなたの慣習を尊重します。
~/.claude/skills/fleet/SKILL.md に書き込まれ、Claude Code が自動的に検出します(フロントマターの description: が、そのスキルがいつ関連するかをモデルに伝えます)。MCP 接続エージェントは get_fleet_context ツールで同じ内容を取得でき、その慣習を読む CLI 向けに任意で ~/AGENTS.md も出力できます。自動更新をオンにすると、フリート・場所・KVM が変わってから数秒後にスキルが書き直され、実態からずれません。
地図とリモコンの違いだと考えてください。MCP はリモコン — ライブで認証済み、実行できます。スキルは地図 — セットアップ不要でポータブル、どのエージェントにも安全に渡せ、有能なツールが「正しいやり方で誤ったこと」をするのを防ぎます。
14.8どれをいつ使うか
| 使うもの | こんなとき |
|---|---|
| 内蔵 AI 管理者(第 13 章) | 承認カードやコストモニタも含めすべてを 1 つのウィンドウで完結させたく、モデル/キーを用意する、またはローカル実行で構わないとき。 |
| MCP 経由の FrontierStack(本章) | すでに Claude Code や Cursor で作業しており、コードとサーバを 1 つのエージェントで扱い、サブスクでトークン課金を避けたいとき。 |
| 外部 AI ジョブ(第 15 章) | タスクが重い・長時間で、対話的に実行するよりサブスク CLI に渡したいとき。 |
3 つとも同じガード付きツールと同じライブのアプリ状態に到達します。作業しやすい場所で選んでください。安全性の保証は変わりません。
FrontierStack ユーザマニュアル · バージョン 1.0.0 · 第 14