R
random-robbie/mcp-web-browser
Headless browsing with Playwright
View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
We have neither an install command nor a public remote endpoint from this repository, so we do not print a config. A made-up one is worse than none. How each client wires MCP up →
- Source
- collected from the abordage/awesome-mcp list · type: MCP server
- Harvest history
- first seen 2026-11-05 · last seen 2026-11-14 · seen 10× · listed by 10 sources
- Score
- score 1,003 · 10 sources · mcp
FAQ (answers come from our records)
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
first catalogued 2026-11-05;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.
# MCP Web Browser Server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
An advanced web browsing server for the Model Context Protocol (MCP) powered by Playwright, enabling headless browser interactions through a flexible, secure API.
## 🌐 Features
Headless Web Browsing: Navigate to any website with SSL certificate validation bypass
Full Page Content Extraction: Retrieve complete HTML content, including dynamically loaded JavaScript
Multi-Tab Support: Create, manage, and switch between multiple browser tabs
Advanced Web Interaction Tools:
Extract text content
Click page elements
Input text into form fields
Capture screenshots
Extract page links with filtering capabilities
Scroll pages in any direction
Execute JavaScript on pages
Refresh pages
Wait for navigation to complete
Resource Management: Automatic cleanup of unused resources after inactivity
Enhanced Page Information: Get detailed metadata about the current page
## 🚀 Quick Start
### Prerequisites
Python 3.10+
MCP SDK
Playwright
### Installation
bash
# Install MCP and Playwright
pip install mcp playwright
# Install browser dependencies
playwright install
### Configuration for Claude Desktop
Add to your claudedesktopconfig.json:
json
"mcpServers": {
"web-browser": {
"command": "python",
"args": [
"/path/to/your/server.py"
## 💡 Usage Examples
### Basic Web Navigation
python
# Browse to a website
pagecontent = browseto("https://example.com")
# Extract page text
textcontent = extracttextcontent()
# Extract text from a specific element
titletext = extracttextcontent("h1.title")
### Web Interaction
python
# Navigate to a page
browseto("https://example.com/login")
# Input text into a form
inputtext("#username", "yourusername")
inputtext("#password", "yourpassword")
# Click a login button
clickelement("#login-button")
### Screenshot Capture
python
# Capture full page screenshot
fullpagescreenshot = getpagescreenshots(fullpage=True)
# Capture specific element screenshot
elementscreenshot = getpagescreenshots(selector="#main-content")
### Link Extraction
python
# Get all links on the page
pagelinks = getpagelinks()
# Get links matching a pattern
filteredlinks = getpagelinks(filterpattern="contact")
### Multi-Tab Browsing
python
# Create a new tab
tabid = createnewtab("https://example.com")
# Create another tab
anothertabid = createnewtab("https://example.org")
# List all open tabs
tabs = listtabs()
# Switch between tabs
switchtab(tabid)
# Close a tab
closetab(anothertabid)
### Advanced Interactions
python
# Scroll the page
scrollpage(direction="down", amount="page")
# Execute JavaScript on the page
result = executejavascript("return document.title")
# Get detailed page information
pageinfo = getpageinfo()
# Refresh the current page
refreshpage()
# Wait for navigation to complete
waitfornavigation(timeoutms=5000)
## 🛡️ Security Features
SSL certificate validation bypass
Secure browser context management
Custom user-agent configuration
Error handling and comprehensive logging
Configurable timeout settings
CSP bypass control
Protection against cookie stealing
## 🔧 Troubleshooting
### Common Issues
SSL Certificate Errors: Automatically bypassed
Slow Page Load: Adjust timeout in browseto() method
Element Not Found: Verify selectors carefully
Browser Resource Usage: Auto-cleanup after inactivity period
## 🌐 Features
Headless Web Browsing: Navigate to any website with SSL certificate validation bypass
Full Page Content Extraction: Retrieve complete HTML content, including dynamically loaded JavaScript
Multi-Tab Support: Create, manage, and switch between multiple browser tabs
Advanced Web Interaction Tools:
Extract text content
Click page elements
Input text into form fields
Capture screenshots
Extract page links with filtering capabilities
Scroll pages in any direction
Execute JavaScript on pages
Refresh pages
Wait for navigation to complete
Resource Management: Automatic cleanup of unused resources after inactivity
Enhanced Page Information: Get detailed metadata about the current page
## 🚀 Quick Start
### Prerequisites
Python 3.10+
MCP SDK
Playwright
### Installation
bash
# Install MCP and Playwright
pip install mcp playwright
# Install browser dependencies
playwright install
### Configuration for Claude Desktop
Add to your claudedesktopconfig.json:
json
"mcpServers": {
"web-browser": {
"command": "python",
"args": [
"/path/to/your/server.py"
## 💡 Usage Examples
### Basic Web Navigation
python
# Browse to a website
pagecontent = browseto("https://example.com")
# Extract page text
textcontent = extracttextcontent()
# Extract text from a specific element
titletext = extracttextcontent("h1.title")
### Web Interaction
python
# Navigate to a page
browseto("https://example.com/login")
# Input text into a form
inputtext("#username", "yourusername")
inputtext("#password", "yourpassword")
# Click a login button
clickelement("#login-button")
### Screenshot Capture
python
# Capture full page screenshot
fullpagescreenshot = getpagescreenshots(fullpage=True)
# Capture specific element screenshot
elementscreenshot = getpagescreenshots(selector="#main-content")
### Link Extraction
python
# Get all links on the page
pagelinks = getpagelinks()
# Get links matching a pattern
filteredlinks = getpagelinks(filterpattern="contact")
### Multi-Tab Browsing
python
# Create a new tab
tabid = createnewtab("https://example.com")
# Create another tab
anothertabid = createnewtab("https://example.org")
# List all open tabs
tabs = listtabs()
# Switch between tabs
switchtab(tabid)
# Close a tab
closetab(anothertabid)
### Advanced Interactions
python
# Scroll the page
scrollpage(direction="down", amount="page")
# Execute JavaScript on the page
result = executejavascript("return document.title")
# Get detailed page information
pageinfo = getpageinfo()
# Refresh the current page
refreshpage()
# Wait for navigation to complete
waitfornavigation(timeoutms=5000)
## 🛡️ Security Features
SSL certificate validation bypass
Secure browser context management
Custom user-agent configuration
Error handling and comprehensive logging
Configurable timeout settings
CSP bypass control
Protection against cookie stealing
## 🔧 Troubleshooting
### Common Issues
SSL Certificate Errors: Automatically bypassed
Slow Page Load: Adjust timeout in browseto() method
Element Not Found: Verify selectors carefully
Browser Resource Usage: Auto-cleanup after inactivity period
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[](https://anclum.com/en/s/random-robbie-mcp-web-browser/)
- Source
- awesome · https://github.com/random-robbie/mcp-web-browser
- Browse by field
- MCP servers
- Listed by
- 10 independent sources
- added
- today
More like this
Filed under
Every tag opens the full list for that filter. Counts are the live catalogue figures.