インストール
npx safari-mcp誰向けか
すでに開き、すでにログインした Safari の中で、助手に先にページをはっきり見せ、参照でクリックまたは入力させたいなら、この経路が合う。駆動するのは macOS 同梱の安定版 Safari であり、別途立ち上げるきれいな隔離ブラウザではない。硬い前提:機械は macOS でなければならず、このマシンに Node.js 20+ が既に入っていること。Windows または Linux には、既存説明に使える手順が無い。
リポジトリは「すでにログインした Gmail、GitHub、Ahrefs、Slack、ネットバンクのセッションを使い続ける」線に自らを置き、ネイティブ WebKit とバックグラウンド実行に触れる。助手は空のデモセッションではなく、本物のログイン状態に出会う。呼び出す人は、それらのタブに既に出ている内容を見てよいとされる。
隔離環境でページを一度タップしたい人、または助手に本物のアカウントを見せたくない人には合わない。Apple 以外のシステムにも第二の導入路は無い。目標が「新規、未ログイン、使い捨てのセッション」なら、既存説明が書くのはこの経路ではない。
3分で最初の試行
公式の主経路は1本だけ。前提を満たした Mac で実行する
npx safari-mcp
リポジトリは先にグローバル導入しなくてよいと書く。任意の永続導入は npm install -g safari-mcp。最初の試行ではそれを取らない。
起動前にこの4つを照合する。システムは Safari 付きの任意の macOS;Node.js は 20 以上;Safari で Settings → Advanced → Show features for web developers をオン;さらに Develop → Allow JavaScript from Apple Events をオン。1つ欠けると、後の呼び出しに根拠が無い。
設定位置はこの起動コマンド自体。MCP ホストに渡してサービスを立ち上げる。既存説明は特定クライアントの JSON フィールド名を書いていないので、ここでは設定テンプレートを足さず、追加の起動引数も作らない。
最初は観察だけ。safari_snapshot を呼び、現在ページの accessibility tree を読む。成功の合図はページ状態が返ることであり、エラーや空の木ではない。この読み取りは、見ている本物のページ構造を見る。ログイン済みサイト上の可視コントロールも含む。ゼロリスクではなく、「ローカルを読まない、ネットワークに触れない」とも読めない。
同じマシンで複数の助手が同時に Safari を使うなら、説明の共有方法は:
SAFARI_MCP_HTTP=1 SAFARI_MCP_HTTP_PORT=9225 npx safari-mcp
一人の最初の試用ではこれを開く必要は無い。
利用事例
事例1: 現在タブを見てから次を決める。すでに開いた Safari ページに safari_snapshot を呼び、accessibility tree とページ状態を得る。説明はこれを推奨ワークフローの第一歩とし、目的は Get page state。どのページに止まっているか、どのコントロールを参照できるかを確認するのに合う。戻りフィールドの完全構造は展開されていない。確認できるのは、ページ状態と accessibility tree を得られることだけ。この一歩をナビや改ページと見なさない。既存説明にナビ系コマンドは無い。
事例2: 参照で一度インタラクションし、読み戻す。第二歩は safari_click/fill/... で ref によりクリックまたは入力。第三歩で safari_snapshot をもう一度走らせ結果を照合する。事例1の ref が先に要る。座標を空からクリックしない。クリックと入力はページを変え、副作用がある。手を出す前に確認点を決める——2回目の snapshot で対応コントロールまたは文案が想定どおり変わったか。ツール名は safari_click/fill/... と書いてあり、他のインタラクション名は逐条無い。出ていないコマンドを足さない。
利用上の境界
macOS だけ。Node.js 20+ が必須で、Safari の開発者機能と Apple Events の JavaScript をオンにする。サービスが開くのは、すでにログインした安定版 Safari。メール、コードホスティング、分析バックエンド、チャット、ネットバンクのセッションが助手の視野に入ることがある。ネットワーク隔離やローカル読み取り専用サンドボックスがあるとは仮定しない。
並行時は SAFARI_MCP_HTTP=1 でデーモンを共有する。説明は、タブ追跡が失敗すると閉じると書き、使っている活動タブを叩くのではないとする。失敗コード、取り消し手順、safari_snapshot と safari_click/fill 以外のツール引数は、既存説明に無い。バックグラウンド実行とより低い CPU はリポジトリ自身の対比であり、このマシンへの保証ではない。最初が snapshot だけでも、本物のページを読んでいる。先にネットバンクや、晒したくないタブを避ける。