Provides browser automation capabilities, allowing interaction with websites through Firefox browser instances.
Supports navigation and interaction with GitHub pages, as demonstrated in the screenshot testing functionality.
Enables extraction of Markdown content from webpages with the browser_get_markdown tool.
concurrent-browser-mcp
A multi-concurrent browser MCP (Model Context Protocol) server built with Playwright.
中文 | English
Features
- 🚀 Multi-Instance Concurrency: Support running multiple browser instances simultaneously
- 🎯 Instance Management: Dynamically create, manage, and clean up browser instances
- 🔧 Flexible Configuration: Support various browser types and custom configurations
- 🛡️ Resource Management: Automatically clean up timed-out instances to prevent resource leaks
- 🌐 Full Feature Support: Complete browser automation capabilities (navigation, clicking, input, screenshots, etc.)
- 💻 Cross-Platform: Support Chromium, Firefox, WebKit
Installation
Option 1: Install from npm (Recommended)
Option 2: Build from Source
Option 3: Quick Install Script
Quick Start
1. Basic Usage
2. MCP Client Configuration
Choose the appropriate configuration based on your installation method:
Using npm global installation or npx
Using global installation version
Using local build version
If you built from source, you can reference the local build version directly:
Or use relative path (if config file and project are in the same directory level):
Using npm link version (development mode)
If you used npm link
:
Command Line Options
Option | Description | Default |
---|---|---|
-m, --max-instances <number> | Maximum number of instances | 20 |
-t, --instance-timeout <number> | Instance timeout in minutes | 30 |
-c, --cleanup-interval <number> | Cleanup interval in minutes | 5 |
--browser <browser> | Default browser type (chromium/firefox/webkit) | chromium |
--headless | Default headless mode | true |
--width <number> | Default viewport width | 1280 |
--height <number> | Default viewport height | 720 |
--user-agent <string> | Default user agent | - |
--proxy <string> | Proxy server address (e.g., http://127.0.0.1:7890) | - |
--no-proxy-auto-detect | Disable automatic proxy detection | false |
--ignore-https-errors | Ignore HTTPS errors | false |
--bypass-csp | Bypass CSP | false |
Proxy Configuration
concurrent-browser-mcp supports flexible proxy configuration to help you use browser automation features in network environments that require proxies.
Proxy Configuration Methods
1. Specify Proxy via Command Line
2. Automatic Local Proxy Detection (Enabled by Default)
The system automatically detects proxies in the following order:
- Environment Variables:
HTTP_PROXY
,HTTPS_PROXY
,ALL_PROXY
- Common Proxy Ports: 7890, 1087, 8080, 3128, 8888, 10809, 20171
- System Proxy Settings (macOS): Automatically reads system network settings
3. Proxy Settings in MCP Configuration File
Using specified proxy:
Disable proxy:
Proxy Detection Logs
The proxy detection results will be displayed at startup:
Supported Proxy Types
- HTTP proxy:
http://proxy-server:port
- HTTPS proxy:
https://proxy-server:port
- SOCKS5 proxy:
socks5://proxy-server:port
Notes
- Proxy configuration applies to all created browser instances
- Authentication with username/password is not supported
- Proxy can be set via environment variables without manual configuration
- Proxy detection is completed automatically at service startup without affecting runtime performance
Available Tools
Instance Management
browser_create_instance
: Create a new browser instancebrowser_list_instances
: List all instancesbrowser_close_instance
: Close a specific instancebrowser_close_all_instances
: Close all instances
Page Navigation
browser_navigate
: Navigate to a specified URLbrowser_go_back
: Go back to previous pagebrowser_go_forward
: Go forward to next pagebrowser_refresh
: Refresh current page
Page Interaction
browser_click
: Click on page elementsbrowser_type
: Type text contentbrowser_fill
: Fill form fieldsbrowser_select_option
: Select dropdown options
Page Information
browser_get_page_info
: Get detailed page information including full HTML content, page statistics, and metadatabrowser_get_element_text
: Get element textbrowser_get_element_attribute
: Get element attributesbrowser_screenshot
: Take page screenshotsbrowser_get_markdown
: 🆕 Get Markdown content
Wait Operations
browser_wait_for_element
: Wait for element to appearbrowser_wait_for_navigation
: Wait for page navigation to complete
JavaScript Execution
browser_evaluate
: Execute JavaScript code
Usage Examples
1. Create Browser Instance
2. Navigation and Interaction
3. Get Page Information
4. Concurrent Operations
Architecture Design
Real Functionality Testing
In addition to simulation demo scripts, we also provide real browser functionality test scripts that let you see actual screenshot results:
🧪 Run Real Tests
This test script will:
- Start real browser: Using Chromium engine
- Visit websites: Navigate to example.com and github.com
- Save screenshots: Generate real PNG screenshot files
- File output: Generate screenshot files in current directory
📸 Test Output Example
🖼️ View Screenshot Files
After testing, you can find actual screenshot files in the project directory:
Differences from Traditional MCP Browser Servers
Feature | Traditional MCP Browser Server | Concurrent Browser MCP |
---|---|---|
Instance Management | Single instance | Multi-instance concurrency |
Resource Isolation | None | Complete isolation |
Concurrent Processing | Serial | Parallel |
Instance Lifecycle | Manual management | Automatic management |
Resource Cleanup | Manual | Automatic |
Scalability | Limited | Highly scalable |
Development Guide
Local Development Environment Setup
Available npm Scripts
Project Structure
Using Local Build Version
After building, you can use the local version in several ways:
Option 1: Run build files directly
Option 2: Use npm link (recommended for development)
Option 3: Use in project directory
Testing and Debugging
Contributing Guidelines
- Fork this project
- Create feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add some amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open Pull Request
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
A concurrent browser MCP server that supports multiple parallel browser instances
Related MCP Servers
- AsecurityFlicenseAqualityA MCP Server used to collect MCP Servers over the internet.Last updated -318Python
- AsecurityAlicenseAqualityAn MCP server for fetching and transforming web content into various formats.Last updated -46PythonMIT License
- JavaScript
- AsecurityAlicenseAqualityBrowserStack MCP serverLast updated -581181TypeScriptAGPL 3.0