@eddym06/custom-chrome-mcp 1.2.2 → 1.2.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 CHANGED
@@ -1,700 +1,92 @@
1
- # Custom Chrome MCP 🚀
2
-
3
- Cross-platform Model Context Protocol (MCP) server for advanced Chrome browser automation and control. Works on Windows, macOS, and Linux.
4
-
5
- ## 📦 Quick Install for VS Code
6
-
7
- Add this to your `mcp.json` config file:
8
-
9
- ```json
10
- {
11
- "mcpServers": {
12
- "custom-chrome-mcp": {
13
- "command": "npx",
14
- "args": ["-y", "@eddym06/custom-chrome-mcp", "--port=9222"]
15
- }
16
- }
17
- }
18
- ```
19
-
20
- ## 🌍 Platform Support
21
-
22
- - **Windows** - Full support with robocopy-based Shadow Profile
23
- - ✅ **macOS** - Full support with rsync-based Shadow Profile
24
- - ✅ **Linux** - Full support with rsync-based Shadow Profile
25
-
26
- ## ✨ Características Principales
27
-
28
- ### 🔌 Conexión a Chrome Existente
29
- - **Conecta a tu Chrome ya abierto** con `--remote-debugging-port=9222`
30
- - **Usa tus sesiones activas** (Google, Facebook, etc.)
31
- - **Sin detección de automatización** porque usas tu navegador real
32
- - **Mantén tus extensiones y configuración**
33
-
34
- ### 🛡️ Anti-Detección Avanzada
35
- - Oculta `navigator.webdriver`
36
- - Spoof de plugins y permisos
37
- - User-Agent personalizable
38
- - Timezone y geolocalización configurable
39
- - Scripts anti-detección automáticos
40
-
41
- ### ⏱️ Timeouts Inteligentes
42
- - **Timeouts configurables por operación**: La IA decide el timeout según complejidad
43
- - Defaults optimizados: 10-60 segundos según la herramienta
44
- - Prevención de cuelgues en operaciones pesadas
45
- - HAR exports: hasta 60s para archivos grandes
46
- - Inyección CSS/JS: 10-15s para scripts complejos
47
- - Parámetro `timeoutMs` en todas las herramientas críticas
48
-
49
- ### 🔒 Shadow Profile System
50
- - **Bypasses Chrome's Default profile debugging restriction**
51
- - Platform-specific cloning (robocopy on Windows, rsync on Unix)
52
- - Automatic encryption key preservation
53
- - Skips cache folders for fast copying
54
-
55
- ### ⚙️ Gestión Completa de Service Workers
56
- - Listar todos los Service Workers registrados
57
- - Inspeccionar, actualizar y desregistrar workers
58
- - Iniciar/detener Service Workers
59
- - Gestión de caché de Service Workers
60
- - Skip waiting y control total
61
-
62
- ### 🍪 Gestión de Sesiones
63
- - Exportar/importar sesiones completas
64
- - Gestión de cookies (get, set, delete)
65
- - localStorage y sessionStorage
66
- - Persistencia de sesiones entre ejecuciones
67
-
68
- ### 📸 Captura Avanzada
69
- - Screenshots (fullpage, áreas específicas)
70
- - Exportar a PDF
71
- - Obtener HTML completo
72
- - Métricas de página
73
- - Árbol de accesibilidad
74
-
75
- ### 🎯 Automatización Inteligente
76
- - Delays human-like automáticos
77
- - Wait for selectors
78
- - Navegación completa (back, forward, reload)
79
- - Multi-tab management
80
- - Ejecución de JavaScript custom
81
-
82
- ## 📦 Instalación
83
-
84
- ### Desde GitHub Packages
85
-
86
- 1. Crea un archivo `.npmrc` en tu proyecto:
87
- ```bash
88
- //npm.pkg.github.com/:_authToken=YOUR_GITHUB_TOKEN
89
- @eddym06:registry=https://npm.pkg.github.com
90
- ```
91
-
92
- 2. Instala el paquete:
93
- ```bash
94
- npm install @eddym06/custom-chrome-mcp
95
- ```
96
-
97
- ### Desde el código fuente
98
- ```bash
99
- git clone https://github.com/Eddym06/devTools-Advance-mcp.git
100
- cd custom-chrome-mcp
101
- npm install
102
- npm run build
103
- ```
104
- npm install -g custom-chrome-mcp
105
- ```
106
-
107
- ### Desarrollo local
108
- ```bash
109
- cd custom-chrome-mcp
110
- npm install
111
- npm run build
112
- ```
113
-
114
- ## 🚀 Uso Rápido
115
-
116
- ### 1. Lanza Chrome con debugging habilitado
117
-
118
- **Windows:**
119
- ```powershell
120
- start chrome --remote-debugging-port=9222
121
- ```
122
-
123
- **macOS:**
124
- ```bash
125
- /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 &
126
- ```
127
-
128
- **Linux:**
129
- ```bash
130
- google-chrome --remote-debugging-port=9222 &
131
- ```
132
-
133
- ### 2. Configura el MCP en VS Code
134
-
135
- Agrega en tu `mcp.json` o configuración de Cline/Claude:
136
-
137
- ```json
138
- {
139
- "mcpServers": {
140
- "custom-chrome-mcp": {
141
- "command": "npx",
142
- "args": ["custom-chrome-mcp", "--port=9222"]
143
- }
144
- }
145
- }
146
- ```
147
-
148
- ### 3. ¡Empieza a usar!
149
-
150
- El MCP se conectará automáticamente a tu Chrome y tendrás acceso a **84 herramientas** organizadas en **15 categorías**.
151
-
152
- ## 🛠️ Herramientas Disponibles
153
-
154
- ### Navegación & Tabs (8 herramientas)
155
- - `navigate` - Navegar a URL
156
- - `go_back` / `go_forward` - Historial
157
- - `reload` - Recargar página
158
- - `list_tabs` - Listar pestañas
159
- - `create_tab` - Crear pestaña
160
- - `close_tab` - Cerrar pestaña
161
- - `switch_tab` - Cambiar de pestaña
162
- - `get_url` - Obtener URL actual
163
-
164
- ### Interacción con Página (8 herramientas)
165
- - `click` - Hacer click en elemento
166
- - `type` - Escribir texto
167
- - `get_text` - Obtener texto
168
- - `get_attribute` - Obtener atributo
169
- - `execute_script` - Ejecutar JavaScript
170
- - `scroll` - Hacer scroll
171
- - `wait_for_selector` - Esperar elemento
172
- - `select_option` - Seleccionar opción
173
-
174
- ### Anti-Detección (5 herramientas)
175
- - `enable_stealth_mode` - Activar modo stealth
176
- - `set_user_agent` - Cambiar user agent
177
- - `set_viewport` - Configurar viewport
178
- - `set_geolocation` - Configurar ubicación
179
- - `set_timezone` - Configurar zona horaria
180
-
181
- ### Service Workers (9 herramientas)
182
- - `list_service_workers` - Listar workers
183
- - `get_service_worker` - Obtener detalles
184
- - `unregister_service_worker` - Desregistrar
185
- - `update_service_worker` - Actualizar
186
- - `start_service_worker` - Iniciar
187
- - `stop_service_worker` - Detener
188
- - `inspect_service_worker` - Inspeccionar
189
- - `skip_waiting` - Skip waiting
190
- - `get_sw_caches` - Obtener cachés
191
-
192
- ### Captura (7 herramientas)
193
- - `screenshot` - Captura de pantalla
194
- - `get_html` - Obtener HTML
195
- - `print_to_pdf` - Exportar a PDF
196
- - `get_page_metrics` - Métricas de página
197
- - `get_accessibility_tree` - Árbol a11y completo
198
- - `get_accessibility_snapshot` - Snapshot Playwright-style
199
-
200
- ### Network Interception (8 herramientas)
201
- - `enable_network_interception` - Activar interceptación de requests
202
- - `list_intercepted_requests` - Listar requests interceptados
203
- - `modify_intercepted_request` - Modificar request (headers, URL, body)
204
- - `fail_intercepted_request` - Bloquear request (ads, tracking)
205
- - `continue_intercepted_request` - Continuar sin modificar
206
- - `disable_network_interception` - Desactivar interceptación
207
-
208
- ### Network Response Interception (4 herramientas)
209
- - `enable_response_interception` - Activar interceptación de respuestas
210
- - `list_intercepted_responses` - Listar respuestas interceptadas
211
- - `modify_intercepted_response` - Modificar respuesta (body, headers, status)
212
- - `disable_response_interception` - Desactivar interceptación
213
-
214
- ### Request/Response Mocking (4 herramientas)
215
- - `create_mock_endpoint` - Crear endpoint falso (mock API responses)
216
- - `list_mock_endpoints` - Listar mocks activos
217
- - `delete_mock_endpoint` - Eliminar mock específico
218
- - `clear_all_mocks` - Limpiar todos los mocks
219
-
220
- ### WebSocket Interception (5 herramientas)
221
- - `enable_websocket_interception` - Activar interceptación de WebSockets
222
- - `list_websocket_connections` - Listar conexiones WS activas
223
- - `list_websocket_messages` - Ver mensajes WS (sent/received)
224
- - `send_websocket_message` - Inyectar mensaje en WebSocket
225
- - `disable_websocket_interception` - Desactivar interceptación WS
226
-
227
- ### HAR Recording & Replay (3 herramientas)
228
- - `start_har_recording` - Iniciar grabación HAR (HTTP Archive)
229
- - `stop_har_recording` - Detener y obtener HAR data
230
- - `export_har_file` - Exportar HAR a archivo .har
231
-
232
- ### Advanced Request Patterns (1 herramienta)
233
- - `add_advanced_interception_pattern` - Patrón avanzado (status code, size, duration, content-type, action)
234
-
235
- ### CSS/JS Injection Pipeline (5 herramientas)
236
- - `inject_css_global` - Inyectar CSS en todas las páginas
237
- - `inject_js_global` - Inyectar JavaScript en todas las páginas
238
- - `list_injected_scripts` - Listar inyecciones activas
239
- - `remove_injection` - Remover inyección específica
240
- - `clear_all_injections` - Limpiar todas las inyecciones
241
-
242
- ### Sesiones & Cookies (9 herramientas)
243
- - `get_cookies` - Obtener cookies
244
- - `set_cookie` - Establecer cookie
245
- - `delete_cookie` - Eliminar cookie
246
- - `clear_cookies` - Limpiar cookies
247
- - `get_local_storage` - Obtener localStorage
248
- - `set_local_storage` - Establecer item
249
- - `clear_local_storage` - Limpiar storage
250
- - `export_session` - Exportar sesión
251
- - `import_session` - Importar sesión
252
-
253
- ## 💡 Ejemplos de Uso
254
-
255
- ### Ejemplo 1: Navegar y hacer screenshot
256
- ```typescript
257
- // Navegar a una URL
258
- await mcp.call('navigate', { url: 'https://example.com' });
259
-
260
- // Esperar que cargue un elemento
261
- await mcp.call('wait_for_selector', { selector: '#content' });
262
-
263
- // Tomar screenshot full page
264
- await mcp.call('screenshot', { fullPage: true, format: 'png' });
265
- ```
266
-
267
- ### Ejemplo 2: Activar modo stealth y navegar
268
- ```typescript
269
- // Activar modo stealth
270
- await mcp.call('enable_stealth_mode', {});
271
-
272
- // Navegar a Google
273
- await mcp.call('navigate', { url: 'https://google.com' });
274
-
275
- // Escribir en el buscador
276
- await mcp.call('type', {
277
- selector: 'input[name="q"]',
278
- text: 'model context protocol'
279
- });
280
-
281
- // Hacer click en buscar
282
- await mcp.call('click', { selector: 'input[type="submit"]' });
283
- ```
284
-
285
- ### Ejemplo 3: Exportar sesión
286
- ```typescript
287
- // Exportar sesión actual (cookies, localStorage, etc.)
288
- const result = await mcp.call('export_session', {});
289
- console.log(result.session);
290
-
291
- // Guardar en archivo
292
- fs.writeFileSync('session.json', JSON.stringify(result.session));
293
-
294
- // Importar en otra sesión
295
- const sessionData = fs.readFileSync('session.json', 'utf8');
296
- await mcp.call('import_session', { sessionData });
297
- ```
298
-
299
- ### Ejemplo 4: Gestionar Service Workers
300
- ```typescript
301
- // Listar todos los service workers
302
- const workers = await mcp.call('list_service_workers', {});
303
- console.log(workers);
304
-
305
- // Actualizar un service worker
306
- await mcp.call('update_service_worker', {
307
- scopeURL: 'https://example.com/'
308
- });
309
- ```
310
-
311
- ### Ejemplo 5: Interceptar y modificar requests
312
- ```typescript
313
- // Activar interceptación para archivos JS y CSS
314
- await mcp.call('enable_network_interception', {
315
- patterns: ['*.js', '*.css', '*analytics*']
316
- });
317
-
318
- // Listar requests interceptados
319
- const intercepted = await mcp.call('list_intercepted_requests', {});
320
- console.log('Intercepted:', intercepted.interceptedRequests);
321
-
322
- // Bloquear un request de analytics
323
- await mcp.call('fail_intercepted_request', {
324
- requestId: 'some-request-id',
325
- errorReason: 'BlockedByClient'
326
- });
327
-
328
- // Modificar headers de un request
329
- await mcp.call('modify_intercepted_request', {
330
- requestId: 'another-request-id',
331
- modifiedHeaders: {
332
- 'User-Agent': 'Custom Agent',
333
- 'X-Custom-Header': 'Value'
334
- }
335
- });
336
-
337
- // Desactivar cuando termines
338
- await mcp.call('disable_network_interception', {});
339
- ```
340
-
341
- ### Ejemplo 6: Obtener árbol de accesibilidad
342
- ```typescript
343
- // Obtener snapshot estilo Playwright (fácil de leer)
344
- const snapshot = await mcp.call('get_accessibility_snapshot', {
345
- interestingOnly: true // Solo botones, links, inputs, etc.
346
- });
347
- console.log(snapshot.snapshot);
348
-
349
- // Obtener árbol completo (más detallado)
350
- const fullTree = await mcp.call('get_accessibility_tree', {
351
- depth: 5, // Profundidad máxima
352
- includeIgnored: false
353
- });
354
- console.log(`Total nodes: ${fullTree.totalNodes}`);
355
- ```
356
-
357
- ### Ejemplo 7: Interceptar y modificar respuestas
358
- ```typescript
359
- // Activar interceptación de RESPUESTAS (no solo requests)
360
- // timeoutMs: La IA puede aumentarlo si espera muchas requests
361
- await mcp.call('enable_response_interception', {
362
- patterns: ['*api.example.com/*'],
363
- resourceTypes: ['XHR', 'Fetch'],
364
- timeoutMs: 15000 // 15s para APIs lentas
365
- });
366
-
367
- // Esperar a que se intercepte una respuesta
368
- const responses = await mcp.call('list_intercepted_responses', {});
369
- console.log('Intercepted responses:', responses.interceptedResponses);
370
-
371
- // Modificar el body de una respuesta JSON
372
- await mcp.call('modify_intercepted_response', {
373
- requestId: 'response-id',
374
- modifiedBody: JSON.stringify({ modified: true, data: [1, 2, 3] }),
375
- modifiedStatusCode: 200,
376
- modifiedHeaders: {
377
- 'Content-Type': 'application/json',
378
- 'X-Modified': 'true'
379
- },
380
- timeoutMs: 20000 // 20s para respuestas grandes
381
- });
382
- ```
383
-
384
- ### Ejemplo 8: Mock API endpoints
385
- ```typescript
386
- // Crear un mock endpoint para API
387
- // timeoutMs: Para endpoints complejos con lógica pesada
388
- await mcp.call('create_mock_endpoint', {
389
- urlPattern: '*api.example.com/users*',
390
- responseBody: JSON.stringify([
391
- { id: 1, name: 'John Doe', email: 'john@example.com' },
392
- { id: 2, name: 'Jane Smith', email: 'jane@example.com' }
393
- ]),
394
- statusCode: 200,
395
- headers: {
396
- 'Content-Type': 'application/json',
397
- 'X-Mock': 'true'
398
- },
399
- latency: 500, // Simular 500ms de latencia
400
- method: 'GET',
401
- timeoutMs: 12000 // 12s para registrar el mock
402
- });
403
-
404
- // Navegar y la API será interceptada automáticamente
405
- await mcp.call('navigate', { url: 'https://example.com' });
406
-
407
- // Ver estadísticas de mocks
408
- const mocks = await mcp.call('list_mock_endpoints', {});
409
- console.log('Active mocks:', mocks.mocks);
410
-
411
- // Limpiar cuando termines
412
- await mcp.call('clear_all_mocks', {});
413
- ```
414
-
415
- ### Ejemplo 9: WebSocket interception
416
- ```typescript
417
- // Activar interceptación de WebSockets
418
- await mcp.call('enable_websocket_interception', {
419
- urlPattern: 'wss://example.com/socket'
420
- });
421
-
422
- // Listar conexiones WebSocket activas
423
- const connections = await mcp.call('list_websocket_connections', {});
424
- console.log('Active WebSockets:', connections.connections);
425
-
426
- // Ver mensajes enviados y recibidos
427
- const messages = await mcp.call('list_websocket_messages', {
428
- direction: 'all',
429
- limit: 50
430
- });
431
- console.log('WS Messages:', messages.messages);
432
-
433
- // Inyectar un mensaje falso
434
- await mcp.call('send_websocket_message', {
435
- requestId: 'ws-connection-id',
436
- message: JSON.stringify({ type: 'ping', timestamp: Date.now() })
437
- });
438
- ```
439
-
440
- ### Ejemplo 10: HAR recording
441
- ```typescript
442
- // Iniciar grabación de tráfico de red en formato HAR
443
- await mcp.call('start_har_recording', {});
444
-
445
- // Navegar y realizar acciones
446
- await mcp.call('navigate', { url: 'https://example.com' });
447
- await mcp.call('click', { selector: 'button.load-data' });
448
- await new Promise(resolve => setTimeout(resolve, 3000));
449
-
450
- // Detener y obtener HAR data
451
- const harData = await mcp.call('stop_har_recording', {});
452
- console.log(`Captured ${harData.entriesCount} requests`);
453
-
454
- // Exportar a archivo
455
- // timeoutMs: Importante aumentarlo si el HAR es muy grande (>50MB)
456
- await mcp.call('export_har_file', {
457
- filename: 'recording.har',
458
- outputDir: './recordings',
459
- timeoutMs: 90000 // 90s para exportar HARs muy grandes
460
- });
461
- ```
462
-
463
- ### Ejemplo 11: Advanced request patterns
464
- ```typescript
465
- // Crear patrón avanzado: bloquear imágenes grandes
466
- await mcp.call('add_advanced_interception_pattern', {
467
- name: 'block-large-images',
468
- resourceType: 'Image',
469
- minSize: 500000, // > 500KB
470
- action: 'block'
471
- });
472
-
473
- // Crear patrón: delay requests lentos
474
- await mcp.call('add_advanced_interception_pattern', {
475
- name: 'delay-slow-apis',
476
- urlPattern: '*slow-api.com/*',
477
- statusCodeMin: 200,
478
- statusCodeMax: 299,
479
- action: 'delay',
480
- delayMs: 2000
481
- });
482
-
483
- // Patrón: log requests específicos
484
- await mcp.call('add_advanced_interception_pattern', {
485
- name: 'log-analytics',
486
- urlPattern: '*analytics*',
487
- method: 'POST',
488
- action: 'log'
489
- });
490
- ```
491
-
492
- ### Ejemplo 12: CSS/JS injection pipeline
493
- ```typescript
494
- // Inyectar CSS globalmente (se aplica a TODAS las páginas)
495
- // timeoutMs: Aumentar si el CSS es muy grande o complejo
496
- await mcp.call('inject_css_global', {
497
- css: `
498
- body {
499
- background-color: #f0f0f0 !important;
500
- }
501
- .ad-banner {
502
- display: none !important;
503
- }
504
- `,
505
- name: 'dark-mode-and-no-ads',
506
- timeoutMs: 8000 // 8s para CSS pequeño
507
- });
508
-
509
- // Inyectar JavaScript que se ejecuta ANTES de cualquier script de la página
510
- // timeoutMs: Critical para JS complejos con validación de sintaxis
511
- await mcp.call('inject_js_global', {
512
- javascript: `
513
- // Interceptar fetch para logging
514
- const originalFetch = window.fetch;
515
- window.fetch = function(...args) {
516
- console.log('Fetch intercepted:', args[0]);
517
- return originalFetch.apply(this, args);
518
- };
519
-
520
- // Agregar funciones helper globales
521
- window.myCustomHelper = function() {
522
- console.log('Helper function available globally!');
523
- };
524
- `,
525
- name: 'fetch-interceptor',
526
- runImmediately: true,
527
- timeoutMs: 18000 // 18s para JS complejo con validación
528
- });
529
-
530
- // Listar inyecciones activas
531
- const injections = await mcp.call('list_injected_scripts', {});
532
- console.log('Active injections:', injections.injections);
533
-
534
- // Remover una inyección específica
535
- await mcp.call('remove_injection', {
536
- identifier: 'injection-id-here'
537
- });
538
-
539
- // O limpiar todas
540
- await mcp.call('clear_all_injections', {});
541
- ```
542
- const workers = await mcp.call('list_service_workers', {});
543
- console.log(workers.workers);
544
-
545
- // Actualizar un service worker específico
546
- await mcp.call('update_service_worker', {
547
- scopeURL: 'https://example.com/'
548
- });
549
-
550
- // Ver cachés
551
- const caches = await mcp.call('get_sw_caches', {});
552
- console.log(caches.caches);
553
- ```
554
-
555
- ## 🔧 Configuración Avanzada
556
-
557
- ### Puerto personalizado
558
- ```json
559
- {
560
- "custom-chrome-mcp": {
561
- "command": "npx",
562
- "args": ["custom-chrome-mcp", "--port=9333"]
563
- }
564
- }
565
- ```
566
-
567
- ### Variables de entorno
568
- Puedes configurar:
569
- - `CHROME_PORT` - Puerto de debugging (default: 9222)
570
-
571
- ## 🎯 Ventajas sobre otros MCPs
572
-
573
- | Característica | Custom Chrome MCP | chrome-devtools-mcp | playwright-mcp |
574
- |----------------|-------------------|---------------------|----------------|
575
- | Conecta a Chrome existente | ✅ | ❌ | ❌ |
576
- | Usa sesiones reales | ✅ | ❌ | ❌ |
577
- | Anti-detección | ✅ | ❌ | ⚠️ |
578
- | Service Workers | ✅ | ⚠️ | ⚠️ |
579
- | Exportar/importar sesiones | ✅ | ❌ | ❌ |
580
- | Response Interception | ✅ | ❌ | ⚠️ |
581
- | API Mocking | ✅ | ❌ | ⚠️ |
582
- | WebSocket Interception | ✅ | ❌ | ❌ |
583
- | HAR Recording | ✅ | ❌ | ⚠️ |
584
- | CSS/JS Injection | ✅ | ❌ | ⚠️ |
585
- | Delays human-like | ✅ | ❌ | ⚠️ |
586
- | Multi-tab | ✅ | ✅ | ✅ |
587
- | Screenshots | ✅ | ✅ | ✅ |
588
- | Total herramientas | **84** | ~20 | ~30 |
589
-
590
- ## 🐛 Troubleshooting
591
-
592
- ### Error: Failed to connect to Chrome
593
- **Solución:** Asegúrate de que Chrome está corriendo con `--remote-debugging-port=9222`
594
-
595
- ```powershell
596
- # Verifica que el puerto está abierto
597
- netstat -an | findstr 9222
598
- ```
599
-
600
- ### Chrome detecta automatización
601
- **Solución:** Usa `enable_stealth_mode` antes de navegar a sitios sensibles
602
-
603
- ```typescript
604
- await mcp.call('enable_stealth_mode', {});
605
- ```
606
-
607
- ### Service Workers no aparecen
608
- **Solución:** Los Service Workers solo funcionan con HTTPS o localhost. Usa un servidor local:
609
-
610
- ```bash
611
- python -m http.server 8000
612
- # Luego navega a http://localhost:8000
613
- ```
614
-
615
- ## 📝 Desarrollo
616
-
617
- ### Estructura del proyecto
618
- ```
619
- custom-chrome-mcp/
620
- ├── src/
621
- │ ├── index.ts # Servidor MCP principal
622
- │ ├── chrome-connector.ts # Conexión a Chrome
623
- │ ├── tools/
624
- │ │ ├── navigation.ts # Navegación
625
- │ │ ├── interaction.ts # Interacción
626
- │ │ ├── anti-detection.ts # Anti-detección
627
- │ │ ├── service-worker.ts # Service Workers
628
- │ │ ├── capture.ts # Capturas
629
- │ │ └── session.ts # Sesiones
630
- │ ├── utils/
631
- │ │ └── helpers.ts # Utilidades
632
- │ └── types/
633
- │ └── index.ts # Tipos TypeScript
634
- ├── package.json
635
- └── tsconfig.json
636
- ```
637
-
638
- ### Comandos
639
- ```bash
640
- npm run build # Compilar TypeScript
641
- npm run dev # Modo desarrollo (watch)
642
- npm run lint # Lint código
643
- npm run format # Formatear código
644
- ```
645
-
646
- ### Añadir nuevas herramientas
647
-
648
- 1. Crea un nuevo archivo en `src/tools/`
649
- 2. Define tus herramientas usando el patrón:
650
-
651
- ```typescript
652
- export function createMyTools(connector: ChromeConnector) {
653
- return [
654
- {
655
- name: 'my_tool',
656
- description: 'Descripción de la herramienta',
657
- inputSchema: z.object({
658
- param: z.string().describe('Parámetro')
659
- }),
660
- handler: async ({ param }: any) => {
661
- // Implementación
662
- return { success: true };
663
- }
664
- }
665
- ];
666
- }
667
- ```
668
-
669
- 3. Importa y añade en [index.ts](src/index.ts)
670
-
671
- ## 📄 Licencia
672
-
673
- MIT © 2026 Eddy M
674
-
675
- ## 🤝 Contribuciones
676
-
677
- ¡Las contribuciones son bienvenidas! Por favor:
678
-
679
- 1. Fork el proyecto
680
- 2. Crea una rama para tu feature (`git checkout -b feature/amazing-feature`)
681
- 3. Commit tus cambios (`git commit -m 'Add amazing feature'`)
682
- 4. Push a la rama (`git push origin feature/amazing-feature`)
683
- 5. Abre un Pull Request
684
-
685
- ## 🙏 Agradecimientos
686
-
687
- - [Model Context Protocol](https://modelcontextprotocol.io/) - El protocolo que hace esto posible
688
- - [chrome-remote-interface](https://github.com/cyrus-and/chrome-remote-interface) - Cliente CDP para Node.js
689
- - La comunidad de Chrome DevTools
690
-
691
- ## 📧 Soporte
692
-
693
- Si encuentras algún problema o tienes preguntas:
694
- - Abre un issue en GitHub
695
- - Consulta la documentación de MCP
696
- - Revisa los ejemplos en este README
697
-
698
- ---
699
-
700
- **Hecho con ❤️ para automatizar Chrome de forma inteligente**
1
+ # Custom Chrome MCP Server
2
+
3
+ **Tu puente inteligente entre la IA y el Navegador.**
4
+
5
+ Este servidor MCP (Model Context Protocol) permite a asistentes como Claude, Roo Code o Windsurf interactuar con Google Chrome de una manera **natural y potente**. A diferencia de otras herramientas de automatizaci�n, esta soluci�n se conecta a tu navegador real, permiti�ndote usar tus sesiones iniciadas, cookies y extensiones sin ser detectado.
6
+
7
+ ---
8
+
9
+ ## �Por qu� usar esto?
10
+
11
+ * ** Navegaci�n "Humana":** Usa tu perfil de Chrome real. Si ya est�s logueado en LinkedIn, Gmail o tu ERP corporativo, la IA tambi�n lo estar�.
12
+ * ** Indetectable:** Tecnolog�as avanzadas de anti-detecci�n y "Shadow Profile" para evitar bloqueos en sitios complejos.
13
+ * ** Herramientas Robustas:** M�s de 40 herramientas optimizadas para extracci�n de datos (scraping), automatizaci�n de formularios y an�lisis visual.
14
+ * ** R�pido y Seguro:** Ejecuta scripts y capturas de pantalla de manera segura, truncando salidas gigantes para no saturar a la IA.
15
+
16
+ ---
17
+
18
+ ## Instalaci�n R�pida
19
+
20
+ ### Para Usuarios (VS Code / Roo Code / Claude Desktop)
21
+
22
+ Simplemente agrega esto a tu configuraci�n de `mcpServers` (archivo `mcp.json`):
23
+
24
+ ```json
25
+ {
26
+ "mcpServers": {
27
+ "custom-chrome-mcp": {
28
+ "command": "npx",
29
+ "args": ["-y", "@eddym06/custom-chrome-mcp", "--port=9223"]
30
+ }
31
+ }
32
+ }
33
+ ```
34
+
35
+ �Y listo! Al reiniciar tu asistente, tendr�s acceso a herramientas como `launch_chrome_with_profile`, `get_html`, `click`, `type`, etc.
36
+
37
+ ---
38
+
39
+ ## Gu�a de Uso Simplificada
40
+
41
+ ### 1. Iniciar el Navegador
42
+ La primera vez, pide a la IA:
43
+ > *"Lanza Chrome con mi perfil por default"*
44
+
45
+ Esto usar� la herramienta `launch_chrome_with_profile` para abrir una ventana de Chrome controlable sin cerrar tus otras ventanas.
46
+
47
+ ### 2. Navegar y Analizar
48
+ Puedes pedir cosas como:
49
+ * *"Ve a amazon.com y busca laptops"*
50
+ * *"Analiza el HTML de esta p�gina"* (Usa `get_html` optimizado)
51
+ * *"Toma una captura de pantalla"*
52
+
53
+ ### 3. Interactuar
54
+ La IA puede hacer clic, escribir y rellenar formularios por ti de manera inteligente, esperando a que los elementos carguen.
55
+
56
+ ---
57
+
58
+ ## Herramientas Destacadas
59
+
60
+ | Categor�a | Herramientas Clave | Descripci�n |
61
+ |-----------|-------------------|-------------|
62
+ | **Navegaci�n** | `browser_action`, `manage_tabs` | Control total de pesta�as, recargas y movimiento. |
63
+ | **An�lisis** | `get_html`, `screenshot`, `get_page_metrics` | Ve lo que ve el usuario. `get_html` incluye selectores inteligentes. |
64
+ | **Interacci�n** | `perform_interaction`, `execute_script` | Clics, escritura y ejecuci�n de JS seguro. |
65
+ | **Red** | `capture_network`, `resend_request` | (Avanzado) Analiza tr�fico y repite peticiones API. |
66
+
67
+ ---
68
+
69
+ ## Preguntas Frecuentes
70
+
71
+ **�Necesito cerrar mi Chrome?**
72
+ No. Gracias a la tecnolog�a "Shadow Profile", el servidor crea una copia segura de tu perfil temporalmente. Puedes seguir usando tu Chrome normal mientras la IA trabaja en paralelo.
73
+
74
+ **�Funciona en Mac y Linux?**
75
+ �S�! El sistema es totalmente multiplataforma.
76
+
77
+ **Me aparece "Tool disabled by user"**
78
+ Esto es un tema de seguridad de tu editor (VS Code). Generalmente se soluciona reiniciando la ventana (`Ctrl+R`) y aprobando los nuevos permisos cuando la IA intenta usar una herramienta.
79
+
80
+ ---
81
+
82
+ ## Para Desarrolladores
83
+
84
+ Si quieres contribuir o correrlo localmente:
85
+
86
+ 1. Clona el repositorio.
87
+ 2. Instala dependencias: `npm install`
88
+ 3. Construye: `npm run build`
89
+ 4. Inicia: `npm start`
90
+
91
+ ---
92
+ *Desarrollado con por @eddym06*
@@ -101,7 +101,7 @@ export function createCaptureTools(connector) {
101
101
  // Get page HTML
102
102
  {
103
103
  name: 'get_html',
104
- description: '🔍 CRITICAL ANALYSIS TOOL - extracts complete HTML source code. ⚠️ USE THIS FIRST BEFORE ANY INTERACTION! PROPER WORKFLOW: 1️⃣ navigate → 2️⃣ get_html (analyze structure) → 3️⃣ identify selectors from HTML (buttons: button.submit, inputs: input#email, links: a.nav-link) → 4️⃣ THEN click/type with verified selectors. NEVER guess selectors! Get HTML returns: element IDs, classes, button text, input names, form structure, links. Essential for: web scraping, finding correct selectors, analyzing page structure.',
104
+ description: '🔍 CRITICAL ANALYSIS TOOL - extracts HTML source. OUTPUT TRUNCATED at 50k chars - use specific selector for large pages. WORKFLOW: 1️⃣ navigate → 2️⃣ get_html (analyze) → 3️⃣ interact. returns: IDs, classes, text. Essential for scraping & selector verification.',
105
105
  inputSchema: z.object({
106
106
  selector: z.string().optional().describe('CSS selector to extract HTML from (e.g. "div.main-content", "#login-form"). If omitted, returns full page HTML.'),
107
107
  tabId: z.string().optional().describe('Tab ID (optional)'),
@@ -1 +1 @@
1
- {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/tools/capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/tools/capture.ts"],"names":[],"mappings":"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"}
@@ -174,7 +174,7 @@ export function createInteractionTools(connector) {
174
174
  // Execute JavaScript (Kept separate as it's a "Catch-all" for advanced usage)
175
175
  {
176
176
  name: 'execute_script',
177
- description: '⚠️ Execute JavaScript in page. WARNING: If replaying network packets, use resend_network_request instead! BEST PRACTICES: 1️⃣ Prefer perform_interaction/extract_element_data. 2️⃣ Use ONLY for: complex queries, custom events, DOM manipulation. 3️⃣ NEVER use fetch() for replaying captured traffic - use resend_network_request. 4️⃣ ALWAYS include "return" statement.',
177
+ description: '⚠️ Execute JavaScript in page. IMPORTANT: You MUST use "return" to get results. FOR ASYNC: Set awaitPromise=true. WARNING: Do NOT use fetch() for traffic replay (use resend_network_request). BEST PRACTICES: Use for complex DOM/events only.',
178
178
  inputSchema: z.object({
179
179
  script: z.string().describe('JavaScript code to execute. MUST include "return" statement.'),
180
180
  tabId: z.string().optional().describe('Tab ID (optional)'),
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/tools/interaction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,UAAU,sBAAsB,CAAC,SAA0B;IAC/D,OAAO;QACL,gCAAgC;QAChC;YACE,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,+SAA+S;YAC5T,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAC3F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;gBAC3G,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;gBACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;gBACvF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;gBACtE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;gBACtE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAC1D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;aACzE,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,EAAO,EAAE,EAAE;gBAC5G,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;gBAEhC,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;gBAEnB,WAAW;gBACX,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;oBACrB,IAAI,CAAC,QAAQ;wBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBAE9D,0BAA0B;oBAC1B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;wBACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC;4BAClC,UAAU,EAAE,2BAA2B,QAAQ,aAAa;yBAC/D,CAAC,CAAC;wBACH,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;oBACxC,CAAC,EAAE,SAAS,CAAC,CAAC;oBACd,IAAI,CAAC,KAAK;wBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;oBAE/D,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAE3B,MAAM,MAAM,GAAQ,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;wBACnD,UAAU,EAAE;;6DAEiC,QAAQ;;;;;;iBAMpD;wBACD,YAAY,EAAE,IAAI;qBACrB,CAAC,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC;oBAEzC,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;wBACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;oBACxF,CAAC;oBACD,MAAM,UAAU,EAAE,CAAC;oBACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE,EAAE,CAAC;gBAC7D,CAAC;gBAED,UAAU;gBACV,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACpB,IAAI,CAAC,QAAQ;wBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;oBAC7D,IAAI,IAAI,KAAK,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;oBAElE,MAAM,MAAM,GAAG;;yDAE8B,QAAQ;;;;;mCAK9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;;;;;;;;aAS1C,CAAC;oBAEF,MAAM,MAAM,GAAQ,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;oBACxI,IAAI,MAAM,CAAC,gBAAgB;wBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;oBAE/G,MAAM,UAAU,EAAE,CAAC;oBACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,IAAI,UAAU,QAAQ,EAAE,EAAE,CAAC;gBAC1E,CAAC;gBAED,YAAY;gBACZ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACrB,IAAI,CAAC,QAAQ;wBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;oBAC/D,IAAI,KAAK,KAAK,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;oBAEtE,MAAM,OAAO,CAAC,QAAQ,CAAC;wBACpB,UAAU,EAAE;;iEAEqC,QAAQ;;0CAE/B,KAAK;;;;iBAI9B;qBACH,CAAC,CAAC;oBACH,MAAM,UAAU,EAAE,CAAC;oBACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,KAAK,QAAQ,QAAQ,EAAE,EAAE,CAAC;gBAC7E,CAAC;gBAED,YAAY;gBACZ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACtB,MAAM,YAAY,GAAG,QAAQ;wBACzB,CAAC,CAAC,2BAA2B,QAAQ,eAAe,WAAW,KAAK,WAAW,GAAG;wBAClF,CAAC,CAAC,mBAAmB,WAAW,KAAK,WAAW,GAAG,CAAC;oBACxD,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;oBACrD,MAAM,UAAU,EAAE,CAAC;oBACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,WAAW,IAAI,WAAW,EAAE,EAAE,CAAC;gBACnF,CAAC;gBAED,UAAU;gBACV,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACpB,IAAI,CAAC,QAAQ;wBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;oBAC7D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;wBACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC;4BAClC,UAAU,EAAE,2BAA2B,QAAQ,aAAa;yBAC/D,CAAC,CAAC;wBACH,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;oBACxC,CAAC,EAAE,SAAS,CAAC,CAAC;oBACd,IAAI,CAAC,KAAK;wBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;oBAC/D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,QAAQ,EAAE,EAAE,CAAC;gBACpE,CAAC;gBAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;YAC/C,CAAC;SACF;QAED,+BAA+B;QAC/B;YACE,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,gOAAgO;YAC7O,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBACjE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC7C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;gBACjG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;aAC3D,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAO,EAAE,EAAE;gBACjE,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;gBAC3B,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;gBAEvB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACpB,MAAM,MAAM,GAAQ,MAAM,OAAO,CAAC,QAAQ,CAAC;wBACvC,UAAU,EAAE,oDAAoD,QAAQ,oDAAoD;qBAC/H,CAAC,CAAC;oBACH,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;wBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;oBACpF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;gBAClE,CAAC;gBAED,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;oBACzB,IAAI,CAAC,aAAa;wBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBAC/D,MAAM,MAAM,GAAQ,MAAM,OAAO,CAAC,QAAQ,CAAC;wBACvC,UAAU,EAAE,oDAAoD,QAAQ,oCAAoC,aAAa,mCAAmC;wBAC5J,aAAa,EAAE,IAAI;qBACtB,CAAC,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;oBAChC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO;wBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;oBAC1E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;gBAC7E,CAAC;gBAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;YAC/C,CAAC;SACF;QAED,8EAA8E;QAC9E;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,8WAA8W;YAC3X,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;gBAC3F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAC1D,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;gBAChF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;aACpF,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,GAAG,KAAK,EAAO,EAAE,EAAE;gBACzE,IAAI,CAAC;oBACH,uDAAuD;oBACvD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;wBACzF,OAAO;4BACL,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,mFAAmF;4BAC1F,UAAU,EAAE,8FAA8F;4BAC1G,IAAI,EAAE,uFAAuF;yBAC9F,CAAC;oBACJ,CAAC;oBAED,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;oBACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;oBAC3B,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;oBAEvB,MAAM,aAAa,GAAG;;;+CAGe,MAAM;;;;;;;WAO1C,CAAC;oBAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;wBAChD,UAAU,EAAE,aAAa;wBACzB,YAAY;wBACZ,aAAa,EAAE,IAAI;wBACnB,WAAW,EAAE,IAAI;qBAClB,CAAC,EAAE,SAAS,EAAE,4BAA4B,CAAQ,CAAC;oBAEpD,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;wBAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,IAAI,OAAO,EAAE,CAAC;oBAC9F,CAAC;oBAED,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;oBACtC,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;wBACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxD,CAAC;oBAED,kCAAkC;oBAClC,IAAI,aAAa,GAAG,EAAE,CAAC;oBAEvB,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;wBAClE,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;wBAC7D,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC;wBAC7B,aAAa,GAAG;4BACd,SAAS,EAAE,IAAI;4BACf,YAAY,EAAE,SAAS,CAAC,SAAS;4BACjC,OAAO,EAAE,yEAAyE;yBACnF,CAAC;oBACJ,CAAC;oBAED,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,WAAW;wBACnB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;wBACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;wBAClC,GAAG,aAAa;qBACjB,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClD,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/tools/interaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=verify_schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify_schema.d.ts","sourceRoot":"","sources":["../src/verify_schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,65 @@
1
+ import { z } from 'zod';
2
+ import { createCaptureTools } from './tools/capture.js';
3
+ import { createInteractionTools } from './tools/interaction.js';
4
+ // Mock ChromeConnector
5
+ const mockConnector = {
6
+ verifyConnection: async () => { },
7
+ getTabClient: async () => ({
8
+ Page: { enable: async () => { }, captureScreenshot: async () => ({ data: 'test' }) },
9
+ Runtime: { enable: async () => { }, evaluate: async () => ({ result: { value: 'test' } }) }
10
+ })
11
+ };
12
+ async function testTools() {
13
+ console.log('Testing tool creation...');
14
+ try {
15
+ const captureTools = createCaptureTools(mockConnector);
16
+ const interactionTools = createInteractionTools(mockConnector);
17
+ const allTools = [...captureTools, ...interactionTools];
18
+ console.log(`Successfully created ${allTools.length} tools.`);
19
+ for (const tool of allTools) {
20
+ console.log(`Validating tool: ${tool.name}`);
21
+ // 1. Check if inputSchema is a Zod schema
22
+ if (!(tool.inputSchema instanceof z.ZodType)) {
23
+ console.error(`ERROR: Tool ${tool.name} has invalid inputSchema type`);
24
+ }
25
+ // 2. Try to parse a mock object (empty or with basic props) to see if it throws unexpected errors
26
+ // Note: validation errors are expected if required fields are missing, but we checking for "parse is not a function" type errors.
27
+ try {
28
+ const shape = tool.inputSchema.shape;
29
+ // Construct minimal valid input
30
+ const input = {};
31
+ for (const key in shape) {
32
+ if (tool.name === 'perform_interaction' && key === 'action')
33
+ input[key] = 'wait';
34
+ else if (tool.name === 'perform_interaction' && key === 'selector')
35
+ input[key] = 'body';
36
+ else if (tool.name === 'extract_element_data' && key === 'action')
37
+ input[key] = 'text';
38
+ else if (tool.name === 'extract_element_data' && key === 'selector')
39
+ input[key] = 'body';
40
+ else if (tool.name === 'execute_script' && key === 'script')
41
+ input[key] = 'return 1;';
42
+ else if (tool.name === 'screenshot' && key === 'format')
43
+ input[key] = 'png';
44
+ }
45
+ tool.inputSchema.parse(input);
46
+ console.log(` - Schema check: OK`);
47
+ }
48
+ catch (e) {
49
+ // ZodError is fine (validation failed), but TypeErrors are bad.
50
+ if (e.constructor.name === 'ZodError') {
51
+ console.log(` - Schema check: OK (Validation active)`);
52
+ }
53
+ else {
54
+ console.error(` - Schema check: FAILED (${e.message})`);
55
+ }
56
+ }
57
+ }
58
+ console.log('All tools validated successfully.');
59
+ }
60
+ catch (error) {
61
+ console.error('CRITICAL ERROR in tool creation:', error);
62
+ }
63
+ }
64
+ testTools();
65
+ //# sourceMappingURL=verify_schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify_schema.js","sourceRoot":"","sources":["../src/verify_schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eddym06/custom-chrome-mcp",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "description": "Cross-platform Chrome MCP with real-time request interception, response modification, network capture, HAR recording/replay, accessibility testing, anti-detection, and 91 tools. Includes smart workflows for common tasks. Works on Windows, Mac, and Linux.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
File without changes