MCP Browser Dev Tools vs Selenium MCP

A side-by-side look at the MCP Browser Dev Tools and Selenium MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

MCP Browser Dev Tools logoMCP Browser Dev ToolsBrowser Automation · Local subprocess (stdio)Browser MCP server for AI agents: batch actions, waits, and checks into one call on Chrome, Edge, or Firefox (CDP and WebDriver BiDi)53GoodAuth: not declaredSelenium MCP logoSelenium MCPBrowser Automation · Local subprocess (stdio)Selenium MCP server for AI agents — 38 browser automation tools with snapshots and sessions.59GoodAuth: not declared

Verdict: choose MCP Browser Dev Tools for browser automation work as a local process; choose Selenium MCP for browser automation as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

MCP Browser Dev Tools logoChoose MCP Browser Dev Tools when

  • You need dedicated capabilities in the Browser Automation domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like browser_status, ensure_browser, launch_browser.
Explore MCP Browser Dev Tools

Selenium MCP logoChoose Selenium MCP when

  • You need dedicated capabilities in the Browser Automation domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like start_browser, navigate, history.
Explore Selenium MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecMCP Browser Dev Tools logoMCP Browser Dev ToolsSelenium MCP logoSelenium MCP
CategoryBrowser AutomationBrowser Automation
Quality signal53/100 · Good59/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredNot declared
PricingNot declaredNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars10
Directory activity 1 views 0 installs 0 upvotes 2 views 0 installs 0 upvotes
Tools4541

Tools & capabilities

MCP Browser Dev Tools tools 45

  • browser_status
  • ensure_browser
  • launch_browser
  • list_tabs
  • new_tab
  • close_tab
  • attach_tab
  • detach_tab
  • list_sessions
  • navigate
  • reload
  • click
  • +33 more on the listing page

Selenium MCP tools 41

  • start_browserStart a browser session (Chrome, Firefox, or Edge) that all other tools act on. Call this first. Only one session can be started this way: call stop_browser before starting another, or use session_create to run several browsers at once. The matching driver is downloaded automatically by Selenium Manager. Returns the session status.
  • navigateOpen a URL in the current tab and wait for the page to load (up to the pageLoadTimeoutMs set in start_browser). Returns the final URL after any redirects, and the page title. Use history to go back, forward, or refresh; use wait_for_page when a later redirect or client-side route change still has to happen.
  • historyBrowser history navigation: go back to the previous page (like the Back button), go forward to the next page, or refresh/reload the current page (like F5). Waits for the page to load and returns the new URL and title. To open a specific URL, use navigate instead. Element refs from an earlier capture_page may be stale afterwards, so capture the page again before using refs. Refresh can reset unsaved form input.
  • clickClick an element: waits until it is visible and enabled, then clicks it (scrolling it into view). Target it by selector or by a ref from capture_page. If clicks fail intermittently because of overlays, animations, or re-rendering, use retry_click; for double-click, right-click, or hover, use interact. Fails with the reason if the element does not become clickable within timeoutMs.
  • interactMouse actions beyond a plain click: double_click, right_click (opens a context menu), hover (reveals menus and tooltips), or click performed as a real mouse move-and-click. Waits for the element to be visible (hover) or visible and enabled (clicks). Target it by selector or by a ref from capture_page. For an ordinary click, prefer click.
  • typeType text into an input, textarea, or other editable element. Waits for it to be visible, clears the current value first (clearFirst: false appends instead), then sends the text as keystrokes so the page's input events fire; submit: true presses Enter afterwards. Target it by selector or by a ref from capture_page. For dropdowns use select_option; for single keys like Tab or Escape use press_key.
  • select_optionSelect an option in a native <select> dropdown by visible text, value, or zero-based index, and return the resulting selection. Waits for the dropdown to be visible, then clicks the option like a user so change events fire; on a multi-select it adds to the current selection. If nothing matches, the error lists the available options so you can retry. Only for real <select> elements; for custom dropdowns built from other elements, click the trigger and then the option.
  • scrollScroll the page: scroll down or up by pixels, jump to the top or bottom, or scroll an element into view (to the middle of the screen). Also scrolls inside a scrollable container (chat panels, tables, sidebars with their own scrollbar) when you pass that container as selector/ref together with to or deltaX/deltaY. Returns the scroll position with atTop/atBottom flags. For lazy-loaded or infinite-scroll pages ('load more' on scroll), scroll to the bottom, wait_for_element for the new items, and repeat until atBottom stays true and nothing new appears. click and type already scroll their target into view, so use this to reveal content or trigger lazy loading.
  • get_textRead the visible text of an element: what a user sees, not hidden text or an input's value. Waits for the element to be visible, then returns its text (trimmed by default). Target it by selector or by a ref from capture_page. To read an input's value or any attribute, use get_attribute; to check text as a pass/fail test step, use assert_text.
  • get_attributeRead an attribute or property of an element, e.g. an input's value, a link's href, or whether it is disabled, checked, or aria-expanded. Waits for the element to exist (it does not need to be visible). Returns the value, or null if it is not set; the live property wins when one exists, so 'value' gives the text currently in an input. Use get_text for visible text, and assert_attribute to check a value as a test step.
  • assert_textTest step: check that an element's visible text equals, contains (default), or matches a regular expression. Waits for the element to be visible, then checks once (it does not wait for the text to change). Passes with the actual text, or fails as a tool error showing expected vs actual, so it works as an acceptance check. Use get_text to just read text without a pass/fail.
  • assert_visibleTest step: check that an element becomes visible within timeoutMs, e.g. a success banner or a cart badge. Passes as soon as it is displayed; fails as a tool error if it is missing or stays hidden. Similar to wait_for_element with visible: true, but phrased as a pass/fail assertion.
  • +29 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

MCP Browser Dev Tools

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "mcp-browser-dev-tools": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-browser-dev-tools"
      ]
    }
  }
}

Selenium MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "selenium-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@gaforov/selenium-mcp@latest"
      ]
    }
  }
}

Frequently asked questions

MCP Browser Dev Tools is categorized under Browser Automation and uses a local stdio subprocess. Selenium MCP belongs to Browser Automation and uses a local stdio subprocess. Pick MCP Browser Dev Tools for browser automation work and Selenium MCP for browser automation.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

MCP Browser Dev Tools has no declared pricing — check the project's own site. Selenium MCP has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add mcp-browser-dev-tools and selenium-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, MCP Browser Dev Tools has a quality signal of 53/100 (Good) with 1 views, 0 installs and 1 GitHub stars. Selenium MCP has 59/100 (Good) with 2 views, 0 installs and 0 GitHub stars.