Skip to content
Automation
Skill

/browser-automation

This skill should be used when the user asks about browser automation, testing web pages, extracting content, filling forms, taking screenshots, or monitoring console/network activity. Activates for E2E testing, form automation, browsing tasks, or debugging web applications.

From plugin
firefox-devtools-mcp
5317 skills2 agents

Claude Code

$ npx -y skills add mozilla/firefox-devtools-mcp --skill browser-automation --agent claude-code

SKILL.md

browser-automation.SKILL.md
name: browser-automation
description: This skill should be used when the user asks about browser automation, testing web pages, extracting content, filling forms, taking screenshots, or monitoring console/network activity. Activates for E2E testing, form automation, browsing tasks, or debugging web applications.

When the user asks about browser automation, use Firefox DevTools MCP to control a real Firefox browser.

Before Starting

Always call `list_pages` first. This checks whether Firefox is already running and which pages are open. Do not assume Firefox needs to be restarted or that you need to navigate from scratch — reuse the existing session whenever possible.

When to Use This Skill

Activate this skill when the user:

  • Wants to automate browser interactions ("Fill out this form", "Click the login button")
  • Needs E2E testing ("Test the checkout flow", "Verify the login works")
  • Wants to browse or extract content ("Get all links on this page", "Extract prices")
  • Needs screenshots ("Screenshot this page", "Capture the error state")
  • Wants to debug ("Check for JS errors", "Show failed network requests")
  • Needs to profile performance ("Profile this page load")

Core Workflow

Step 1: Navigate and Snapshot

navigate_page url="https://example.com"
take_snapshot

The snapshot returns a DOM representation with UIDs (e.g., `e42`) for each interactive element.

Step 2: Interact with Elements

Use UIDs from the snapshot:

fill_by_uid uid="e5" text="user@example.com"
click_by_uid uid="e8"

Step 3: Re-snapshot After Changes

DOM changes invalidate UIDs. Always re-snapshot after:

  • Page navigation
  • Form submissions
  • Dynamic content loads
take_snapshot  # Get fresh UIDs

Quick Reference

| Task | Tools | |------|-------| | Navigate | `navigate_page`, `navigate_history` | | See DOM | `take_snapshot` | | Click | `click_by_uid` | | Hover | `hover_by_uid` | | Type | `fill_by_uid`, `fill_form_by_uid`, `type_text` | | Press key | `press_key` | | Drag | `drag_by_uid_to_uid` | | Dialogs | `accept_dialog`, `dismiss_dialog` | | Screenshot | `screenshot_page`, `screenshot_by_uid` | | Debug | `list_console_messages`, `list_network_requests` | | Profile | `profiler_start`, `profiler_stop` |

Guidelines

  • **Check existing session first**: Call `list_pages` before navigating — reuse the running Firefox session rather than starting fresh
  • **Always snapshot first**: UIDs only exist after `take_snapshot`
  • **Re-snapshot after DOM changes**: UIDs become stale after interactions
  • **Screenshots**: in Cowork (system prompt has an outputs folder host path), call `screenshot_page saveTo="<host-outputs-path>/screenshot.png"` then call `present_files` with that path. Otherwise call `screenshot_page` without `saveTo` and include the returned image directly in your reply — the user cannot see tool call outputs.
  • **Check for errors**: Use `list_console_messages level="error"` to catch JS issues
  • **Firefox only**: This MCP controls Firefox, not Chrome or Safari
  • **Reconfiguring Firefox**: to use a specific binary, profile, or headless mode, call `restart_firefox` with the relevant options (`firefoxPath`, `profilePath`, `headless`)
Read more
@mozilla
Ships withfirefox-devtools-mcp

Model Context Protocol server that lets AI agents use Firefox. It has two main use cases: Agentic browsing: the agent uses the browser for regular tasks, such as reading pages, filling forms and going through multi-step flows on websites.

5317 skills2 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
531
Star history of mozilla/firefox-devtools-mcp on GitHub, a chart by star-history.com

Other skills on firefox-devtools-mcp.

bug-filing

bug-filing

File a Bugzilla bug for firefox-devtools-mcp, or draft a bug summary and description. Use when the user asks to file a bug, wants…

diagnose

diagnose

Diagnose Firefox DevTools MCP setup issues. Activate when the firefox-devtools-mcp plugin fails to connect, its tools are not…

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n11d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about browser-automation.

Which coding agents can use browser-automation?
browser-automation installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.