mmjaberi/Unsafe-Browser-MCP
If you are the rightful owner of Unsafe-Browser-MCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Unsafe Browser MCP Server is designed for browser automation with SSL certificate bypass capabilities, intended for testing and development purposes.
Unsafe Browser MCP Server
A Model Context Protocol (MCP) server that provides browser automation with SSL certificate bypass capabilities for testing and development purposes.
โ ๏ธ Security Warning
This server bypasses SSL certificate validation. It should ONLY be used for:
- Development and testing environments
- Internal tools with self-signed certificates
- Legitimate security testing with authorization
- IoT devices with invalid certificates
DO NOT use this for:
- Production applications
- Handling sensitive data
- Bypassing security on public websites without authorization
๐ Features
- Browser Automation: Full browser control with Playwright
- SSL Bypass: Access sites with self-signed, expired, or invalid SSL certificates
- Batch Fetching: Concurrent URL fetching (10-15x faster than sequential)
- Session Management: Save and restore browser sessions
- Screenshot Capture: Take full-page or element screenshots
- Network Monitoring: Track network requests and responses
- Smart Selectors: Intelligent element detection
๐ Requirements
- Docker Desktop (with MCP support)
- Python 3.11+ (for local development)
- macOS, Linux, or Windows with WSL2
๐ ๏ธ Installation
Method 1: Docker Desktop (Recommended)
-
Clone the repository:
git clone https://github.com/mmjaberi/Unsafe-Browser-MCP.git cd unsafe-browser-mcp
-
Build the Docker image:
docker build -t unsafe-browser-mcp:latest .
-
Add to Docker Desktop MCP Registry:
chmod +x add-to-registry-yaml.sh ./add-to-registry-yaml.sh
-
Restart Docker Desktop
-
Enable in Docker Desktop:
- Go to Settings โ MCP Servers
- Find "Unsafe Browser MCP"
- Click Enable
Method 2: Docker Compose
docker-compose up -d
๐ Available Tools
Browser Automation
browser_navigate
- Navigate to URLs with SSL bypassbrowser_click
- Click elements on pagesbrowser_fill
- Fill form fieldsbrowser_screenshot
- Capture screenshotsbrowser_suggest_selectors
- Get element selectors
Session Management
browser_save_session
- Save browser statebrowser_load_session
- Restore browser statebrowser_list_sessions
- List saved sessions
Network Tools
fetch_url
- Fetch single URL with SSL bypassfetch_json
- Fetch and parse JSONdownload_file
- Download filesbatch_fetch
- Fetch multiple URLs concurrentlybrowser_network_summary
- Get network activity summary
๐ก Usage Examples
Navigate to a site with self-signed certificate:
unsafe-browser:browser_navigate("https://self-signed.badssl.com")
Take a screenshot:
unsafe-browser:browser_screenshot("my-screenshot.png", full_page=True)
Batch fetch multiple URLs:
unsafe-browser:batch_fetch([
"https://example.com",
"https://another-site.com",
"https://third-site.com"
])
Fetch URL with SSL bypass:
unsafe-browser:fetch_url("https://expired.badssl.com")
๐ Directory Structure
unsafe-browser-mcp/
โโโ mcp_server.py # Main MCP server
โโโ unsafe_browser_mcp.py # Browser automation logic
โโโ Dockerfile # Docker image definition
โโโ docker-compose.yml # Docker Compose configuration
โโโ requirements.txt # Python dependencies
โโโ downloads/ # Downloaded files
โโโ screenshots/ # Captured screenshots
โโโ logs/ # Server logs
โโโ sessions/ # Saved browser sessions
๐ง Configuration
The server uses the following volume mappings:
./downloads
โ/app/downloads
./screenshots
โ/app/screenshots
./logs
โ/app/logs
./sessions
โ/app/sessions
๐งช Testing
Test with SSL certificate issues:
# Self-signed certificate
curl https://self-signed.badssl.com
# Expired certificate
curl https://expired.badssl.com
# Wrong hostname
curl https://wrong.host.badssl.com
๐ License
MIT License - See LICENSE file for details
๐ค Author
Mohamed AlJaberi
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
โ๏ธ Legal Disclaimer
This tool is provided for legitimate testing and development purposes only. Users are responsible for ensuring they have proper authorization before testing any systems. The authors assume no liability for misuse of this software.
๐ Support
For issues, questions, or contributions, please open an issue on GitHub.
Remember: With great power comes great responsibility. Use this tool ethically and legally! ๐ก๏ธ