Provides browser automation capabilities that allow for navigating to URLs, interacting with page elements (clicking, typing, hovering), capturing screenshots, and extracting content from web pages using a controlled Chrome or Chromium instance.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Browser MCPGo to news.ycombinator.com and take a screenshot of the homepage"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Browser MCP
A Model Context Protocol (MCP) server for browser automation using Puppeteer. This enables AI assistants like Claude, GPT, and other LLM-powered tools to navigate web pages, take screenshots, click elements, fill forms, and interact with web content.
Features
Navigation: Navigate to URLs, go back/forward, reload pages
Screenshots: Capture full-page or viewport screenshots
Interaction: Click, type, hover, scroll, select dropdown options
Content Extraction: Get page content, titles, and links
JavaScript Execution: Run custom scripts in the browser context
Wait Conditions: Wait for elements or timeouts
Installation
Prerequisites
Node.js 18+ (LTS recommended)
npm, pnpm, or bun
Install via npx (Recommended)
You can run the server directly without installation:
npx github:blink-new/browser-mcpInstall Globally
npm install -g github:blink-new/browser-mcpInstall from Source
git clone https://github.com/blink-new/browser-mcp.git
cd browser-mcp
npm install
npm run buildSetup Instructions
Ubuntu / Debian Linux
Install Node.js 18+:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejsInstall Chromium dependencies:
sudo apt-get install -y \ libnss3 \ libatk1.0-0 \ libatk-bridge2.0-0 \ libcups2 \ libdrm2 \ libxkbcommon0 \ libxcomposite1 \ libxdamage1 \ libxfixes3 \ libxrandr2 \ libgbm1 \ libasound2 \ libpango-1.0-0 \ libcairo2 \ libatspi2.0-0Configure your MCP client (see Configuration section below)
macOS
Install Node.js 18+ (using Homebrew):
brew install nodeOr using nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash nvm install 20 nvm use 20Configure your MCP client (see Configuration section below)
Windows
Install Node.js 18+:
Download and install from nodejs.org
Or use winget:
winget install OpenJS.NodeJS.LTS
Configure your MCP client (see Configuration section below)
Configuration
OpenCode
Add to your ~/.config/opencode/opencode.json:
{
"mcp": {
"browser": {
"type": "local",
"command": ["npx", "-y", "github:blink-new/browser-mcp"],
"enabled": true
}
}
}Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["-y", "github:blink-new/browser-mcp"]
}
}
}Cursor / VS Code with MCP Extension
Add to your MCP configuration:
{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["-y", "github:blink-new/browser-mcp"]
}
}
}With Environment Variables
For headless servers or containers:
{
"mcp": {
"browser": {
"type": "local",
"command": ["npx", "-y", "github:blink-new/browser-mcp"],
"environment": {
"BROWSER_MCP_NO_SANDBOX": "true",
"BROWSER_MCP_HEADLESS": "true"
},
"enabled": true
}
}
}Environment Variables
Variable | Description | Default |
| Run browser in headless mode |
|
| Disable Chrome sandbox (required for Docker/root) |
|
| Path to Chrome/Chromium executable | Auto-detected |
| Additional Chrome arguments (comma-separated) | None |
Available Tools
Navigation
Tool | Description |
| Navigate to a URL |
| Go back to previous page |
| Go forward to next page |
| Reload current page |
Screenshots & Content
Tool | Description |
| Take a screenshot (supports fullPage option) |
| Get the page title |
| Get HTML content (optional selector) |
| Get all links on the page |
Interaction
Tool | Description |
| Click on an element by CSS selector |
| Type text into an input field |
| Hover over an element |
| Select an option from a dropdown |
| Scroll up or down |
Utilities
Tool | Description |
| Wait for time or element |
| Execute JavaScript |
| Close the browser |
Examples
Navigate and Screenshot
User: Go to example.com and take a screenshot
AI: [Uses browser_navigate with url="https://example.com"]
AI: [Uses browser_screenshot]Fill a Form
User: Fill out the contact form on the page
AI: [Uses browser_type with selector="#name" text="John Doe"]
AI: [Uses browser_type with selector="#email" text="john@example.com"]
AI: [Uses browser_click with selector="#submit"]Extract Data
User: Get all the links from this page
AI: [Uses browser_links]Troubleshooting
Linux: Browser fails to launch
If you see errors about missing libraries, install the Chromium dependencies:
sudo apt-get install -y libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libasound2Docker/Root: Sandbox errors
Use the --no-sandbox flag:
BROWSER_MCP_NO_SANDBOX=true npx github:blink-new/browser-mcpOr in your config:
{
"environment": {
"BROWSER_MCP_NO_SANDBOX": "true"
}
}macOS: Puppeteer can't find Chrome
The bundled Chromium should work automatically. If not, specify the path:
BROWSER_MCP_EXECUTABLE_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" npx github:blink-new/browser-mcpWindows: Long path errors
Run PowerShell as Administrator and enable long paths:
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -ForceDocker Support
Example Dockerfile:
FROM node:20-slim
# Install Chromium dependencies
RUN apt-get update && apt-get install -y \
libnss3 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libdrm2 \
libxkbcommon0 \
libxcomposite1 \
libxdamage1 \
libxfixes3 \
libxrandr2 \
libgbm1 \
libasound2 \
libpango-1.0-0 \
libcairo2 \
&& rm -rf /var/lib/apt/lists/*
ENV BROWSER_MCP_NO_SANDBOX=true
ENV BROWSER_MCP_HEADLESS=true
CMD ["npx", "-y", "github:blink-new/browser-mcp"]Development
# Clone the repository
git clone https://github.com/blink-new/browser-mcp.git
cd browser-mcp
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build
npm run build
# Run production build
npm startContributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE for details.
Credits
Built with Puppeteer