
SeleniumBase MCP Server: Setup for Claude Desktop, Claude Code and Other Apps
Lets Claude and other assistants drive a real Chrome browser through SeleniumBase: open pages, click, type, read content and try to solve CAPTCHAs.
This is the SeleniumBase project's own MCP server, in the mcp_servers folder of its repo. It drives Chrome over the Chrome DevTools Protocol with no WebDriver in the loop, which the project calls its stealthiest mode, and it runs on your own machine with no account. A separate repository, seleniumbase/seleniumbase-mcp, wraps SeleniumBase's other automation styles (Driver and SB) as their own MCP servers; this page covers the CDP-mode server that ships inside the main SeleniumBase repo.
Good for
- Developers who want an assistant to test or scrape sites that block ordinary bots
- QA engineers who want Claude to click through a flow and assert on the result
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install SeleniumBase MCP
Claude Desktop
- 1
Run this in a terminal.
shellpip install "seleniumbase[mcp]" - 2
Quit and reopen Claude Desktop to load it.
Requires Python, Chrome or Chromium.
Needs Python, Chrome or Chromium. The pip and clone methods are from the SeleniumBase README; the uvx config is adapted from the same command and is not vendor-documented. Restart Claude Desktop after editing the config.
From the project README. Source.
Tools
Opens a stealth Chrome browser
Launches a persistent Chrome session driven over Chrome DevTools Protocol, with no WebDriver, to reduce bot detection. Reuses the session if one is already open.
Try: “Open a browser and go to example.com.”
Network ·
start_browserCloses the browser session
Shuts down the current browser session.
Try: “Close the browser.”
Write ·
close_browserNavigates to a web address
Opens a URL in the current browser session.
Try: “Go to https://news.example.com.”
Network ·
open_urlGoes back, forward or reloads
Navigates browser history: back, forward or refresh.
Try: “Go back one page.”
Write ·
manage_historyReads the current page's title, URL and state
Returns information about the page currently open in the browser.
Try: “What page am I on right now?”
Read ·
get_page_infoFinds elements on the page
Locates elements on the page by a selector.
Try: “Find all the product links on this page.”
Read ·
find_elementsReads text or HTML from the page
Returns the text or HTML content of the page or an element.
Try: “Get the main article text from this page.”
Read ·
get_contentReads an element's attributes
Returns the attribute values of one or more elements.
Try: “What is the href of the first link?”
Read ·
get_attributesChecks whether something is true on the page
Checks a condition on the page, such as whether an element is visible.
Try: “Is the login button visible yet?”
Read ·
check_if_conditionClicks an element
Clicks an element matched by a selector.
Try: “Click the Accept cookies button.”
Write ·
click_elementHovers, clicks or drags on the page
Hovers over an element, or hovers then clicks or drags to reveal and act on hidden targets.
Try: “Hover over the menu and click Settings.”
Write ·
hover_actionTypes text into a field
Types text into an input field on the page.
Try: “Type my search term into the search box.”
Write ·
type_textPicks an option from a dropdown
Selects an option in a dropdown list.
Try: “Select Canada from the country dropdown.”
Write ·
select_optionMoves keyboard focus to an element
Sets keyboard focus on an element, without clicking it.
Try: “Focus the search input.”
Write ·
focus_elementWaits until something happens on the page
Waits up to a timeout for a condition, such as an element appearing.
Try: “Wait for the results list to load.”
Read ·
wait_for_conditionChecks a condition and reports pass or fail
Asserts a condition about the page and reports whether it held, for test-style checks.
Try: “Assert that the page title contains Checkout.”
Read ·
assert_conditionReads, sets or deletes browser cookies
Gets, sets or clears cookies for the current browser session.
Try: “Set a cookie to skip the welcome banner.”
Delete ·
manage_cookiesReads or writes local and session storage
Gets, sets or clears values in the page's local or session storage.
Try: “Clear the saved login token from local storage.”
Delete ·
manage_storageScrolls the page
Scrolls the page or an element by an amount or to a target.
Try: “Scroll to the bottom of the page.”
Write ·
scroll_pageResizes or maximizes the browser window
Changes the size or state of the browser window.
Try: “Maximize the browser window.”
Write ·
manage_windowOpens, closes or switches browser tabs
Manages browser tabs: open a new one, close one or switch to one.
Try: “Open a new tab and go to the pricing page.”
Write ·
manage_tabsAttempts to solve a CAPTCHA on the page
Tries to solve a visible CAPTCHA challenge (Cloudflare Turnstile, reCAPTCHA, hCaptcha, DataDome Slider or FriendlyCaptcha) with a click or drag. The tool description says it does not guarantee success.
Try: “Try to solve the CAPTCHA on this page.”
Write ·
solve_captchaSaves the page or a screenshot
Saves the current page's HTML or a screenshot to a file.
Try: “Save a screenshot of this page.”
Write ·
save_pageRuns JavaScript on the page
Runs any JavaScript in the page, with full access to the page's scripts, DOM and storage. The source notes this can read, write, navigate or destroy data.
Try: “Run a script that counts how many images are on the page.”
Delete ·
run_javascript
Read from the source code
Permissions
high risk · 4 things to watch
High risk
The assistant drives a real Chrome browser and one tool can run any JavaScript on the page, which can read or change site data including cookies. Keep it pointed at sites you trust, especially while logged in.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
One tool runs arbitrary JavaScript on the page
run_javascript's own comment says it can read, write, navigate or destroy data on the page with no annotation limiting it. Restrict it to sites you trust. github.com
It can read, set and clear cookies and storage
manage_cookies and manage_storage can read and delete site data, including login state. github.com
It opens a real browser onto the open web
start_browser and open_url send a real browser to any address you or the assistant gives it. github.com
CAPTCHA solving is not guaranteed
solve_captcha tries a click or drag on common CAPTCHA widgets; the tool's own description says success is not guaranteed. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | No read-only mode is documented. Leave out run_javascript and the write tools from your client's allowed-tools list if you want it read-only. |
|---|---|
| Talks to | Any site the browser is sent to |
| Sign-in and keys | No sign-in or API key. It drives a local Chrome browser. |
Questions
Is this official?
Yes, for SeleniumBase's CDP mode. It ships inside the main SeleniumBase repository and is maintained by the project.
Does it need an API key?
No. It runs a local Chrome browser with no account.
Does it need ChromeDriver?
No. This mode drives Chrome over the DevTools Protocol directly, so it only needs a working Chrome or Chromium install, not a chromedriver download.
Can it solve CAPTCHAs?
It tries to, for Cloudflare Turnstile, reCAPTCHA, hCaptcha, DataDome Slider and FriendlyCaptcha, with a click or drag action. The project does not guarantee it will work.
Can I make it read-only?
Not with a built-in switch. Leave run_javascript and the other write tools off your client's allowed-tools list if you want it to only read pages.
Is this the same as the seleniumbase-mcp repo?
No. The seleniumbase-mcp package on PyPI and the seleniumbase/seleniumbase-mcp repo are a separate project with three servers (seleniumbase-cdp, seleniumbase-driver, seleniumbase-sb). This page is the CDP-mode server inside the main SeleniumBase repo, installed with pip install "seleniumbase[mcp]".
How do I add it to Claude Desktop?
Run pip install "seleniumbase[mcp]", then add a seleniumbase-mcp entry to claude_desktop_config.json and restart Claude Desktop. The Claude Desktop tab above has the exact config.
Information
updated Nov 2, 2026
- Publisher
- Official
- Package
seleniumbase- Registry
- PyPI
- Transport
- stdio
- Auth
- None
- Version
- 4.56.5
- License
- MIT
- Last commit
- Oct 29, 2026
- Open issues
- 12
- Listed in
- Official MCP registry
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 2Hide
- github.com · github.com
- github.com · github.com