brave-real-browser-mcp-server 2.17.3 → 2.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +103 -334
- package/dist/handlers/navigation-handlers.test.js +4 -1
- package/dist/index.js +5 -35
- package/dist/tool-definitions.js +14 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
<div align="center">
|
|
6
6
|
|
|
7
|
-

|
|
8
8
|

|
|
9
|
-

|
|
10
10
|

|
|
11
11
|

|
|
12
12
|
|
|
13
|
-
**सभी AI IDEs के लिए Universal MCP Server |
|
|
13
|
+
**सभी AI IDEs के लिए Universal MCP Server | 48 Tools | Browser Automation | Web Scraping | CAPTCHA Solving**
|
|
14
14
|
|
|
15
|
-
[Installation](#-installation) | [Quick Start](#-quick-start) | [
|
|
15
|
+
[Installation](#-installation) | [Quick Start](#-quick-start) | [Features](#-key-features) | [Tools](#-available-tools-48) | [IDE Configurations](#-ide-configurations)
|
|
16
16
|
|
|
17
17
|
</div>
|
|
18
18
|
|
|
@@ -20,73 +20,117 @@
|
|
|
20
20
|
|
|
21
21
|
## 🎯 What is This?
|
|
22
22
|
|
|
23
|
-
**Brave Real Browser MCP Server** एक powerful automation tool है
|
|
23
|
+
**Brave Real Browser MCP Server** एक powerful automation tool है जो **Real Brave Browser** का उपयोग करता है। यह साधारण ऑटोमेशन नहीं है, इसमें **In-built Anti-Detection**, **Ad-Blocking**, और **Smart Auto-Install** फीचर्स हैं।
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- ✅ **
|
|
28
|
-
- ✅ **
|
|
29
|
-
- ✅ **
|
|
30
|
-
- ✅ **
|
|
25
|
+
### ✨ Key Features (मुख्य विशेषताएँ)
|
|
26
|
+
|
|
27
|
+
- ✅ **Automatic Brave Installation**: यदि आपके Windows, Linux, या Mac पर Brave Browser नहीं है, तो यह इसे **अपने आप डाउनलोड और इंस्टॉल** कर लेता है।
|
|
28
|
+
- ✅ **Built-in Ad-Blocker (uBlock Origin)**: इसमें **uBlock Origin** पहले से इंस्टॉल आता है जो सभी विज्ञापनों और ट्रैकर्स को ब्लॉक करता है, जिससे पेज तेज़ी से लोड होते हैं और डिटेक्शन का खतरा कम होता है।
|
|
29
|
+
- ✅ **Universal Compatibility**: यह Windows, Mac, और Linux तीनों पर समान रूप से काम करता है।
|
|
30
|
+
- ✅ **Advanced Video Extraction**: जटिल वीडियो और स्ट्रीमिंग साइटों से वीडियो लिंक निकालने के लिए विशेष टूल्स।
|
|
31
|
+
- ✅ **Anti-Detection**: Cloudflare और अन्य सुरक्षा प्रणालियों को बायपास करने में सक्षम।
|
|
31
32
|
|
|
32
33
|
---
|
|
33
34
|
|
|
34
35
|
## 🚀 Quick Start
|
|
35
36
|
|
|
36
|
-
### ⚡
|
|
37
|
-
|
|
38
|
-
**Choose your setup based on your AI Editor:**
|
|
39
|
-
|
|
40
|
-
| Editor | Setup Time | Protocol | Method |
|
|
41
|
-
|--------|-----------|----------|--------|
|
|
42
|
-
| **Claude Desktop** | 2 min | MCP | Add config → Restart |
|
|
43
|
-
| **Cursor AI** | 2 min | MCP | Add config → Restart |
|
|
44
|
-
| **Windsurf** | 2 min | MCP | Add config → Restart |
|
|
45
|
-
| **Antigravity IDE** | 1 min | MCP | Auto-Detect |
|
|
46
|
-
| **Warp AI** | 2 min | MCP | Add config |
|
|
47
|
-
| **Zed AI** | 2 min | MCP | Add config |
|
|
48
|
-
| **Qoder AI** | 3 min | MCP (STDIO) | Add config → Restart |
|
|
49
|
-
|
|
50
|
-
**Quick Commands:**
|
|
37
|
+
### ⚡ Installation
|
|
51
38
|
|
|
52
39
|
```bash
|
|
53
|
-
#
|
|
40
|
+
# Recommended: Use directly with npx (No install needed)
|
|
54
41
|
npx brave-real-browser-mcp-server@latest
|
|
55
42
|
```
|
|
56
43
|
|
|
57
44
|
---
|
|
58
45
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
46
|
+
## 🛠️ Available Tools (48)
|
|
47
|
+
|
|
48
|
+
### 🌐 Core Browser & Navigation (7 tools)
|
|
49
|
+
| Tool | Description |
|
|
50
|
+
|------|-------------|
|
|
51
|
+
| `browser_init` | Initialize browser with auto-install & ad-blocking |
|
|
52
|
+
| `browser_close` | Close the browser instance |
|
|
53
|
+
| `navigate` | Navigate to a URL with smart wait |
|
|
54
|
+
| `wait` | Wait for selectors, navigation, or time |
|
|
55
|
+
| `breadcrumb_navigator` | Navigate using site breadcrumbs |
|
|
56
|
+
| `url_redirect_tracer` | Trace standard URL redirects |
|
|
57
|
+
| `multi_layer_redirect_trace` | Trace complex/hidden redirects |
|
|
58
|
+
|
|
59
|
+
### 🖱️ Interaction & Input (5 tools)
|
|
60
|
+
| Tool | Description |
|
|
61
|
+
|------|-------------|
|
|
62
|
+
| `click` | Smart click on elements |
|
|
63
|
+
| `type` | Human-like typing with delays |
|
|
64
|
+
| `press_key` | Simulate keyboard key presses |
|
|
65
|
+
| `random_scroll` | Human-like random scrolling |
|
|
66
|
+
| `progress_tracker` | Track automation progress |
|
|
67
|
+
|
|
68
|
+
### 📄 Content Extraction (8 tools)
|
|
69
|
+
| Tool | Description |
|
|
70
|
+
|------|-------------|
|
|
71
|
+
| `get_content` | **Primary Tool** for page content (HTML/Text) |
|
|
72
|
+
| `save_content_as_markdown` | Save page as clean Markdown |
|
|
73
|
+
| `find_selector` | Find elements containing text |
|
|
74
|
+
| `html_elements_extractor` | Extract detailed element info |
|
|
75
|
+
| `extract_json` | Extract embedded JSON/API data |
|
|
76
|
+
| `scrape_meta_tags` | Extract SEO & Open Graph tags |
|
|
77
|
+
| `extract_schema` | Extract Schema.org structured data |
|
|
78
|
+
| `image_extractor_advanced` | Advanced image extraction |
|
|
79
|
+
|
|
80
|
+
### 🔍 Search & Discovery (5 tools)
|
|
81
|
+
| Tool | Description |
|
|
82
|
+
|------|-------------|
|
|
83
|
+
| `keyword_search` | Search for keywords in content |
|
|
84
|
+
| `regex_pattern_matcher` | Find patterns using Regex |
|
|
85
|
+
| `xpath_support` | Query elements using XPath |
|
|
86
|
+
| `advanced_css_selectors` | Complex CSS selector support |
|
|
87
|
+
| `api_finder` | Discover hidden API endpoints |
|
|
88
|
+
|
|
89
|
+
### 🎬 Advanced Video & Media (8 tools)
|
|
90
|
+
| Tool | Description |
|
|
91
|
+
|------|-------------|
|
|
92
|
+
| `advanced_video_extraction` | **Premium** video extractor with ad-bypass |
|
|
93
|
+
| `video_source_extractor` | Extract direct video sources |
|
|
94
|
+
| `video_player_finder` | Locate video players on page |
|
|
95
|
+
| `stream_detector` | Detect HLS/m3u8/DASH streams |
|
|
96
|
+
| `video_download_link_finder` | Find direct download buttons/links |
|
|
97
|
+
| `media_extractor` | Extract generic media (audio/video) |
|
|
98
|
+
| `fetch_xhr` | Capture background XHR requests |
|
|
99
|
+
| `network_recorder` | Record full network traffic |
|
|
100
|
+
|
|
101
|
+
### 🤖 Smart & AI Features (6 tools)
|
|
102
|
+
| Tool | Description |
|
|
103
|
+
|------|-------------|
|
|
104
|
+
| `smart_selector_generator` | AI-powered selector generation |
|
|
105
|
+
| `content_classification` | Classify page content type |
|
|
106
|
+
| `deobfuscate_js` | Deobfuscate hidden JS code |
|
|
107
|
+
| `ad_protection_detector` | Detect anti-adblock systems |
|
|
108
|
+
| `batch_element_scraper` | Scrape lists of items efficiently |
|
|
109
|
+
| `ajax_content_waiter` | Wait for dynamic AJAX loading |
|
|
110
|
+
|
|
111
|
+
### 🔐 Captcha & Security (6 tools)
|
|
112
|
+
| Tool | Description |
|
|
113
|
+
|------|-------------|
|
|
114
|
+
| `solve_captcha` | Universal CAPTCHA solver |
|
|
115
|
+
| `ocr_engine` | Read text from images (OCR) |
|
|
116
|
+
| `audio_captcha_solver` | Solve audio challenges |
|
|
117
|
+
| `puzzle_captcha_handler` | Solve puzzle/slider CAPTCHAs |
|
|
118
|
+
| `data_type_validator` | Validate extracted data |
|
|
119
|
+
| `attribute_harvester` | Collect element attributes |
|
|
120
|
+
|
|
121
|
+
### 📸 Visual Tools (3 tools)
|
|
122
|
+
| Tool | Description |
|
|
123
|
+
|------|-------------|
|
|
124
|
+
| `element_screenshot` | Capture element screenshots |
|
|
125
|
+
| `video_recording` | Record browser session |
|
|
126
|
+
| `link_harvester` | Harvest all links from page |
|
|
68
127
|
|
|
69
128
|
---
|
|
70
129
|
|
|
71
130
|
## 🎨 IDE Configurations
|
|
72
131
|
|
|
73
132
|
### 1. Claude Desktop
|
|
74
|
-
**File:** `%APPDATA%\Claude\claude_desktop_config.json` (Windows)
|
|
75
|
-
|
|
76
|
-
```json
|
|
77
|
-
{
|
|
78
|
-
"mcpServers": {
|
|
79
|
-
"brave-real-browser": {
|
|
80
|
-
"command": "npx",
|
|
81
|
-
"args": ["-y", "brave-real-browser-mcp-server@latest"]
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### 2. Cursor AI
|
|
88
|
-
**File:** `%APPDATA%\Cursor\User\globalStorage\saoudrizwan.claude-dev\settings\mcp_settings.json`
|
|
89
|
-
|
|
133
|
+
**File:** `%APPDATA%\Claude\claude_desktop_config.json` (Windows)
|
|
90
134
|
```json
|
|
91
135
|
{
|
|
92
136
|
"mcpServers": {
|
|
@@ -98,24 +142,8 @@ npm install -g brave-real-browser-mcp-server@latest
|
|
|
98
142
|
}
|
|
99
143
|
```
|
|
100
144
|
|
|
101
|
-
###
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
```json
|
|
105
|
-
{
|
|
106
|
-
"mcpServers": {
|
|
107
|
-
"brave-real-browser": {
|
|
108
|
-
"command": "npx",
|
|
109
|
-
"args": ["-y", "brave-real-browser-mcp-server@latest"]
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### 4. Antigravity IDE
|
|
116
|
-
**Auto-Detection:** Automatically detects installed MCP servers.
|
|
117
|
-
**Manual Config:** Add to project config if needed:
|
|
118
|
-
|
|
145
|
+
### 2. Cursor AI, Windsurf, & Others
|
|
146
|
+
Add this to your MCP settings:
|
|
119
147
|
```json
|
|
120
148
|
{
|
|
121
149
|
"mcpServers": {
|
|
@@ -127,281 +155,22 @@ npm install -g brave-real-browser-mcp-server@latest
|
|
|
127
155
|
}
|
|
128
156
|
```
|
|
129
157
|
|
|
130
|
-
### 5. Warp AI
|
|
131
|
-
**File:** `~/.warp/mcp_config.json`
|
|
132
|
-
|
|
133
|
-
```json
|
|
134
|
-
{
|
|
135
|
-
"mcpServers": {
|
|
136
|
-
"brave-real-browser": {
|
|
137
|
-
"command": "npx",
|
|
138
|
-
"args": ["-y", "brave-real-browser-mcp-server@latest"]
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
### 6. Zed AI
|
|
145
|
-
**File:** `.zed/settings.json`
|
|
146
|
-
|
|
147
|
-
```json
|
|
148
|
-
{
|
|
149
|
-
"context_servers": {
|
|
150
|
-
"brave-real-browser": {
|
|
151
|
-
"command": "npx.cmd",
|
|
152
|
-
"args": ["-y", "brave-real-browser-mcp-server@latest"],
|
|
153
|
-
"env": {}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### 7. Cline (VSCode Extension)
|
|
160
|
-
**File:** `cline_mcp_settings.json`
|
|
161
|
-
|
|
162
|
-
```json
|
|
163
|
-
{
|
|
164
|
-
"mcpServers": {
|
|
165
|
-
"brave-real-browser": {
|
|
166
|
-
"command": "npx",
|
|
167
|
-
"args": ["-y", "brave-real-browser-mcp-server@latest"]
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
### 8. Qoder AI
|
|
174
|
-
**File:** `%APPDATA%\Qoder\mcp_settings.json` (Windows) or `~/.config/Qoder/mcp_settings.json` (Linux)
|
|
175
|
-
**Note:** Qoder AI uses STDIO.
|
|
176
|
-
|
|
177
|
-
```json
|
|
178
|
-
{
|
|
179
|
-
"mcpServers": {
|
|
180
|
-
"brave-real-browser": {
|
|
181
|
-
"command": "npx",
|
|
182
|
-
"args": ["-y", "brave-real-browser-mcp-server@latest"],
|
|
183
|
-
"env": {
|
|
184
|
-
"BRAVE_PATH": "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe"
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
```
|
|
190
|
-
|
|
191
158
|
---
|
|
192
159
|
|
|
193
|
-
##
|
|
194
|
-
|
|
195
|
-
### 🌐 Browser Management (2 tools)
|
|
196
|
-
|
|
197
|
-
| Tool | Description |
|
|
198
|
-
| --------------- | ----------------------------------------------- |
|
|
199
|
-
| `browser_init` | Initialize browser with anti-detection features |
|
|
200
|
-
| `browser_close` | Close browser instance |
|
|
201
|
-
|
|
202
|
-
### 🧭 Navigation (2 tools)
|
|
203
|
-
|
|
204
|
-
| Tool | Description |
|
|
205
|
-
| ---------- | ----------------------------------------- |
|
|
206
|
-
| `navigate` | Navigate to URL with wait conditions |
|
|
207
|
-
| `wait` | Wait for selector, navigation, or timeout |
|
|
208
|
-
|
|
209
|
-
### 🖱️ Interactions (4 tools)
|
|
210
|
-
|
|
211
|
-
| Tool | Description |
|
|
212
|
-
| --------------- | ---------------------------------------------------- |
|
|
213
|
-
| `click` | Click on elements |
|
|
214
|
-
| `type` | Type text into inputs |
|
|
215
|
-
| `random_scroll` | Human-like scrolling |
|
|
216
|
-
| `solve_captcha` | Solve CAPTCHA (reCAPTCHA, hCaptcha, Turnstile, etc.) |
|
|
217
|
-
|
|
218
|
-
### 📄 Content Extraction (9 tools)
|
|
219
|
-
|
|
220
|
-
| Tool | Description |
|
|
221
|
-
| -------------------------- | ----------------------------------------- |
|
|
222
|
-
| `get_content` | Extract page content (HTML/Text/Markdown) |
|
|
223
|
-
| `find_selector` | Find CSS selectors for elements |
|
|
224
|
-
| `scrape_table` | Extract table data with headers |
|
|
225
|
-
| `extract_json` | Extract JSON data from page |
|
|
226
|
-
| `scrape_meta_tags` | Extract meta tags and SEO info |
|
|
227
|
-
| `extract_schema` | Extract schema.org structured data |
|
|
228
|
-
| `save_content_as_markdown` | Save page as markdown file |
|
|
229
|
-
| `html_to_text` | Convert HTML to clean text |
|
|
230
|
-
| `smart_text_cleaner` | Clean and normalize text |
|
|
231
|
-
|
|
232
|
-
### 🔍 Multi-Element Extraction (8 tools)
|
|
233
|
-
|
|
234
|
-
| Tool | Description |
|
|
235
|
-
| ------------------------- | --------------------------------- |
|
|
236
|
-
| `batch_element_scraper` | Scrape multiple elements at once |
|
|
237
|
-
| `nested_data_extraction` | Extract nested data structures |
|
|
238
|
-
| `attribute_harvester` | Extract element attributes |
|
|
239
|
-
| `image_scraper` | Extract all images with metadata |
|
|
240
|
-
| `link_harvester` | Extract all links from page |
|
|
241
|
-
| `media_extractor` | Extract media files (audio/video) |
|
|
242
|
-
| `pdf_link_finder` | Find PDF download links |
|
|
243
|
-
| `html_elements_extractor` | Extract specific HTML elements |
|
|
244
|
-
|
|
245
|
-
### 🎯 Advanced Extraction (10 tools)
|
|
246
|
-
|
|
247
|
-
| Tool | Description |
|
|
248
|
-
| ---------------------- | ---------------------------- |
|
|
249
|
-
| `tags_finder` | Find elements by tag name |
|
|
250
|
-
| `links_finder` | Advanced link extraction |
|
|
251
|
-
| `xpath_links` | Extract links using XPath |
|
|
252
|
-
| `ajax_extractor` | Extract AJAX/dynamic content |
|
|
253
|
-
| `fetch_xhr` | Capture XHR/Fetch requests |
|
|
254
|
-
| `network_recorder` | Record all network traffic |
|
|
255
|
-
| `regex_pattern_finder` | Find patterns using regex |
|
|
256
|
-
| `iframe_extractor` | Extract iframe content |
|
|
257
|
-
| `embed_page_extractor` | Extract embedded pages |
|
|
258
|
-
| `user_agent_extractor` | Extract user agent info |
|
|
259
|
-
|
|
260
|
-
### 🎬 Video & Media Tools (19 tools)
|
|
261
|
-
|
|
262
|
-
| Tool | Description |
|
|
263
|
-
| ------------------------------- | ---------------------------------------- |
|
|
264
|
-
| `video_link_finder` | Find video URLs |
|
|
265
|
-
| `video_download_button` | Find video download buttons |
|
|
266
|
-
| `video_play_push_source` | Get video play sources |
|
|
267
|
-
| `video_play_button_click` | Click video play button |
|
|
268
|
-
| `advanced_video_extraction` | Advanced video extraction with ad-bypass |
|
|
269
|
-
| `image_extractor_advanced` | Advanced image extraction |
|
|
270
|
-
| `video_source_extractor` | Extract video source URLs |
|
|
271
|
-
| `video_player_extractor` | Extract video player info |
|
|
272
|
-
| `video_player_hoster_finder` | Find video hosting platform |
|
|
273
|
-
| `original_video_hoster_finder` | Find original video source |
|
|
274
|
-
| `stream_detector` | Detect HLS/DASH streams |
|
|
275
|
-
| `redirect_tracer` | Trace URL redirects |
|
|
276
|
-
| `video_download_link_finder` | Find direct download links |
|
|
277
|
-
|
|
278
|
-
### 🔐 CAPTCHA & Security (4 tools)
|
|
279
|
-
|
|
280
|
-
| Tool | Description |
|
|
281
|
-
| ------------------------ | ------------------------------------------------------------------- |
|
|
282
|
-
| `solve_captcha` | Multi-CAPTCHA solver (reCAPTCHA, hCaptcha, Turnstile, Arkose, etc.) |
|
|
283
|
-
| `ocr_engine` | OCR for text-based CAPTCHAs |
|
|
284
|
-
| `audio_captcha_solver` | Solve audio CAPTCHAs |
|
|
285
|
-
| `puzzle_captcha_handler` | Handle puzzle CAPTCHAs |
|
|
286
|
-
|
|
287
|
-
### 🔧 Data Processing (5 tools)
|
|
288
|
-
|
|
289
|
-
| Tool | Description |
|
|
290
|
-
| ------------------------- | ---------------------------------- |
|
|
291
|
-
| `price_parser` | Extract and parse prices |
|
|
292
|
-
| `date_normalizer` | Normalize dates to standard format |
|
|
293
|
-
| `contact_extractor` | Extract contact information |
|
|
294
|
-
| `schema_validator` | Validate data against schema |
|
|
295
|
-
| `required_fields_checker` | Check for required fields |
|
|
296
|
-
|
|
297
|
-
### 📊 Data Quality (0 tools)
|
|
298
|
-
|
|
299
|
-
*Advanced data quality tools removed for optimization.*
|
|
300
|
-
|
|
301
|
-
### 🤖 AI-Powered Tools (2 tools)
|
|
302
|
-
|
|
303
|
-
| Tool | Description |
|
|
304
|
-
| -------------------------- | --------------------------- |
|
|
305
|
-
| `smart_selector_generator` | Auto-generate CSS selectors |
|
|
306
|
-
| `content_classification` | Classify content type |
|
|
307
|
-
|
|
308
|
-
### 🔎 Search & Filter (5 tools)
|
|
309
|
-
|
|
310
|
-
| Tool | Description |
|
|
311
|
-
| ------------------------ | ----------------------------- |
|
|
312
|
-
| `keyword_search` | Search for keywords in page |
|
|
313
|
-
| `regex_pattern_matcher` | Match regex patterns |
|
|
314
|
-
| `xpath_support` | XPath query support |
|
|
315
|
-
| `advanced_css_selectors` | Advanced CSS selector queries |
|
|
316
|
-
| `visual_element_finder` | Find elements visually |
|
|
317
|
-
|
|
318
|
-
### 📑 Pagination & Navigation (5 tools)
|
|
319
|
-
|
|
320
|
-
| Tool | Description |
|
|
321
|
-
| ---------------------- | --------------------------- |
|
|
322
|
-
| `auto_pagination` | Auto-paginate through pages |
|
|
323
|
-
| `infinite_scroll` | Handle infinite scroll |
|
|
324
|
-
| `multi_page_scraper` | Scrape multiple pages |
|
|
325
|
-
| `sitemap_parser` | Parse and navigate sitemaps |
|
|
326
|
-
| `breadcrumb_navigator` | Navigate using breadcrumbs |
|
|
327
|
-
|
|
328
|
-
### 🔒 Session Management (6 tools)
|
|
329
|
-
|
|
330
|
-
| Tool | Description |
|
|
331
|
-
| ----------------------- | -------------------------- |
|
|
332
|
-
| `session_persistence` | Persist sessions |
|
|
333
|
-
| `form_auto_fill` | Auto-fill forms |
|
|
334
|
-
| `ajax_content_waiter` | Wait for AJAX content |
|
|
335
|
-
| `modal_popup_handler` | Handle modal popups |
|
|
336
|
-
| `login_session_manager` | Manage login sessions |
|
|
337
|
-
| `shadow_dom_extractor` | Extract Shadow DOM content |
|
|
338
|
-
|
|
339
|
-
### 📸 Visual Tools (4 tools)
|
|
340
|
-
|
|
341
|
-
| Tool | Description |
|
|
342
|
-
| ---------------------- | --------------------------- |
|
|
343
|
-
| `element_screenshot` | Screenshot specific element |
|
|
344
|
-
| `pdf_generation` | Generate PDF from page |
|
|
345
|
-
| `video_recording` | Record page as video |
|
|
346
|
-
|
|
347
|
-
### 📈 Monitoring & Reporting (3 tools)
|
|
348
|
-
|
|
349
|
-
| Tool | Description |
|
|
350
|
-
| ----------------------- | ------------------------- |
|
|
351
|
-
| `progress_tracker` | Track automation progress |
|
|
352
|
-
| `success_rate_reporter` | Report success rates |
|
|
353
|
-
| `performance_monitor` | Monitor performance |
|
|
354
|
-
|
|
355
|
-
### 🛡️ Advanced Extraction & Obfuscation (4 tools)
|
|
356
|
-
|
|
357
|
-
| Tool | Description |
|
|
358
|
-
| ---------------------------- | --------------------------- |
|
|
359
|
-
| `deobfuscate_js` | Deobfuscate JavaScript |
|
|
360
|
-
| `multi_layer_redirect_trace` | Trace multi-layer redirects |
|
|
361
|
-
| `ad_protection_detector` | Detect ad protection |
|
|
362
|
-
|
|
363
|
-
## 🔧 Environment Variables
|
|
364
|
-
|
|
365
|
-
You can configure the server using the local `.env` file directly.
|
|
366
|
-
|
|
367
|
-
Edit `.env` to set your preferences:
|
|
160
|
+
## 🔧 Environment Variables (.env)
|
|
368
161
|
|
|
369
162
|
```bash
|
|
370
|
-
# Optional: Specify Brave browser path
|
|
371
|
-
BRAVE_PATH="C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe"
|
|
372
|
-
|
|
373
163
|
# Optional: Run in headless mode (default: false)
|
|
374
164
|
HEADLESS=true
|
|
375
165
|
|
|
376
166
|
# Optional: Disable content priority
|
|
377
167
|
DISABLE_CONTENT_PRIORITY=true
|
|
378
168
|
|
|
379
|
-
# Optional: Proxy
|
|
380
|
-
PROXY_URL=http://
|
|
169
|
+
# Optional: Proxy Configuration
|
|
170
|
+
PROXY_URL=http://user:pass@host:port
|
|
381
171
|
```
|
|
382
172
|
|
|
383
|
-
## 📊 Supported Protocols
|
|
384
|
-
|
|
385
|
-
| Protocol | Used By | Auto-Config | Status |
|
|
386
|
-
| --------------- | --------------------------------------------- | ----------- | ---------- |
|
|
387
|
-
| **MCP (STDIO)** | Claude Desktop, Cursor, Windsurf, Cline, Warp | ✅ | 🟢 Working |
|
|
388
|
-
|
|
389
|
-
## 📄 License
|
|
390
|
-
|
|
391
|
-
MIT License - See LICENSE file for details.
|
|
392
|
-
|
|
393
173
|
---
|
|
394
174
|
|
|
395
|
-
##
|
|
396
|
-
|
|
397
|
-
- **GitHub:** https://github.com/codeiva4u/Brave-Real-Browser-Mcp-Server
|
|
398
|
-
- **NPM:** https://www.npmjs.com/package/brave-real-browser-mcp-server
|
|
399
|
-
- **Issues:** https://github.com/codeiva4u/Brave-Real-Browser-Mcp-Server/issues
|
|
400
|
-
|
|
401
|
-
---
|
|
402
|
-
|
|
403
|
-
<div align="center">
|
|
404
|
-
|
|
405
|
-
**🌟 78 Tools | 15+ AI IDEs | MCP Protocol | Universal Support 🌟**
|
|
406
|
-
|
|
407
|
-
**Made with ❤️ for the AI Development Community**
|
|
175
|
+
## 📄 License
|
|
176
|
+
MIT License
|
|
@@ -51,7 +51,10 @@ describe('Navigation Handlers', () => {
|
|
|
51
51
|
let mockPageInstance;
|
|
52
52
|
beforeEach(() => {
|
|
53
53
|
vi.clearAllMocks();
|
|
54
|
-
setTimeoutMock.mockClear();
|
|
54
|
+
setTimeoutMock.mockClear();
|
|
55
|
+
// Explicitly restore default mock implementations
|
|
56
|
+
systemUtils.withTimeout.mockImplementation((op) => op());
|
|
57
|
+
systemUtils.withErrorHandling.mockImplementation((op) => op());
|
|
55
58
|
// Setup mocks
|
|
56
59
|
mockBrowserManager = browserManager;
|
|
57
60
|
mockSystemUtils = systemUtils;
|
package/dist/index.js
CHANGED
|
@@ -31,7 +31,7 @@ import { handleOCREngine, handleAudioCaptchaSolver, handlePuzzleCaptchaHandler,
|
|
|
31
31
|
// Import visual tools handlers
|
|
32
32
|
import { handleElementScreenshot, handleVideoRecording, } from "./handlers/visual-tools-handlers.js";
|
|
33
33
|
// Import smart data extractors
|
|
34
|
-
import { handleFetchXHR, handleNetworkRecorder, handleImageExtractorAdvanced, handleVideoSourceExtractor, handleUrlRedirectTracer, handleApiFinder, } from "./handlers/smart-data-extractors.js";
|
|
34
|
+
import { handleHtmlElementsExtractor, handleFetchXHR, handleNetworkRecorder, handleImageExtractorAdvanced, handleVideoSourceExtractor, handleUrlRedirectTracer, handleApiFinder, } from "./handlers/smart-data-extractors.js";
|
|
35
35
|
// Import dynamic session handlers
|
|
36
36
|
import { handleAjaxContentWaiter, } from "./handlers/dynamic-session-handlers.js";
|
|
37
37
|
// Import monitoring & reporting handlers
|
|
@@ -40,25 +40,17 @@ import { handleProgressTracker, } from "./handlers/monitoring-reporting-handlers
|
|
|
40
40
|
import { handleVideoPlayerFinder, handleStreamDetector, handleVideoDownloadLinkFinder, } from "./handlers/advanced-video-media-handlers.js";
|
|
41
41
|
// Import advanced extraction handlers (Ad-bypass & Obfuscation)
|
|
42
42
|
import { handleAdvancedVideoExtraction, handleDeobfuscateJS, handleMultiLayerRedirectTrace, handleAdProtectionDetector, } from "./handlers/advanced-extraction-handlers.js";
|
|
43
|
-
console.error("🔍 [DEBUG] All modules loaded successfully");
|
|
44
|
-
console.error(`🔍 [DEBUG] Server info: ${JSON.stringify(SERVER_INFO)}`);
|
|
45
43
|
// Initialize MCP server
|
|
46
|
-
console.error("🔍 [DEBUG] Creating MCP server instance...");
|
|
47
44
|
const server = new Server(SERVER_INFO, { capabilities: CAPABILITIES });
|
|
48
|
-
console.error("🔍 [DEBUG] MCP server instance created successfully");
|
|
49
45
|
// Register initialize handler (CRITICAL - missing handler can cause crash)
|
|
50
|
-
console.error("🔍 [DEBUG] Registering initialize handler...");
|
|
51
46
|
server.setRequestHandler(InitializeRequestSchema, async (request) => {
|
|
52
|
-
console.error(`🔍 [DEBUG] Initialize request received: ${JSON.stringify(request)}`);
|
|
53
47
|
// Use the client's protocol version to ensure compatibility
|
|
54
48
|
const clientProtocolVersion = request.params.protocolVersion;
|
|
55
|
-
console.error(`🔍 [DEBUG] Client protocol version: ${clientProtocolVersion}`);
|
|
56
49
|
const response = {
|
|
57
50
|
protocolVersion: clientProtocolVersion, // Match client version for compatibility
|
|
58
51
|
capabilities: CAPABILITIES,
|
|
59
52
|
serverInfo: SERVER_INFO,
|
|
60
53
|
};
|
|
61
|
-
console.error(`🔍 [DEBUG] Sending initialize response: ${JSON.stringify(response)}`);
|
|
62
54
|
// Add a small delay to see if there are any immediate errors after response
|
|
63
55
|
setTimeout(() => {
|
|
64
56
|
console.error(`🔍 [DEBUG] 1 second after initialize response - server still alive`);
|
|
@@ -69,21 +61,15 @@ server.setRequestHandler(InitializeRequestSchema, async (request) => {
|
|
|
69
61
|
return response;
|
|
70
62
|
});
|
|
71
63
|
// Register tool handlers
|
|
72
|
-
console.error("🔍 [DEBUG] Registering tools handler...");
|
|
73
64
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
74
|
-
console.error("🔍 [DEBUG] Tools list requested");
|
|
75
65
|
return { tools: TOOLS };
|
|
76
66
|
});
|
|
77
67
|
// Register resource handlers (placeholder)
|
|
78
|
-
console.error("🔍 [DEBUG] Registering resources handler...");
|
|
79
68
|
server.setRequestHandler(ListResourcesRequestSchema, async () => {
|
|
80
|
-
console.error("🔍 [DEBUG] Resources list requested");
|
|
81
69
|
return { resources: [] };
|
|
82
70
|
});
|
|
83
71
|
// Register prompt handlers (placeholder)
|
|
84
|
-
console.error("🔍 [DEBUG] Registering prompts handler...");
|
|
85
72
|
server.setRequestHandler(ListPromptsRequestSchema, async () => {
|
|
86
|
-
console.error("🔍 [DEBUG] Prompts list requested");
|
|
87
73
|
return { prompts: [] };
|
|
88
74
|
});
|
|
89
75
|
// Tool execution function - exported for use in transports
|
|
@@ -128,6 +114,10 @@ export async function executeToolByName(name, args) {
|
|
|
128
114
|
result = await handleSaveContentAsMarkdown(args);
|
|
129
115
|
break;
|
|
130
116
|
// Smart Data Extractors
|
|
117
|
+
// DOM & HTML Extraction
|
|
118
|
+
case TOOL_NAMES.HTML_ELEMENTS_EXTRACTOR:
|
|
119
|
+
result = await handleHtmlElementsExtractor(args || {});
|
|
120
|
+
break;
|
|
131
121
|
case TOOL_NAMES.EXTRACT_JSON:
|
|
132
122
|
result = await handleExtractJSON(args || {});
|
|
133
123
|
break;
|
|
@@ -278,16 +268,13 @@ export async function executeToolByName(name, args) {
|
|
|
278
268
|
}
|
|
279
269
|
}
|
|
280
270
|
// Main tool call handler
|
|
281
|
-
console.error("🔍 [DEBUG] Registering tool call handler...");
|
|
282
271
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
283
272
|
const { name, arguments: args } = request.params;
|
|
284
|
-
console.error(`🔍 [DEBUG] Tool call received: ${name} with args: ${JSON.stringify(args)}`);
|
|
285
273
|
return await executeToolByName(name, args);
|
|
286
274
|
});
|
|
287
275
|
// Main function - now using multi-protocol launcher
|
|
288
276
|
// Main function
|
|
289
277
|
async function main() {
|
|
290
|
-
console.error("🔍 [DEBUG] Starting in STDIO mode...");
|
|
291
278
|
setupProcessCleanup(async () => {
|
|
292
279
|
await closeBrowser();
|
|
293
280
|
await forceKillAllBraveProcesses();
|
|
@@ -295,42 +282,25 @@ async function main() {
|
|
|
295
282
|
const transport = new StdioServerTransport();
|
|
296
283
|
await withErrorHandling(async () => {
|
|
297
284
|
await server.connect(transport);
|
|
298
|
-
console.error("🚀 Brave Real Browser MCP Server started successfully");
|
|
299
|
-
console.error("📋 Available tools:", TOOLS.map((t) => t.name).join(", "));
|
|
300
285
|
}, "Failed to start MCP server");
|
|
301
286
|
}
|
|
302
287
|
// Enhanced error handling with debug info
|
|
303
|
-
console.error("🔍 [DEBUG] Setting up error handlers...");
|
|
304
288
|
process.on("uncaughtException", (error) => {
|
|
305
|
-
console.error(`🔍 [DEBUG] Uncaught exception at ${new Date().toISOString()}`);
|
|
306
|
-
console.error("❌ Uncaught exception:", error);
|
|
307
|
-
console.error(`🔍 [DEBUG] Stack trace:`, error.stack);
|
|
308
289
|
process.exit(1);
|
|
309
290
|
});
|
|
310
291
|
process.on("unhandledRejection", (reason, promise) => {
|
|
311
|
-
console.error(`🔍 [DEBUG] Unhandled rejection at ${new Date().toISOString()}`);
|
|
312
|
-
console.error("❌ Unhandled rejection:", reason);
|
|
313
|
-
console.error(`🔍 [DEBUG] Promise:`, promise);
|
|
314
292
|
process.exit(1);
|
|
315
293
|
});
|
|
316
294
|
// Process lifecycle debugging
|
|
317
295
|
process.on("exit", (code) => {
|
|
318
|
-
console.error(`🔍 [DEBUG] Process exiting with code: ${code} at ${new Date().toISOString()}`);
|
|
319
296
|
});
|
|
320
297
|
process.on("beforeExit", (code) => {
|
|
321
|
-
console.error(`🔍 [DEBUG] Before exit event with code: ${code} at ${new Date().toISOString()}`);
|
|
322
298
|
});
|
|
323
299
|
process.on("SIGTERM", () => {
|
|
324
|
-
console.error(`🔍 [DEBUG] SIGTERM received at ${new Date().toISOString()}`);
|
|
325
300
|
});
|
|
326
301
|
process.on("SIGINT", () => {
|
|
327
|
-
console.error(`🔍 [DEBUG] SIGINT received at ${new Date().toISOString()}`);
|
|
328
302
|
});
|
|
329
|
-
console.error("🔍 [DEBUG] All error handlers registered");
|
|
330
303
|
// Start the server
|
|
331
304
|
main().catch((error) => {
|
|
332
|
-
console.error(`🔍 [DEBUG] Main function failed at ${new Date().toISOString()}`);
|
|
333
|
-
console.error("❌ Failed to start server:", error);
|
|
334
|
-
console.error(`🔍 [DEBUG] Error stack:`, error.stack);
|
|
335
305
|
process.exit(1);
|
|
336
306
|
});
|
package/dist/tool-definitions.js
CHANGED
|
@@ -335,6 +335,19 @@ export const TOOLS = [
|
|
|
335
335
|
},
|
|
336
336
|
},
|
|
337
337
|
// Smart Data Extractors
|
|
338
|
+
// DOM & HTML Extraction (Phase 1)
|
|
339
|
+
{
|
|
340
|
+
name: 'html_elements_extractor',
|
|
341
|
+
description: 'Extract detailed information about HTML elements matching a selector',
|
|
342
|
+
inputSchema: {
|
|
343
|
+
type: 'object',
|
|
344
|
+
properties: {
|
|
345
|
+
selector: { type: 'string', default: '*' },
|
|
346
|
+
maxElements: { type: 'number', default: 100 },
|
|
347
|
+
includeStyles: { type: 'boolean', default: false },
|
|
348
|
+
},
|
|
349
|
+
},
|
|
350
|
+
},
|
|
338
351
|
{
|
|
339
352
|
name: 'extract_json',
|
|
340
353
|
description: 'Extract embedded JSON/API data from the page',
|
|
@@ -806,6 +819,7 @@ export const TOOL_NAMES = {
|
|
|
806
819
|
LINK_HARVESTER: 'link_harvester',
|
|
807
820
|
MEDIA_EXTRACTOR: 'media_extractor',
|
|
808
821
|
// DOM & HTML Extraction (Phase 1)
|
|
822
|
+
HTML_ELEMENTS_EXTRACTOR: 'html_elements_extractor',
|
|
809
823
|
// Network Tools (Phase 1)
|
|
810
824
|
FETCH_XHR: 'fetch_xhr',
|
|
811
825
|
NETWORK_RECORDER: 'network_recorder',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brave-real-browser-mcp-server",
|
|
3
|
-
"version": "2.17.
|
|
3
|
+
"version": "2.17.4",
|
|
4
4
|
"description": "Universal AI IDE MCP Server - Auto-detects and supports all AI IDEs (Claude Desktop, Cursor, Windsurf, Cline, Zed, VSCode, Qoder AI, etc.) with Brave browser automation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|