@natchs/browser-mcp 2.0.3 → 2.1.0
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 +127 -131
- package/dist/core/browser-install.d.ts +2 -0
- package/dist/core/browser-install.d.ts.map +1 -0
- package/dist/core/browser-install.js +33 -0
- package/dist/core/browser-install.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/package.json +51 -51
package/README.md
CHANGED
|
@@ -1,131 +1,127 @@
|
|
|
1
|
-
# @natchs/browser-mcp
|
|
2
|
-
|
|
3
|
-
**Browser automation MCP server** — reverse engineering, web scraping ve data extraction için tasarlanmış, AI ajanların tarayıcıyı tam kontrol etmesini sağlayan bir Model Context Protocol sunucusu.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Quick Start
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
# 1. Install
|
|
11
|
-
npm install @natchs/browser-mcp
|
|
12
|
-
|
|
13
|
-
# 2.
|
|
14
|
-
npx
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
|
53
|
-
|
|
54
|
-
| **
|
|
55
|
-
| **
|
|
56
|
-
| **
|
|
57
|
-
| **
|
|
58
|
-
| **
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
- **
|
|
69
|
-
- **
|
|
70
|
-
- **
|
|
71
|
-
- **
|
|
72
|
-
- **
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
- **
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
- **
|
|
81
|
-
- **
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
-
|
|
90
|
-
- `
|
|
91
|
-
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
- **
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
#
|
|
119
|
-
npm
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
## Lisans
|
|
130
|
-
|
|
131
|
-
MIT
|
|
1
|
+
# @natchs/browser-mcp
|
|
2
|
+
|
|
3
|
+
**Browser automation MCP server** — reverse engineering, web scraping ve data extraction için tasarlanmış, AI ajanların tarayıcıyı tam kontrol etmesini sağlayan bir Model Context Protocol sunucusu.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Quick Start
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# 1. Install
|
|
11
|
+
npm install @natchs/browser-mcp
|
|
12
|
+
|
|
13
|
+
# 2. Run (Chromium browser otomatik kurulur, ilk çalıştırmada ~30sn)
|
|
14
|
+
npx @natchs/browser-mcp
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### MCP Client Config
|
|
18
|
+
|
|
19
|
+
Claude Desktop, Cursor, VS Code veya herhangi bir MCP istemcisine eklemek için:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"mcpServers": {
|
|
24
|
+
"browser-mcp": {
|
|
25
|
+
"command": "npx",
|
|
26
|
+
"args": ["@natchs/browser-mcp"]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Alternatif: projeyi klonlayıp yerel build ile de kullanabilirsiniz:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
git clone https://github.com/natchs/browser-mcp.git
|
|
36
|
+
cd browser-mcp
|
|
37
|
+
npm ci
|
|
38
|
+
npm run build
|
|
39
|
+
npx @natchs/browser-mcp
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Detaylı Özellikler
|
|
45
|
+
|
|
46
|
+
### Mevcut Yetenekler
|
|
47
|
+
|
|
48
|
+
| Kategori | Tool Sayısı | Neler Yapabilir? |
|
|
49
|
+
|----------|------------|-------------------|
|
|
50
|
+
| **Navigation** | 5 | Sayfa açma, geri/ileri gitme, refresh, element/url bekleme |
|
|
51
|
+
| **Interaction** | 8 | Tıklama, form doldurma, select kutusu, hover, drag-drop, klavye, dosya yükleme |
|
|
52
|
+
| **Extraction** | 7 | HTML, Markdown, plain text, CSS selector, tablo, Schema.org, Open Graph |
|
|
53
|
+
| **Network** | 10 | İstek/cevap takibi, HAR/JSON/CSV export, WebSocket frame yakalama, body kaydetme, console log |
|
|
54
|
+
| **Browser Control** | 8 | Screenshot, PDF, çerez yönetimi, JavaScript çalıştırma, dosya indirme |
|
|
55
|
+
| **Session** | 3 | Çoklu session açma/kapama/listeleme, otomatik TTL cleanup |
|
|
56
|
+
| **Admin** | 3 | Server durumu, cache istatistikleri, cache temizleme |
|
|
57
|
+
| **RE Tools** | 4 | JavaScript beautify/deobfuscate, API endpoint discovery, auth analizi |
|
|
58
|
+
| **Stealth** | 2 | Fingerprint değiştirme, human behavior simülasyonu |
|
|
59
|
+
|
|
60
|
+
**Toplam: 40+ tool, 9 kategori, production-grade mimari**
|
|
61
|
+
|
|
62
|
+
### Ne Yapabilir?
|
|
63
|
+
|
|
64
|
+
- **Reverse Engineering**: JS deobfuscation, API auth analizi, network isteklerini HAR formatında export
|
|
65
|
+
- **Web Scraping**: Cloudflare koruması olmayan sitelerden HTML/Markdown/text çekme, tablo ve Schema.org yapılandırılmış veri extraction
|
|
66
|
+
- **Network Monitoring**: HTTP/HTTPS isteklerini gerçek zamanlı yakalama, WebSocket frame'lerini izleme, binary body'leri diske kaydetme
|
|
67
|
+
- **Form Automation**: Login formları, search, multi-step form doldurma, dosya upload
|
|
68
|
+
- **Session Yönetimi**: Her biri izole, aynı anda birden çok browser session'ı yönetme, otomatik TTL ile cleanup
|
|
69
|
+
- **Güvenlik**: SSRF koruması (internal IP bloklama, DNS rebind engelleme, redirect bypass koruması), path traversal engelleme, MIME tabanlı extension blocklist, cookie leak koruması
|
|
70
|
+
- **Data Export**: network capture'ları HAR/JSON/CSV export, body save, WS frame save (.jsonl)
|
|
71
|
+
- **Observability**: Structured JSON logging, tool metrikleri (call count, süre, hata), LRU cache + TTL
|
|
72
|
+
- **Rate Limiting**: Token bucket, global + per-tool, yapılandırılabilir RPM
|
|
73
|
+
|
|
74
|
+
### Ne Yapamaz? (Mevcut Sınırlamalar)
|
|
75
|
+
|
|
76
|
+
- **Cloudflare/anti-bot korumalı siteler**: Challenge sayfalarını geçemez, manuel çözüm gerekir
|
|
77
|
+
- **Captcha çözümü**: Dahili captcha çözücü yoktur (üçüncü parti servislerle entegre edilebilir)
|
|
78
|
+
- **Görsel tanıma**: Screenshot alabilir ama içeriği yorumlayamaz
|
|
79
|
+
- **Native dosya indirme**: `browser_download` URL bazlıdır, Playwright native download event'ini kapsamaz
|
|
80
|
+
- **Canvas/WebGL fingerprinting**: Temel fingerprint değişir ama gelişmiş anti-bot sistemlerini geçemeyebilir
|
|
81
|
+
- **Mobil browser simülasyonu**: Sadece Chromium desktop, mobile viewport taklidi yapabilir
|
|
82
|
+
|
|
83
|
+
### Güvenlik Özellikleri
|
|
84
|
+
|
|
85
|
+
- `redirect: 'manual'` tüm URL fetch çağrılarında — SSRF redirect bypass koruması
|
|
86
|
+
- `validateUrlAsync` DNS lookup — DNS rebind saldırılarına karşı
|
|
87
|
+
- `DANGEROUS_EXTENSIONS` blocklist (.exe, .bat, .sh vb) → güvenli `.bin` fallback
|
|
88
|
+
- Pseudo-FS path blocking (`/proc/`, `/sys/`, `/etc/` vb)
|
|
89
|
+
- Cookie header filtresi — Stage 3 HTTP re-fetch'te cross-origin credential sızıntısı önlenir
|
|
90
|
+
- `downloadEnabled` varsayılan **false** — kullanıcı açıkça enable etmeden download çalışmaz
|
|
91
|
+
- Input sanitizasyonu (null byte, path traversal, fileName injection)
|
|
92
|
+
|
|
93
|
+
### MCP Client Uyumluluğu
|
|
94
|
+
|
|
95
|
+
Claude Desktop, Cursor, VS Code (Cline, Roo Code), Continue.dev, özel MCP istemcileri — protocol uyumlu tüm platformlar.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Daha Fazlası Yolda
|
|
100
|
+
|
|
101
|
+
Bu proje aktif geliştirme aşamasındadır. Kısa süre içinde:
|
|
102
|
+
|
|
103
|
+
- **Yeni tool'lar**: PDF extraction, screenshot annotation, form detection, cookie manager, session snapshot/restore
|
|
104
|
+
- **Cloudflare bypass**: Playwright Stealth entegrasyonu, rotatable proxy desteği
|
|
105
|
+
- **Batch scraping**: Çoklu sayfa scraping pipeline, queue sistemi
|
|
106
|
+
- **Performance**: Ring buffer optimizasyonu, streaming response, lazy evaluation
|
|
107
|
+
- **Developer Experience**: Interaktif CLI, playground UI, type-safe client SDK
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Geliştirme
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Test
|
|
115
|
+
npm test
|
|
116
|
+
npm run test:coverage
|
|
117
|
+
|
|
118
|
+
# Type check (tsc --noEmit)
|
|
119
|
+
npm run lint
|
|
120
|
+
|
|
121
|
+
# Build
|
|
122
|
+
npm run build
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Lisans
|
|
126
|
+
|
|
127
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-install.d.ts","sourceRoot":"","sources":["../../src/core/browser-install.ts"],"names":[],"mappings":"AAWA,wBAAsB,aAAa,CAAC,WAAW,GAAE,UAAU,GAAG,SAAS,GAAG,QAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B9G"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { execSync } from 'node:child_process';
|
|
3
|
+
import { chromium } from 'playwright';
|
|
4
|
+
import { logger } from './logger.js';
|
|
5
|
+
const AUTO_INSTALL_ENV = 'BROWSER_AUTO_INSTALL';
|
|
6
|
+
function getInstallCommand(browserType) {
|
|
7
|
+
return `npx playwright install ${browserType}`;
|
|
8
|
+
}
|
|
9
|
+
export async function ensureBrowser(browserType = 'chromium') {
|
|
10
|
+
const browserPath = chromium.executablePath();
|
|
11
|
+
if (existsSync(browserPath)) {
|
|
12
|
+
logger.info('Browser already installed', { event: 'browser.check', type: browserType, path: browserPath });
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const autoInstall = process.env[AUTO_INSTALL_ENV] !== 'false';
|
|
16
|
+
if (!autoInstall) {
|
|
17
|
+
const cmd = getInstallCommand(browserType);
|
|
18
|
+
throw new Error(`Browser "${browserType}" not found at: ${browserPath}\n` +
|
|
19
|
+
`Set BROWSER_AUTO_INSTALL=true or run manually: ${cmd}`);
|
|
20
|
+
}
|
|
21
|
+
logger.info('Browser not found, installing...', { event: 'browser.install.start', type: browserType });
|
|
22
|
+
try {
|
|
23
|
+
execSync(getInstallCommand(browserType), { stdio: 'inherit' });
|
|
24
|
+
logger.info('Browser installed successfully', { event: 'browser.install.complete', type: browserType });
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
const cmd = getInstallCommand(browserType);
|
|
28
|
+
throw new Error(`Failed to install browser "${browserType}".\n` +
|
|
29
|
+
`Please run manually: ${cmd}\n` +
|
|
30
|
+
`Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=browser-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-install.js","sourceRoot":"","sources":["../../src/core/browser-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEhD,SAAS,iBAAiB,CAAC,WAA8C;IACvE,OAAO,0BAA0B,WAAW,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,cAAiD,UAAU;IAC7F,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;IAE9C,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3G,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC;IAE9D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,YAAY,WAAW,mBAAmB,WAAW,IAAI;YACzD,kDAAkD,GAAG,EAAE,CACxD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAEvG,IAAI,CAAC;QACH,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1G,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,8BAA8B,WAAW,MAAM;YAC/C,wBAAwB,GAAG,IAAI;YAC/B,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7D,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAGtF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAGtF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA0ClD,wBAAgB,YAAY,CAC1B,QAAQ,CAAC,EAAE,YAAY,EACvB,cAAc,CAAC,EAAE,cAAc,EAC/B,MAAM,CAAC,EAAE,MAAM,GACd,SAAS,CA+HX"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ import { ErrorCode } from './core/errors.js';
|
|
|
15
15
|
import { Pipeline, createLoggingMiddleware } from './core/pipeline.js';
|
|
16
16
|
import { logger } from './core/logger.js';
|
|
17
17
|
import { createAuthMiddleware } from './core/auth.js';
|
|
18
|
+
import { ensureBrowser } from './core/browser-install.js';
|
|
18
19
|
import { registerPrompts } from './prompts/index.js';
|
|
19
20
|
import { registerNavigationTools } from './tools/navigation/index.js';
|
|
20
21
|
import { registerInteractionTools } from './tools/interaction/index.js';
|
|
@@ -52,7 +53,7 @@ export function createServer(registry, sessionManager, apiKey) {
|
|
|
52
53
|
maxEntries: config.cache.maxEntries,
|
|
53
54
|
ttlMs: config.cache.ttlSeconds * 1000,
|
|
54
55
|
});
|
|
55
|
-
const server = new McpServer({ name: 'browser-mcp', version: '2.
|
|
56
|
+
const server = new McpServer({ name: 'browser-mcp', version: '2.1.0' }, { capabilities: { tools: {}, prompts: {}, resources: {} } });
|
|
56
57
|
registerPrompts(server);
|
|
57
58
|
// Build middleware pipeline: log -> auth -> rate-limit
|
|
58
59
|
const pipeline = new Pipeline();
|
|
@@ -169,6 +170,10 @@ function registerResourceTemplate(server, sm) {
|
|
|
169
170
|
});
|
|
170
171
|
}
|
|
171
172
|
async function main() {
|
|
173
|
+
await ensureBrowser('chromium').catch((err) => {
|
|
174
|
+
logger.error('Browser check failed', { error: String(err) });
|
|
175
|
+
process.exit(1);
|
|
176
|
+
});
|
|
172
177
|
const config = getConfig();
|
|
173
178
|
const reg = buildDefaultRegistry();
|
|
174
179
|
const networkHarEnabled = process.env.NETWORK_HAR_ENABLED !== '0';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@natchs/browser-mcp",
|
|
3
|
-
"version": "2.0
|
|
4
|
-
"description": "MCP server for browser automation — reverse engineering, web scraping, network interception, HAR export, WebSocket capture, SSRF-safe download tool. AI agent controlled via Model Context Protocol.",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"bin": {
|
|
8
|
-
"browser-mcp": "dist/index.js"
|
|
9
|
-
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"build": "tsc",
|
|
12
|
-
"dev": "tsc --watch",
|
|
13
|
-
"lint": "tsc --noEmit",
|
|
14
|
-
"test": "vitest run",
|
|
15
|
-
"test:watch": "vitest",
|
|
16
|
-
"test:coverage": "vitest run --coverage"
|
|
17
|
-
},
|
|
18
|
-
"files": [
|
|
19
|
-
"dist"
|
|
20
|
-
],
|
|
21
|
-
"keywords": [
|
|
22
|
-
"mcp",
|
|
23
|
-
"model-context-protocol",
|
|
24
|
-
"browser-automation",
|
|
25
|
-
"playwright",
|
|
26
|
-
"web-scraping",
|
|
27
|
-
"reverse-engineering",
|
|
28
|
-
"har-export",
|
|
29
|
-
"websocket",
|
|
30
|
-
"network-interception",
|
|
31
|
-
"claude-desktop",
|
|
32
|
-
"ai-agent",
|
|
33
|
-
"headless-browser"
|
|
34
|
-
],
|
|
35
|
-
"license": "MIT",
|
|
36
|
-
"dependencies": {
|
|
37
|
-
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
38
|
-
"playwright": "^1.51.0",
|
|
39
|
-
"zod": "^3.24.0"
|
|
40
|
-
},
|
|
41
|
-
"devDependencies": {
|
|
42
|
-
"@types/node": "^24.3.0",
|
|
43
|
-
"@types/ws": "^8.18.1",
|
|
44
|
-
"@vitest/coverage-v8": "^3.2.6",
|
|
45
|
-
"typescript": "^5.8.0",
|
|
46
|
-
"vitest": "^3.2.6"
|
|
47
|
-
},
|
|
48
|
-
"engines": {
|
|
49
|
-
"node": ">=18"
|
|
50
|
-
}
|
|
51
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@natchs/browser-mcp",
|
|
3
|
+
"version": "2.1.0",
|
|
4
|
+
"description": "MCP server for browser automation — reverse engineering, web scraping, network interception, HAR export, WebSocket capture, SSRF-safe download tool. AI agent controlled via Model Context Protocol.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"browser-mcp": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"dev": "tsc --watch",
|
|
13
|
+
"lint": "tsc --noEmit",
|
|
14
|
+
"test": "vitest run",
|
|
15
|
+
"test:watch": "vitest",
|
|
16
|
+
"test:coverage": "vitest run --coverage"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"keywords": [
|
|
22
|
+
"mcp",
|
|
23
|
+
"model-context-protocol",
|
|
24
|
+
"browser-automation",
|
|
25
|
+
"playwright",
|
|
26
|
+
"web-scraping",
|
|
27
|
+
"reverse-engineering",
|
|
28
|
+
"har-export",
|
|
29
|
+
"websocket",
|
|
30
|
+
"network-interception",
|
|
31
|
+
"claude-desktop",
|
|
32
|
+
"ai-agent",
|
|
33
|
+
"headless-browser"
|
|
34
|
+
],
|
|
35
|
+
"license": "MIT",
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
38
|
+
"playwright": "^1.51.0",
|
|
39
|
+
"zod": "^3.24.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/node": "^24.3.0",
|
|
43
|
+
"@types/ws": "^8.18.1",
|
|
44
|
+
"@vitest/coverage-v8": "^3.2.6",
|
|
45
|
+
"typescript": "^5.8.0",
|
|
46
|
+
"vitest": "^3.2.6"
|
|
47
|
+
},
|
|
48
|
+
"engines": {
|
|
49
|
+
"node": ">=18"
|
|
50
|
+
}
|
|
51
|
+
}
|