Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Agent360 Browser MCP

NPM · @AGENT360/BROWSER-MCP · SCANNED SEP 20

Drive your real, logged-in Chrome from any AI agent - 40 tools. Needs our Chrome extension too.

+5 this week 71 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security63
  • No malware found by supply-chain analysis.Pass
  • Known CVEs could not be checked: the version this server declares is not published in its registry.Unverified
  • No install/post-install scripts declared.Pass
  • Dependency health could not be checked: the version this server declares is not published in its registry.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability71
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 7233 tokens (~180/item across 40 items; 40 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
  • Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "browser_execute_script" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 41 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Agent360 Browser MCP server?

Agent360 Browser MCP runs locally as an npm package, launched with npx -y @agent360/browser-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @agent360/browser-mcp

# add to Claude Code
claude mcp add agent360dk-browser-mcp -- npx -y @agent360/browser-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "agent360dk-browser-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@agent360/browser-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "agent360dk-browser-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@agent360/browser-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add agent360dk-browser-mcp -- npx -y @agent360/browser-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "agent360dk-browser-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@agent360/browser-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add agent360dk-browser-mcp --command npx --arg -y --arg @agent360/browser-mcp
# ~/.hermes/config.yaml
mcp_servers:
  agent360dk-browser-mcp:
    command: "npx"
    args: ["-y", "@agent360/browser-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "agent360dk-browser-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@agent360/browser-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add agent360dk-browser-mcp -t stdio -c npx -a -y @agent360/browser-mcp
// mcp.json
{
  "mcpServers": {
    "agent360dk-browser-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@agent360/browser-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 −10
    • Known CVEs: pass → unverified security
    • Dependency health: 0.85 → unverified functional
    • Package version: 1.29.2 → 1.30.0 functional
  • 19 Sept 26 +15
    • Malware scan: unverified → pass security
  • 18 Sept 26 −14
    • Malware scan: pass → unverified security
    • Package version: 1.29.1 → 1.29.2 functional
  • 16 Sept 26 −2
    • Stability: pass → 0.80 functional
  • 15 Sept 26 0
    • Stability: 0.97 → pass security
  • 14 Sept 26 +16
    • Malware scan: unverified → pass security
    • Security disclosure: fail → pass functional
  • 13 Sept 26 −15
    • Malware scan: pass → unverified security
    • Package version: 1.29.0 → 1.29.1 functional
  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/@agent360/browser-mcp@1.30.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

MCP tools · 40 exposed · ~4,836 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
browser_about ~274

Returns Browser MCP info and pre-filled URLs the user can click to submit feature wishes, share use-cases, or report bugs. Call this PROACTIVELY whenever the user (a) mentions a feature they wish existed ("I wish browser-mcp could...", "it would be nice if..."), (b) says something is missing, broken, or unexpected, (c) asks how Browser MCP works or who maintains it, or (d) describes something cool they built with browser-mcp. Pass intent="wish" | "use_case" | "bug" | "info" plus an optional title and body, and offer the returned submit_url to the user. Browser MCP is community-shaped - this tool is how the user contributes back.

NameTypeReqDescription
bodystringOptional pre-filled body / first-comment draft. Will be URL-encoded into the submit link. Keep it short; user can expand on GitHub.
intentstringWhat the user wants to share. "wish" = feature request, "use_case" = share what they built, "bug" = something broken, "info" = general (default: "info").
titlestringOptional pre-filled issue title (e.g. "Support hCaptcha v3"). Will be URL-encoded into the submit link.

No output schema declared.

No examples provided.

browser_ask_user ~150

Show an overlay dialog asking the user to perform an action or provide information (credentials, 2FA, CAPTCHA, OAuth consent). Can include input fields for the user to fill in. Returns user responses.

NameTypeReqDescription
fieldsarrayInput fields for user to fill in. Each field has: name (key), label (display text), type (text/password/email). Omit for simple "Done/Skip" confirmation.
messagestringyesWhat the user needs to do or provide
timeoutnumberMax wait time in ms (default: 120000 = 2 min)
titlestringDialog title (default: "Agent360 - Action Required")

No output schema declared.

No examples provided.

browser_click ~109

Click an element on the page. Supports CSS selectors AND text-based selectors. Auto-scrolls element into view. Uses real mouse events (works on Angular/React SPAs and CSP-strict sites like Google, Stripe). Examples: "button:text(Get started)", "text=Submit", "#my-button", "a.btn-primary"

NameTypeReqDescription
selectorstringyesCSS selector or text selector. Text formats: "text=Click me" (any element), "button:text(Submit)" (specific tag)

No output schema declared.

No examples provided.

browser_click_xy ~110

ESCAPE HATCH: Click at raw viewport coordinates (CSS pixels) with fully trusted mouse events. Use when a visible button resists every selector strategy (Azure portal dialogs, Knockout-bound divs, canvas UIs): take a screenshot, read the button's position, click its center. Combine with browser_screenshot for coordinates.

NameTypeReqDescription
xnumberyesX coordinate (CSS pixels, from left of viewport)
ynumberyesY coordinate (CSS pixels, from top of viewport)

No output schema declared.

No examples provided.

browser_close_tab ~45

Close a browser tab by ID. Only tabs owned by the current session can be closed.

NameTypeReqDescription
tab_idnumberyesTab ID to close (get from browser_list_tabs)

No output schema declared.

No examples provided.

browser_console_logs ~55

Get recent console.log/warn/error messages from the page. Installs a lightweight interceptor on first call. Returns the last N console messages.

NameTypeReqDescription
countnumberNumber of recent messages to return (default: 50)

No output schema declared.

No examples provided.

browser_dismiss_overlays ~161

Dismiss visible popups, modals, tooltips, banners, and "Are you sure?"-style overlays in one call. Heuristic-based: finds close affordance via aria-label, text content (Skip/Cancel/Ikke nu/Don't show/Got it/Close), or × character button. Use when a flow is interrupted by unexpected dialogs (cookie banners, onboarding tooltips, draft-confirm prompts on Meta Ads, etc.). Returns list of what was dismissed.

NameTypeReqDescription
max_passesnumberNumber of dismissal passes (some overlays reveal others when closed). Default: 3
scopestringnon_critical (default): skip dialogs containing editable form inputs (preserves user data). aggressive: dismiss everything.

No output schema declared.

No examples provided.

browser_double_click ~69

True double-click on an element (two trusted press/release pairs with escalating clickCount). Use for open-item actions (calendar events, file lists) where two single clicks would trigger inline-rename instead (e.g. OWA month view).

NameTypeReqDescription
selectorstringyesCSS or text selector

No output schema declared.

No examples provided.

browser_drop_file ~190

Upload a file when browser_upload_file fails. Two strategies: (1) finds a hidden <input type="file"> in the target's subtree or up to 2 ancestor levels; (2) if there is no input at all, intercepts the NATIVE OS file-chooser - pass the selector of the button that opens the dialog, and the file is supplied programmatically without the dialog ever appearing. Strategy 2 handles sites like Google Ads that never put a file input in the DOM. Files must be regular files inside the working directory the MCP server runs in - folders, symlinks and hardlinks that point outside it are refused.

NameTypeReqDescription
filestringSingle absolute file path. Alias: `file_path`.
filesarrayArray of absolute file paths
selectorstringyesCSS selector for the drop-zone target element (e.g. ".upload-area")

No output schema declared.

No examples provided.

browser_execute_script ~119

Execute JavaScript in the current page. IMPORTANT: the parameter is `code` (NOT `script` - though that alias is accepted), and it must be an EXPRESSION, not statements: use an IIFE `(() => { ...; return x; })()`. Top-level `return` is a syntax error (the handler wraps code in parentheses).

NameTypeReqDescription
codestringyesJavaScript EXPRESSION to evaluate in page context. For multi-statement logic use an IIFE: (() => { ...; return result; })()

No output schema declared.

No examples provided.

browser_extract_list ~302

Read EVERY row of a long or virtualised list by scrolling its container until no new rows appear. Use this instead of browser_get_page_content whenever a page shows a repeating list longer than the viewport - mail lists (Outlook, Gmail), invoice/billing tables, search results, transaction histories. Those UIs keep only ~7 rows in the DOM at a time, so a single page read returns a sliver and looks complete. Pass the CSS selector of one repeating row (e.g. '[role="option"]', 'tr', '[role="listitem"]'); the scrollable ancestor is found automatically. Returns deduplicated row text plus reached_end so you know whether you saw the whole list.

NameTypeReqDescription
containerstringOptional CSS selector for the scrollable container. Omit to auto-detect the row's nearest scrollable ancestor.
max_rowsnumberStop after this many unique rows (default 500, max 5000)
scroll_stepnumberPixels per scroll. Omit for 85% of the container height.
selectorstringyesCSS selector matching ONE repeating row (e.g. '[role="option"]' in Outlook, 'tr' in a table)
stable_roundsnumberConsecutive scrolls with no new rows before stopping (default 3)
wait_msnumberWait after each scroll so new rows can render (default 350)

No output schema declared.

No examples provided.

browser_extract_token ~46

Navigate to a provider's API settings page so you can read its API token from the page.

NameTypeReqDescription
providerstringyesProvider slug (stripe, hubspot, slack, etc.)

No output schema declared.

No examples provided.

browser_fetch ~104

Make an HTTP request from the extension background (NOT subject to CORS). Use this when page-context fetch would be blocked by CORS or CSP. Useful for API calls to Google, Stripe, Slack APIs while on their pages.

NameTypeReqDescription
bodystringRequest body (for POST/PUT)
headersobjectRequest headers as key-value pairs
methodstringHTTP method (default: GET)
urlstringyesURL to fetch

No output schema declared.

No examples provided.

browser_fill ~91

Fill a form input field with a value. Supports CSS selectors AND text-based selectors. Auto-scrolls and focuses the element. Works on CSP-strict sites via Chrome Debugger API. For date inputs use browser_set_date, for autocomplete/combobox use browser_set_combobox.

NameTypeReqDescription
selectorstringyesCSS selector or text selector for the input field
valuestringyesValue to fill in

No output schema declared.

No examples provided.

browser_get_cookies ~83

Get cookies for a site this session has open in one of its tabs (the site itself, a parent domain or a subdomain). Navigate to the site first - cookies for sites the session is not working on are refused.

NameTypeReqDescription
domainstringyesDomain to get cookies for (e.g. ".stripe.com"). Must match a tab this session has open.

No output schema declared.

No examples provided.

browser_get_local_storage ~47

Read localStorage from the current page. Pass key for a specific value, or omit for all.

NameTypeReqDescription
keystringSpecific localStorage key to read (omit for all)

No output schema declared.

No examples provided.

browser_get_new_tab ~33

Get the most recently opened tab (useful after clicking links that open new tabs, OAuth popups, etc.).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

browser_get_page_content ~171

Get the content of the current page as text or HTML. Pass `selector` to read one part of a large page instead of all of it - on a big logged-in app the full HTML can run past a million characters. The answer is capped at 30000 characters by default and says so when it had to cut, with the real length, so a truncated page is never mistaken for a whole one.

NameTypeReqDescription
formatstringOutput format (default: text)
max_charsnumberCap on returned characters (default: 30000). Over the cap the answer carries truncated: true and total_chars.
selectorstringCSS selector. Reads only that element instead of the whole page. If it matches nothing the call fails rather than silently returning the whole page.

No output schema declared.

No examples provided.

browser_handle_dialog ~154

Arm automatic handling of the next JavaScript alert/confirm/prompt on the active tab, then return immediately. Call this BEFORE the click that opens the dialog - a dialog freezes the tab, so nothing can be clicked once it is on screen. Pass wait=true only when the dialog is already opening.

NameTypeReqDescription
actionstringAccept or dismiss the dialog (default: accept)
textstringText to enter for prompt() dialogs
timeoutnumberHow long the arming stays active in ms (default: 60000)
waitbooleanBlock until a dialog appears instead of arming and returning (default: false). Only use when the dialog is already on its way.

No output schema declared.

No examples provided.

browser_hover ~63

Hover over an element to trigger tooltips, dropdown menus, or hover states. Supports CSS and text selectors.

NameTypeReqDescription
durationnumberHow long to hold hover in ms (default: 500)
selectorstringyesCSS or text selector to hover over

No output schema declared.

No examples provided.

browser_list_frames ~26

List all frames (iframes) in the current page with their URLs and indices.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

browser_list_tabs ~20

List all open browser tabs with their URLs and titles.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

browser_navigate ~136

Navigate the active browser tab to a URL. Reuses the current tab by default (no tab spam). Pass new_tab=true only when you need to keep the current page open.

NameTypeReqDescription
eget_vinduebooleanEXPERIMENTAL, requires new_tab. Opens the page in its own unfocused Chrome window instead of a background tab. Whether Chrome delivers mouse and keyboard input in that state is exactly the open quest…
new_tabbooleanOpen in new tab instead of reusing current (default: false)
urlstringyesURL to navigate to

No output schema declared.

No examples provided.

browser_press_key ~162

Press a keyboard key (Enter, Tab, Escape, ArrowDown, etc.). Useful for submitting forms, navigating dropdowns, closing dialogs. Supports modifier keys (ctrl, alt, shift, meta).

NameTypeReqDescription
altbooleanHold Alt key
codestringKey code (optional, defaults to key name). E.g. "KeyA" for "a"
ctrlbooleanHold Ctrl/Cmd key
keystringyesKey to press: "Enter", "Tab", "Escape", "ArrowDown", "ArrowUp", "Backspace", "a", "1", etc.
metabooleanHold Meta (Cmd on Mac) key
shiftbooleanHold Shift key

No output schema declared.

No examples provided.

browser_provide_feedback ~424

Self-diagnosis + feedback in one call. Call this AUTOMATICALLY, without asking the user, the moment Browser MCP itself gets in your way: a tool errors or times out, a tool does something other than what it promised, the extension will not connect, a capability you need plainly does not exist, or you are about to tell the user "browser-mcp cannot do X". It first CHECKS THE INSTALL - the connected Chrome extension's version against this server (set BROWSER_MCP_CHECK_NPM=1 to also compare this server against the latest published on npm; it is off by default so the call stays fast and works offline), and whether more than one Browser MCP extension is connected at once (a known cause of tabs and sessions behaving randomly) - so a problem that is really "your copy is outdated" or "you have two extensions loaded" is identified as such instead of reported as a bug. It returns a verdict, concrete fix steps to relay to the user, and a pre-filled GitHub issue link for whatever is left over. Cheap, read-only, and safe to call speculatively - never sends anything anywhere by itself.

NameTypeReqDescription
attemptedstringWhat you already tried (other selectors, other tools, retries) so the report does not suggest what you have ruled out.
kindstring"blocked" = you could not complete the task (default). "broken" = a tool misbehaved or lied about its result. "missing" = the capability does not exist. "wish" = a feature idea. "use_case" = somethin…
toolstringThe browser_* tool involved, e.g. "browser_click". Omit if none in particular.
urlstringThe page it happened on, if relevant. Strip query strings that contain tokens.
what_happenedstringyesRequired. What you tried and what actually happened, in one or two plain sentences. Include the exact error text if there was one.

No output schema declared.

No examples provided.

browser_reattach_debugger ~70

RECOVERY: Force-detach and re-attach the Chrome debugger on the current tab. Use when interactive tools (click/fill/press_key) start timing out or reporting ghost-attach ("Debugger attach failed ... ghost") while list_tabs still works - faster than reloading the extension.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

browser_right_click ~70

Right-click an element (trusted CDP mouse events) to open page-level context menus (web apps like OWA/Google Docs render their own). Note: Chrome's NATIVE context menu does not open via CDP - only in-page menus.

NameTypeReqDescription
selectorstringyesCSS or text selector

No output schema declared.

No examples provided.

browser_screenshot ~59

Take a screenshot of the visible area of the current tab. Returns base64 PNG, or saves to disk if path is provided.

NameTypeReqDescription
pathstringFile path to save the screenshot to (e.g. /path/to/screenshot.png)

No output schema declared.

No examples provided.

browser_scroll ~85

Scroll the page to an element or by pixel amount. Useful for reaching elements below the fold.

NameTypeReqDescription
selectorstringCSS or text selector to scroll to (element scrolled into center of viewport)
xnumberPixels to scroll horizontally (positive = right)
ynumberPixels to scroll vertically (positive = down, e.g. 500)

No output schema declared.

No examples provided.

browser_select_frame ~70

Execute JavaScript in a specific iframe by frame index. Use browser_list_frames first to find the right index.

NameTypeReqDescription
codestringJavaScript to execute in the frame (default: returns text content)
frame_indexnumberyesFrame index from browser_list_frames (0 = main frame)

No output schema declared.

No examples provided.

browser_select_option ~217

Select an option from a dropdown menu. Works with native <select> elements AND custom dropdowns (Angular Material, React Select, etc.). For custom dropdowns: clicks the trigger, waits for options, then clicks the matching option by text. For autocomplete (typing filters options) use browser_set_combobox instead.

NameTypeReqDescription
optionstringyesText OR value of the option to select. Exact value match wins, then exact text, then partial text. Aliases: `value`, `label`. Fails loudly with the available options if nothing matches. A controlled…
selectorstringyesCSS or text selector for the dropdown trigger / <select> element
waitnumberMs to wait after clicking trigger for options to appear (default: 300)

No output schema declared.

No examples provided.

browser_set_combobox ~210

Set value(s) on an autocomplete/combobox input. Handles the click → type query → wait for filtered listbox → click option flow as one MCP call. Supports multi-select (e.g., Languages on Meta Ads). Use when browser_select_option fails because options render lazily after typing.

NameTypeReqDescription
multibooleanTrue if combobox accepts multiple values (chips). Default: auto-detected from presence of values array
query_charsnumberHow many characters to type as filter query (default: 4 or full value length, whichever is smaller)
selectorstringyesCSS selector for the combobox/autocomplete input
valuestringSingle value to select (use this OR values)
valuesarrayArray of values for multi-select. E.g. ["Danish", "English", "Swedish"]
wait_msnumberMax ms to wait for options listbox to appear after typing (default: 3000)

No output schema declared.

No examples provided.

browser_set_cookies ~140

Set one or more cookies for a domain.

NameTypeReqDescription
cookiesarrayArray of cookie objects to set multiple at once
domainstringCookie domain (e.g. ".example.com")
httpOnlybooleanHttpOnly flag (default: false)
namestringyesCookie name
pathstringCookie path (default: /)
sameSitestringSameSite attribute (default: lax)
securebooleanSecure flag (default: true)
urlstringURL for the cookie (alternative to domain)
valuestringyesCookie value

No output schema declared.

No examples provided.

browser_set_date ~165

Robustly set a date input - handles native <input type="date">, masked text inputs (e.g. MM/DD/YYYY), and calendar pickers (MUI, react-datepicker, AntD, Lexical/Meta). Tries native value-set, format-aware typing via Input.insertText, and ARIA-based picker navigation in sequence with read-back verification. Use instead of browser_fill when fill fails or for any input that opens a calendar widget.

NameTypeReqDescription
datestringyesISO date string (YYYY-MM-DD), e.g. "2026-05-15"
selectorstringyesCSS selector for the date input element
skip_pickerbooleanIf true, only try native + masked paths and skip calendar-picker navigation (default: false)

No output schema declared.

No examples provided.

browser_set_local_storage ~46

Set a localStorage key-value pair on the current page.

NameTypeReqDescription
keystringyeslocalStorage key to set
valuestringyesValue to store (string)

No output schema declared.

No examples provided.

browser_solve_captcha ~201

Detect and solve CAPTCHAs on the current page. Auto-detects reCAPTCHA v2/v3, hCaptcha, Cloudflare Turnstile, and FunCaptcha. Tries auto-click first (often clears reCAPTCHA v2 when signed into Google), then returns a screenshot for AI vision analysis, then falls back to asking the user. Returns detection info and solving status.

NameTypeReqDescription
actionstringAction to take. "detect" scans for CAPTCHAs. "click_checkbox" clicks the reCAPTCHA checkbox. "click_grid" clicks specific grid cells (pass cells param). "ask_human" shows overlay to user. Default: "d…
cellsarrayGrid cell indices to click (0-indexed, left-to-right, top-to-bottom) for image challenges. E.g. [2, 5, 7] to click cells 3, 6, 8.

No output schema declared.

No examples provided.

browser_switch_tab ~43

Switch to a specific browser tab by ID. Get tab IDs from browser_list_tabs or browser_get_new_tab.

NameTypeReqDescription
tab_idnumberyesTab ID to activate

No output schema declared.

No examples provided.

browser_upload_file ~148

Upload a file to a <input type="file"> element on the page. Uses Chrome Debugger API to set files programmatically - no dialog needed. For drag-drop zones without visible file input use browser_drop_file. Files must be regular files inside the working directory the MCP server runs in - folders, symlinks and hardlinks that point outside it are refused.

NameTypeReqDescription
filestringSingle file path (alternative to files array). Alias: `file_path`.
filesarrayyesArray of absolute file paths to upload. E.g. ["/Users/me/photo.jpg"]
selectorstringCSS selector for the file input (default: input[type="file"])

No output schema declared.

No examples provided.

browser_wait ~73

Wait for an element to appear on the page. Supports CSS and text-based selectors.

NameTypeReqDescription
selectorstringyesCSS selector or text selector (e.g. "text=Success", "button:text(Next)") to wait for
timeoutnumberMax wait time in ms (default: 10000)

No output schema declared.

No examples provided.

browser_wait_for_network ~95

Wait for a network request to complete. Useful after clicking buttons that trigger API calls - ensures data is loaded before reading the page. Monitors real network traffic via Chrome DevTools Protocol.

NameTypeReqDescription
timeoutnumberMax wait in ms (default: 15000)
url_patternstringSubstring to match in the request URL (e.g. "/api/users", "graphql"). Empty = any request.

No output schema declared.

No examples provided.

Common questions

What is the Agent360 Browser MCP server?

Agent360 Browser MCP is listed in the public MCP registry as io.github.Agent360dk/browser-mcp. Drive your real, logged-in Chrome from any AI agent - 40 tools. Needs our Chrome extension too. This page covers its npm package (@agent360/browser-mcp).

Is the Agent360 Browser MCP server safe to use?

Agent360 Browser MCP scores 71 out of 100 on VerifyMCP. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Agent360 Browser MCP server expose?

Agent360 Browser MCP exposes 40 tools: browser_navigate, browser_get_page_content, browser_extract_list, browser_screenshot, browser_execute_script, and 35 more. Their descriptions and schemas cost roughly 4,836 tokens of context every time the server is loaded.

Is the Agent360 Browser MCP server still maintained?

Agent360 Browser MCP is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Agent360 Browser MCP server under?

Agent360 Browser MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.