@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 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. Install browser
14
- npx playwright install chromium
15
-
16
- # 3. Run
17
- npx @natchs/browser-mcp
18
- ```
19
-
20
- ### MCP Client Config
21
-
22
- Claude Desktop, Cursor, VS Code veya herhangi bir MCP istemcisine eklemek için:
23
-
24
- ```json
25
- {
26
- "mcpServers": {
27
- "browser-mcp": {
28
- "command": "npx",
29
- "args": ["@natchs/browser-mcp"]
30
- }
31
- }
32
- }
33
- ```
34
-
35
- Alternatif: projeyi klonlayıp yerel build ile de kullanabilirsiniz:
36
-
37
- ```bash
38
- git clone https://github.com/natchs/browser-mcp.git
39
- cd browser-mcp
40
- npm ci
41
- npx playwright install chromium
42
- npm run build
43
- node dist/index.js
44
- ```
45
-
46
- ---
47
-
48
- ## Detaylı Özellikler
49
-
50
- ### Mevcut Yetenekler
51
-
52
- | Kategori | Tool Sayısı | Neler Yapabilir? |
53
- |----------|------------|-------------------|
54
- | **Navigation** | 5 | Sayfa açma, geri/ileri gitme, refresh, element/url bekleme |
55
- | **Interaction** | 8 | Tıklama, form doldurma, select kutusu, hover, drag-drop, klavye, dosya yükleme |
56
- | **Extraction** | 7 | HTML, Markdown, plain text, CSS selector, tablo, Schema.org, Open Graph |
57
- | **Network** | 10 | İstek/cevap takibi, HAR/JSON/CSV export, WebSocket frame yakalama, body kaydetme, console log |
58
- | **Browser Control** | 8 | Screenshot, PDF, çerez yönetimi, JavaScript çalıştırma, dosya indirme |
59
- | **Session** | 3 | Çoklu session açma/kapama/listeleme, otomatik TTL cleanup |
60
- | **Admin** | 3 | Server durumu, cache istatistikleri, cache temizleme |
61
- | **RE Tools** | 4 | JavaScript beautify/deobfuscate, API endpoint discovery, auth analizi |
62
- | **Stealth** | 2 | Fingerprint değiştirme, human behavior simülasyonu |
63
-
64
- **Toplam: 40+ tool, 9 kategori, production-grade mimari**
65
-
66
- ### Ne Yapabilir?
67
-
68
- - **Reverse Engineering**: JS deobfuscation, API auth analizi, network isteklerini HAR formatında export
69
- - **Web Scraping**: Cloudflare koruması olmayan sitelerden HTML/Markdown/text çekme, tablo ve Schema.org yapılandırılmış veri extraction
70
- - **Network Monitoring**: HTTP/HTTPS isteklerini gerçek zamanlı yakalama, WebSocket frame'lerini izleme, binary body'leri diske kaydetme
71
- - **Form Automation**: Login formları, search, multi-step form doldurma, dosya upload
72
- - **Session Yönetimi**: Her biri izole, aynı anda birden çok browser session'ı yönetme, otomatik TTL ile cleanup
73
- - **Güvenlik**: SSRF koruması (internal IP bloklama, DNS rebind engelleme, redirect bypass koruması), path traversal engelleme, MIME tabanlı extension blocklist, cookie leak koruması
74
- - **Data Export**: network capture'ları HAR/JSON/CSV export, body save, WS frame save (.jsonl)
75
- - **Observability**: Structured JSON logging, tool metrikleri (call count, süre, hata), LRU cache + TTL
76
- - **Rate Limiting**: Token bucket, global + per-tool, yapılandırılabilir RPM
77
-
78
- ### Ne Yapamaz? (Mevcut Sınırlamalar)
79
-
80
- - **Cloudflare/anti-bot korumalı siteler**: Challenge sayfalarını geçemez, manuel çözüm gerekir
81
- - **Captcha çözümü**: Dahili captcha çözücü yoktur (üçüncü parti servislerle entegre edilebilir)
82
- - **Görsel tanıma**: Screenshot alabilir ama içeriği yorumlayamaz
83
- - **Native dosya indirme**: `browser_download` URL bazlıdır, Playwright native download event'ini kapsamaz
84
- - **Canvas/WebGL fingerprinting**: Temel fingerprint değişir ama gelişmiş anti-bot sistemlerini geçemeyebilir
85
- - **Mobil browser simülasyonu**: Sadece Chromium desktop, mobile viewport taklidi yapabilir
86
-
87
- ### Güvenlik Özellikleri
88
-
89
- - `redirect: 'manual'` tüm URL fetch çağrılarında SSRF redirect bypass koruması
90
- - `validateUrlAsync` DNS lookupDNS rebind saldırılarına karşı
91
- - `DANGEROUS_EXTENSIONS` blocklist (.exe, .bat, .sh vb) → güvenli `.bin` fallback
92
- - Pseudo-FS path blocking (`/proc/`, `/sys/`, `/etc/` vb)
93
- - Cookie header filtresi — Stage 3 HTTP re-fetch'te cross-origin credential sızıntısı önlenir
94
- - `downloadEnabled` varsayılan **false** — kullanıcı açıkça enable etmeden download çalışmaz
95
- - Input sanitizasyonu (null byte, path traversal, fileName injection)
96
-
97
- ### MCP Client Uyumluluğu
98
-
99
- Claude Desktop, Cursor, VS Code (Cline, Roo Code), Continue.dev, özel MCP istemcileri — protocol uyumlu tüm platformlar.
100
-
101
- ---
102
-
103
- ## Daha Fazlası Yolda
104
-
105
- Bu proje aktif geliştirme aşamasındadır. Kısa süre içinde:
106
-
107
- - **Yeni tool'lar**: PDF extraction, screenshot annotation, form detection, cookie manager, session snapshot/restore
108
- - **Cloudflare bypass**: Playwright Stealth entegrasyonu, rotatable proxy desteği
109
- - **Batch scraping**: Çoklu sayfa scraping pipeline, queue sistemi
110
- - **Performance**: Ring buffer optimizasyonu, streaming response, lazy evaluation
111
- - **Developer Experience**: Interaktif CLI, playground UI, type-safe client SDK
112
-
113
- ---
114
-
115
- ## Geliştirme
116
-
117
- ```bash
118
- # Test
119
- npm test
120
- npm run test:coverage
121
-
122
- # Type check (tsc --noEmit)
123
- npm run lint
124
-
125
- # Build
126
- npm run build
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,2 @@
1
+ export declare function ensureBrowser(browserType?: 'chromium' | 'firefox' | 'webkit'): Promise<void>;
2
+ //# sourceMappingURL=browser-install.d.ts.map
@@ -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"}
@@ -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;AAyClD,wBAAgB,YAAY,CAC1B,QAAQ,CAAC,EAAE,YAAY,EACvB,cAAc,CAAC,EAAE,cAAc,EAC/B,MAAM,CAAC,EAAE,MAAM,GACd,SAAS,CA+HX"}
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.0.0' }, { capabilities: { tools: {}, prompts: {}, resources: {} } });
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.3",
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
+ }