@dynamicu/chromedebug-mcp 2.7.2 → 2.7.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/CLAUDE.md +18 -0
- package/README.md +226 -16
- package/chrome-extension/background.js +547 -56
- package/chrome-extension/browser-recording-manager.js +34 -0
- package/chrome-extension/content.js +438 -32
- package/chrome-extension/firebase-config.public-sw.js +1 -1
- package/chrome-extension/firebase-config.public.js +1 -1
- package/chrome-extension/frame-capture.js +31 -10
- package/chrome-extension/image-processor.js +193 -0
- package/chrome-extension/manifest.free.json +1 -1
- package/chrome-extension/popup.html +82 -4
- package/chrome-extension/popup.js +1106 -38
- package/chrome-extension/pro/frame-editor.html +259 -6
- package/chrome-extension/pro/frame-editor.js +959 -10
- package/chrome-extension/pro/video-exporter.js +917 -0
- package/chrome-extension/pro/video-player.js +545 -0
- package/dist/chromedebug-extension-free.zip +0 -0
- package/package.json +1 -1
- package/scripts/postinstall.js +1 -1
- package/scripts/webpack.config.free.cjs +6 -0
- package/scripts/webpack.config.pro.cjs +6 -0
- package/src/chrome-controller.js +6 -6
- package/src/database.js +157 -39
- package/src/http-server.js +55 -11
- package/src/validation/schemas.js +11 -1
package/CLAUDE.md
CHANGED
|
@@ -66,6 +66,13 @@ npm run update-extension-config # Update Chrome extension config
|
|
|
66
66
|
# 2. Enable Developer mode
|
|
67
67
|
# 3. Click "Load unpacked"
|
|
68
68
|
# 4. Select chrome-extension/ directory
|
|
69
|
+
|
|
70
|
+
# Build extension packages
|
|
71
|
+
npm run build:free # Build FREE version (webpack bundle)
|
|
72
|
+
npm run build:pro # Build PRO version (webpack bundle)
|
|
73
|
+
npm run build:both # Build both versions
|
|
74
|
+
npm run package-pro # Package PRO extension for distribution
|
|
75
|
+
npm run package-webstore # Package for Chrome Web Store submission
|
|
69
76
|
```
|
|
70
77
|
|
|
71
78
|
### VS Code Extension
|
|
@@ -121,15 +128,19 @@ npm run compile
|
|
|
121
128
|
|
|
122
129
|
- **Element Selection**: Click elements to select for AI manipulation
|
|
123
130
|
- **Screen Recording**: Capture video + console logs for debugging
|
|
131
|
+
- **Workflow Recording**: Record user actions with screenshots for replay
|
|
132
|
+
- **Screenshot Recording**: Click-to-capture mode with countdown (0/3/5 seconds)
|
|
124
133
|
- **Frame Capture**: Optimized frame capture for videos
|
|
125
134
|
- **WebRTC Override**: Redirects webcam to screen capture
|
|
126
135
|
- **Download ZIP Export**: Export recordings as ZIP packages with screenshots and JSON metadata
|
|
136
|
+
- **Tab Filtering**: Filter recordings by type (All/Workflow/Screenshots)
|
|
127
137
|
|
|
128
138
|
### Chrome Extension Versions
|
|
129
139
|
|
|
130
140
|
**FREE Version** (npm package / direct install):
|
|
131
141
|
- 5 recordings per day limit
|
|
132
142
|
- All core recording features
|
|
143
|
+
- Watermarked images (applied at display/export time, not storage)
|
|
133
144
|
- Local storage only
|
|
134
145
|
- No external data transmission
|
|
135
146
|
|
|
@@ -299,6 +310,13 @@ The package name is `chromedebug-mcp` but the project is commonly referred to as
|
|
|
299
310
|
- Supports restore points for reverting to previous states
|
|
300
311
|
- Stores DOM snapshots, form values, storage, and cookies
|
|
301
312
|
- Enables replay and debugging of complex workflows
|
|
313
|
+
- Two modes: `workflow` (action tracking) and `screenshot` (click-to-capture)
|
|
314
|
+
- Console logs associated with actions using timestamp windowing
|
|
315
|
+
|
|
316
|
+
### Recording Mode Database Schema
|
|
317
|
+
- `recording_mode` column: 'workflow' or 'screenshot'
|
|
318
|
+
- NULL values treated as 'workflow' for backward compatibility
|
|
319
|
+
- Tab filtering uses SQL: `WHERE (recording_mode = ? OR recording_mode IS NULL)`
|
|
302
320
|
|
|
303
321
|
### Testing Framework
|
|
304
322
|
- **Jest-based**: Uses Jest with ES modules support (`NODE_OPTIONS='--experimental-vm-modules'`)
|
package/README.md
CHANGED
|
@@ -3,7 +3,15 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@dynamicu/chromedebug-mcp)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
|
|
6
|
-
ChromeDebug MCP is a Model Context Protocol (MCP) server that gives AI assistants like Claude Code full control over a Chrome browser instance. It provides comprehensive browser automation, debugging, and
|
|
6
|
+
ChromeDebug MCP is a Model Context Protocol (MCP) server that gives AI assistants like Claude Code full control over a Chrome browser instance. It provides comprehensive browser automation, debugging, and recording capabilities optimized for AI-assisted development.
|
|
7
|
+
|
|
8
|
+
**Key Features:**
|
|
9
|
+
- **Multiple Recording Modes:** Screen recording, workflow recording, and screenshot recording with countdown
|
|
10
|
+
- **Visual Element Selection:** Click to select elements and modify them via MCP tools
|
|
11
|
+
- **Frame-by-Frame Capture:** High-quality screenshots with synchronized console logs
|
|
12
|
+
- **Video Export (PRO):** Export recordings as MP4 videos with customizable settings
|
|
13
|
+
- **Workflow Replay:** Record and replay user interactions for debugging
|
|
14
|
+
- **100% Local:** All data stored locally - no cloud uploads
|
|
7
15
|
|
|
8
16
|
## 🎥 See It In Action
|
|
9
17
|
|
|
@@ -35,6 +43,8 @@ Install the Chrome extension to enable visual element selection and recording fe
|
|
|
35
43
|
|
|
36
44
|
- ✅ 5 recordings per day (FREE version)
|
|
37
45
|
- ✅ Visual element selection
|
|
46
|
+
- ✅ Screen, workflow, and screenshot recording
|
|
47
|
+
- ✅ Frame viewer with console logs
|
|
38
48
|
- ✅ Full MCP integration
|
|
39
49
|
- ✅ Automatic updates
|
|
40
50
|
|
|
@@ -50,9 +60,11 @@ npm install
|
|
|
50
60
|
## Installing PRO Version
|
|
51
61
|
|
|
52
62
|
ChromeDebug PRO adds advanced features including:
|
|
63
|
+
- **Unlimited recordings** - No daily recording limits
|
|
64
|
+
- **Export as ZIP/MP4** - Download recordings as image archives or videos
|
|
53
65
|
- **Function call tracking** - Record and replay function execution traces
|
|
54
66
|
- **Advanced debugging** - Enhanced breakpoint and inspection capabilities
|
|
55
|
-
- **
|
|
67
|
+
- **Clean exports** - No watermarks on images or videos
|
|
56
68
|
- Priority support and updates
|
|
57
69
|
|
|
58
70
|
### 🎥 PRO Installation Video
|
|
@@ -65,7 +77,7 @@ Watch the step-by-step installation guide:
|
|
|
65
77
|
|
|
66
78
|
### Installation Steps
|
|
67
79
|
|
|
68
|
-
After purchasing ChromeDebug PRO from [LemonSqueezy](https://chromedebug.com/buy/996773cb-682b-430f-b9e3-9ce2130bd967):
|
|
80
|
+
After purchasing ChromeDebug PRO from [LemonSqueezy](https://chromedebug.com/checkout/buy/996773cb-682b-430f-b9e3-9ce2130bd967):
|
|
69
81
|
|
|
70
82
|
1. **Download your PRO extension** from the purchase confirmation email (you'll receive a ZIP file named `chromedebug-extension-pro.zip`)
|
|
71
83
|
2. **Run the installer**:
|
|
@@ -275,24 +287,57 @@ Chrome Debug can automatically start an embedded HTTP server for Chrome extensio
|
|
|
275
287
|
|
|
276
288
|
When used as an MCP server, Chrome Debug exposes these tools:
|
|
277
289
|
|
|
278
|
-
|
|
279
|
-
- `
|
|
280
|
-
- `
|
|
281
|
-
- `
|
|
282
|
-
- `take_screenshot` - Take a screenshot
|
|
283
|
-
- `get_page_content` - Get page content (text, HTML, and DOM structure)
|
|
290
|
+
**Browser Control:**
|
|
291
|
+
- `launch_chrome` - Start a new Chrome browser instance
|
|
292
|
+
- `connect_to_existing_chrome` - Connect to existing Chrome with debugging enabled
|
|
293
|
+
- `navigate_to` - Navigate to a URL
|
|
284
294
|
- `check_connection` - Check Chrome connection status
|
|
285
295
|
- `force_reset` - Force reset Chrome instance
|
|
296
|
+
|
|
297
|
+
**Page Inspection:**
|
|
298
|
+
- `take_screenshot` - Capture page screenshot (AI-optimized by default)
|
|
299
|
+
- `get_page_content` - Extract page text, HTML, and DOM structure
|
|
300
|
+
- `evaluate_expression` - Execute JavaScript expression in page context
|
|
301
|
+
- `get_logs` - Retrieve console logs
|
|
302
|
+
|
|
303
|
+
**Element Selection (via Chrome Extension):**
|
|
286
304
|
- `get_selected_element` - Get info about element selected via extension
|
|
287
305
|
- `apply_css_to_selected` - Apply CSS to the selected element
|
|
288
306
|
- `execute_js_on_selected` - Execute JavaScript on the selected element
|
|
289
307
|
- `clear_selected_element` - Clear the current selection
|
|
290
|
-
|
|
308
|
+
|
|
309
|
+
**Debugging:**
|
|
310
|
+
- `pause_execution` / `resume_execution` - Debugger control
|
|
311
|
+
- `step_over` - Step over in debugger
|
|
312
|
+
- `set_breakpoint` - Set debugging breakpoints
|
|
313
|
+
- `get_scopes` - Get scope variables from top call frame
|
|
314
|
+
|
|
315
|
+
**Workflow Recording:**
|
|
316
|
+
- `get_workflow_recording` - Get a workflow recording with actions and logs (can be large)
|
|
291
317
|
- `list_workflow_recordings` - List all workflow recordings
|
|
292
|
-
- `
|
|
318
|
+
- `get_workflow_summary` - Get a concise summary of a workflow recording
|
|
319
|
+
- `get_workflow_function_traces` - Get only function execution traces
|
|
320
|
+
- `get_workflow_errors` - Get only error logs and error-related actions
|
|
321
|
+
- `get_workflow_actions_filtered` - Get filtered workflow actions by type with pagination
|
|
322
|
+
- `play_workflow_recording` - Replay a saved workflow recording
|
|
323
|
+
- `play_workflow_by_name` - Replay workflow by recording name
|
|
324
|
+
|
|
325
|
+
**Restore Points:**
|
|
326
|
+
- `save_restore_point` - Save browser state restore point
|
|
293
327
|
- `restore_from_point` - Restore browser to a saved restore point
|
|
294
328
|
- `list_restore_points` - List restore points for a workflow
|
|
295
329
|
|
|
330
|
+
**Frame Recording (Screen Capture):**
|
|
331
|
+
- `chromedebug_show_frames` - Display frame recording info
|
|
332
|
+
- `get_frame_session_info` - Get frame capture session info
|
|
333
|
+
- `get_frame` - Get specific frame from recording
|
|
334
|
+
- `get_frame_screenshot` - Get screenshot image data as base64
|
|
335
|
+
- `search_frame_logs` - Search logs across all frames
|
|
336
|
+
- `get_frame_logs_paginated` - Get paginated frame logs
|
|
337
|
+
|
|
338
|
+
**Extension Integration:**
|
|
339
|
+
- `get_websocket_info` - Get WebSocket server info for extension connection
|
|
340
|
+
|
|
296
341
|
## Example
|
|
297
342
|
|
|
298
343
|
```bash
|
|
@@ -339,7 +384,7 @@ Install the FREE version directly from the Chrome Web Store:
|
|
|
339
384
|
|
|
340
385
|
For unlimited recordings and advanced features, purchase the PRO version:
|
|
341
386
|
|
|
342
|
-
💎 **[Get PRO Version](https://chromedebug.com/buy/996773cb-682b-430f-b9e3-9ce2130bd967)**
|
|
387
|
+
💎 **[Get PRO Version](https://chromedebug.com/checkout/buy/996773cb-682b-430f-b9e3-9ce2130bd967)**
|
|
343
388
|
|
|
344
389
|
- ✅ Unlimited recordings
|
|
345
390
|
- ✅ Advanced function tracing
|
|
@@ -359,12 +404,35 @@ For unlimited recordings and advanced features, purchase the PRO version:
|
|
|
359
404
|
- `execute_js_on_selected` - Execute JavaScript on the element
|
|
360
405
|
- `clear_selected_element` - Clear the selection
|
|
361
406
|
|
|
362
|
-
2. **
|
|
407
|
+
2. **Screen Recording**
|
|
408
|
+
- Capture video of the current tab with synchronized console logs
|
|
409
|
+
- All user interactions (clicks, inputs, scrolling) are tracked
|
|
410
|
+
- Recordings stored locally in SQLite database
|
|
411
|
+
|
|
412
|
+
3. **Workflow Recording**
|
|
363
413
|
- Click "Start Workflow Recording" to record user interactions
|
|
364
|
-
- All clicks, inputs, and drags are captured
|
|
365
|
-
- Console logs
|
|
414
|
+
- All clicks, inputs, and drags are captured with screenshots
|
|
415
|
+
- Console logs included and associated with each action
|
|
366
416
|
- Workflows can be replayed later for debugging
|
|
367
417
|
|
|
418
|
+
4. **Screenshot Recording** (NEW)
|
|
419
|
+
- Click-to-capture mode with configurable countdown (0/3/5 seconds)
|
|
420
|
+
- Captures the RESULT of a click, not the moment of clicking
|
|
421
|
+
- Perfect for documenting dropdown menus, modals, and form responses
|
|
422
|
+
- Filter recordings by type using the tab system
|
|
423
|
+
|
|
424
|
+
5. **Frame Editor** (PRO)
|
|
425
|
+
- Browse all frames with visual timeline
|
|
426
|
+
- Delete unwanted frames
|
|
427
|
+
- Export as ZIP or MP4 video
|
|
428
|
+
- Full console log synchronization
|
|
429
|
+
|
|
430
|
+
6. **Video Player** (PRO)
|
|
431
|
+
- Play recordings at various speeds (0.25x - 4x)
|
|
432
|
+
- Seek to any frame
|
|
433
|
+
- Synchronized log panel
|
|
434
|
+
- Export to MP4 format
|
|
435
|
+
|
|
368
436
|
### Managing License Activations
|
|
369
437
|
|
|
370
438
|
Chrome Debug uses a license activation system to prevent activation limit exhaustion when reinstalling the extension.
|
|
@@ -519,4 +587,146 @@ Screen recordings now automatically capture all user interactions:
|
|
|
519
587
|
- `get_recording` - Retrieve a recording by ID to analyze video and logs
|
|
520
588
|
- `chromedebug_show_frames` - Display frame-by-frame recording with interactions and logs
|
|
521
589
|
- `get_frame` - Get specific frame with its interactions and console logs
|
|
522
|
-
- `get_screen_interactions` - Query specific interaction data from recordings
|
|
590
|
+
- `get_screen_interactions` - Query specific interaction data from recordings
|
|
591
|
+
|
|
592
|
+
## Screenshot Recording (Click-to-Capture)
|
|
593
|
+
|
|
594
|
+
Screenshot Recording is a dedicated mode for capturing high-quality screenshots with an optional countdown timer. Unlike Workflow Recording which captures actions immediately, Screenshot Recording waits for the page to respond to your click before capturing.
|
|
595
|
+
|
|
596
|
+
### How It Works
|
|
597
|
+
|
|
598
|
+
1. **Start Screenshot Recording** from the extension popup
|
|
599
|
+
2. **Click anywhere on the page** to trigger a capture
|
|
600
|
+
3. **Countdown timer** (0/3/5 seconds) gives the page time to respond
|
|
601
|
+
4. **Screenshot captured** after the countdown
|
|
602
|
+
|
|
603
|
+
### Use Cases
|
|
604
|
+
|
|
605
|
+
- **Capture dropdown menus:** Click to open, countdown lets menu animate, screenshot captures open state
|
|
606
|
+
- **Document form submissions:** Click submit, countdown waits for response, screenshot shows result
|
|
607
|
+
- **Record modal dialogs:** Click trigger, countdown waits for animation, screenshot shows modal
|
|
608
|
+
- **Step-by-step documentation:** Each click captures the result, not the moment of clicking
|
|
609
|
+
|
|
610
|
+
### Settings
|
|
611
|
+
|
|
612
|
+
- **Countdown Timer:** 0 seconds (instant), 3 seconds (default), or 5 seconds
|
|
613
|
+
- **Hide Cursor:** Option to hide the mouse cursor during capture
|
|
614
|
+
|
|
615
|
+
## Frame Editor (PRO)
|
|
616
|
+
|
|
617
|
+
The Frame Editor is a powerful PRO feature for reviewing, editing, and exporting your recordings.
|
|
618
|
+
|
|
619
|
+
### Features
|
|
620
|
+
|
|
621
|
+
- **Timeline Navigation:** Browse all frames in your recording with a visual timeline
|
|
622
|
+
- **Frame Thumbnails:** Quick preview strip at the bottom for easy navigation
|
|
623
|
+
- **Frame Information:** View timestamp, dimensions, and capture metadata
|
|
624
|
+
- **Console Logs:** See console output associated with each frame
|
|
625
|
+
- **Delete Frames:** Remove unwanted frames from your recording
|
|
626
|
+
|
|
627
|
+
### Export Options
|
|
628
|
+
|
|
629
|
+
- **Download as ZIP:** Export all frames as individual images with metadata JSON
|
|
630
|
+
- **Export as MP4:** Create a video from your frame recording with customizable settings:
|
|
631
|
+
- Frame rate selection (1-30 fps)
|
|
632
|
+
- Quality settings (1080p, 720p, 480p)
|
|
633
|
+
- Playback speed control
|
|
634
|
+
|
|
635
|
+
## Video Player (PRO)
|
|
636
|
+
|
|
637
|
+
The Video Player provides a complete playback experience for your frame recordings.
|
|
638
|
+
|
|
639
|
+
### Playback Controls
|
|
640
|
+
|
|
641
|
+
- **Play/Pause:** Control video playback
|
|
642
|
+
- **Seek Bar:** Jump to any point in the recording
|
|
643
|
+
- **Speed Control:** 0.25x, 0.5x, 1x, 2x, 4x playback speeds
|
|
644
|
+
- **Frame Counter:** Shows current frame and total frame count
|
|
645
|
+
- **Time Display:** Current time and total duration
|
|
646
|
+
|
|
647
|
+
### Viewing Options
|
|
648
|
+
|
|
649
|
+
- **Loop Playback:** Continuously replay the recording
|
|
650
|
+
- **Auto-scroll Logs:** Keep console logs synced with current frame
|
|
651
|
+
- **Log Panel Position:** Right side, bottom, or overlay
|
|
652
|
+
- **Show/Hide Logs:** Toggle console log panel visibility
|
|
653
|
+
|
|
654
|
+
### Console Log Panel
|
|
655
|
+
|
|
656
|
+
- **Synchronized with Playback:** Logs highlight as video plays
|
|
657
|
+
- **Color-coded Levels:** Different colors for log, info, warn, error, debug
|
|
658
|
+
- **Timestamp Display:** See exact timing for each log entry
|
|
659
|
+
- **Searchable:** Find specific log entries
|
|
660
|
+
|
|
661
|
+
## Tab Filtering for Recordings
|
|
662
|
+
|
|
663
|
+
Manage your recordings with built-in filtering:
|
|
664
|
+
|
|
665
|
+
- **All:** View all workflow and screenshot recordings
|
|
666
|
+
- **Workflow:** Filter to show only workflow recordings (action tracking)
|
|
667
|
+
- **Screenshots:** Filter to show only screenshot recordings (click-to-capture)
|
|
668
|
+
|
|
669
|
+
Each recording displays a visual badge indicating its type for easy identification.
|
|
670
|
+
|
|
671
|
+
## FREE vs PRO Comparison
|
|
672
|
+
|
|
673
|
+
| Feature | FREE | PRO |
|
|
674
|
+
|---------|------|-----|
|
|
675
|
+
| **Recording Modes** | | |
|
|
676
|
+
| Screen Recording | ✅ | ✅ |
|
|
677
|
+
| Workflow Recording | ✅ | ✅ |
|
|
678
|
+
| Screenshot Recording | ✅ | ✅ |
|
|
679
|
+
| **Daily Limits** | | |
|
|
680
|
+
| Recordings per Day | 5 | Unlimited |
|
|
681
|
+
| **Export Features** | | |
|
|
682
|
+
| View Recordings | ✅ | ✅ |
|
|
683
|
+
| Frame Editor | Watermarked | ✅ Full Access |
|
|
684
|
+
| Download ZIP | ❌ | ✅ |
|
|
685
|
+
| Export as MP4 | ❌ | ✅ |
|
|
686
|
+
| **Advanced Features** | | |
|
|
687
|
+
| Function Tracing | ❌ | ✅ |
|
|
688
|
+
| Enhanced Debugging | ❌ | ✅ |
|
|
689
|
+
| Video Player | Watermarked | ✅ Full Access |
|
|
690
|
+
| **Support** | | |
|
|
691
|
+
| Community Support | ✅ | ✅ |
|
|
692
|
+
| Priority Support | ❌ | ✅ |
|
|
693
|
+
|
|
694
|
+
### Upgrade to PRO
|
|
695
|
+
|
|
696
|
+
Ready for unlimited recordings and full export capabilities?
|
|
697
|
+
|
|
698
|
+
💎 **[Get ChromeDebug PRO](https://chromedebug.com/checkout/buy/996773cb-682b-430f-b9e3-9ce2130bd967)**
|
|
699
|
+
|
|
700
|
+
## Privacy & Data
|
|
701
|
+
|
|
702
|
+
ChromeDebug respects your privacy:
|
|
703
|
+
|
|
704
|
+
- **100% Local:** All recordings are stored locally on your machine
|
|
705
|
+
- **No Cloud Upload:** Your data never leaves your computer
|
|
706
|
+
- **No Analytics:** No usage tracking or telemetry
|
|
707
|
+
- **No Account Required:** Use the FREE version without any sign-up
|
|
708
|
+
- **License Only:** PRO version requires a license key, but no account or login
|
|
709
|
+
|
|
710
|
+
## Troubleshooting
|
|
711
|
+
|
|
712
|
+
### Common Issues
|
|
713
|
+
|
|
714
|
+
**Extension not connecting to server:**
|
|
715
|
+
- Ensure ChromeDebug MCP server is running
|
|
716
|
+
- Check that the port matches (default: 3001)
|
|
717
|
+
- Look for "Connected" status in the extension popup
|
|
718
|
+
|
|
719
|
+
**Recording not starting:**
|
|
720
|
+
- Grant screen capture permission when prompted
|
|
721
|
+
- Ensure you're not on a restricted page (chrome://, Chrome Web Store)
|
|
722
|
+
|
|
723
|
+
**Frames not capturing:**
|
|
724
|
+
- Check console for errors
|
|
725
|
+
- Ensure sufficient storage space
|
|
726
|
+
- Try reducing capture quality in settings
|
|
727
|
+
|
|
728
|
+
### Getting Help
|
|
729
|
+
|
|
730
|
+
- 📚 [Documentation](https://www.npmjs.com/package/@dynamicu/chromedebug-mcp)
|
|
731
|
+
- 🐛 [Report Issues](https://github.com/dynamicupgrade/ChromeDebug/issues)
|
|
732
|
+
- 💬 [Discussions](https://github.com/dynamicupgrade/ChromeDebug/discussions)
|