What you can do with Local Browser

Built for

Frontend Developers, QA Engineers, Localhost Debugging, Product Operations

Example workflows

Smoke-test localhost

Uses direct localhost access that cloud browsers cannot reach.

Try this

Open http://localhost:3000, wait for the dashboard to render, and report any console errors or broken layout.

Walk a signup flow

Combines snapshots, clicks, typing, and visible text review.

Try this

Navigate through the signup form on localhost, fill fields with test data, and flag validation or layout issues before submitting.

Capture visual evidence

Uses screenshots for visual QA and page review.

Try this

Load the dashboard, take a screenshot, and describe what is visible above the fold on desktop width.

Debug a slow page

Turns browser diagnostics into actionable frontend notes.

Try this

Open this page, capture network requests and console messages, then summarize what is blocking first paint.

Context to know first

What is Local Browser best for?

It is best when your agent needs to drive Chrome on the same machine as your code — localhost dev servers, internal apps, and interactive UI debugging without exposing anything to the public internet.

How does Local Browser differ from Remote Browser?

Local Browser runs Chrome on your machine through MCPBundles Desktop, so it reaches localhost directly. Remote Browser runs Chrome in the cloud and needs a tunnel for localhost.

Do I need MCPBundles Desktop?

Yes. Desktop supervises the secure tunnel between your agent and local Chrome. Install it on the Mac or PC where Chrome runs and keep it open while you automate.

AI Skill
SKILL.md

Domain knowledge for Local Browser — workflow patterns, data models, and gotchas for your AI agent.

Local Browser

Chrome runs on the user's machine and is controlled through the MCPBundles Desktop proxy CDP tunnel. The browser resolves localhost on that same machine — ideal for dev-server QA, interactive debugging, and visual verification.

Capabilities

  • Viewport resize — sets window size; also boots Chrome when no session exists yet.
  • Navigate — load a URL (including http://localhost:...). Heavy pages may need a shorter wait strategy or a follow-up snapshot before interacting.
  • Accessibility snapshot — returns the page tree with opaque element refs (e1, e2, …). Use boxes=true for layout geometry and depth to trim large trees.
  • Accessibility audit — run axe-core on the current page for deterministic WCAG violations.
  • Layout probe — desktop and mobile layout checks for narrow columns, horizontal overflow, and undersized tap targets.
  • Responsive capture — desktop (1440x900) and mobile (390x844) layout summaries in one call; set includeScreenshots=true for inline MCP images.
  • Wait for — fixed delay, visible/hidden text, CSS selector(s), js_ready (boolean poll), or js_probe ({streaming, measure} until done). App-agnostic: bring your own selectors/JS for your UI framework.
  • Fill form — batch fill with snapshot refs or CSS selectors such as input[name=email]; field type is inferred when omitted.
  • Click / type / hover / drag — interact using both a human-readable element label and the exact ref from the latest snapshot. Typing rejects calls missing either field.
  • Screenshot — viewport or element-level; returns visual content the model can inspect.
  • Directed film beats — capture a still beat after each scene (caption optional); finish the session without leaving screencast mode running. Pairs with Marketing Studio preset=cinematic.
  • Screen recording — start screencast, navigate and interact, then stop to obtain a capture asset_id for exports.
  • Run JavaScript — evaluate expressions in page context (e.g. read window.location.href after form submit).
  • Console and network — list messages and requests for silent failures (404 beacons, hydration errors).

Browser Media (Marketing Studio)

Cinematic tour (recommended):

  1. Navigate with wait_until=domcontentloaded (not networkidle — MCPBundles pages keep SSE open).
  2. Wait ~4s so entry animations settle, then capture a film beat with a short caption.
  3. Repeat navigate + wait + beat for each scene (5–8 beats). For workspace Desktop pairing use /settings/desktop/settings/connections is a blank redirect stub.
  4. Studio: load /studio first, then navigate with ?q=…&autosend=1, wait ~80s, snap after the reply finishes.
  5. Stop recording → asset_id; poll recording status until ready.
  6. On the Marketing Studio bundle: upsert a project with timeline_json: {"hero_capture_id": "<asset_id>"}.
  7. Submit export with preset=cinematic; poll export status for presigned MP4.

Raw screencast: start recording → navigate → wait while still recording → stop recording → export hero_from_capture or product_hunt_kit.

Mixed tour (Ken Burns + screencast): run a YAML journey from product/browser/journeys/studio-mixed-tour.yaml (pass full document as journey_yaml + workspace) — snap beats, flush beats, record Studio autosend, flush screencast. Link both asset ids on the project (beat_capture_id, screencast_capture_id), then Marketing Studio export with preset=mixed or device_mockup.

Chat stream screencast: start recording → navigate → wait with js_probe (returns {streaming, measure} until streaming stops and measure grows) → stop recording. Or selector_gone / selectors_gone for spinners. time is in seconds. Example YAML: product/browser/journeys/chat-autosend-screencast.yaml — pass contents as journey_yaml; uses checked-in probe_preset for Studio QA only.

Typical workflows

Open a page — resize viewport, then navigate. Success means the navigate response includes URL, title, and HTTP 200.

Sign in then continue — navigate to the app's login URL with callbackUrl set to the post-auth destination. Prefer batch form fill with CSS selector refs, or click/type each field with snapshot refs. Redirects can take 1–3 seconds; re-read location from JavaScript evaluation or from the snapshot's URL field.

Review UI quality — after navigate: run the combined UX review for a structured report with clustered ui_findings, optional visual_findings, and a limits block (layout, accessibility, console, form, copy). Set visualCritique=true for PydanticAI vision observations; use captureFrames (desktop, mobile, desktop_scroll_end, mobile_menu_open) for richer shots. Or run responsive capture, accessibility audit, and layout probe individually. Use snapshot with boxes=true or screenshots when you need pixels.

Constraints

  • One tab per session — opening additional tabs through the tunnel corrupts CDP state. Navigate within the same tab instead.
  • Desktop proxy required — automation routes through the user's MCPBundles Desktop sidecar tunnel.
  • Refs come from snapshots — pass opaque ref (e.g. e12) and element (the node's name) from the latest accessibility snapshot to click, type, hover, and drag. Invented refs and CSS selectors are rejected on pointer tools; use batch form fill for CSS selector fills.
  • Per-field click + type remains available when a page needs explicit focus handling between fields.
  • Separate MCP invocations — run resize, navigate, and interactions as individual calls so failures are attributable.

Tools in this Server (43)

Browser Accessibility Audit

Run an axe-core accessibility audit on the current browser page. Returns structured WCAG violations with selectors and HTML snippets.

Browser Click

Click a web page element. Capture a page snapshot first, then copy opaque ref (e.g. e12) and element from the target node → click. Unknown or invented...

Browser Close

Close the current page or the entire browser session. Use to release resources when done with browser automation.

Browser Console Messages

Returns console messages. Note: Only messages logged AFTER browser session started are available.

Browser Drag

Perform drag and drop between two elements

Browser Emulate

Emulate network conditions and CPU throttling to test performance on slow connections or devices

Browser Evaluate

Evaluate JavaScript expression on page or element

Browser File Upload

Upload files to a file input or upload button using base64-encoded file payloads.

Browser Fill Form

Fill multiple form fields. Each field ref can be an opaque handle from the latest page snapshot (e.g. e12) or a CSS selector.

Browser Get Console Message

Get detailed information about a captured console message including structured arguments, stack trace, and source location.

Browser Get Cookies

Get browser cookies including HttpOnly cookies. Returns name, value, domain, path, expires, httpOnly, secure, and sameSite for each cookie. Useful for...

Browser Get Network Request

Get detailed information about a captured network request: status, response headers, timing, and a truncated text body when available.

Browser Get Recording Status

Poll a browser capture asset until S3 flush completes. When status is ready, use asset_id in marketing project timeline and hero_from_capture export.

Browser Get Storage

Read localStorage or sessionStorage from the current page. Returns all key-value pairs or a specific key. Useful for extracting auth tokens, user pref...

Browser Get Visible Text

Get the visible text content of the current page. Lighter than a full accessibility snapshot when you only need text. Hidden elements (display:none, v...

Browser Handle Dialog

Handle a dialog

Browser Hover

Hover over a web page element. Capture a page snapshot first, then copy opaque ref (e.g. e12) and element from the target node → hover.

Browser Iframe Click

Click an element inside an iframe. Capture a page snapshot to get iframeRef and element ref.

Browser Iframe Fill

Fill an input field inside an iframe. Capture a page snapshot to get iframeRef and field ref.

Browser Layout Probe

Analyze page layout at desktop (1440x900) and mobile (390x844) for horizontal overflow, clipped URLs/slugs in narrow copy rows, narrow readable column...

Browser Navigate

Navigate to a URL in the browser. Returns final URL (after redirects), page title, and HTTP status. For cloud-hosted sessions and SPAs, prefer wait_un...

Browser Navigate Back

Go back to the previous page

Browser Network Requests

Returns network requests for the current page with request IDs for detailed inspection

Browser Performance Trace

Start or stop performance tracing to analyze page performance, Core Web Vitals (LCP, FID, CLS), and identify bottlenecks

Browser Press Key

Press a key or key combination on the keyboard. Supports special keys (Enter, Escape, Tab) and modifiers (Control, Shift, Alt, Meta). Optionally focus...

Browser Record Clip

Record a short screencast on the current browser tab via CDP (Local or Remote Browser; start → wait → stop in one call). Returns asset_id; poll record...

Browser Resize

Resize the browser window

Browser Responsive Capture

Resize to desktop (1440x900) and mobile (390x844), run a layout probe at each size, and optionally capture screenshots. By default returns compact met...

Browser Run Code

Run a Playwright Python code snippet. The code receives 'page' (Playwright Page object) and can perform any page interaction. Use 'return' to return a...

Browser Run Journey

Run a Browser Media journey from YAML you supply in journey_yaml. Dispatches browser_* steps in order; returns per-step results and variables (e.g. be...

Browser Save As PDF

Save the current page as a PDF file. Returns base64-encoded PDF if path not provided.

Browser Scroll

Scroll the page by direction/amount, scroll to top/bottom, or scroll a specific element into view. Essential for lazy-loading pages and content below ...

Browser Select Option

Select an option in a dropdown

Browser Set Cookies

Set or delete browser cookies including HttpOnly cookies. Use 'cookies' to add/update cookies (name+value required, domain defaults to current page). ...

Browser Snap Beat

Capture one crisp keyframe of the current page as a film beat, with an optional caption. Call once per scene (navigate/scroll, then snap). Finish by s...

Browser Snapshot

Capture accessibility snapshot of the current page. Nodes include opaque refs (e1, e2, …). Set interactive_only=true for a compact flat index of click...

Browser Start Recording

Start screen recording on the active browser tab via CDP screencast (Local Browser or Remote Browser). Navigate and interact, then stop recording to u...

Browser Stop Recording

Stop the active browser screencast and enqueue upload of JPEG frames to S3. Returns asset_id immediately; poll recording status until ready.

Browser Tabs

List, create, close, or select a browser tab.

Browser Take Screenshot

Take a screenshot of the current page. You can't perform actions based on the screenshot; capture an accessibility snapshot for element interactions.

Browser Type

Type text into an editable element. Capture a page snapshot first, then copy opaque ref (e.g. e12) and element from the target field → type.

Browser UX Review

Review the current page for UX issues: responsive layout defects, WCAG accessibility violations, console errors, form label gaps, and copy leaks. Retu...

Browser Wait For

Wait for a page condition: visible/hidden text, CSS selector(s), a polled JavaScript ready check, a streaming probe ({streaming, measure}), or a fixed...

Frequently Asked Questions

What is Local Browser best for?

It is best when your agent needs to drive Chrome on the same machine as your code — localhost dev servers, internal apps, and interactive UI debugging without exposing anything to the public internet.

How does Local Browser differ from Remote Browser?

Local Browser runs Chrome on your machine through MCPBundles Desktop, so it reaches localhost directly. Remote Browser runs Chrome in the cloud and needs a tunnel for localhost.

Do I need MCPBundles Desktop?

Yes. Desktop supervises the secure tunnel between your agent and local Chrome. Install it on the Mac or PC where Chrome runs and keep it open while you automate.

Can agents see screenshots?

Yes. Screenshot tools return visual content that agents can inspect, which is useful for layout review, visual QA, and debugging UI states.

How do I connect Local Browser to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/browser. Authentication is handled automatically.

How many tools does Local Browser provide?

Local Browser provides 43 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does Local Browser require?

Local Browser uses API Key. Local Browser requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect Local Browser to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/browser

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to Local Browser and paste the MCP URL into Remote MCP server URL.
  4. Click Add. Local Browser will appear under Not connected — select it and click Connect to complete OAuth.
Name: Local Browser
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/browser
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use Local Browser?

Sign in to connect your credentials and start running tools from the chat.

Local Browser MCP Server & Skill