@bunbrowser/mcp

@bunbrowser/mcp

Ultra-fast, zero-download MCP server for browser automation powered by Bun.WebView. Provides 24 tools for navigation, interaction, screenshots, performance audits, and more, as a drop-in replacement for @playwright/mcp.

Category
Visit Server

README

⚑ @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

πŸ“š 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 (24 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).
  • 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).
  • browser_stop_recording: Stops recording and exports file with duration and size metrics.
  • browser_record_animation: One-shot recording of UI transitions and keyframe animations for a given durationMs.

πŸ§ͺ 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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured