Skip to main content
Glama

⚑ @bunbrowser/mcp

GitHub Repository npm version Bun Version License: MIT

Ultra-fast, zero-download Model Context Protocol (MCP) server for browser automation, powered natively by Bun.WebView.

A 100% drop-in lightweight replacement for @playwright/mcp with identical AI tool semantics, native isTrusted: true OS events, sub-50ms startup times, and zero binary bloat.


πŸš€ Why bunbrowser?

Feature

@playwright/mcp (Official Playwright)

@bunbrowser/mcp (Native Bun.WebView)

Startup Latency

~500ms - 2.5s cold start

< 50ms (Instantaneous)

Binary Downloads

~300MB - 1GB dedicated browser packages

0 MB (Uses Chrome/Chromium on Linux/Win or WKWebView on macOS)

Base Memory Footprint

~180MB - 350MB RAM

~25MB - 50MB RAM

Event Fidelity

Synthetic via CDP JavaScript injection

Native OS-level compositor events (isTrusted: true)

Accessibility Tree

browser_snapshot with [ref=eN]

Identical [ref=eN] format and prompt compatibility

Batch Form Filling

Individual turns for each field

Single-turn browser_fill_form

Performance & SEO

Requires custom scripts

Built-in browser_lighthouse_audit (0-100 scores) & browser_get_metrics

Motion & Animation

Not exposed directly

Built-in browser_record_animation (WebM & animated GIF)

Raw CDP Access

Restricted

Built-in browser_cdp tool


Related MCP server: browser-mcp-server

πŸ“š Official Documentation (DiΓ‘taxis Framework)

The project documentation is structured using the DiΓ‘taxis Framework:

For a complete navigation map, see docs/index.md.


πŸ“¦ Installation & Setup

1. Requirements

  • Bun (v1.3.12 or higher).

  • On macOS: Zero additional downloads (uses built-in WKWebView).

  • On Linux / Windows: Google Chrome, Chromium, Brave, or Microsoft Edge installed.

2. Configure in your MCP Client

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "playwright": {
      "command": "bunx",
      "args": ["@bunbrowser/mcp"]
    }
  }
}

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "browser": {
      "command": "bunx",
      "args": ["@bunbrowser/mcp"]
    }
  }
}

Google Antigravity (~/.gemini/antigravity/mcp_config.json):

{
  "mcpServers": {
    "browser": {
      "command": "bunx",
      "args": ["@bunbrowser/mcp"]
    }
  }
}

CLI Execution with Custom Viewport:

bunx @bunbrowser/mcp --width 1920 --height 1080 --url "https://bun.sh"

πŸ› οΈ Complete MCP Tools Catalog (30 Tools)

🌐 Navigation

  • browser_navigate: Navigate to a URL with optional accessibility snapshot.

  • browser_navigate_back: Navigate back in history.

  • browser_navigate_forward: Navigate forward in history.

  • browser_reload: Reload active page.

πŸ” Inspection & State

  • browser_snapshot: PRIMARY INSPECTION. Captures semantic accessibility tree with [ref=eN] IDs.

  • browser_take_screenshot: Visual viewport screenshot in Base64 (PNG, JPEG, WebP) or direct zero-copy disk save.

  • browser_evaluate: Evaluates JavaScript in page context.

  • browser_get_content: Returns full HTML markup or plain text.

  • browser_console_logs: Retrieves recorded console logs.

πŸ–±οΈ Element Interaction

  • browser_click: Clicks element via ref, CSS selector, or coordinates.

  • browser_type: Types text into input elements with auto-wait.

  • browser_fill_form: BATCH FORM FILLER. Fills multiple inputs and submits in a single turn.

  • browser_press_key: Dispatches keyboard keys and key combinations.

  • browser_hover: Moves mouse pointer over an element.

  • browser_scroll: Directional, delta-based, or element-targeted scrolling.

  • browser_select_option: Selects options in <select> dropdowns.

  • browser_drag: Drag-and-drop between source and destination elements.

πŸ“‘ Tab Management

  • browser_tabs: Lists all open tabs and active state.

  • browser_tab_new: Opens a new tab with optional URL and viewport size.

  • browser_tab_switch: Switches active tab focus by tabId.

  • browser_tab_close: Closes a specific tab or active tab.

  • browser_resize: Resizes viewport dimensions.

⚑ Storage & CDP

  • browser_cdp: Executes raw Chrome DevTools Protocol commands.

  • browser_cookies: Gets, sets, or clears browser session cookies.

  • browser_localstorage: Gets, sets, or clears localStorage keys.

πŸ“Š Performance & Lighthouse Audits

  • browser_get_metrics: Real-time network timings (TTFB, DOM load), JS heap memory, and resource waterfalls.

  • browser_lighthouse_audit: Full Lighthouse audit with 0-100 scores for Performance, Accessibility, Best Practices, and SEO.

🎬 Video Recording & Motion

  • browser_start_recording: Starts continuous video recording (webm or gif) with scaling, compression quality, and click ripples.

  • browser_stop_recording: Stops recording and exports file with duration, frame count, dimensions, and size metrics.

  • browser_record_animation: One-shot recording of UI transitions and keyframe animations for a given durationMs with trigger actions.


πŸ§ͺ Automated Testing

Run the complete test suite:

# Run unit & integration tests
bun test

# Verify strict TypeScript types
bun run check

πŸ“‚ Codebase Structure

bunbrowser/
β”œβ”€β”€ bin/
β”‚   β”œβ”€β”€ bunbrowser.ts         # CLI binary executable
β”‚   └── bunpw-mcp.ts          # Legacy compatibility wrapper
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.ts              # Entrypoint CLI & Stdio transport
β”‚   β”œβ”€β”€ server.ts             # McpServer instance & tool registration
β”‚   β”œβ”€β”€ browser/
β”‚   β”‚   β”œβ”€β”€ types.ts          # TypeScript interfaces & configuration types
β”‚   β”‚   β”œβ”€β”€ manager.ts        # BrowserManager (multi-tab lifecycle)
β”‚   β”‚   β”œβ”€β”€ tab.ts            # BrowserTab wrapper over Bun.WebView
β”‚   β”‚   β”œβ”€β”€ recorder.ts       # TabRecorder video & animation capture
β”‚   β”‚   β”œβ”€β”€ gif_encoder.ts    # Pure TypeScript GIF89a encoder (0 dependencies)
β”‚   β”‚   └── snapshot.ts       # Accessibility Tree & ref resolver
β”‚   └── tools/
β”‚       β”œβ”€β”€ navigation.ts     # Navigation tools
β”‚       β”œβ”€β”€ inspection.ts     # Snapshot, screenshot, evaluate, content, logs
β”‚       β”œβ”€β”€ interaction.ts    # Click, type, fill_form, press_key, hover, scroll, drag
β”‚       β”œβ”€β”€ tabs.ts           # Tabs management & resize
β”‚       β”œβ”€β”€ storage_cdp.ts    # CDP, cookies, localStorage
β”‚       β”œβ”€β”€ metrics.ts        # get_metrics, lighthouse_audit
β”‚       └── video.ts          # start_recording, stop_recording, record_animation
β”œβ”€β”€ test/
β”‚   β”œβ”€β”€ manager.test.ts       # Tab manager tests
β”‚   β”œβ”€β”€ snapshot.test.ts      # Accessibility tree tests
β”‚   β”œβ”€β”€ interaction.test.ts   # Real DOM interaction tests
β”‚   β”œβ”€β”€ metrics.test.ts       # Metrics & Lighthouse audit tests
β”‚   β”œβ”€β”€ video.test.ts         # Video recording & GIF encoder tests
β”‚   └── mcp_server.test.ts    # End-to-end MCP JSON-RPC tests
└── docs/                     # DiΓ‘taxis framework documentation
    β”œβ”€β”€ 1-tutorials/
    β”œβ”€β”€ 2-how-to/
    β”œβ”€β”€ 3-reference/
    └── 4-explanation/

πŸ“„ License

MIT License. See LICENSE for details.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • -
    license
    B
    quality
    Not graded
    maintenance
    A lightweight MCP server for browser automation using Playwright with essential tools for navigation, form interaction, and web scraping. Provides 16 core browser automation tools with minimal setup and fast performance.
    16
    -
  • A
    license
    B
    quality
    D
    maintenance
    A universal browser automation MCP server using Playwright, enabling programmatic control of Chrome with 63 tools for navigation, interaction, media control, and CDP-based diagnostics.
    63
    24
    2
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    A lightweight 30KB MCP browser automation server that uses raw Chrome DevTools Protocol to enable AI agents to browse the web, take screenshots, interact with elements, and capture live page events like console logs and network requests.
    26
    26
    15
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vintik100/bunbrowser'

If you have feedback or need assistance with the MCP directory API, please join our Discord server