browser-automation

BrowserLoop

mattiasw

by mattiasw

BrowserLoop: Capture web screenshots on Chrome with advanced screenshot taker add-on for web testing, visual verificatio

Captures web page screenshots using Playwright with support for full-page, element-specific, and viewport screenshots in PNG, JPEG, and WebP formats, featuring cookie authentication, domain filtering, and configurable quality settings for web testing and visual verification workflows.

github stars

22

0 commentsdiscussion

Both formats append explainx.ai attribution and the canonical URL for this MCP server listing.

Multiple image formats supportedDocker containerizedProject is archived

best for

  • / Web developers testing visual changes
  • / QA engineers doing visual verification
  • / Debugging browser console errors
  • / Automated screenshot workflows

capabilities

  • / Take full-page screenshots
  • / Capture specific element screenshots
  • / Monitor browser console logs
  • / Export in PNG, JPEG, and WebP formats
  • / Authenticate with cookies
  • / Configure image quality settings

what it does

Captures web page screenshots using Playwright with support for different formats, element targeting, and authentication. Also monitors browser console logs for debugging and testing workflows.

about

BrowserLoop is a community-built MCP server published by mattiasw that provides AI assistants with tools and capabilities via the Model Context Protocol. BrowserLoop: Capture web screenshots on Chrome with advanced screenshot taker add-on for web testing, visual verificatio It is categorized under browser automation.

how to install

You can install BrowserLoop in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.

license

AGPL-3.0

BrowserLoop is released under the AGPL-3.0 license.

readme

BrowserLoop

CI/CD Pipeline npm version npm downloads

⚠️ ARCHIVED: This project is archived and will not receive any further updates. With the release of Chrome DevTools MCP, a dedicated MCP server for browser automation is no longer necessary as that project provides more comprehensive browser interaction capabilities including screenshots, console monitoring, and much more.

A Model Context Protocol (MCP) server for taking screenshots and reading console logs from web pages using Playwright. This tool allows AI agents to automatically capture screenshots and monitor browser console output for debugging, testing, and development tasks.

NOTE: Almost all of the code in this repository has been auto-generated. That means you should probably not trust it too much. That being said, it does work and I'm using it myself.

NOTE: If the documentation is incorrect, please let me know or send a PR. If you too want to use a code generation tool to update the code for this project, PROJECT_CONTEXT.md has been used as context to give a good overview of the various parts of the project. It might be a bit messy now but it's a good starting point and you're welcome to update it.

Features

  • 📸 High-quality screenshot capture using Playwright
  • 📝 Console log monitoring and collection from web pages
  • 🌐 Support for localhost and remote URLs
  • 🍪 Cookie-based authentication for protected pages
  • 🐳 Docker containerization for consistent environments
  • ⚡ PNG, JPEG, and WebP format support with configurable quality
  • 🛡️ Secure non-root container execution
  • 🤖 Full MCP protocol integration with AI development tools
  • 🔧 Configurable viewport sizes and capture options
  • 📱 Full page and element-specific screenshot capture
  • ⚠️ Browser warning and error capture (Permissions-Policy, security warnings)
  • ⚡ TypeScript with Biome for fast development
  • 🧪 Comprehensive testing with Node.js built-in test runner

Quick Start

📦 NPX Usage (Recommended)

The easiest way to get started - no installation required!

# Install Chromium browser (one-time setup)
npx playwright install chromium

# Test that BrowserLoop works
npx browserloop@latest --version

That's it! The latest version of BrowserLoop will be downloaded and executed automatically. Perfect for MCP users who want zero-maintenance screenshots.

MCP Configuration

Add BrowserLoop to your MCP configuration file (e.g. ~/.cursor/mcp.json):

{
  "mcpServers": {
    "browserloop": {
      "command": "npx",
      "args": ["-y", "browserloop@latest"],
      "description": "Screenshot and console log capture server for web pages using Playwright"
    }
  }
}

💡 Using @latest ensures you always get the newest features and bug fixes automatically.

🚀 One-Click Install for Cursor

Add BrowserLoop to Cursor with a single click using this deeplink:

🔗 Add BrowserLoop to Cursor

This deeplink will automatically configure BrowserLoop in your Cursor MCP settings with the optimal configuration using npx and the latest version.

Prerequisites: Make sure you have Chromium installed first:

npx playwright install chromium

Browser Installation Requirements

🚨 Critical: BrowserLoop requires Chromium to be installed via Playwright before it can take screenshots.

First-Time Setup (All Users)

Install Chromium browser:

npx playwright install chromium

Verify installation:

# Check Playwright installation
npx playwright --version

# Test BrowserLoop (if using NPX)
npx browserloop@latest --version

🐳 Docker Alternative

For containerized environments:

# Pull and run with Docker
docker run --rm --network host browserloop

# Or use docker-compose for development
git clone <repository-url>
cd browserloop
docker-compose -f docker/docker-compose.yml up

💻 Development Installation

For contributors or advanced users who want to build from source:

# Clone the repository
git clone <repository-url>
cd browserloop

# Install dependencies
npm install

# Install Playwright browsers (required for screenshots)
npx playwright install chromium
# OR use the convenient script:
npm run install-browsers

# Build the project
npm run build

MCP Configuration for Development

{
  "mcpServers": {
    "browserloop": {
      "command": "node",
      "args": [
        "/absolute/path/to/browserloop/dist/src/index.js"
      ],
      "description": "Screenshot and console log capture server for web pages using Playwright"
    }
  }
}

Replace /absolute/path/to/browserloop/ with your actual project path.

Basic Usage

Once configured, you can use natural language commands in your AI tool:

Screenshots

Take a screenshot of https://example.com
Take a screenshot of https://example.com with width 1920 and height 1080
Take a screenshot of https://example.com in JPEG format with 95% quality
Take a full page screenshot of https://example.com
Take a screenshot of http://localhost:3000 to verify the UI changes

Console Log Reading

Read console logs from https://example.com
Check for console errors on https://example.com
Monitor console warnings from http://localhost:3000
Read only error and warning logs from https://example.com
Capture console output from https://example.com for debugging

🔐 Cookie Authentication

BrowserLoop supports cookie-based authentication for capturing screenshots of login-protected pages during development:

Take a screenshot of http://localhost:3000/admin/dashboard using these cookies: [{"name":"connect.sid","value":"s:session-id.signature","domain":"localhost"}]

📖 For cookie extraction methods and development workflows, see:

📖 Cookie Authentication Guide

Common development use cases:

  • Local development servers with authentication
  • Staging environment testing
  • API documentation tools (Swagger, GraphQL Playground)
  • Custom web applications during development
  • Admin panels and protected routes

Documentation

Key API Parameters

ParameterTypeDescriptionDefault
urlstringTarget URL to capture (required)-
widthnumberViewport width (200-4000)1280
heightnumberViewport height (200-4000)720
formatstringImage format (webp, png, jpeg)webp
qualitynumberImage quality (1-100)80
fullPagebooleanCapture full pagefalse
selectorstringCSS selector for element capture-

📖 See docs/API.md for complete parameter details, usage examples, and configuration options.

Configuration

BrowserLoop can be configured using environment variables:

Basic Configuration

VariableDefaultDescription
BROWSERLOOP_DEFAULT_WIDTH1280Default viewport width (200-4000)
BROWSERLOOP_DEFAULT_HEIGHT720Default viewport height (200-4000)
BROWSERLOOP_DEFAULT_FORMATwebpDefault image format (webp, png, jpeg)
BROWSERLOOP_DEFAULT_QUALITY80Default image quality (0-100)
BROWSERLOOP_DEFAULT_TIMEOUT30000Default timeout in milliseconds
BROWSERLOOP_USER_AGENT-Custom user agent string

Authentication Configuration

VariableDefaultDescription
BROWSERLOOP_DEFAULT_COOKIES-Default cookies as file path or JSON string (see Cookie Authentication Guide)

Console Log Configuration

VariableDefaultDescription
BROWSERLOOP_CONSOLE_LOG_LEVELSlog,info,warn,error,debugComma-separated list of log levels to capture
BROWSERLOOP_CONSOLE_TIMEOUT30000Page navigation timeout in milliseconds (not log collection time)
BROWSERLOOP_SANITIZE_LOGStrueEnable/disable sensitive data sanitization in logs
BROWSERLOOP_CONSOLE_WAIT_NETWORK_IDLEtrueWait for network idle before finishing collection
BROWSERLOOP_MAX_LOG_SIZE1048576Maximum total log size in bytes (1MB)

Note: Console log collection always waits exactly 3 seconds after page load to capture console messages. The timeout setting only affects how long the page has to initially load.

Log Sanitization

Console log sanitization is enabled by default (BROWSERLOOP_SANITIZE_LOGS=true) to protect sensitive information. When enabled, the following patterns are automatically masked:

Pattern TypeExample InputMasked Output
API Keyssk_live_1234567890abcdef...[API_KEY_MASKED]
Email Addresses[email protected][EMAIL_MASKED]
JWT TokenseyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...[JWT_TOKEN_MASKED]
Auth HeadersBearer abc123token...[AUTH_HEADER_MASKED]
URLs with Authhttps://api.com/data?token=secret123[URL_WITH_AUTH_MASKED]
**Secret Variabl

FAQ

What is the BrowserLoop MCP server?
BrowserLoop is a Model Context Protocol (MCP) server profile on explainx.ai. MCP lets AI hosts (e.g. Claude Desktop, Cursor) call tools and resources through a standard interface; this page summarizes categories, install hints, and community ratings.
How do MCP servers relate to agent skills?
Skills are reusable instruction packages (often SKILL.md); MCP servers expose live capabilities. Teams frequently combine both—skills for workflows, MCP for APIs and data. See explainx.ai/skills and explainx.ai/mcp-servers for parallel directories.
How are reviews shown for BrowserLoop?
This profile displays 46 aggregated ratings (sample rows for discoverability plus signed-in user reviews). Average score is about 4.7 out of 5—verify behavior in your own environment before production use.

Use Cases

Web Research & Information Gathering

Fetch and extract information from websites automatically

Example

Research competitor pricing, scrape product reviews, monitor news mentions

Automate 5-10 hours/week of manual web research

Content Monitoring & Alerts

Track website changes, new content, price updates

Example

Monitor competitor blog for new posts, track stock availability, watch for pricing changes

Stay informed without manual checking, never miss important updates

Data Extraction & Aggregation

Extract structured data from multiple websites

Example

Compile product listings from 10 e-commerce sites, aggregate job postings, collect real estate data

Build datasets 100x faster than manual copying

API-less Integration

Interact with services that don't offer APIs

Example

Check form submissions, validate website functionality, test user flows

Automate interactions with any website, even without API

Implementation Guide

Prerequisites

  • Claude Desktop or Cursor with MCP support
  • Understanding of web scraping ethics and robots.txt
  • Rate limiting awareness to avoid overwhelming target sites
  • Knowledge of legal restrictions on data collection

Time Estimate

20-40 minutes including configuration and testing

Installation Steps

  1. 1.Install web automation MCP server via npm or pip
  2. 2.Configure allowed domains and rate limits in MCP config
  3. 3.Test with simple fetch: 'Get content from example.com'
  4. 4.Progress to extraction: 'Extract all product prices from this page'
  5. 5.Set up monitoring: 'Check this URL daily for changes'
  6. 6.Parse structured data: 'Create CSV from this table'
  7. 7.Respect robots.txt and rate limits always

Troubleshooting

  • 403 Forbidden: Website blocks bots—respect their wishes, use official API instead
  • Rate limit errors: Slow down requests, add delays between fetches
  • Stale data: Target site changed HTML structure—update selectors
  • Timeout errors: Site is slow or blocking—increase timeout, try different user agent
  • JavaScript-rendered content: Use headless browser MCP servers for dynamic sites

Best Practices

✓ Do

  • +Check robots.txt and respect crawl rules
  • +Rate limit requests: 1-2 requests/second maximum
  • +Use official APIs when available instead of scraping
  • +Identify your bot with descriptive user agent
  • +Cache results to minimize repeated requests
  • +Handle errors gracefully with retries and fallbacks
  • +Validate extracted data for accuracy

✗ Don't

  • Don't scrape sites that explicitly forbid it (robots.txt, ToS)
  • Don't overwhelm servers with rapid requests—use rate limiting
  • Don't scrape personal data without consent and legal basis
  • Don't ignore copyright on extracted content
  • Don't assume HTML structure is stable—handle changes
  • Don't use scraped data for commercial purposes without permission

💡 Pro Tips

  • Use CSS selectors or XPath for robust data extraction
  • Set up monitoring alerts for extraction failures (structure changed)
  • Implement exponential backoff for retries on failures
  • Store raw HTML for reprocessing if extraction logic changes
  • Combine with data analysis tools for insights from extracted data
  • Consider using official APIs or RSS feeds as more stable alternatives

Technical Details

Architecture

MCP server handles HTTP requests, HTML parsing, JavaScript rendering (if headless browser), and returns structured data to Claude.

Protocols

  • HTTP/HTTPS
  • WebSocket (for real-time sites)
  • Puppeteer/Playwright (for JavaScript sites)

Compatibility

  • Static HTML sites
  • JavaScript-rendered SPAs (with headless browser)
  • REST APIs
  • GraphQL endpoints

When to Use This

✓ Use When

Use for research automation, content monitoring, data aggregation from multiple sources, and when official APIs don't exist. Best for read-only information gathering.

✗ Avoid When

Avoid for sites with APIs (use API instead), sites that explicitly forbid scraping, when data is copyrighted, or for login-required content without proper authorization.

Integration

  • Scheduled monitoring with change detection
  • Multi-source data aggregation pipelines
  • Fallback to web scraping when API rate limits hit
  • Headless browser for JavaScript-heavy sites

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.

List & Promote Your MCP Server

Share your MCP server with the developer community

GET_STARTED →
MCP server reviews

Ratings

4.746 reviews
  • Chaitanya Patil· Dec 28, 2024

    BrowserLoop has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.

  • William Li· Dec 20, 2024

    BrowserLoop reduced integration guesswork — categories and install configs on the listing matched the upstream repo.

  • Meera Khanna· Dec 20, 2024

    BrowserLoop has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.

  • Advait Mensah· Dec 12, 2024

    We evaluated BrowserLoop against two servers with overlapping tools; this profile had the clearer scope statement.

  • Chinedu Rahman· Dec 8, 2024

    BrowserLoop is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.

  • Lucas Menon· Nov 27, 2024

    We evaluated BrowserLoop against two servers with overlapping tools; this profile had the clearer scope statement.

  • Piyush G· Nov 19, 2024

    BrowserLoop reduced integration guesswork — categories and install configs on the listing matched the upstream repo.

  • Ama Agarwal· Nov 11, 2024

    BrowserLoop has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.

  • Meera Ndlovu· Nov 11, 2024

    BrowserLoop reduced integration guesswork — categories and install configs on the listing matched the upstream repo.

  • Anaya Johnson· Nov 3, 2024

    BrowserLoop is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.

showing 1-10 of 46

1 / 5