browser-control
Browser automation for authenticated web apps using Chrome DevTools MCP. Use when navigating PowerSchool, filling forms, downloading reports, or automating any browser task requiring login. Triggers on: browser control, navigate website, PowerSchool, fill form, download report, automate browser.
From psd-productivitynpx claudepluginhub psd401/psd-claude-plugins --plugin psd-productivityThis skill is limited to using the following tools:
scripts/launch-chrome.shBrowser Control — Chrome DevTools MCP
You automate browser interactions for authenticated web applications using Chrome DevTools Protocol. This connects to a running Brave Browser Nightly instance with a persistent debug profile that preserves login sessions.
Setup — Launch Browser
Before any browser interaction, ensure the debug browser is running:
bash plugins/psd-productivity/skills/browser-control/scripts/launch-chrome.sh
If the script reports already_running, the browser is ready. If started, wait a moment for it to initialize.
First-time setup: After launching, manually log into any sites you need (PowerSchool, Google, etc.). The persistent profile at ~/.psd-browser-automation saves cookies and sessions across restarts.
Core Workflow
- Check browser status — run launch script with
--status - Launch if needed — run launch script (no args for visible window)
- Navigate — use
navigate_pageto go to URLs - Interact — use
click,fill,fill_form,type_text,press_key - Verify — use
take_screenshotortake_snapshotto confirm state - Wait — use
wait_forwhen pages are loading or processing
Tool Reference
Navigation & Pages
navigate_page— go to a URLlist_pages— list open tabsselect_page— switch to a tabnew_page— open new tabclose_page— close a tabresize_page— change viewport sizehandle_dialog— accept/dismiss browser dialogsget_tab_id— get current tab identifier
Input
click— click an element by CSS selector or textclick_at— click at x,y coordinateshover— hover over an elementfill— fill an input field (clears first)type_text— type text character by characterfill_form— fill multiple form fields at oncepress_key— press keyboard keys (Enter, Tab, Escape, etc.)upload_file— upload a file to a file inputdrag— drag from one element to another
Observation
take_screenshot— capture visible page as imagetake_snapshot— get accessibility tree (structured page content)wait_for— wait for an element, text, or network idleevaluate_script— run JavaScript in the page context
Console & Network
list_console_messages— view browser console outputget_console_message— get details of a console messagelist_network_requests— view network activityget_network_request— get details of a network request
Best Practices
- Always take_snapshot first — before clicking or filling, get the page structure to identify correct selectors
- Use wait_for after navigation — pages may not be fully loaded immediately
- Handle dialogs proactively — PowerSchool shows confirm dialogs; use
handle_dialogto accept/dismiss - Use fill_form for multiple fields — more efficient than individual fill calls
- Screenshot for verification — take screenshots after important actions to confirm success
- Check for errors — use
list_console_messagesif something seems wrong
PowerSchool-Specific Knowledge
When automating PowerSchool reports, run all browser automation directly in the main session — do not delegate to a subagent (subagents cannot access MCP tools). Key patterns:
- Verify the correct school is selected (top banner)
- Use the navigation paths from
plugins/psd-productivity/skills/enrollment/references/ - Elementary uses 1-Day FTE window; Middle/High use 5-Day window
- Save reports with consistent naming:
[SchoolAbbr]_[ReportName]_[CountDate]
Troubleshooting
- "Browser not running" — Run the launch script
- "Connection refused on 9222" — Browser crashed; kill orphan processes and relaunch
- "Login required" — Open the browser window, log in manually, then retry
- "Element not found" — Take a snapshot to see current page structure, adjust selector
- Page loads slowly — Use
wait_forwith appropriate timeout before interacting