Dev Browser
Browser automation using MCP tools. Use these tools directly for all web automation tasks.
Tools
browser_navigate(url, page_name?) - Navigate to a URL
- url: The URL to visit (e.g., "google.com" or "https://example.com")
- page_name: Optional name for the page (default: "main")
browser_snapshot(page_name?) - Get the page's accessibility tree
- Returns YAML with element refs like [ref=e5]
- Use these refs with browser_click and browser_type
browser_click(x?, y?, ref?, selector?, page_name?) - Click on the page
- x, y: Pixel coordinates (default method)
- ref: Element ref from browser_snapshot (alternative)
- selector: CSS selector (alternative)
browser_type(ref?, selector?, text, press_enter?, page_name?) - Type into an input
- ref: Element ref from browser_snapshot (preferred)
- selector: CSS selector as fallback
- text: The text to type
- press_enter: Set to true to press Enter after typing
browser_screenshot(page_name?, full_page?) - Take a screenshot
- Returns the image for visual inspection
- full_page: Set to true for full scrollable page
browser_evaluate(script, page_name?) - Run custom JavaScript
- script: Plain JavaScript code (no TypeScript)
browser_pages(action, page_name?) - Manage pages
- action: "list" to see all pages, "close" to close a page
browser_keyboard(text?, key?, page_name?) - Type to the focused element
- text: Text to type (uses real keyboard events)
- key: Special key like "Enter", "Tab", "Escape", or combos like "Control+a"
- USE THIS for complex editors like Google Docs, Monaco, etc. that don't have simple input refs
- Workflow: first click to focus the editor area, then use browser_keyboard to type
browser_sequence(actions, page_name?) - Execute multiple actions efficiently
- actions: Array of {action, ref?, selector?, x?, y?, text?, press_enter?, timeout?}
- Supported actions: "click", "type", "snapshot", "screenshot", "wait"
- Use for multi-step operations like form filling
Workflow
- Navigate:
browser_navigate("google.com")
- Discover elements:
browser_snapshot() - find refs like [ref=e5]
- Interact:
browser_click(ref="e5") or browser_type(ref="e3", text="search query", press_enter=true)
- Verify:
browser_screenshot() to see the result
Examples
Google Search
- browser_navigate(url="google.com")
- browser_snapshot() -> find search box [ref=e12]
- browser_type(ref="e12", text="cute animals", press_enter=true)
- browser_screenshot() -> see search results
Google Docs
IMPORTANT: For Google Docs/Sheets/Slides, ALWAYS navigate directly - don't click through Drive UI (new tabs don't work well):
- browser_navigate(url="docs.google.com/document/create") -> creates new doc directly
- browser_click(x=640, y=300) -> click on document area to focus the editor
- browser_keyboard(text="Hello, this is my document") -> type with real keyboard events
- browser_keyboard(key="Enter") -> press Enter for new line
- browser_keyboard(text="Second paragraph")
- browser_screenshot() -> verify text was typed
Direct URLs to remember:
- New Doc: docs.google.com/document/create
- New Sheet: docs.google.com/spreadsheets/create
- New Slide: docs.google.com/presentation/create
Login Pages
When you encounter a login page (e.g., Google Sign-In, OAuth screens, authentication prompts):
- Do NOT say you cannot log in or suggest alternative approaches
- Instead, ASK the user to log in manually in the browser window
- Take a screenshot to show the user the login page
- Say something like: "I've reached a login page. Please log in to your account in the browser window, then let me know when you're done."
- WAIT for the user to confirm they've logged in before continuing
- After the user confirms login, take another screenshot to verify you're past the login screen
- Then continue with the original task
This interactive login flow is essential because:
- Users expect to authenticate themselves for security
- Many services require human verification (CAPTCHAs, 2FA)
- The agent should not give up on tasks that require authentication
Filesystem
For saving/downloading content:
- Use browser's native download (click download buttons, Save As)
- Chrome handles downloads with its own permissions
- For text/data, copy to clipboard so users can paste where they want
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: dev-browser-83description: Browser automation via MCP tools. ALWAYS use these tools for ANY web task - navigating sites, clicking, typing, filling forms, taking screenshots, or extracting data. This is the ONLY way to control the browser. Use when this capability is needed.4---56# Dev Browser78Browser automation using MCP tools. Use these tools directly for all web automation tasks.910## Tools1112**browser_navigate(url, page_name?)** - Navigate to a URL13- url: The URL to visit (e.g., "google.com" or "https://example.com")14- page_name: Optional name for the page (default: "main")1516**browser_snapshot(page_name?)** - Get the page's accessibility tree17- Returns YAML with element refs like [ref=e5]18- Use these refs with browser_click and browser_type1920**browser_click(x?, y?, ref?, selector?, page_name?)** - Click on the page21- x, y: Pixel coordinates (default method)22- ref: Element ref from browser_snapshot (alternative)23- selector: CSS selector (alternative)2425**browser_type(ref?, selector?, text, press_enter?, page_name?)** - Type into an input26- ref: Element ref from browser_snapshot (preferred)27- selector: CSS selector as fallback28- text: The text to type29- press_enter: Set to true to press Enter after typing3031**browser_screenshot(page_name?, full_page?)** - Take a screenshot32- Returns the image for visual inspection33- full_page: Set to true for full scrollable page3435**browser_evaluate(script, page_name?)** - Run custom JavaScript36- script: Plain JavaScript code (no TypeScript)3738**browser_pages(action, page_name?)** - Manage pages39- action: "list" to see all pages, "close" to close a page4041**browser_keyboard(text?, key?, page_name?)** - Type to the focused element42- text: Text to type (uses real keyboard events)43- key: Special key like "Enter", "Tab", "Escape", or combos like "Control+a"44- USE THIS for complex editors like Google Docs, Monaco, etc. that don't have simple input refs45- Workflow: first click to focus the editor area, then use browser_keyboard to type4647**browser_sequence(actions, page_name?)** - Execute multiple actions efficiently48- actions: Array of {action, ref?, selector?, x?, y?, text?, press_enter?, timeout?}49- Supported actions: "click", "type", "snapshot", "screenshot", "wait"50- Use for multi-step operations like form filling5152## Workflow53541. **Navigate**: `browser_navigate("google.com")`552. **Discover elements**: `browser_snapshot()` - find refs like [ref=e5]563. **Interact**: `browser_click(ref="e5")` or `browser_type(ref="e3", text="search query", press_enter=true)`574. **Verify**: `browser_screenshot()` to see the result5859## Examples6061### Google Search62631. browser_navigate(url="google.com")642. browser_snapshot() -> find search box [ref=e12]653. browser_type(ref="e12", text="cute animals", press_enter=true)664. browser_screenshot() -> see search results6768### Google Docs6970**IMPORTANT**: For Google Docs/Sheets/Slides, ALWAYS navigate directly - don't click through Drive UI (new tabs don't work well):71721. browser_navigate(url="docs.google.com/document/create") -> creates new doc directly732. browser_click(x=640, y=300) -> click on document area to focus the editor743. browser_keyboard(text="Hello, this is my document") -> type with real keyboard events754. browser_keyboard(key="Enter") -> press Enter for new line765. browser_keyboard(text="Second paragraph")776. browser_screenshot() -> verify text was typed7879Direct URLs to remember:80- New Doc: docs.google.com/document/create81- New Sheet: docs.google.com/spreadsheets/create82- New Slide: docs.google.com/presentation/create8384## Login Pages8586When you encounter a login page (e.g., Google Sign-In, OAuth screens, authentication prompts):87- Do NOT say you cannot log in or suggest alternative approaches88- Instead, ASK the user to log in manually in the browser window89- Take a screenshot to show the user the login page90- Say something like: "I've reached a login page. Please log in to your account in the browser window, then let me know when you're done."91- WAIT for the user to confirm they've logged in before continuing92- After the user confirms login, take another screenshot to verify you're past the login screen93- Then continue with the original task9495This interactive login flow is essential because:96- Users expect to authenticate themselves for security97- Many services require human verification (CAPTCHAs, 2FA)98- The agent should not give up on tasks that require authentication99100## Filesystem101102For saving/downloading content:103- Use browser's native download (click download buttons, Save As)104- Chrome handles downloads with its own permissions105- For text/data, copy to clipboard so users can paste where they want106107---108> Converted and distributed by [TomeVault](https://tomevault.io/claim/zhouke2020) — claim your Tome and manage your conversions.109<!-- tomevault:4.0:skill_md:2026-04-14 -->