About familiar-mcp
familiar-mcp is a TypeScript MCP server that controls the user's real Google Chrome on macOS through AppleScript. It provides 32 tab-scoped browser actions for navigation, page inspection, and interaction, using the everyday browser rather than DevTools Protocol or Playwright.
Key features
- 01Control Chrome through AppleScript
- 02Manage tabs and navigation
- 03Wait for page and selector conditions
- 04Read page content and element values
- 05Interact with forms and elements
- 06Run JavaScript in the page
Use cases
- 01Automate tasks in an existing Chrome session
- 02Inspect page content and DOM elements
- 03Fill and submit browser forms
- 04Work with pages requiring a normal browser
MCP support
The MCP server exposes the same 32 browser actions to MCP-compatible clients, including Claude Code, Claude Desktop, Cursor, and Codex CLI.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEfamiliar
Control your real macOS Chrome via AppleScript — no DevTools Protocol, no Playwright.
A Claude Code skill that drives Google Chrome on macOS through AppleScript (Apple Events). It uses your everyday browser instead of a headless/automated one, so pages behind bot/WAF defenses tend to treat it as a normal user.
日本語版は README.ja.md を参照してください。
What it does
Everything is tab-scoped (windowId + tabId); it never relies on the "active tab".
list_tabs/new_tab/new_incognito_tab/close_tab— tab management (new_tab uses a normal window, new_incognito_tab an incognito one)active_tab/window_mode/is_loading— inspect active tab / window mode / tab loading statenavigate/get_tab_url— navigationreload/go_back/go_forward/stop— history & reload controlwait_for_load/wait_for_selector/wait_for_function— wait for page load / element / a JS conditionget_html— get the current DOM as HTMLget_text/get_attribute/get_value/exists/query_all— read element text / attribute / value / presence / all matchesclick/fill/clear/select_option/set_checked/press_key/submit/scroll_into_view— interact with elements and formsexecute_js/execute_js_file— run arbitrary JavaScript (use the file form for complex scripts)
Selectors accept CSS (default), text=, xpath=, and label= forms.
Prerequisites
- macOS with Google Chrome
- Enable Chrome's "Allow JavaScript from Apple Events" (View → Developer → Allow JavaScript from Apple Events)
- Approve the Automation permission prompt on first run
Install
Claude Code plugin
/plugin marketplace add dominion525/familiar
/plugin install familiar@familiar
For local development / testing:
/plugin marketplace add /path/to/familiar
/plugin install familiar@familiar
Vercel Skills (agent-skills)
npx skills add dominion525/familiar
This places the skill under ~/.agents/skills/familiar/. Any client that follows the
agent-skills spec (Claude Code, Cursor, and
others) picks it up automatically. The registry is at https://skills.sh.
MCP server
The mcp/ directory contains an MCP server implementation (TypeScript) that
exposes the same 32 actions to any MCP-compatible client (Claude Code, Claude
Desktop, Cursor, Codex CLI, and others).
Quick install (Claude Code):
claude mcp add familiar -- npx @dominion525/familiar-mcp@latest
See mcp/README.md for full per-client install and configuration.
Standalone (no install)
The script also runs standalone, without installing the skill:
osascript skills/familiar/familiar.applescript list_tabs
See skills/familiar/SKILL.md for full usage.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.