01
管理画面から読む
ログインが必要な管理画面やダッシュボードを開いたまま、表の数字や一覧を拾って、まとめてもらう。
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
01
ユーザー本人がサインインしている Chrome を Apple Events 経由で動かします。ページから見えるのは通常の Chrome セッションそのままで、WebDriver や DevTools の制御経路は追加されません。
02
DevTools Protocol も Playwright も、別のドライバも使いません。macOS に最初からある AppleScript だけで Chrome と話します。
03
すべての操作は windowId + tabId で特定のタブを対象にします。アクティブタブには依存しないので、ユーザーが別のタブで作業していても干渉しません。
どれも AI エージェントにブラウザを操作させるツールで、今はほかのツールも設定しだいで普段のブラウザにつなげられます。いちばんの違いは、ブラウザへのつなぎ方です。familiar は Chrome の起動方法に手を加えず、Apple Events で命令を送るだけです。
| 項目 |
|
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 で次の 2 行を実行します。
/plugin marketplace add dominion525/familiar
/plugin install familiar@familiar
同じ 32 の操作を、MCP 対応クライアント(Claude Code / Claude
Desktop / Cursor / Codex CLI ほか)から使えます。npm パッケージ
@dominion525/familiar-mcp を
npx で起動します。Node.js 20 以上が必要です。
claude mcp add familiar -- npx @dominion525/familiar-mcp@latest
~/Library/Application
Support/Claude/claude_desktop_config.json
を編集します。
{
"mcpServers": {
"familiar": {
"command": "npx",
"args": ["@dominion525/familiar-mcp@latest"]
}
}
}
~/.cursor/mcp.json を編集します。
{
"mcpServers": {
"familiar": {
"command": "npx",
"args": ["@dominion525/familiar-mcp@latest"]
}
}
}
~/.codex/config.toml を編集します。
[mcp_servers.familiar]
command = "npx"
args = ["@dominion525/familiar-mcp@latest"]
Cline / Windsurf / Antigravity、VS Code 拡張(GitHub Copilot Chat / Continue など)は、Claude Desktop / Cursor と同じ JSON 形式で接続します。設定ファイルの場所は各クライアントのドキュメントを参照してください。
動作確認 初回の設定を済ませたら、エージェントに「開いているタブのタイトルを一覧にして」と頼んでみてください。タブの一覧が返ってくれば、つながっています。
npx skills add dominion525/familiar
スキルが
~/.agents/skills/familiar/
に展開され、agent-skills spec
に準拠したクライアントが自動で読み込みます。
osascript skills/familiar/familiar.applescript list_tabs
リポジトリを clone すれば、スクリプト単体でも実行できます。
First-run setup
familiar が Chrome と話せるようにするには、Chrome の設定と macOS の権限が必要です。どちらも最初の一度だけです。
Chrome のメニューから、次の項目にチェックを入れます。
この設定は、ページの中で JavaScript を動かす操作(読み取り / 操作 / コンテンツ / JS 条件の待機)に必要です。タブ / ウィンドウ / ナビゲーション / 履歴 / 読み込み状態の操作は AppleScript だけで動くので、この設定がなくても使えます。
familiar が初めて Chrome に話しかけるとき、macOS が確認ダイアログを出します。「許可」で承認してください。
許可の対象は familiar ではありません。macOS はオートメーションの権限を親プロセスに付与します。承認する相手は、MCP クライアントや Claude Code を実際に動かしているアプリ(ターミナル / VS Code / Cursor / Claude Desktop など)です。サインイン済みの 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
クライアントは、次のことができます。
HttpOnly の Cookie の値はページの JavaScript からは読めません。ただし、その Cookie で成り立っているログイン済みのセッションのまま、操作はできます。
windowId + tabId は操作するタブを指定するための仕組みです。そのタブにしか触れられないという制限ではありません。
サーバーはローカルで動き、MCP クライアントとは stdio だけで通信します。自分から外部に接続することはなく、テレメトリやアナリティクスもありません。
ただし、familiar が取得したページの内容や操作結果は MCP クライアントに渡り、クライアントの構成によってはモデル提供元へ送られます。
ページから見えるのは通常の Chrome セッションですが、サイト側のアクセス制御はそのまま効きます。特定のサイトへのアクセスを保証するものではありません。
オープンソース・MIT ライセンスです。Chrome
に何を送っているかは、familiar.applescript
を読めば確かめられます。
AI に任せた操作は、あなたのアカウントで実行されます。何をどこまで任せるかは、あなたの判断です。
Details
セレクタは 4 形式に対応
button.primaryCSS(既定)text=ログイン表示テキストxpath=//form//inputXPathlabel=メールアドレスラベルApple Events は、macOS に組み込まれている、アプリどうしが命令をやり取りする仕組みです。familiar は AppleScript でこの仕組みを使い、Chrome に「タブを開く」「このタブで JavaScript を実行する」といった命令を送ります。
MCP クライアントからの呼び出しは、familiar-mcp を経由して
osascript に渡り、AppleScript が Chrome
に命令します。
Claude Code skill と MCP サーバーは、同じ 1 つの
familiar.applescript
で動いています。どちらの経路でも挙動は同じです。