brave-real-browser-mcp-server 2.37.1 → 2.37.3
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 +388 -48
- package/package.json +2 -2
- package/packages/brave-real-blocker/package.json +5 -4
- package/packages/brave-real-launcher/package.json +5 -5
- package/packages/brave-real-puppeteer-core/package.json +4 -4
- package/src/mcp/handlers.js +1638 -105
- package/src/shared/tools.js +208 -502
- package/test/cjs/test.js +33 -91
- package/test/esm/test.js +3 -3
- package/data/.gitkeep +0 -2
- package/src/ai/error-collector.js +0 -498
- package/src/ai/hindi-suggester.js +0 -505
- package/src/ai/pattern-learner.js +0 -561
- package/src/ai/result-validator.js +0 -666
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ A production-ready MCP (Model Context Protocol) server that combines Puppeteer w
|
|
|
14
14
|
|
|
15
15
|
| Feature | Description |
|
|
16
16
|
|---------|-------------|
|
|
17
|
-
| **MCP Server** | Model Context Protocol compatible server with
|
|
17
|
+
| **MCP Server** | Model Context Protocol compatible server with 23 optimized tools |
|
|
18
18
|
| **LSP Server** | Language Server Protocol for IDE code intelligence |
|
|
19
19
|
| **AI Core** | Automatic AI enhancement for all tools (auto-healing, smart retry) |
|
|
20
20
|
| Brave Browser | Uses Brave instead of Chromium for better privacy |
|
|
@@ -32,12 +32,15 @@ A production-ready MCP (Model Context Protocol) server that combines Puppeteer w
|
|
|
32
32
|
| **Auto-Publish** | Automatic NPM publishing on updates |
|
|
33
33
|
| **Monorepo** | npm workspaces with linked packages |
|
|
34
34
|
| **Singleton Blocker** | Single shared blocker instance |
|
|
35
|
+
| **Decoder Utilities** | URL, Base64, AES decryption built-in |
|
|
36
|
+
| **Batch Operations** | Extract from multiple URLs/pages at once |
|
|
37
|
+
| **Nested Iframe Support** | Scan 3+ levels deep in iframes |
|
|
35
38
|
|
|
36
39
|
---
|
|
37
40
|
|
|
38
41
|
## MCP Server (Model Context Protocol)
|
|
39
42
|
|
|
40
|
-
This package is a fully-featured MCP Server with **
|
|
43
|
+
This package is a fully-featured MCP Server with **23 optimized browser automation tools** for AI assistants like Claude, Cursor, Copilot, and other MCP-compatible clients. Tools intelligently merged for maximum efficiency with AI auto-healing capabilities.
|
|
41
44
|
|
|
42
45
|
### Quick Start MCP Server
|
|
43
46
|
|
|
@@ -76,38 +79,47 @@ Or if installed globally:
|
|
|
76
79
|
}
|
|
77
80
|
```
|
|
78
81
|
|
|
79
|
-
### Available MCP Tools (
|
|
80
|
-
|
|
81
|
-
| # | Tool | Emoji | Description |
|
|
82
|
-
|
|
83
|
-
| 1 | `browser_init` |
|
|
84
|
-
| 2 | `navigate` |
|
|
85
|
-
| 3 | `get_content` |
|
|
86
|
-
| 4 | `wait` |
|
|
87
|
-
| 5 | `click` |
|
|
88
|
-
| 6 | `type` |
|
|
89
|
-
| 7 | `browser_close` |
|
|
90
|
-
| 8 | `solve_captcha` |
|
|
91
|
-
| 9 | `random_scroll` |
|
|
92
|
-
| 10 | `find_element` |
|
|
93
|
-
| 11 | `save_content_as_markdown` |
|
|
94
|
-
| 12 | `redirect_tracer` |
|
|
95
|
-
| 13 |
|
|
96
|
-
| 14 | `
|
|
97
|
-
| 15 | `
|
|
98
|
-
| 16 | `
|
|
99
|
-
| 17 | `
|
|
100
|
-
| 18 | `
|
|
101
|
-
| 19 | `
|
|
102
|
-
| 20 | `
|
|
103
|
-
| 21 |
|
|
104
|
-
| 22 | `
|
|
105
|
-
| 23 | `
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
82
|
+
### Available MCP Tools (23 Optimized)
|
|
83
|
+
|
|
84
|
+
| # | Tool | Emoji | Description | Status |
|
|
85
|
+
|---|------|-------|-------------|--------|
|
|
86
|
+
| 1 | `browser_init` | 🚀 | Initialize Brave browser with stealth, anti-detection & AI healing | ✅ |
|
|
87
|
+
| 2 | `navigate` | 🧭 | Navigate to URL with smart retry, context recovery & AI healing | ✅ |
|
|
88
|
+
| 3 | `get_content` | 📄 | Get page content with JS rendering, smart selectors & AI healing | ✅ Enhanced |
|
|
89
|
+
| 4 | `wait` | ⏳ | Smart wait with AI prediction for optimal timing | ✅ |
|
|
90
|
+
| 5 | `click` | 👆 | Human-like click with AI healing and auto-retry | ✅ |
|
|
91
|
+
| 6 | `type` | ⌨️ | Type text with human speed variation and smart clearing | ✅ |
|
|
92
|
+
| 7 | `browser_close` | 🔴 | Close browser with cleanup and session save | ✅ |
|
|
93
|
+
| 8 | `solve_captcha` | 🔓 | Auto-solve CAPTCHA (Turnstile, reCAPTCHA, hCaptcha) | ✅ |
|
|
94
|
+
| 9 | `random_scroll` | 📜 | Human-like random scrolling with AI pattern detection | ✅ |
|
|
95
|
+
| 10 | `find_element` | 🔍 | Find elements by selector/xpath/text with AI healing | ✅ |
|
|
96
|
+
| 11 | `save_content_as_markdown` | 📝 | Save page as AI-enhanced Markdown file | ✅ |
|
|
97
|
+
| 12 | `redirect_tracer` | 🔀 | Trace all redirects including JS-based and meta refreshes | ✅ |
|
|
98
|
+
| 13 | **`extract_data`** | 🔎 | **MERGED:** Extract data using regex, JSON, meta tags, or structured selectors | ✅ **New** |
|
|
99
|
+
| 14 | `press_key` | 🎹 | Press keyboard keys with human-like timing | ✅ |
|
|
100
|
+
| 15 | `progress_tracker` | 📈 | Track automation progress with AI predictions | ✅ |
|
|
101
|
+
| 16 | `deep_analysis` | 🧠 | Deep page analysis with AI insights and recommendations | ✅ |
|
|
102
|
+
| 17 | `network_recorder` | 📡 | Record network with AI media detection and stream extraction | ✅ |
|
|
103
|
+
| 18 | `link_harvester` | 🔗 | Extract all links including hidden, encoded, and obfuscated | ✅ |
|
|
104
|
+
| 19 | `cookie_manager` | 🍪 | Smart cookie management with AI session persistence | ✅ |
|
|
105
|
+
| 20 | `file_downloader` | ⬇️ | Download files with resume, batch, and auto-decrypt support | ✅ |
|
|
106
|
+
| 21 | **`media_extractor`** | 🎬 | **MERGED:** Universal media extraction (iframes, streams, players, decoders) | ✅ **New** |
|
|
107
|
+
| 22 | `execute_js` | 💻 | Execute custom JavaScript with async support | ✅ |
|
|
108
|
+
| 23 | `form_automator` | 📋 | Smart form automation with AI field detection | ✅ |
|
|
109
|
+
|
|
110
|
+
#### Tool Optimization Summary
|
|
111
|
+
|
|
112
|
+
**Merged Tools (5 → 2):**
|
|
113
|
+
- ✅ `iframe_handler` + `stream_extractor` + `player_api_hook` → **`media_extractor`**
|
|
114
|
+
- ✅ `search_regex` + `extract_json` + `scrape_meta_tags` → **`extract_data`**
|
|
115
|
+
- ✅ `get_content` enhanced with `js_scrape` features
|
|
116
|
+
|
|
117
|
+
**Benefits:**
|
|
118
|
+
- 🎯 **18% reduction** in tool count (28 → 23)
|
|
119
|
+
- 🚀 **Simpler API** for AI agents
|
|
120
|
+
- 💪 **More powerful** combined features
|
|
121
|
+
- 🤖 **AI-first design** with auto-healing
|
|
122
|
+
- 📦 **Decoder utilities** built-in (URL, Base64, AES)
|
|
111
123
|
|
|
112
124
|
### MCP Example Usage
|
|
113
125
|
|
|
@@ -192,7 +204,7 @@ When diagnostics are detected, quick fixes are offered:
|
|
|
192
204
|
|
|
193
205
|
## AI Core (Automatic Enhancement)
|
|
194
206
|
|
|
195
|
-
All
|
|
207
|
+
All 23 tools are automatically enhanced with AI capabilities. No configuration needed - AI features work transparently.
|
|
196
208
|
|
|
197
209
|
### How It Works
|
|
198
210
|
|
|
@@ -232,7 +244,7 @@ AI Agent calls any tool (e.g., click, type, find_element)
|
|
|
232
244
|
| **Smart Retry** | Failed operations are automatically retried with AI assistance |
|
|
233
245
|
| **Confidence Scoring** | AI provides confidence scores for healed selectors |
|
|
234
246
|
| **Caching** | Healed selectors are cached for performance |
|
|
235
|
-
| **Zero Configuration** | Works out of the box with all
|
|
247
|
+
| **Zero Configuration** | Works out of the box with all 23 tools |
|
|
236
248
|
|
|
237
249
|
### Example Response with AI Metadata
|
|
238
250
|
|
|
@@ -303,10 +315,70 @@ src/
|
|
|
303
315
|
└── index.js # Unified entry point
|
|
304
316
|
```
|
|
305
317
|
|
|
318
|
+
## Decoder Utilities (Built-in)
|
|
319
|
+
|
|
320
|
+
Powerful decoding capabilities for obfuscated content extraction:
|
|
321
|
+
|
|
322
|
+
| Decoder | Description | Use Cases |
|
|
323
|
+
|---------|-------------|-----------|
|
|
324
|
+
| **URL Decoder** | Multi-layer URL decoding | Obfuscated links, redirect chains |
|
|
325
|
+
| **Base64 Decoder** | Standard, URL-safe, padded variants | Encoded parameters, tokens |
|
|
326
|
+
| **AES Decryptor** | AES-256-CBC/ECB decryption | Encrypted streams, secure tokens |
|
|
327
|
+
| **tryAll()** | Attempts all decoders automatically | Unknown encoding detection |
|
|
328
|
+
|
|
329
|
+
### Usage Examples
|
|
330
|
+
|
|
331
|
+
```javascript
|
|
332
|
+
// Automatic decoder (via media_extractor)
|
|
333
|
+
{
|
|
334
|
+
"action": "decode_url",
|
|
335
|
+
"encodedData": "aHR0cHM6Ly9leGFtcGxlLmNvbQ==",
|
|
336
|
+
"decoderType": "auto" // Tries all decoders
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
// Manual decoding options
|
|
340
|
+
{
|
|
341
|
+
"action": "decode_url",
|
|
342
|
+
"encodedData": "U2Fsd2Fy...",
|
|
343
|
+
"decoderType": "aes",
|
|
344
|
+
"aesKey": "my-secret-key",
|
|
345
|
+
"aesIV": "initialization-vec"
|
|
346
|
+
}
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### Real-World Example: Movie Download Chain
|
|
350
|
+
|
|
351
|
+
```javascript
|
|
352
|
+
// 1. Navigate to movie page
|
|
353
|
+
{ "tool": "navigate", "params": { "url": "https://moviesdrive.surf/movies/dhurandhar-2025/" }}
|
|
354
|
+
|
|
355
|
+
// 2. Click download button to get redirect
|
|
356
|
+
{ "tool": "click", "params": { "selector": "#hubcloud-480p" }}
|
|
357
|
+
|
|
358
|
+
// 3. Trace full redirect chain
|
|
359
|
+
{ "tool": "redirect_tracer", "params": { "url": "current_page_url", "followJS": true }}
|
|
360
|
+
|
|
361
|
+
// 4. Extract and decode obfuscated links
|
|
362
|
+
{ "tool": "extract_data", "params": {
|
|
363
|
+
"type": "regex",
|
|
364
|
+
"pattern": "hubcloud\\.fans/drive/[^\"']+",
|
|
365
|
+
"autoDecode": true // Auto-decode found URLs
|
|
366
|
+
}}
|
|
367
|
+
|
|
368
|
+
// 5. Get direct download link from nested iframes
|
|
369
|
+
{ "tool": "media_extractor", "params": {
|
|
370
|
+
"action": "extract",
|
|
371
|
+
"types": ["download"],
|
|
372
|
+
"deep": true // Scan nested iframes
|
|
373
|
+
}}
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
306
378
|
### Unified CLI
|
|
307
379
|
|
|
308
380
|
```bash
|
|
309
|
-
# List all tools
|
|
381
|
+
# List all tools (23 optimized)
|
|
310
382
|
node src/index.js --list
|
|
311
383
|
|
|
312
384
|
# Start MCP server (default)
|
|
@@ -324,12 +396,12 @@ node src/index.js --help
|
|
|
324
396
|
| Category | Tools | Description |
|
|
325
397
|
|----------|-------|-------------|
|
|
326
398
|
| **Browser** | 3 | Browser lifecycle (init, close, cookies) |
|
|
327
|
-
| **Navigation** | 1 | Page navigation |
|
|
328
|
-
| **Interaction** |
|
|
329
|
-
| **Extraction** |
|
|
399
|
+
| **Navigation** | 1 | Page navigation with smart retry |
|
|
400
|
+
| **Interaction** | 4 | User actions with AI healing (click, type, scroll, key press) |
|
|
401
|
+
| **Extraction** | 5 | Content scraping (get_content, extract_data, link_harvester, media_extractor, deep_analysis) |
|
|
330
402
|
| **Network** | 3 | Network operations (recorder, download, trace) |
|
|
331
|
-
| **Analysis** |
|
|
332
|
-
| **Utility** |
|
|
403
|
+
| **Analysis** | 2 | Page analysis and form automation |
|
|
404
|
+
| **Utility** | 5 | Helpers (wait, progress, elements, cookies, JavaScript) |
|
|
333
405
|
|
|
334
406
|
---
|
|
335
407
|
|
|
@@ -609,7 +681,7 @@ console.log(blocker === sameBlocker); // true
|
|
|
609
681
|
| `npm run mcp` | Start MCP server (alias) |
|
|
610
682
|
| `npm run mcp:verbose` | Start MCP server with tool details |
|
|
611
683
|
| `npm run lsp` | Start LSP server for IDE intelligence |
|
|
612
|
-
| `npm run list` | List all
|
|
684
|
+
| `npm run list` | List all 23 optimized tools with categories |
|
|
613
685
|
| `npm install` | Install all dependencies with workspace linking |
|
|
614
686
|
| `npm test` | Run all tests (CJS + ESM) |
|
|
615
687
|
| `npm run cjs_test` | Run CommonJS tests only |
|
|
@@ -712,11 +784,22 @@ docker run brave-real-browser-mcp-server npm run esm_test
|
|
|
712
784
|
```
|
|
713
785
|
brave-real-browser-mcp-server/
|
|
714
786
|
├── src/
|
|
715
|
-
│
|
|
716
|
-
│
|
|
717
|
-
│
|
|
718
|
-
│
|
|
719
|
-
│
|
|
787
|
+
│ ├── shared/
|
|
788
|
+
│ │ └── tools.js # Single source of truth (23 optimized tools)
|
|
789
|
+
│ ├── mcp/ # MCP Server
|
|
790
|
+
│ │ ├── index.js # Entry point with startup logs
|
|
791
|
+
│ │ ├── server.js # MCP server with STDIO transport
|
|
792
|
+
│ │ ├── handlers.js # 23 optimized tool implementations + decoders
|
|
793
|
+
│ │ └── tools.js # Re-export from shared
|
|
794
|
+
│ ├── lsp/ # LSP Server
|
|
795
|
+
│ │ ├── server.js # LSP server for IDE intelligence
|
|
796
|
+
│ │ └── capabilities/ # Autocomplete, hover, diagnostics
|
|
797
|
+
│ └── ai/ # AI Core Module
|
|
798
|
+
│ ├── core.js # AI Core singleton
|
|
799
|
+
│ ├── element-finder.js # Smart element finding
|
|
800
|
+
│ ├── selector-healer.js # Auto-heal broken selectors
|
|
801
|
+
│ ├── page-analyzer.js # Page analysis
|
|
802
|
+
│ └── action-parser.js # Natural language parsing
|
|
720
803
|
├── lib/
|
|
721
804
|
│ ├── cjs/ # CommonJS build
|
|
722
805
|
│ └── esm/ # ESM build
|
|
@@ -803,6 +886,263 @@ const { browser, page, blocker }: ConnectResult = await connect(options);
|
|
|
803
886
|
|
|
804
887
|
---
|
|
805
888
|
|
|
889
|
+
## Real-World Examples
|
|
890
|
+
|
|
891
|
+
### Example 1: Complete Movie Download Chain
|
|
892
|
+
|
|
893
|
+
**Use Case:** Extract download links from movie streaming sites with multi-layer redirects
|
|
894
|
+
|
|
895
|
+
```javascript
|
|
896
|
+
// Step 1: Initialize browser with all protections
|
|
897
|
+
{
|
|
898
|
+
"tool": "browser_init",
|
|
899
|
+
"params": {
|
|
900
|
+
"headless": false,
|
|
901
|
+
"turnstile": true,
|
|
902
|
+
"enableBlocker": true
|
|
903
|
+
}
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
// Step 2: Navigate to movie page
|
|
907
|
+
{
|
|
908
|
+
"tool": "navigate",
|
|
909
|
+
"params": {
|
|
910
|
+
"url": "https://moviesdrive.surf/movies/dhurandhar-2025/",
|
|
911
|
+
"waitUntil": "networkidle2",
|
|
912
|
+
"smartWait": true
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
|
|
916
|
+
// Step 3: Find and click quality selector
|
|
917
|
+
{
|
|
918
|
+
"tool": "click",
|
|
919
|
+
"params": {
|
|
920
|
+
"selector": "a[href*='hubcloud']",
|
|
921
|
+
"humanLike": true,
|
|
922
|
+
"aiHeal": true
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
// Step 4: Wait for redirect chain to complete
|
|
927
|
+
{
|
|
928
|
+
"tool": "wait",
|
|
929
|
+
"params": {
|
|
930
|
+
"type": "smart",
|
|
931
|
+
"value": "2000",
|
|
932
|
+
"aiOptimize": true
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
|
|
936
|
+
// Step 5: Trace complete redirect chain
|
|
937
|
+
{
|
|
938
|
+
"tool": "redirect_tracer",
|
|
939
|
+
"params": {
|
|
940
|
+
"url": "current",
|
|
941
|
+
"followJS": true,
|
|
942
|
+
"followMeta": true,
|
|
943
|
+
"decodeURLs": true
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
// Step 6: Extract obfuscated download links
|
|
948
|
+
{
|
|
949
|
+
"tool": "extract_data",
|
|
950
|
+
"params": {
|
|
951
|
+
"type": "regex",
|
|
952
|
+
"pattern": "https?://[^\"'<>\\s]+\\.(mkv|mp4|avi)",
|
|
953
|
+
"autoDecode": true,
|
|
954
|
+
"source": "all"
|
|
955
|
+
}
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
// Step 7: Extract from nested iframes if present
|
|
959
|
+
{
|
|
960
|
+
"tool": "media_extractor",
|
|
961
|
+
"params": {
|
|
962
|
+
"action": "extract",
|
|
963
|
+
"types": ["download", "video"],
|
|
964
|
+
"deep": true,
|
|
965
|
+
"aiOptimize": true
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
// Step 8: Download the file
|
|
970
|
+
{
|
|
971
|
+
"tool": "file_downloader",
|
|
972
|
+
"params": {
|
|
973
|
+
"url": "extracted_download_link",
|
|
974
|
+
"directory": "./downloads",
|
|
975
|
+
"resume": true
|
|
976
|
+
}
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
// Step 9: Cleanup
|
|
980
|
+
{
|
|
981
|
+
"tool": "browser_close",
|
|
982
|
+
"params": {
|
|
983
|
+
"saveSession": false
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
```
|
|
987
|
+
|
|
988
|
+
### Example 2: TV Show Episode Batch Extraction
|
|
989
|
+
|
|
990
|
+
**Use Case:** Extract all episodes from a TV show season
|
|
991
|
+
|
|
992
|
+
```javascript
|
|
993
|
+
// Navigate to TV show page
|
|
994
|
+
{
|
|
995
|
+
"tool": "navigate",
|
|
996
|
+
"params": { "url": "https://multimovies.gripe/tvshows/sacred-games/" }
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
// Extract all episode links
|
|
1000
|
+
{
|
|
1001
|
+
"tool": "extract_data",
|
|
1002
|
+
"params": {
|
|
1003
|
+
"type": "structured",
|
|
1004
|
+
"selector": ".episode-item a",
|
|
1005
|
+
"extractAttributes": true
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
// For each episode, extract streaming sources
|
|
1010
|
+
{
|
|
1011
|
+
"tool": "media_extractor",
|
|
1012
|
+
"params": {
|
|
1013
|
+
"action": "batch_extract",
|
|
1014
|
+
"urls": ["episode1_url", "episode2_url", "..."],
|
|
1015
|
+
"types": ["hls", "dash", "download"],
|
|
1016
|
+
"deep": true
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
// Get network recorded streams
|
|
1021
|
+
{
|
|
1022
|
+
"tool": "network_recorder",
|
|
1023
|
+
"params": {
|
|
1024
|
+
"action": "get_media",
|
|
1025
|
+
"aiDetectStreams": true
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
```
|
|
1029
|
+
|
|
1030
|
+
### Example 3: Advanced Link Harvesting with Decoding
|
|
1031
|
+
|
|
1032
|
+
**Use Case:** Find hidden/obfuscated links on complex pages
|
|
1033
|
+
|
|
1034
|
+
```javascript
|
|
1035
|
+
// Navigate to target
|
|
1036
|
+
{
|
|
1037
|
+
"tool": "navigate",
|
|
1038
|
+
"params": { "url": "https://example-site.com/protected-content/" }
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
// Harvest all links including hidden/encoded ones
|
|
1042
|
+
{
|
|
1043
|
+
"tool": "link_harvester",
|
|
1044
|
+
"params": {
|
|
1045
|
+
"includeHidden": true,
|
|
1046
|
+
"autoDecode": true,
|
|
1047
|
+
"detectObfuscation": true,
|
|
1048
|
+
"searchIframes": true,
|
|
1049
|
+
"types": ["all"]
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
// Decode any obfuscated links found
|
|
1054
|
+
{
|
|
1055
|
+
"tool": "media_extractor",
|
|
1056
|
+
"params": {
|
|
1057
|
+
"action": "decode_url",
|
|
1058
|
+
"encodedData": "aHR0cHM6Ly9leGFtcGxlLmNvbQ==",
|
|
1059
|
+
"decoderType": "auto"
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1062
|
+
```
|
|
1063
|
+
|
|
1064
|
+
### Example 4: Form Automation with AI Detection
|
|
1065
|
+
|
|
1066
|
+
**Use Case:** Automatically fill and submit complex forms
|
|
1067
|
+
|
|
1068
|
+
```javascript
|
|
1069
|
+
// Navigate to form page
|
|
1070
|
+
{
|
|
1071
|
+
"tool": "navigate",
|
|
1072
|
+
"params": { "url": "https://example.com/contact-form/" }
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
// AI-powered form detection and filling
|
|
1076
|
+
{
|
|
1077
|
+
"tool": "form_automator",
|
|
1078
|
+
"params": {
|
|
1079
|
+
"data": {
|
|
1080
|
+
"name": "John Doe",
|
|
1081
|
+
"email": "john@example.com",
|
|
1082
|
+
"message": "Hello, this is a test message",
|
|
1083
|
+
"country": "United States"
|
|
1084
|
+
},
|
|
1085
|
+
"aiMatch": true,
|
|
1086
|
+
"aiValidate": true,
|
|
1087
|
+
"humanLike": true,
|
|
1088
|
+
"captcha": true,
|
|
1089
|
+
"submit": true
|
|
1090
|
+
}
|
|
1091
|
+
}
|
|
1092
|
+
```
|
|
1093
|
+
|
|
1094
|
+
### Example 5: Streaming Media Extraction
|
|
1095
|
+
|
|
1096
|
+
**Use Case:** Extract video streams from JWPlayer, VideoJS, custom players
|
|
1097
|
+
|
|
1098
|
+
```javascript
|
|
1099
|
+
// Navigate to video page
|
|
1100
|
+
{
|
|
1101
|
+
"tool": "navigate",
|
|
1102
|
+
"params": {
|
|
1103
|
+
"url": "https://multimovies.gripe/movies/movie-name/",
|
|
1104
|
+
"waitUntil": "networkidle0"
|
|
1105
|
+
}
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
// Start recording network
|
|
1109
|
+
{
|
|
1110
|
+
"tool": "network_recorder",
|
|
1111
|
+
"params": { "action": "start", "aiDetectStreams": true }
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
// Extract all media types
|
|
1115
|
+
{
|
|
1116
|
+
"tool": "media_extractor",
|
|
1117
|
+
"params": {
|
|
1118
|
+
"action": "extract",
|
|
1119
|
+
"types": ["hls", "dash", "video", "audio", "download"],
|
|
1120
|
+
"quality": "all",
|
|
1121
|
+
"deep": true
|
|
1122
|
+
}
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
// Get all recorded streams
|
|
1126
|
+
{
|
|
1127
|
+
"tool": "network_recorder",
|
|
1128
|
+
"params": {
|
|
1129
|
+
"action": "get_media",
|
|
1130
|
+
"filter": { "type": "m3u8" }
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
// Control player if needed
|
|
1135
|
+
{
|
|
1136
|
+
"tool": "media_extractor",
|
|
1137
|
+
"params": {
|
|
1138
|
+
"action": "player_control",
|
|
1139
|
+
"playerAction": "sources"
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1142
|
+
```
|
|
1143
|
+
|
|
1144
|
+
---
|
|
1145
|
+
|
|
806
1146
|
## FAQ
|
|
807
1147
|
|
|
808
1148
|
### Why can't I pass reCAPTCHA v3?
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brave-real-browser-mcp-server",
|
|
3
|
-
"version": "2.37.
|
|
3
|
+
"version": "2.37.3",
|
|
4
4
|
"description": "MCP Server for Brave Real Browser - Puppeteer with Brave Browser, Stealth Mode, Ad Blocker, and Turnstile Auto-Solver for undetectable web automation.",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/esm/index.mjs",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"license": "ISC",
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
74
|
-
"brave-real-puppeteer-core": "^24.52.
|
|
74
|
+
"brave-real-puppeteer-core": "^24.52.3",
|
|
75
75
|
"ghost-cursor": "^1.4.2",
|
|
76
76
|
"puppeteer-extra": "^3.3.6",
|
|
77
77
|
"puppeteer-extra-plugin-stealth": "^2.11.2",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brave-real-blocker",
|
|
3
|
-
"version": "1.13.
|
|
3
|
+
"version": "1.13.3",
|
|
4
4
|
"description": "Advanced uBlock Origin management and stealth features for Brave Real Browser",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -53,17 +53,18 @@
|
|
|
53
53
|
},
|
|
54
54
|
"homepage": "https://github.com/codeiva4u/Brave-Real-Browser/tree/main/packages/brave-real-blocker",
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@cliqz/adblocker-puppeteer": "^1.
|
|
56
|
+
"@cliqz/adblocker-puppeteer": "^1.34.0",
|
|
57
|
+
"@ghostery/adblocker-puppeteer": "^2.13.4",
|
|
57
58
|
"adm-zip": "^0.5.10",
|
|
58
59
|
"cross-fetch": "^4.1.0",
|
|
59
|
-
"fs-extra": "^11.
|
|
60
|
+
"fs-extra": "^11.3.3",
|
|
60
61
|
"got": "^13.0.0"
|
|
61
62
|
},
|
|
62
63
|
"devDependencies": {
|
|
63
64
|
"@types/adm-zip": "^0.5.5",
|
|
64
65
|
"@types/fs-extra": "^11.0.4",
|
|
65
66
|
"@types/node": "^20.0.0",
|
|
66
|
-
"brave-real-puppeteer-core": "^24.52.
|
|
67
|
+
"brave-real-puppeteer-core": "^24.52.3",
|
|
67
68
|
"mocha": "^10.4.0",
|
|
68
69
|
"puppeteer-core": "^24.35.0",
|
|
69
70
|
"sinon": "^17.0.1",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brave-real-launcher",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.3",
|
|
4
4
|
"description": "Launch Brave Browser with ease from node. Based on chrome-launcher with Brave-specific support.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -54,10 +54,10 @@
|
|
|
54
54
|
"typescript": "^5.0.0"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"brave-real-blocker": "^1.13.
|
|
58
|
-
"escape-string-regexp": "^
|
|
59
|
-
"is-wsl": "^
|
|
60
|
-
"which": "^
|
|
57
|
+
"brave-real-blocker": "^1.13.3",
|
|
58
|
+
"escape-string-regexp": "^5.0.0",
|
|
59
|
+
"is-wsl": "^3.1.0",
|
|
60
|
+
"which": "^6.0.0"
|
|
61
61
|
},
|
|
62
62
|
"types": "./dist/index.d.ts",
|
|
63
63
|
"repository": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brave-real-puppeteer-core",
|
|
3
|
-
"version": "24.52.
|
|
3
|
+
"version": "24.52.3",
|
|
4
4
|
"description": "🦁 Brave Real-World Optimized Puppeteer & Playwright Core with 1-5ms ultra-fast timing, 50+ professional stealth features, intelligent browser auto-detection, and 100% bot detection bypass. Features cross-platform Brave browser integration, comprehensive anti-detection, and breakthrough performance improvements.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"automation",
|
|
@@ -132,13 +132,13 @@
|
|
|
132
132
|
"test-version": "node ./scripts/test-version-management.js"
|
|
133
133
|
},
|
|
134
134
|
"dependencies": {
|
|
135
|
-
"brave-real-launcher": "^1.19.
|
|
135
|
+
"brave-real-launcher": "^1.19.3",
|
|
136
136
|
"get-east-asian-width": "^1.4.0",
|
|
137
137
|
"yargs": "^18.0.0"
|
|
138
138
|
},
|
|
139
139
|
"optionalDependencies": {
|
|
140
|
-
"playwright-core": "^1.
|
|
141
|
-
"puppeteer-core": "^24.
|
|
140
|
+
"playwright-core": "^1.58.1",
|
|
141
|
+
"puppeteer-core": "^24.36.1"
|
|
142
142
|
},
|
|
143
143
|
"devDependencies": {
|
|
144
144
|
"test": "^3.3.0"
|