MCP Browser Extension
Drive your real Chrome over MCP: real logins and cookies, multi-tab automation, deny-all by default.
Connector by Mehmoodqureshi · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/mehmoodqureshi-mcp-browser-extension
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 15 read · 16 write · 1 delete · 11 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 43
Read from the source code; the running server may list different tools.
Read 15 · Look things up without changing anything.
auth_checkchrome_statusextract_linksframes_listget_cookiesget_htmlget_textproxy_statusread_as_markdownscreenshotsnapshotstorage
Show 3 more tools
tabs_listtask_statustasks_list
Write 16 · Create, change, send or run things.
batchclickdownload_filefill_formforwardhovernavigatepressprofile_renamescrollselect_optiontab_close
Show 4 more tools
tab_selecttask_newtypeupload_file
Delete 1 · Delete, drop, revoke or wipe things.
eval
Not yet classified 11 · We could not tell from the name and description.
backconsole_logsdialogsdrawnetwork_logpage_watchprint_pdfprofile_usereloadtab_newwait_for
Network hosts it talks to 8
api.ipify.org· found in codechromewebstore.google.com· found in codedevelopers.cloudflare.com· found in codegithub.com· found in codeipinfo.io· found in codemcp-browser-extension.com· found in codeprobe.invalid· found in codeus.i.posthog.com· found in code
Files it touches
- Your home directory (~)
Tools (43)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
auth_checkIs the tab sitting on a sign-in wall? Reads the page (URL, title, password fields, sign-in controls) and returns { authRequired, confidence, signals }. Use it after a navigate, or whenever a step fails unexpectedly, to tell "the session expired" apart from "the agent got lost". Pass failOnAuthWall:true to get an [AUTH_REQUIRED] error instead of a verdict, so a harness can bucket the run as an auth failure.
backGo back in history.
batchRun multiple tool calls in one request — parallel (default) or serial. Each op is { tool, args } and goes through the same policy gate, rate limit, and error handling as a direct call. In parallel mode, tab-scoped ops MUST pass an explicit tabId (the active-tab default is unsafe under concurrency). Use to drive several tabs at once (e.g. open tabs, then batch get_text across them). Cannot be nested.
chrome_statusReport backend/session status: paired browser profiles and how each was named, and flags for switched-off capabilities.
clickClick an element. Target by selector, a snapshot ref, or role+name (e.g. role:"button", name:"Sign in") - the locator needs no snapshot first. trusted=true uses real OS-level input.
console_logsConsole output and uncaught errors recorded on the page (requires --enable-observers). This is how you find out WHY a page misbehaved rather than only what it looks like afterwards. Pass sinceSeq to poll for what is new, clear:true to drain.
dialogsNative dialogs (alert/confirm/prompt/beforeunload) the page raised, and how they were answered (requires --enable-observers). With observers on, dialogs are intercepted rather than left to block the renderer - which is what otherwise turns a click that opens a confirm() into a mystery TIMEOUT. Set policy:'accept' to answer confirms with true.
download_fileDownload a file by URL or from a link element.
drawDraw freehand strokes with real mouse input. Points use CSS pixels from the top-left of the browser viewport; activate the site’s drawing tool first. Each stroke needs at least two points.
evalEvaluate JavaScript in the page (disabled in safe-mode).
extract_linksExtract anchors from the page or a subtree. dedupe=true collapses links sharing an href (nav/footer noise); limit caps the count.
fill_formFill multiple fields (keyed by selector) and optionally submit.
forwardGo forward in history.
frames_listList the tab's frames (the top document plus every iframe the extension can reach), with each frame's id and URL. Use it when a selector that should match does not: the element is probably in one of these frames, and you can then pass frameId (or allFrames:true) to act inside it.
get_cookiesCookies for the tab's URL (or url); values need --enable-cookie-values.
Show 28 more tools
get_htmlGet HTML of the page or an element. Output is capped (see maxBytes) and cut at a tag boundary; narrow it with `selector` rather than raising the cap when you can. Password field values are always blanked.
get_textGet visible text of the page or an element.
hoverHover over an element.
navigateNavigate the agent's tab to a URL, replacing its page. With no agent's tab yet it opens one in the background: the user's own tab is only navigated when you pass its tabId.
network_logRequests the page made - fetch and XMLHttpRequest with method, URL, status and duration (requires --enable-observers). Set includeResources:true to also list scripts/images/styles from Resource Timing (those carry timing and size but no status). Does not include the document request or headers.
page_watchSave a local page checkpoint and compare it later. Actions: create (name), compare (watchId), list, delete. Stores accessibility labels and state, never form values. Site allowlist still applies.
pressPress a key (with optional modifiers).
print_pdfRender the page to PDF through Chrome's own print pipeline and save it to the task's results/ dir. Returns the path and size, not the bytes - a PDF is not something to spend context on.
profile_renameRename an automatically named browser profile (e.g. "profile-2" -> "work"). The name sticks across restarts; its saved artifacts move with it.
profile_useSwitch the active browser profile (identity). Subsequent downloads, results, screenshots, and the action log are stored under profiles/<name>/. Resets the active task to "default" unless you then call task_new.
proxy_statusThe active profile's proxy and the IP sites see. The user sets it per Chrome profile; for another IP, profile_use another profile.
read_as_markdownRead the page (or subtree) as readable markdown.
reloadReload the active (or given) tab.
screenshotCapture a screenshot (page or element). Default is JPEG (quality 70) at CSS-pixel size, which is several times smaller than PNG and reads fine. Pass format:"png" for lossless, quality 1-100 for JPEG, scale 2 for device pixels on a Retina display or 0.5 to shrink.
scrollScroll the page or to an element.
select_optionSelect option(s) of a <select> by value or visible label.
snapshotAccessibility snapshot: interactive elements with refs to target by `ref` (more reliable than guessing CSS selectors). Pass diff:true to get only what changed since the last snapshot of this tab - far cheaper in a click/read loop. Password fields appear as secret:true with no value.
storageRead/write localStorage (or sessionStorage). op: get|set|remove|clear.
tab_closeClose a tab by tabId.
tab_newOpen a NEW tab (optionally at a URL) in the background, leaving the user's tab alone; it becomes the agent's tab, where calls without tabId go. Pass active:true to show it to the user.
tab_selectMake a tab the agent's tab by tabId, in the background: calls without tabId go to it and the user stays on their own tab. Pass show:true only to bring it to the front for the user.
tabs_listList open browser tabs.
task_newStart a new task (run) under the active profile. Creates profiles/<profile>/tasks/<name>/ with downloads/, results/, screenshots/ and makes it the active task so all captured artifacts land there.
task_statusReport the active profile/task and the folder paths where this run's artifacts are stored.
tasks_listList every task across all profiles under the data dir, with sizes and download counts.
typeType text into an element (target by selector, ref, or role+name). trusted=true sends real keystrokes (works on React/Vue controlled inputs).
upload_fileSet local file(s) on a file <input> (target by selector or ref) — uploads without the OS dialog. Requires --enable-uploads. `files` are absolute local paths.
wait_forWait for a selector or text to appear/disappear.
Compare and alternatives
Featured in
Signals
- Stars
- 6
- Forks
- 0
- Open issues
- 0
- Last commit
- Oct 22, 2026 (6 days ago)
- Last release
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.Mehmoodqureshi/mcp-browser-extension- Version
- 0.9.34
- Auth
- No auth
- Packages
- npm mcp-browser-extension
- License
- MIT
- Website
- mcp-browser-extension.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from Mehmoodqureshi
- 0.607score
Figma CodeKit MCP
Mehmoodqureshi
Figma to pixel-perfect code: deterministic HTML/React, then a render + pixel-diff verify loop.
ConnectorAFreshness: ALocalRead-only★ 1Claude Code +5 - 0.607score
figma-mcp
Mehmoodqureshi
Figma to pixel-perfect code: deterministic HTML/React, then a render + pixel-diff verify loop.
ConnectorAFreshness: ALocalRead-only★ 1Claude Code +5
Cite this page
MCP Browser Extension. Agent Mart. https://agentmart.dev/connectors/mehmoodqureshi-mcp-browser-extension (last updated 2026-10-24)