MCP server
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 different formats, element targeting, and authentication. Also monitors browser console logs for debugging and testing workflows.
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.
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.
AGPL-3.0
BrowserLoop is released under the AGPL-3.0 license.
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
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
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
Share your MCP server with the developer community
BrowserLoop has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
BrowserLoop reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
BrowserLoop has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
We evaluated BrowserLoop against two servers with overlapping tools; this profile had the clearer scope statement.
BrowserLoop is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
We evaluated BrowserLoop against two servers with overlapping tools; this profile had the clearer scope statement.
BrowserLoop reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
BrowserLoop has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
BrowserLoop reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
BrowserLoop is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
showing 1-10 of 46
⚠️ 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.
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.
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.
Add BrowserLoop to Cursor with a single click using this deeplink:
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
🚨 Critical: BrowserLoop requires Chromium to be installed via Playwright before it can take screenshots.
Install Chromium browser:
npx playwright install chromium
Verify installation:
# Check Playwright installation
npx playwright --version
# Test BrowserLoop (if using NPX)
npx browserloop@latest --version
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
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
{
"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.
Once configured, you can use natural language commands in your AI tool:
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
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
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:
Common development use cases:
| Parameter | Type | Description | Default |
|---|---|---|---|
url | string | Target URL to capture (required) | - |
width | number | Viewport width (200-4000) | 1280 |
height | number | Viewport height (200-4000) | 720 |
format | string | Image format (webp, png, jpeg) | webp |
quality | number | Image quality (1-100) | 80 |
fullPage | boolean | Capture full page | false |
selector | string | CSS selector for element capture | - |
📖 See docs/API.md for complete parameter details, usage examples, and configuration options.
BrowserLoop can be configured using environment variables:
| Variable | Default | Description |
|---|---|---|
BROWSERLOOP_DEFAULT_WIDTH | 1280 | Default viewport width (200-4000) |
BROWSERLOOP_DEFAULT_HEIGHT | 720 | Default viewport height (200-4000) |
BROWSERLOOP_DEFAULT_FORMAT | webp | Default image format (webp, png, jpeg) |
BROWSERLOOP_DEFAULT_QUALITY | 80 | Default image quality (0-100) |
BROWSERLOOP_DEFAULT_TIMEOUT | 30000 | Default timeout in milliseconds |
BROWSERLOOP_USER_AGENT | - | Custom user agent string |
| Variable | Default | Description |
|---|---|---|
BROWSERLOOP_DEFAULT_COOKIES | - | Default cookies as file path or JSON string (see Cookie Authentication Guide) |
| Variable | Default | Description |
|---|---|---|
BROWSERLOOP_CONSOLE_LOG_LEVELS | log,info,warn,error,debug | Comma-separated list of log levels to capture |
BROWSERLOOP_CONSOLE_TIMEOUT | 30000 | Page navigation timeout in milliseconds (not log collection time) |
BROWSERLOOP_SANITIZE_LOGS | true | Enable/disable sensitive data sanitization in logs |
BROWSERLOOP_CONSOLE_WAIT_NETWORK_IDLE | true | Wait for network idle before finishing collection |
BROWSERLOOP_MAX_LOG_SIZE | 1048576 | Maximum 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.
Console log sanitization is enabled by default (BROWSERLOOP_SANITIZE_LOGS=true) to protect sensitive information. When enabled, the following patterns are automatically masked:
| Pattern Type | Example Input | Masked Output |
|---|---|---|
| API Keys | sk_live_1234567890abcdef... | [API_KEY_MASKED] |
| Email Addresses | user@example.com | [EMAIL_MASKED] |
| JWT Tokens | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... | [JWT_TOKEN_MASKED] |
| Auth Headers | Bearer abc123token... | [AUTH_HEADER_MASKED] |
| URLs with Auth | https://api.com/data?token=secret123 | [URL_WITH_AUTH_MASKED] |
| **Secret Variabl |
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
Prerequisites
Time Estimate
20-40 minutes including configuration and testing
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
MCP server handles HTTP requests, HTML parsing, JavaScript rendering (if headless browser), and returns structured data to Claude.
Protocols
Compatibility
✓ 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.