brave-real-browser-mcp-server 2.37.1 → 2.37.2
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 +0 -208
- 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-fixed.js +2499 -0
- package/src/mcp/handlers.js +2647 -112
- package/test/esm/test.js +35 -13
package/README.md
CHANGED
|
@@ -153,43 +153,6 @@ npm run lsp
|
|
|
153
153
|
| **Simulation** | Workflow simulation in IDE |
|
|
154
154
|
| **Multi-language** | English & Hindi support |
|
|
155
155
|
|
|
156
|
-
### VS Code Setup
|
|
157
|
-
|
|
158
|
-
Create `.vscode/settings.json` in your project:
|
|
159
|
-
|
|
160
|
-
```json
|
|
161
|
-
{
|
|
162
|
-
"braveRealBrowser.language": "en",
|
|
163
|
-
"braveRealBrowser.maxDiagnostics": 100,
|
|
164
|
-
"braveRealBrowser.enableSnippets": true,
|
|
165
|
-
"braveRealBrowser.enableSimulation": true,
|
|
166
|
-
"braveRealBrowser.enableRefactoring": true
|
|
167
|
-
}
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### Diagnostic Features
|
|
171
|
-
|
|
172
|
-
The LSP detects common issues:
|
|
173
|
-
|
|
174
|
-
- Missing `browser_init()` before page operations
|
|
175
|
-
- Missing `navigate()` before content extraction
|
|
176
|
-
- Invalid selectors and URLs
|
|
177
|
-
- Missing required parameters
|
|
178
|
-
- Unclosed browser sessions
|
|
179
|
-
- Security issues (eval usage, etc.)
|
|
180
|
-
|
|
181
|
-
### Quick Fixes
|
|
182
|
-
|
|
183
|
-
When diagnostics are detected, quick fixes are offered:
|
|
184
|
-
|
|
185
|
-
- Add `browser_init()` at start
|
|
186
|
-
- Add `navigate()` before page tools
|
|
187
|
-
- Add `browser_close()` at end
|
|
188
|
-
- Wrap in try-catch
|
|
189
|
-
- Extract to function
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
156
|
## AI Core (Automatic Enhancement)
|
|
194
157
|
|
|
195
158
|
All 28 tools are automatically enhanced with AI capabilities. No configuration needed - AI features work transparently.
|
|
@@ -252,17 +215,6 @@ When AI heals a broken selector:
|
|
|
252
215
|
}
|
|
253
216
|
}
|
|
254
217
|
```
|
|
255
|
-
|
|
256
|
-
### AI Modules
|
|
257
|
-
|
|
258
|
-
| Module | Description |
|
|
259
|
-
|--------|-------------|
|
|
260
|
-
| `AICore` | Central AI intelligence singleton |
|
|
261
|
-
| `ElementFinder` | Smart element finding with multiple strategies |
|
|
262
|
-
| `SelectorHealer` | Auto-fix broken CSS selectors |
|
|
263
|
-
| `PageAnalyzer` | Page structure analysis |
|
|
264
|
-
| `ActionParser` | Natural language command parsing |
|
|
265
|
-
|
|
266
218
|
### Programmatic Access
|
|
267
219
|
|
|
268
220
|
For advanced usage, you can access AI features directly:
|
|
@@ -318,21 +270,6 @@ node src/index.js lsp
|
|
|
318
270
|
# Show help
|
|
319
271
|
node src/index.js --help
|
|
320
272
|
```
|
|
321
|
-
|
|
322
|
-
### Tool Categories
|
|
323
|
-
|
|
324
|
-
| Category | Tools | Description |
|
|
325
|
-
|----------|-------|-------------|
|
|
326
|
-
| **Browser** | 3 | Browser lifecycle (init, close, cookies) |
|
|
327
|
-
| **Navigation** | 1 | Page navigation |
|
|
328
|
-
| **Interaction** | 8 | User actions (click, type, scroll, etc.) |
|
|
329
|
-
| **Extraction** | 10 | Content scraping (HTML, JSON, links, etc.) |
|
|
330
|
-
| **Network** | 3 | Network operations (recorder, download, trace) |
|
|
331
|
-
| **Analysis** | 1 | Page analysis (SEO, performance, etc.) |
|
|
332
|
-
| **Utility** | 2 | Helpers (wait, progress tracker) |
|
|
333
|
-
|
|
334
|
-
---
|
|
335
|
-
|
|
336
273
|
## Monorepo Ecosystem
|
|
337
274
|
|
|
338
275
|
```
|
|
@@ -399,53 +336,6 @@ All packages published to NPM automatically
|
|
|
399
336
|
```bash
|
|
400
337
|
npm install brave-real-browser-mcp-server
|
|
401
338
|
```
|
|
402
|
-
|
|
403
|
-
For Linux (required for headless mode):
|
|
404
|
-
```bash
|
|
405
|
-
sudo apt-get install xvfb
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
---
|
|
409
|
-
|
|
410
|
-
## Quick Start
|
|
411
|
-
|
|
412
|
-
### CommonJS
|
|
413
|
-
|
|
414
|
-
```javascript
|
|
415
|
-
const { connect } = require('brave-real-browser-mcp-server');
|
|
416
|
-
|
|
417
|
-
(async () => {
|
|
418
|
-
const { browser, page, blocker } = await connect({
|
|
419
|
-
headless: false,
|
|
420
|
-
turnstile: true, // Auto-solve Cloudflare
|
|
421
|
-
});
|
|
422
|
-
|
|
423
|
-
await page.goto('https://example.com');
|
|
424
|
-
|
|
425
|
-
// Human-like click with ghost-cursor
|
|
426
|
-
await page.realClick('#button');
|
|
427
|
-
|
|
428
|
-
await browser.close();
|
|
429
|
-
})();
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
### ESM
|
|
433
|
-
|
|
434
|
-
```javascript
|
|
435
|
-
import { connect } from 'brave-real-browser-mcp-server';
|
|
436
|
-
|
|
437
|
-
const { browser, page, blocker } = await connect({
|
|
438
|
-
headless: false,
|
|
439
|
-
turnstile: true,
|
|
440
|
-
});
|
|
441
|
-
|
|
442
|
-
await page.goto('https://example.com');
|
|
443
|
-
await page.realClick('#button');
|
|
444
|
-
await browser.close();
|
|
445
|
-
```
|
|
446
|
-
|
|
447
|
-
---
|
|
448
|
-
|
|
449
339
|
## Connect Options
|
|
450
340
|
|
|
451
341
|
| Option | Type | Default | Description |
|
|
@@ -500,104 +390,6 @@ const { browser, page } = await connect({
|
|
|
500
390
|
});
|
|
501
391
|
```
|
|
502
392
|
|
|
503
|
-
### Custom Brave Path
|
|
504
|
-
|
|
505
|
-
```javascript
|
|
506
|
-
const { browser, page } = await connect({
|
|
507
|
-
customConfig: {
|
|
508
|
-
bravePath: 'C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe',
|
|
509
|
-
userDataDir: './my-profile'
|
|
510
|
-
}
|
|
511
|
-
});
|
|
512
|
-
```
|
|
513
|
-
|
|
514
|
-
### Disable Blocker
|
|
515
|
-
|
|
516
|
-
```javascript
|
|
517
|
-
const { browser, page } = await connect({
|
|
518
|
-
enableBlocker: false, // Disable all blocking
|
|
519
|
-
});
|
|
520
|
-
```
|
|
521
|
-
|
|
522
|
-
### Custom Blocker Options
|
|
523
|
-
|
|
524
|
-
```javascript
|
|
525
|
-
const { browser, page, blocker } = await connect({
|
|
526
|
-
blockerOptions: {
|
|
527
|
-
enableAdBlocking: true,
|
|
528
|
-
enableStealth: true,
|
|
529
|
-
enableCosmeticFiltering: true,
|
|
530
|
-
enableRedirectBlocking: true,
|
|
531
|
-
enableScriptlets: true,
|
|
532
|
-
customFiltersPath: './my-filters.txt',
|
|
533
|
-
enableFilterAutoUpdate: true,
|
|
534
|
-
}
|
|
535
|
-
});
|
|
536
|
-
```
|
|
537
|
-
|
|
538
|
-
### Real Cursor (Ghost-Cursor)
|
|
539
|
-
|
|
540
|
-
Built-in ghost-cursor for human-like mouse movements:
|
|
541
|
-
|
|
542
|
-
```javascript
|
|
543
|
-
const { browser, page } = await connect();
|
|
544
|
-
|
|
545
|
-
// Human-like click
|
|
546
|
-
await page.realClick('#submit-button');
|
|
547
|
-
|
|
548
|
-
// Full cursor control
|
|
549
|
-
await page.realCursor.move('#element');
|
|
550
|
-
await page.realCursor.click('#button');
|
|
551
|
-
```
|
|
552
|
-
|
|
553
|
-
### Turnstile Auto-Solver
|
|
554
|
-
|
|
555
|
-
Automatically solves Cloudflare Turnstile challenges:
|
|
556
|
-
|
|
557
|
-
```javascript
|
|
558
|
-
const { browser, page } = await connect({
|
|
559
|
-
turnstile: true
|
|
560
|
-
});
|
|
561
|
-
|
|
562
|
-
await page.goto('https://site-with-turnstile.com');
|
|
563
|
-
// Turnstile is automatically solved!
|
|
564
|
-
```
|
|
565
|
-
|
|
566
|
-
### Puppeteer-Extra Plugins
|
|
567
|
-
|
|
568
|
-
```javascript
|
|
569
|
-
const clickAndWait = require('puppeteer-extra-plugin-click-and-wait')();
|
|
570
|
-
|
|
571
|
-
const { browser, page } = await connect({
|
|
572
|
-
plugins: [clickAndWait]
|
|
573
|
-
});
|
|
574
|
-
```
|
|
575
|
-
|
|
576
|
-
### Singleton Blocker Usage
|
|
577
|
-
|
|
578
|
-
The blocker is a singleton - only one instance is created and shared:
|
|
579
|
-
|
|
580
|
-
```javascript
|
|
581
|
-
// From brave-real-blocker package
|
|
582
|
-
import {
|
|
583
|
-
getBraveBlockerSingleton,
|
|
584
|
-
initBraveBlockerSingleton,
|
|
585
|
-
isBraveBlockerInitialized
|
|
586
|
-
} from 'brave-real-blocker/singleton';
|
|
587
|
-
|
|
588
|
-
// Initialize once at startup
|
|
589
|
-
const blocker = await initBraveBlockerSingleton({
|
|
590
|
-
enableAdBlocking: true,
|
|
591
|
-
enableStealth: true,
|
|
592
|
-
});
|
|
593
|
-
|
|
594
|
-
// Get the same instance anywhere else
|
|
595
|
-
const sameBlocker = getBraveBlockerSingleton();
|
|
596
|
-
console.log(blocker === sameBlocker); // true
|
|
597
|
-
```
|
|
598
|
-
|
|
599
|
-
---
|
|
600
|
-
|
|
601
393
|
## Commands
|
|
602
394
|
|
|
603
395
|
### Root Level
|
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.2",
|
|
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.2",
|
|
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.2",
|
|
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.2",
|
|
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.2",
|
|
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.2",
|
|
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.2",
|
|
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.2",
|
|
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"
|