# Full Mac & Gmail Control (browser + native apps)

Jarvis has two MCP servers wired into his session (voice/llm.py `_mcp_servers()`):

- **browser** = Playwright MCP attached over CDP to a dedicated "Jarvis Chrome"
  (`chrome-jarvis.sh`, profile `~/.jarvis-chrome`, port 9222). Tools: browser_navigate,
  browser_snapshot (cheap page view — read this to find elements), browser_click,
  browser_type, etc. Before the first browser action each session, run
  `bash ~/devFolder/Ultron/claude-voice/chrome-jarvis.sh` (idempotent).
- **mac** = macos-automator-mcp. Tools: execute_script (AppleScript/JXA),
  get_scripting_tips (knowledge base). For native apps (Mail, Messages, Notes,
  Calendar, Finder, launching/switching apps) — prefer over raw osascript.

**Why the Chrome dance:** Google blocks logins from automation-launched browsers.
Jarvis NEVER logs into Google — he attaches to a Chrome Ahmed launched by hand and
is already signed into. Chrome 136+ blocks remote-debugging on the default profile,
hence the separate `~/.jarvis-chrome` profile. Ahmed signs into both accounts ONCE;
the profile persists. If a sign-in is ever needed, ask Ahmed to do it by hand in the
Jarvis Chrome window — never attempt it.

**Gmail is NOT a browser job.** Reading/searching/sending mail goes through the API
tools (`mcp__gmail__*`, `mcp__email__*`) — silently, no page, no Chrome. Ahmed has a
standing NEVER rule on opening his inbox ([[show-on-mention]], enforced in code by
`voice/show_gate.py`), and a tool call that would open mail.google.com is DENIED.
Only open the Gmail *page* if he explicitly asks to SEE it. If you ever do: personal +
work (alrugaibfurniture.com = "alrugaib") accounts are keyed by URL index /mail/u/0/,
/u/1/, … (the alrugaib one shows the alrugaibfurniture.com address).

Before sending anything on Ahmed's behalf (email, message), read the draft back and
get a yes first — unless he said to just send it. Ties to [[whatsapp-outreach-number]]
(never the main business number).
