Skip to main content
Glama
Browser MCP Server

Browser MCP Server

by persi123

Browser MCP Server

A Model Context Protocol (MCP) server that enables AI agents to understand web page structure and content without screenshots. Built with Playwright for reliable browser automation.

šŸŽÆ Purpose

Solves the problem where AI agents give "wrong and random suggestions" about web pages by providing them with structured page data instead of requiring visual screenshots.

Related MCP server: Playwright MCP

✨ Features

  • šŸ” Page Structure Analysis - Understand layout, forms, and interactive elements

  • šŸ“„ Smart Content Extraction - Extract text using CSS selectors

  • šŸŽÆ Element Discovery - Find and analyze specific page elements with accessibility info

  • šŸš€ Fast & Local - Uses Playwright's accessibility tree (no screenshots needed)

  • šŸ¤– AI-Optimized - Designed specifically for AI agent integration

šŸ“¦ Installation

npm install @your-org/browser-mcp-server

šŸš€ Usage

Claude Desktop Integration

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "browser": {
      "command": "npx",
      "args": ["@your-org/browser-mcp-server"]
    }
  }
}

VS Code + Copilot Chat

Configure in your VS Code MCP settings to use with Copilot Chat.

Windsurf Integration

Add to your Windsurf MCP configuration.

Local Development

# Link for local development
npm link @your-org/browser-mcp-server

# Use in your project
const browserMCP = require('@your-org/browser-mcp-server');

šŸ› ļø Available Tools

browser_navigate

Navigate to a URL and get page information.

{
  "url": "https://example.com"
}

browser_analyze_page

Get comprehensive page structure analysis.

{
  "includeContent": true,
  "includeForms": true,
  "includeLinks": true,
  "maxDepth": 2
}

browser_extract_text

Extract text content from page or specific elements.

{
  "selector": "h1, h2, p",
  "includeHidden": false
}

browser_get_elements

Find elements with detailed attributes and accessibility info.

{
  "selector": "button, input, a[href]",
  "includeAttributes": true,
  "maxResults": 20
}

šŸ“‹ Example AI Conversations

Understanding Page Flow

Human: Go to https://github.com/login and help me understand the login process

AI: I'll navigate to the GitHub login page and analyze its structure.

[Uses browser_navigate and browser_analyze_page]

The login page has:
- 2 input fields: username/email and password (both required)
- 1 "Sign in" submit button
- Links for "Forgot password" and "Create account"
- Form submits to /session with POST method
- Additional 2FA field may appear after initial submission

The typical flow is: enter credentials → click Sign in → (optional 2FA) → redirect to dashboard.

Content Extraction

Human: Extract all the main article titles from https://news.ycombinator.com

AI: [Uses browser_navigate and browser_extract_text with CSS selectors]

Found 30 article titles including:
1. "Show HN: My new startup idea"
2. "Why distributed systems are hard"
3. "The future of web development"
[etc...]

šŸ”§ Development

# Clone and setup
git clone <your-repo>
cd browser-mcp-server
npm install

# Install browser
npx playwright install chromium

# Build
npm run build

# Test locally
npm start

šŸŽÆ Perfect For

  • AI Agents that need to understand web page workflows

  • Automated Analysis of website structure

  • Content Extraction without visual parsing

  • Form Discovery for automation planning

  • Accessibility Analysis of web pages

šŸ—ļø Architecture

ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts          # MCP server entry point
│   ā”œā”€ā”€ server.ts         # MCP server implementation
│   ā”œā”€ā”€ browser/          # Browser management
│   │   └── manager.ts    # Playwright browser lifecycle
│   ā”œā”€ā”€ tools/            # MCP tools
│   │   ā”œā”€ā”€ navigate.ts   # Page navigation
│   │   ā”œā”€ā”€ analyze.ts    # Page structure analysis
│   │   ā”œā”€ā”€ extract.ts    # Content extraction
│   │   └── elements.ts   # Element discovery
│   └── types.ts          # TypeScript definitions

šŸ”’ Requirements

  • Node.js 18+

  • Chromium (auto-installed via Playwright)

  • MCP-compatible AI agent (Claude Desktop, VS Code, Windsurf, etc.)

šŸ“œ License

MIT


Built for AI agents to understand the web, not just see it. šŸ¤–šŸŒ

Available Tools

4 tools
browser_analyze_pageB

Analyze the current page structure, forms, and interactive elements to help understand page flow and functionality

Inputs: maxDepth, includeForms, includeLinks, includeContent.

browser_extract_textA

Extract text content from the current page or specific elements using CSS selectors

Inputs: selector, includeHidden.

browser_get_elementsA

Get detailed information about elements matching a CSS selector, useful for understanding page structure and interactive elements

Inputs: selector (required), maxResults, includeAttributes.

browser_navigateB

Navigate to a specific URL in the browser

Inputs: url (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a distinct purpose: navigation, high-level page analysis, text extraction, and element inspection. There is slight overlap between analyze_page and get_elements, but the descriptions clarify that one provides an overview while the other targets specific selectors.

    Naming Consistency5/5

    All tools follow a consistent 'browser_verb_noun' pattern (navigate, analyze_page, extract_text, get_elements). This makes the set predictable and easy to understand.

    Tool Count5/5

    With only 4 tools, the server is well-scoped for its apparent read-only browser analysis purpose. Each tool is necessary and there is no redundancy.

    Completeness4/5

    The tool set covers the core workflow of navigating to a page and extracting both text and structural information. It lacks interaction capabilities like clicking or typing, but for a read-only analysis server this is a minor gap rather than a fatal omission.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • -
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables browser automation and web interaction through structured accessibility snapshots using Playwright. Provides fast, deterministic web page interaction without requiring screenshots or vision models.
      10,759,741 npm
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables LLMs to perform browser automation and web page interactions using Playwright's accessibility tree instead of screenshots. Provides fast, deterministic web automation through structured data without requiring vision models.
      10,759,741 npm
      Apache 2.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables browser automation and web page interaction through Playwright's accessibility tree, allowing LLMs to navigate, fill forms, click elements, and extract content without requiring vision models or screenshots.
      10,759,741 npm
      Apache 2.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables web browser automation and inspection using structured data instead of screenshots, allowing AI agents to interact with web pages programmatically through the Playwright framework.
      ISC