What you can do with Local Browser

Built for

Frontend Developers, QA Engineers, Localhost Debugging, Product Operations

Example workflows

Debug a localhost page

Uses local browser access for dev-server debugging.

Try this

Open http://localhost:3000, inspect the visible page, capture console errors and network failures, then summarize what is blocking the UI.

Run a form flow

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

Try this

Navigate through the signup flow, fill the form fields with test data, and report any validation or layout issues before submitting.

Capture visual evidence

Uses screenshots for visual QA and page review.

Try this

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

Inspect performance signals

Turns browser diagnostics into actionable frontend notes.

Try this

Open this page, emulate a slower device, capture network requests and console messages, then summarize performance risks.

Context to know first

What is Local Browser best for?

It is best for browser automation against sites reachable from the user's machine, especially localhost development servers, internal apps, and interactive UI debugging.

How does Local Browser differ from Remote Browser?

Local Browser runs Chrome on the user's machine through the desktop proxy, so it can reach localhost directly. Remote Browser runs Chrome in the cloud.

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.

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 stable element refs. 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.
  • 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 beatsbrowser_snap_beat after each scene (caption optional); finish with browser_stop_recording (no screencast needed). Pairs with Marketing Studio preset=cinematic.
  • Screen recordingbrowser_start_recording → navigate → browser_stop_recording for raw CDP screencast captures.

Browser Media (Marketing Studio)

Cinematic tour (recommended):

  1. browser_navigate with wait_until=domcontentloaded (not networkidle — MCPBundles pages keep SSE open).
  2. browser_wait_for ~4s so entry animations settle, then browser_snap_beat with a short caption.
  3. Repeat navigate + wait + snap 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. browser_stop_recordingasset_id; poll browser_get_recording_status until ready.
  6. marketing_upsert_project with timeline_json: {"hero_capture_id": "<asset_id>"}.
  7. marketing_submit_export with preset=cinematic; poll marketing_get_export_status for presigned MP4.

Raw screencast: browser_start_recording → navigate → browser_wait_for while still recording → browser_stop_recording → export hero_from_capture or product_hunt_kit.

Studio streaming (screencast): browser_start_recording → navigate /studio?q=…&autosend=1browser_wait_studio_stream (waits for tool spinners / Executing… to clear) → browser_stop_recording. Do not wait for the full reply before starting recording. browser_wait_for time is in seconds (never timeout=12000). Checked-in flow: browser_run_journey with journey=studio-autosend-screencast.

  • 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).

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 browser_fill_form 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: browser_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 call browser_responsive_capture, browser_accessibility_audit, and browser_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 — CSS selectors also work for browser_fill_form and stable login fields.
  • 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 (46)

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

Perform click on a web page

Browser Click And Switch Tab

Click a link that opens in a new tab and switch to it. Use for links with target=_blank or Ctrl+click to force new tab.

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

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 browser_snapshot when you only need text. Hidden elements (display:none, visibility:hid...

Browser Handle Dialog

Handle a dialog

Browser Hover

Hover over element on page

Browser Iframe Click

Click an element inside an iframe. Use browser_snapshot to get iframeRef and element ref.

Browser Iframe Fill

Fill an input field inside an iframe. Use browser_snapshot to get iframeRef and field ref.

Browser Install

Install the browser specified in configuration (chromium, firefox, or webkit). Downloads and sets up the browser if not already installed. This is typ...

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 navigation result with final URL (after redirects), page title, and status. Use this as the starting point f...

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 Local Browser tab via CDP (start → wait → stop in one call). Returns asset_id; poll browser_get_recording_sta...

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 checked-in Browser Media journey (YAML under app/tools/browser/journeys). Dispatches browser_* steps in order; returns per-step results. Pair wi...

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 with...

Browser Snapshot

Capture accessibility snapshot of the current page, this is better than screenshot

Browser Start Recording

Start screen recording on the active Local Browser tab via CDP screencast. Navigate and interact, then call browser_stop_recording to upload frames to...

Browser Stop Recording

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

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, use browser_snapshot for actions.

Browser Type

Type text into editable element

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 text to appear or disappear or a specified time to pass

Browser Wait Studio Stream

While Local Browser is recording, wait for MCPBundles Studio autosend to finish (tool-call spinners and 'Executing...' clear, assistant reply present)...

Frequently Asked Questions

What is the Local Browser MCP server?

Playwright MCP server — local Chrome browser running on your machine via MCPBundles Desktop. Full browser automation: navigate, click, type, screenshot, fill forms, run JavaScript, inspect network/console, and performance profiling with direct localhost access. It provides 46 tools that AI agents can use through the Model Context Protocol (MCP).

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 46 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.

What is Local Browser best for?

It is best for browser automation against sites reachable from the user's machine, especially localhost development servers, internal apps, and interactive UI debugging.

How does Local Browser differ from Remote Browser?

Local Browser runs Chrome on the user's machine through the desktop proxy, so it can reach localhost directly. Remote Browser runs Chrome in the cloud.

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 should agents interact with elements?

Use the accessibility snapshot to find element references, then click, type, or fill through those references instead of relying on raw selectors.

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 — 46 Tools