• Claude Code プラグイン
  • MCP サーバー
  • macOS + Chrome
  • MIT

いつもの Chrome を、 あなたの使い魔に。

AI エージェントが、ログイン済みの Chrome でページを読み、クリックし、フォームを送信。macOS の Apple Events(アプリどうしの命令の仕組み)で、いつものブラウザを操作します。DevTools Protocol も Playwright も、別のドライバも使いません。

/plugin marketplace add dominion525/familiar/plugin install familiar@familiar

Claude Code でこの 2 行を実行。Cursor や Codex CLI などからは MCP サーバーとして使えます。

動作イメージ

Use cases

ログインしたまま、
任せられる。

01

管理画面から読む

ログインが必要な管理画面やダッシュボードを開いたまま、表の数字や一覧を拾って、まとめてもらう。

02

フォームに入力する

課題管理や申請フォームに内容を入力して、送信まで任せる。ログインし直す必要はありません。

03

作業を続けながら任せる

操作するタブは windowId + tabId で決まるので、その間あなたは別のタブで作業を続けられます。

What's different

新しいブラウザは起動しない。
いつもの Chrome が動く。

01

本物の Chrome

ユーザー本人がサインインしている Chrome を Apple Events 経由で動かします。ページから見えるのは通常の Chrome セッションそのままで、WebDriver や DevTools の制御経路は追加されません。

02

ドライバ不要

DevTools Protocol も Playwright も、別のドライバも使いません。macOS に最初からある AppleScript だけで Chrome と話します。

03

タブ単位で狙う

すべての操作は windowId + tabId で特定のタブを対象にします。アクティブタブには依存しないので、ユーザーが別のタブで作業していても干渉しません。

ほかのツールとの比較

どれも AI エージェントにブラウザを操作させるツールで、今はほかのツールも設定しだいで普段のブラウザにつなげられます。いちばんの違いは、ブラウザへのつなぎ方です。familiar は Chrome の起動方法に手を加えず、Apple Events で命令を送るだけです。

項目 familiar Chrome DevTools MCP Playwright MCP safari-mcp
操作経路 Apple Events DevTools Protocol Playwright Apple Events
既定で操作するブラウザ 普段の Chrome 新しく起動した Chrome 新しく起動した Chromium / Firefox / WebKit 普段の Safari
既定の起動での
navigator.webdriver
false true false false
普段のブラウザにつなぐには 設定不要(既定) --autoConnect 拡張機能 設定不要(既定)
普段のブラウザへの接続の許可 初回だけ 接続のたび 接続のたび(省略可) 初回だけ
対応 OS macOS macOS / Windows / Linux macOS / Windows / Linux macOS

2026 年 10 月時点。navigator.webdriver の Playwright MCP は Chromium の場合(MCP が --disable-blink-features=AutomationControlled を付けて起動)、safari-mcp は同 README の記載による。普段のブラウザにつないだ場合は、ブラウザの起動方法が変わらないので false のまま(DevTools Protocol で接続しただけでは true にならないことを Chrome 154 で確認)。

navigator.webdriver とは

ブラウザが自動操作されているかをページに知らせる値で、Chrome を --enable-automation などで起動すると true になります。familiar は普段の Chrome に命令を送るだけなので false のままです。ただし、検出されないことの保証ではなく、サイト側のアクセス制御はそのまま効きます。

Install

使い魔と、契約を結ぶ。

Claude Code プラグイン

Claude Code で次の 2 行を実行します。

/plugin marketplace add dominion525/familiar
/plugin install familiar@familiar

MCP サーバー

同じ 32 の操作を、MCP 対応クライアント(Claude Code / Claude Desktop / Cursor / Codex CLI ほか)から使えます。npm パッケージ @dominion525/familiar-mcp を npx で起動します。Node.js 20 以上が必要です。

Claude Code
claude mcp add familiar -- npx @dominion525/familiar-mcp@latest
Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json を編集します。

{
  "mcpServers": {
    "familiar": {
      "command": "npx",
      "args": ["@dominion525/familiar-mcp@latest"]
    }
  }
}
Cursor

~/.cursor/mcp.json を編集します。

{
  "mcpServers": {
    "familiar": {
      "command": "npx",
      "args": ["@dominion525/familiar-mcp@latest"]
    }
  }
}
Codex CLI

~/.codex/config.toml を編集します。

[mcp_servers.familiar]
command = "npx"
args = ["@dominion525/familiar-mcp@latest"]
そのほかの MCP クライアント

Cline / Windsurf / Antigravity、VS Code 拡張(GitHub Copilot Chat / Continue など)は、Claude Desktop / Cursor と同じ JSON 形式で接続します。設定ファイルの場所は各クライアントのドキュメントを参照してください。

動作確認 初回の設定を済ませたら、エージェントに「開いているタブのタイトルを一覧にして」と頼んでみてください。タブの一覧が返ってくれば、つながっています。

その他の方法

Vercel Skills(agent-skills)

npx skills add dominion525/familiar

スキルが ~/.agents/skills/familiar/ に展開され、agent-skills spec に準拠したクライアントが自動で読み込みます。

スタンドアロン(インストール不要)

osascript skills/familiar/familiar.applescript list_tabs

リポジトリを clone すれば、スクリプト単体でも実行できます。

First-run setup

最初に一度だけ、
2 つの許可を。

familiar が Chrome と話せるようにするには、Chrome の設定と macOS の権限が必要です。どちらも最初の一度だけです。

  1. 1

    Chrome で「Apple Events からの JavaScript を許可」を有効にする

    Chrome のメニューから、次の項目にチェックを入れます。

    この設定は、ページの中で JavaScript を動かす操作(読み取り / 操作 / コンテンツ / JS 条件の待機)に必要です。タブ / ウィンドウ / ナビゲーション / 履歴 / 読み込み状態の操作は AppleScript だけで動くので、この設定がなくても使えます。

    Chrome の[表示]→[開発 / 管理]メニューで「Apple Events からの JavaScript を許可」を選んでいる画面
  2. 2

    オートメーションの許可を承認する

    familiar が初めて Chrome に話しかけるとき、macOS が確認ダイアログを出します。「許可」で承認してください。

    許可の対象は familiar ではありません。macOS はオートメーションの権限を親プロセスに付与します。承認する相手は、MCP クライアントや Claude Code を実際に動かしているアプリ(ターミナル / VS Code / Cursor / Claude Desktop など)です。サインイン済みの Chrome を操作する権限を渡すことになるので、信頼できるアプリにだけ承認してください。

    あとから確認・変更する場所:

    「“ターミナル”が“Google Chrome”を制御するアクセスを要求しています。」という macOS の確認ダイアログ
    システム設定の[プライバシーとセキュリティ]→[オートメーション]で、ターミナルの下の Google Chrome がオンになっている画面

うまくいかないとき

... JavaScript is turned off

Chrome の「Apple Events からの JavaScript を許可」が無効です。手順 1 の設定を有効にしてください。

Not authorized to send Apple events to "Google Chrome"

オートメーションの権限がありません。システム設定 → プライバシーとセキュリティ → オートメーションで、起動元のアプリ(ターミナル / VS Code / Cursor など)に Google Chrome への権限を付与してください。

確認ダイアログが出ない

MCP サーバーを起動するのと同じターミナルから、次のコマンドを一度実行します。開いている Chrome のウィンドウがあってもなくても、いまの親プロセスに対して確認ダイアログが出ます。承認すれば、以降は再確認なしで動きます。

osascript -e 'tell application "Google Chrome" to get version'

Permissions & data

使い魔に、
何を預けるか。

familiar につないだクライアントには、ログイン済みのブラウザをそのまま預けることになります。

引き受けるリスク

execute_js と execute_js_file は、ページの中で任意の JavaScript を実行します。これらの tool を与えられた MCP クライアントは、次のことができます。

  • サインイン済みのあらゆるページの DOM と、JavaScript から読める Cookie を読む
  • あなたの代わりにフォームを送信し、ページを移動し、fetch / XHR を発火する
  • セッションの状態を操作する

HttpOnly の Cookie の値はページの JavaScript からは読めません。ただし、その Cookie で成り立っているログイン済みのセッションのまま、操作はできます。

windowId + tabId は操作するタブを指定するための仕組みです。そのタブにしか触れられないという制限ではありません。

familiar 自体は手元で動く

サーバーはローカルで動き、MCP クライアントとは stdio だけで通信します。自分から外部に接続することはなく、テレメトリやアナリティクスもありません。

ただし、familiar が取得したページの内容や操作結果は MCP クライアントに渡り、クライアントの構成によってはモデル提供元へ送られます。

検出回避の道具ではない

ページから見えるのは通常の Chrome セッションですが、サイト側のアクセス制御はそのまま効きます。特定のサイトへのアクセスを保証するものではありません。

中身は読める

オープンソース・MIT ライセンスです。Chrome に何を送っているかは、familiar.applescript を読めば確かめられます。

AI に任せた操作は、あなたのアカウントで実行されます。何をどこまで任せるかは、あなたの判断です。

Details

詳しく知る

できること 32 の操作と、4 形式のセレクタ

タブ / ウィンドウ

7
  • list_tabs
  • new_tab
  • new_incognito_tab
  • close_tab
  • active_tab
  • window_mode
  • is_loading

ナビゲーション

6
  • navigate
  • get_tab_url
  • reload
  • go_back
  • go_forward
  • stop

待機

3
  • wait_for_load
  • wait_for_selector
  • wait_for_function

コンテンツ / スクリプト

3
  • get_html
  • execute_js
  • execute_js_file

読み取り

5
  • get_text
  • get_attribute
  • get_value
  • exists
  • query_all

操作

8
  • click
  • fill
  • clear
  • select_option
  • set_checked
  • press_key
  • submit
  • scroll_into_view

セレクタは 4 形式に対応

  • button.primaryCSS(既定)
  • text=ログイン表示テキスト
  • xpath=//form//inputXPath
  • label=メールアドレスラベル
しくみ 命令は、Apple Events で届く

Apple Events は、macOS に組み込まれている、アプリどうしが命令をやり取りする仕組みです。familiar は AppleScript でこの仕組みを使い、Chrome に「タブを開く」「このタブで JavaScript を実行する」といった命令を送ります。

MCP クライアントからの呼び出しは、familiar-mcp を経由して osascript に渡り、AppleScript が Chrome に命令します。

Claude Code skill と MCP サーバーは、同じ 1 つの familiar.applescript で動いています。どちらの経路でも挙動は同じです。

  1. MCP クライアントClaude Code / Cursor / …
  2. stdio(JSON-RPC)
  3. familiar-mcpNode.js
  4. osascript familiar.applescript ACTION …
  5. AppleScriptApple Events
  6. tell application "Google Chrome"
  7. Google Chrome本人がサインイン済みの実ブラウザ
  8. ページの DOM

Get started

使い魔を、呼び出しましょう。