Skip to main content
Glama
@nxavis/agent-browser-mcp

@nxavis/agent-browser-mcp

by softallice

@nxavis/agent-browser-mcp

npm version License: MIT Node.js

A Model Context Protocol (MCP) server that provides browser automation capabilities through Vercel's agent-browser. This enables LLMs to interact with web pages using a fast Rust CLI with Node.js fallback.

Quick Start

# 1. Install agent-browser CLI
npm install -g agent-browser && agent-browser install

# 2. Add to Claude Desktop (or your MCP client)
npx @nxavis/agent-browser-mcp

Then use tools like browser_navigate, browser_click, browser_snapshot to control the browser from your AI agent.

Related MCP server: Puppeteer MCP Server

Features

  • AI-Optimized Browser Control - Semantic element locators using accessibility properties, text matching, and data attributes

  • Session Isolation - Multiple isolated browser sessions with separate cookies, storage, and navigation history

  • Comprehensive Automation - Navigation, form filling, clicking, scrolling, keyboard input, and more

  • Data Extraction - Get text, HTML, attributes, accessibility snapshots, screenshots, and PDFs

  • Cookie Management - Full control over browser cookies and storage

  • JavaScript Execution - Run arbitrary scripts in the browser context

  • Network Inspection - Monitor console messages and network requests

Installation

npm install @nxavis/agent-browser-mcp

Or run directly with npx:

npx @nxavis/agent-browser-mcp

Prerequisites

# Install agent-browser globally
npm install -g agent-browser

# Download Chromium browser
agent-browser install

# On Linux, install system dependencies if needed:
# agent-browser install --with-deps

⚠️ Windows Note: agent-browser currently has known issues on Windows with native shells (PowerShell/CMD). For Windows users, we recommend using WSL (Windows Subsystem for Linux) until the upstream issue is resolved.

Configuration

Claude Desktop

Add to your claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "agent-browser": {
      "command": "npx",
      "args": ["@nxavis/agent-browser-mcp"]
    }
  }
}

VS Code

Add to your VS Code settings (JSON):

{
  "mcp": {
    "servers": {
      "agent-browser": {
        "command": "npx",
        "args": ["@nxavis/agent-browser-mcp"]
      }
    }
  }
}

Antigravity

Add to your .mcp.json file in your project root or home directory:

{
  "mcpServers": {
    "agent-browser": {
      "command": "npx",
      "args": ["@nxavis/agent-browser-mcp"]
    }
  }
}

Or use the global configuration at ~/.mcp.json:

{
  "mcpServers": {
    "agent-browser": {
      "command": "npx",
      "args": ["@nxavis/agent-browser-mcp"],
      "env": {
        "AGENT_BROWSER_PATH": "/usr/local/bin/agent-browser"
      }
    }
  }
}

Custom agent-browser Path

If agent-browser is not in your PATH, specify its location:

{
  "mcpServers": {
    "agent-browser": {
      "command": "npx",
      "args": ["@nxavis/agent-browser-mcp"],
      "env": {
        "AGENT_BROWSER_PATH": "/path/to/agent-browser"
      }
    }
  }
}

Available Tools

Navigation

  • browser_navigate - Navigate to a URL

  • browser_go_back - Navigate back in browser history

  • browser_go_forward - Navigate forward in browser history

  • browser_reload - Reload the current page

Interaction

  • browser_click - Click on an element

  • browser_fill - Fill a text input field

  • browser_type - Type text character by character

  • browser_hover - Hover over an element

  • browser_scroll - Scroll the page or a specific element

  • browser_select - Select an option from a dropdown

  • browser_check - Check a checkbox or radio button

  • browser_uncheck - Uncheck a checkbox

  • browser_press - Press a keyboard key

Data Extraction

  • browser_get_text - Get text content from an element or page

  • browser_get_html - Get HTML content

  • browser_get_attribute - Get an attribute value

  • browser_get_url - Get the current page URL

  • browser_get_title - Get the current page title

  • browser_snapshot - Get accessibility tree snapshot

Session Management

  • browser_new_session - Create a new isolated browser session

  • browser_close_session - Close a browser session

Screenshots & PDF

  • browser_screenshot - Take a screenshot

  • browser_pdf - Generate a PDF of the current page

For a complete list of tools and their parameters, see the original documentation.

Development

# Clone the repository
git clone https://github.com/nxavis/agent-browser-mcp.git
cd agent-browser-mcp

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Watch mode
npm run dev

License

MIT

Credits

This package is based on agent-browser-mcp by minhlucvan, adapted for the @nxavis ecosystem.

Available Tools

34 tools
browser_checkA

Check a checkbox or radio button

Inputs: selector (required), sessionId.

browser_clear_cookiesB

Clear all cookies

Inputs: sessionId.

browser_clickB

Click on an element identified by selector or accessibility properties

Inputs: selector (required), sessionId.

browser_close_sessionC

Close a browser session

Inputs: sessionId (required).

browser_evaluateB

Execute JavaScript code in the browser context

Inputs: script (required), sessionId.

browser_fillB

Fill a text input field with the specified value

Inputs: value (required), selector (required), sessionId.

browser_get_attributeB

Get an attribute value from an element

Inputs: selector (required), attribute (required), sessionId.

browser_get_consoleC

Get console messages from the browser

Inputs: sessionId.

browser_get_cookiesC

Get cookies from the browser

Inputs: urls, sessionId.

browser_get_htmlA

Get HTML content from an element or the entire page

Inputs: outer, selector, sessionId.

browser_get_networkB

Get network requests made by the browser

Inputs: sessionId.

browser_get_textA

Get text content from an element or the entire page

Inputs: selector, sessionId.

browser_get_titleB

Get the current page title

Inputs: sessionId.

browser_get_urlB

Get the current page URL

Inputs: sessionId.

browser_go_backA

Navigate back in browser history

Inputs: sessionId.

browser_go_forwardB

Navigate forward in browser history

Inputs: sessionId.

browser_hoverC

Hover over an element

Inputs: selector (required), sessionId.

browser_is_checkedB

Check if a checkbox/radio is checked

Inputs: selector (required), sessionId.

browser_is_enabledC

Check if an element is enabled

Inputs: selector (required), sessionId.

browser_is_visibleC

Check if an element is visible

Inputs: selector (required), sessionId.

browser_navigateA

Navigate to a URL in the browser

Inputs: url (required), sessionId.

browser_new_sessionB

Create a new isolated browser session

Inputs: viewport.

browser_pdfB

Generate a PDF of the current page

Inputs: path (required), sessionId.

browser_pressC

Press a keyboard key

Inputs: key (required), sessionId.

browser_reloadB

Reload the current page

Inputs: sessionId.

browser_screenshotC

Take a screenshot of the page or an element

Inputs: path, fullPage, selector, sessionId.

browser_scrollB

Scroll the page or an element

Inputs: direction (required), amount, selector, sessionId.

browser_selectC

Select an option from a dropdown

Inputs: value (required), selector (required), sessionId.

browser_set_cookiesB

Set cookies in the browser

Inputs: cookies (required), sessionId.

browser_snapshotA

Get an accessibility tree snapshot of the page for AI-friendly element references

Inputs: sessionId.

browser_typeA

Type text character by character (useful for triggering key events)

Inputs: text (required), selector (required), sessionId.

browser_uncheckB

Uncheck a checkbox

Inputs: selector (required), sessionId.

browser_wait_for_navigationC

Wait for navigation to complete

Inputs: timeout, sessionId.

browser_wait_for_selectorC

Wait for an element to appear in the page

Inputs: selector (required), state, timeout, sessionId.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 34 tools

    Disambiguation5/5

    Each tool targets a distinct browser action or query, with clear separation between navigation, interaction, extraction, session, and diagnostic tools. Slight overlaps like fill vs type are clearly differentiated by behavior, and get_text vs get_html vs snapshot have distinct outputs.

    Naming Consistency5/5

    All tools uniformly use the browser_ prefix and snake_case with action-oriented verbs. The mix of get_* and direct verbs is consistent with the domain, and patterns like wait_for_* and is_* follow predictable conventions.

    Tool Count2/5

    At 34 tools, the set exceeds the 25+ threshold for 'too many'. While each tool serves a purpose, several could be consolidated (e.g., is_visible/enabled/checked into a single state query, or get_text/html/attribute into a content extractor), making the surface heavier than necessary.

    Completeness5/5

    The tools cover the full browser automation lifecycle: navigation, interaction, content extraction, waiting, session management, cookies, JavaScript execution, and diagnostics (console/network). Minor gaps like file upload/download are non-core and do not create dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.
      19
      Apache 2.0
    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol server that provides browser automation capabilities using Puppeteer, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.
      7
      29,827 npm
      1
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages, take screenshots, generate test code, scrape web content, and execute JavaScript in real browser environments.
      31
      14,136 npm
      MIT