browser-lens-mcp 1.3.0 → 2.0.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,6 +1,6 @@
1
1
  <div align="center">
2
2
  <img src="assets/logo.svg" alt="Browser Lens" width="120" height="120">
3
- <h1>mcp-browser-lens</h1>
3
+ <h1>browser-lens-mcp</h1>
4
4
  <p><strong>Your browser's UI, deeply understood by your IDE's AI agent.</strong></p>
5
5
  <p>
6
6
  <a href="https://www.npmjs.com/package/browser-lens-mcp"><img src="https://img.shields.io/npm/v/browser-lens-mcp?style=flat-square&color=8b5cf6" alt="npm"></a>
@@ -15,7 +15,7 @@
15
15
 
16
16
  ## How It Works
17
17
 
18
- Browser Lens connects your IDE's AI agent to any running web page through a lightweight bookmarklet. No browser extensions, no code changes, no build stepjust click and inspect.
18
+ Browser Lens connects your IDE's AI agent to any running web page. Ask about any UI element and get its exact styles, layout, screenshot, and fix suggestions with zero code changes.
19
19
 
20
20
  <div align="center">
21
21
  <img src="assets/architecture-flow.svg" alt="Architecture Flow" width="100%">
@@ -23,10 +23,20 @@ Browser Lens connects your IDE's AI agent to any running web page through a ligh
23
23
 
24
24
  **The flow:**
25
25
 
26
- 1. **Bookmarklet** runs in your browser, capturing DOM, CSS, layout, screenshots, and more
27
- 2. **WebSocket** streams data in real-time to the Browser Lens MCP server (`:3203`)
28
- 3. **MCP server** stores and indexes everything, exposes 22 tools, 12 resources, 5 prompts
29
- 4. **IDE AI agent** queries tools via stdio to inspect, compare, and fix your UI
26
+ 1. **Bookmarklet** runs in your browser, captures DOM, CSS, layout, screenshots
27
+ 2. **WebSocket** streams data in real-time + receives commands from server
28
+ 3. **MCP server** stores and indexes everything, exposes 30 tools, 12 resources, 5 prompts
29
+ 4. **IDE AI agent** queries tools via stdio inspect any element, take screenshots on demand, compare with Figma
30
+
31
+ ### Key Capabilities
32
+
33
+ | Capability | How It Works |
34
+ |------------|-------------|
35
+ | **Deep Element Inspection** | `live_query_element` sends a command to the browser to capture ANY element by CSS selector — even deeply nested ones not in the auto-capture |
36
+ | **On-Demand Screenshots** | `trigger_screenshot` tells the browser to take a fresh screenshot NOW and returns the image directly to your IDE |
37
+ | **Figma Comparison** | `compare_with_figma` compares live CSS values against design specs, scores 0-100, generates copy-paste CSS fixes |
38
+ | **Full Page Analysis** | `get_full_page_analysis` returns structure, design tokens, typography, colors, spacing, accessibility in one call |
39
+ | **Feature Area Inspection** | `inspect_feature_area` inspects a specific UI section (header, sidebar, form) with all child details |
30
40
 
31
41
  ---
32
42
 
@@ -38,19 +48,19 @@ Browser Lens connects your IDE's AI agent to any running web page through a ligh
38
48
 
39
49
  | Category | Data | Details |
40
50
  |----------|------|---------|
41
- | **DOM** | Full tree + element details | Tags, classes, attributes, text, semantic structure, headings, landmarks |
42
- | **CSS** | Computed styles | Every CSS property for any element, applied classes, matched rules |
51
+ | **DOM** | Full tree + element details | Tags, classes, attributes, text, semantic structure |
52
+ | **CSS** | Computed styles | Every CSS property for any element via selector |
43
53
  | **CSS** | Variables | All `--*` custom properties from `:root` and stylesheets |
44
- | **CSS** | Typography | Font families, sizes, weights, line-heights — grouped with usage counts |
45
- | **CSS** | Colors | Text, background, border colors with hex values and occurrence counts |
46
- | **Layout** | Box model | Width, height, padding, margin, border, content dimensions |
47
- | **Layout** | Flex & Grid | Direction, wrap, gap, template columns/rows, child positioning |
48
- | **Layout** | Spacing | Margin/padding analysis across elements, spacing scale, inconsistencies |
49
- | **Visual** | Screenshots | Viewport capture as PNG (base64), returned directly as image to IDE |
50
- | **Visual** | Figma comparison | Compare any element against design specs score + per-property diff |
51
- | **A11y** | Accessibility | ARIA labels, roles, alt text, heading levels, landmarks, issues |
52
- | **Responsive** | Viewport | Dimensions, device pixel ratio, active media queries, breakpoint status |
53
- | **Mutations** | DOM changes | Attribute modifications, added/removed nodes real-time via MutationObserver |
54
+ | **CSS** | Typography | Font families, sizes, weights, line-heights with usage counts |
55
+ | **CSS** | Colors | Text, background, border colors with hex values and counts |
56
+ | **Layout** | Box model | Width, height, padding, margin, border dimensions |
57
+ | **Layout** | Flex & Grid | Direction, wrap, gap, template columns/rows |
58
+ | **Layout** | Spacing | Margin/padding analysis, spacing scale, inconsistencies |
59
+ | **Visual** | Screenshots | On-demand viewport capture as PNG, returned as image |
60
+ | **Visual** | Figma comparison | Compare element against design specs with score + diff |
61
+ | **A11y** | Accessibility | ARIA labels, roles, alt text, headings, landmarks |
62
+ | **Responsive** | Viewport | Dimensions, DPR, active media queries, breakpoints |
63
+ | **Mutations** | DOM changes | Attribute changes, added/removed nodes in real-time |
54
64
 
55
65
  ---
56
66
 
@@ -61,12 +71,12 @@ Browser Lens connects your IDE's AI agent to any running web page through a ligh
61
71
  <details open>
62
72
  <summary><strong>Cursor</strong></summary>
63
73
 
64
- **File:** `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global)
74
+ **File:** `.cursor/mcp.json`
65
75
 
66
76
  ```json
67
77
  {
68
78
  "mcpServers": {
69
- "mcp-browser-lens": {
79
+ "browser-lens": {
70
80
  "command": "npx",
71
81
  "args": ["-y", "browser-lens-mcp@latest"]
72
82
  }
@@ -78,12 +88,12 @@ Browser Lens connects your IDE's AI agent to any running web page through a ligh
78
88
  <details>
79
89
  <summary><strong>VS Code (Copilot)</strong></summary>
80
90
 
81
- **File:** `.vscode/mcp.json` (project) or User Settings (global)
91
+ **File:** `.vscode/mcp.json`
82
92
 
83
93
  ```json
84
94
  {
85
95
  "servers": {
86
- "mcp-browser-lens": {
96
+ "browser-lens": {
87
97
  "type": "stdio",
88
98
  "command": "npx",
89
99
  "args": ["-y", "browser-lens-mcp@latest"]
@@ -94,24 +104,22 @@ Browser Lens connects your IDE's AI agent to any running web page through a ligh
94
104
  </details>
95
105
 
96
106
  <details>
97
- <summary><strong>Claude Code (Anthropic)</strong></summary>
98
-
99
- **Run once** — adds to `~/.claude.json`:
107
+ <summary><strong>Claude Code</strong></summary>
100
108
 
101
109
  ```bash
102
- claude mcp add mcp-browser-lens npx -y browser-lens-mcp@latest
110
+ claude mcp add browser-lens npx -y browser-lens-mcp@latest
103
111
  ```
104
112
  </details>
105
113
 
106
114
  <details>
107
- <summary><strong>Windsurf (Codeium)</strong></summary>
115
+ <summary><strong>Windsurf</strong></summary>
108
116
 
109
117
  **File:** `~/.codeium/windsurf/mcp_config.json`
110
118
 
111
119
  ```json
112
120
  {
113
121
  "mcpServers": {
114
- "mcp-browser-lens": {
122
+ "browser-lens": {
115
123
  "command": "npx",
116
124
  "args": ["-y", "browser-lens-mcp@latest"]
117
125
  }
@@ -123,14 +131,14 @@ claude mcp add mcp-browser-lens npx -y browser-lens-mcp@latest
123
131
  <details>
124
132
  <summary><strong>OpenCode</strong></summary>
125
133
 
126
- **File:** `.opencode/config.json` or `~/.config/opencode/config.json`
134
+ **File:** `~/.config/opencode/config.json`
127
135
 
128
136
  ```json
129
137
  {
130
138
  "mcpServers": {
131
- "mcp-browser-lens": {
132
- "command": "npx",
133
- "args": ["-y", "browser-lens-mcp@latest"]
139
+ "browser-lens": {
140
+ "type": "local",
141
+ "command": ["npx", "-y", "browser-lens-mcp@latest"]
134
142
  }
135
143
  }
136
144
  }
@@ -145,72 +153,64 @@ claude mcp add mcp-browser-lens npx -y browser-lens-mcp@latest
145
153
  ```json
146
154
  {
147
155
  "context_servers": {
148
- "mcp-browser-lens": {
149
- "command": {
150
- "path": "npx",
151
- "args": ["-y", "browser-lens-mcp@latest"]
152
- }
156
+ "browser-lens": {
157
+ "command": { "path": "npx", "args": ["-y", "browser-lens-mcp@latest"] }
153
158
  }
154
159
  }
155
160
  }
156
161
  ```
157
162
  </details>
158
163
 
159
- <details>
160
- <summary><strong>Any MCP-compatible client</strong></summary>
161
-
162
- The server communicates via **stdio** transport. Run:
164
+ **Custom ports** (avoid conflicts):
163
165
 
164
- ```bash
165
- npx browser-lens-mcp@latest
166
+ ```json
167
+ {
168
+ "mcpServers": {
169
+ "browser-lens": {
170
+ "command": "npx",
171
+ "args": ["-y", "browser-lens-mcp@latest"],
172
+ "env": {
173
+ "MCP_BROWSER_LENS_PORT": "3300",
174
+ "MCP_BROWSER_LENS_WS_PORT": "3301"
175
+ }
176
+ }
177
+ }
178
+ }
166
179
  ```
167
180
 
168
- Connect your MCP client to the process stdin/stdout.
169
- </details>
170
-
171
181
  ### Step 2 — Connect your browser
172
182
 
173
- 1. Open **http://localhost:3202** in your browser
174
- 2. **Drag** the bookmarklet to your bookmarks bar
175
- 3. Navigate to any web app
176
- 4. **Click** the bookmarklet — you'll see in the console:
183
+ 1. Open **http://localhost:3202** (or your custom port)
184
+ 2. Drag the **bookmarklet** to your bookmarks bar
185
+ 3. Navigate to any web app → click the bookmarklet
177
186
 
178
187
  ```
179
- [Browser Lens] WebSocket connected
180
- [Browser Lens] Connected! DOM, CSS, layout, and visual data streaming to IDE.
188
+ [BrowserLens] WebSocket connected to ws://localhost:3203
189
+ [BrowserLens] DOM captured: 250 elements
190
+ [BrowserLens] Elements captured: 30
191
+ [BrowserLens] CSS vars captured: 12
192
+ [BrowserLens] Screenshot OK: 1440x900
193
+ [BrowserLens] Sync complete
181
194
  ```
182
195
 
183
196
  ### Step 3 — Ask your AI agent
184
197
 
185
198
  ```
186
- @mcp-browser-lens Describe this page's UI layout and structure
187
- @mcp-browser-lens Compare .hero-button with Figma: fontSize 16px, fontWeight 600, backgroundColor #8b5cf6
188
- @mcp-browser-lens Take a screenshot and audit the design
189
- @mcp-browser-lens What CSS variables are defined on this page?
190
- @mcp-browser-lens Show me all accessibility issues
191
- @mcp-browser-lens Suggest CSS fixes for the last comparison
199
+ @browser-lens What does the header look like? Show me a screenshot.
200
+ @browser-lens What are the 2 buttons in the header? What colors are they?
201
+ @browser-lens Compare the hero section with Figma: fontSize 48px, color #ffffff, fontWeight 800
202
+ @browser-lens This button looks wrong find the source file and suggest a fix
203
+ @browser-lens Run a full visual QA on this page
192
204
  ```
193
205
 
194
206
  ---
195
207
 
196
208
  ## Figma Design Comparison
197
209
 
198
- The killer feature — compare your live UI against any design tool's specs and get actionable CSS fixes.
199
-
200
210
  <div align="center">
201
211
  <img src="assets/figma-comparison-flow.svg" alt="Figma Comparison Flow" width="100%">
202
212
  </div>
203
213
 
204
- **How to use:**
205
-
206
- ```
207
- 1. Connect browser to your app (bookmarklet)
208
- 2. Ask: "Compare .hero-button with Figma: fontSize 16px, fontWeight 600, backgroundColor #8b5cf6, borderRadius 8px"
209
- 3. Get: Score 84/100 with 3 property diffs (1 major, 2 minor)
210
- 4. Ask: "Suggest CSS fixes" → get copy-paste CSS
211
- 5. Apply fixes → re-compare → Score 98/100 ✓
212
- ```
213
-
214
214
  **Scoring:**
215
215
 
216
216
  | Score | Status | Meaning |
@@ -220,56 +220,72 @@ The killer feature — compare your live UI against any design tool's specs and
220
220
  | 50–79 | `major-diff` | Significant gaps — fixes required |
221
221
  | 0–49 | `mismatch` | Major rework needed |
222
222
 
223
- Works with **any design tool** — Figma, Sketch, Adobe XD, Zeplin, Penpot. Just provide the expected CSS values.
223
+ Works with **any design tool** — Figma, Sketch, Adobe XD, Zeplin. Just provide CSS values.
224
224
 
225
225
  ---
226
226
 
227
- ## MCP Tools (22)
227
+ ## MCP Tools (30)
228
+
229
+ ### Live Browser Commands (2 tools) ⚡
230
+ | Tool | Description |
231
+ |------|-------------|
232
+ | `trigger_screenshot` | Request browser to take a fresh screenshot NOW — returns PNG image |
233
+ | `live_query_element` | Query ANY element by CSS selector in real-time — even deeply nested ones |
228
234
 
229
235
  ### DOM Inspection (5 tools)
230
236
  | Tool | Description |
231
237
  |------|-------------|
232
- | `get_dom_tree` | Full DOM tree with semantic structure analysis |
233
- | `inspect_element` | Complete element details: DOM + styles + layout + a11y |
234
- | `query_selector` | Search DOM by tag, class, ID, or CSS selector |
235
- | `get_element_hierarchy` | Parent → child path from root to any element |
236
- | `get_elements_summary` | Overview of all captured elements with dimensions |
238
+ | `get_dom_tree` | Full DOM tree with semantic structure |
239
+ | `inspect_element` | Complete element details: DOM + styles + layout |
240
+ | `query_selector` | Search DOM by tag, class, ID, or selector |
241
+ | `get_element_hierarchy` | Parent → child path from root to element |
242
+ | `get_elements_summary` | Overview of all captured elements |
237
243
 
238
244
  ### CSS Analysis (4 tools)
239
245
  | Tool | Description |
240
246
  |------|-------------|
241
247
  | `get_computed_styles` | All computed CSS properties for any element |
242
- | `get_css_variables` | CSS custom properties (`--*`) with current values |
243
- | `get_typography` | Font families, sizes, weights — grouped with usage counts |
244
- | `get_color_palette` | All colors (text, bg, border) with hex + occurrence count |
248
+ | `get_css_variables` | CSS custom properties (`--*`) with values |
249
+ | `get_typography` | Font families, sizes, weights with usage counts |
250
+ | `get_color_palette` | All colors (text, bg, border) with hex + count |
245
251
 
246
252
  ### Layout & Spacing (3 tools)
247
253
  | Tool | Description |
248
254
  |------|-------------|
249
- | `get_layout_info` | Box model, flex/grid info, positioning details |
250
- | `get_spacing_analysis` | Margin/padding/gap analysis + spacing scale detection |
251
- | `get_responsive_info` | Viewport, DPR, breakpoints, active media queries |
255
+ | `get_layout_info` | Box model, flex/grid info, positioning |
256
+ | `get_spacing_analysis` | Margin/padding/gap analysis + spacing scale |
257
+ | `get_responsive_info` | Viewport, DPR, breakpoints, media queries |
252
258
 
253
- ### Visual & Screenshots (3 tools)
259
+ ### Visual & Screenshots (4 tools)
254
260
  | Tool | Description |
255
261
  |------|-------------|
256
- | `get_page_screenshot` | Latest viewport screenshot — returned as PNG image |
262
+ | `get_page_screenshot` | Latest cached viewport screenshot as PNG |
257
263
  | `get_all_screenshots` | List all captured screenshots with metadata |
258
- | `describe_ui` | AI-friendly page description: structure, colors, fonts, a11y |
264
+ | `describe_ui` | AI-friendly page description |
265
+ | `capture_screenshot_with_analysis` | Screenshot + detailed layout/style analysis |
259
266
 
260
- ### Design Comparison (3 tools)
267
+ ### Design Comparison (4 tools)
261
268
  | Tool | Description |
262
269
  |------|-------------|
263
- | `compare_with_figma` | Compare element vs design specs → score + per-property diff |
270
+ | `compare_with_figma` | Compare element vs design specs → score + diff |
264
271
  | `get_comparison_history` | All previous comparison results |
265
- | `suggest_css_fixes` | Generate copy-paste CSS from comparison diff |
272
+ | `suggest_css_fixes` | Generate copy-paste CSS from comparison |
273
+ | `get_visual_diff_report` | Aggregate report across all comparisons |
274
+
275
+ ### Page Analysis (4 tools)
276
+ | Tool | Description |
277
+ |------|-------------|
278
+ | `get_full_page_analysis` | Everything in one call: structure, tokens, a11y |
279
+ | `get_design_tokens` | CSS variables grouped by category |
280
+ | `inspect_feature_area` | Inspect specific UI section with children |
281
+ | `get_connection_status` | Check browser connection + setup instructions |
266
282
 
267
283
  ### General (4 tools)
268
284
  | Tool | Description |
269
285
  |------|-------------|
270
- | `get_page_info` | Page URL, viewport, element count, data availability |
271
- | `get_dom_mutations` | Recent DOM changes (attributes, added/removed nodes) |
272
- | `get_accessibility_info` | ARIA labels, roles, headings, landmarks, issues |
286
+ | `get_page_info` | Page URL, viewport, element count |
287
+ | `get_dom_mutations` | Recent DOM changes |
288
+ | `get_accessibility_info` | ARIA, roles, headings, landmarks |
273
289
  | `clear_data` | Clear all captured data |
274
290
 
275
291
  ---
@@ -278,11 +294,11 @@ Works with **any design tool** — Figma, Sketch, Adobe XD, Zeplin, Penpot. Just
278
294
 
279
295
  | Prompt | Description |
280
296
  |--------|-------------|
281
- | `compare_with_figma` | Guided Figma comparison workflow with fix suggestions |
282
- | `audit_ui` | Comprehensive UI audit: colors, typography, spacing, a11y |
283
- | `describe_page` | Detailed page description for AI-assisted modifications |
284
- | `suggest_fixes` | Prioritized fix list from comparisons + a11y + spacing |
285
- | `visual_qa` | Visual QA check: screenshot + compare + pass/fail report |
297
+ | `compare_with_figma` | Guided Figma comparison workflow |
298
+ | `audit_ui` | Comprehensive UI audit |
299
+ | `describe_page` | Detailed page description |
300
+ | `suggest_fixes` | Prioritized fix list |
301
+ | `visual_qa` | Visual QA pass/fail report |
286
302
 
287
303
  ---
288
304
 
@@ -290,43 +306,49 @@ Works with **any design tool** — Figma, Sketch, Adobe XD, Zeplin, Penpot. Just
290
306
 
291
307
  | URI | Description |
292
308
  |-----|-------------|
293
- | `dom://snapshot` | Full DOM tree snapshot |
294
- | `dom://elements` | Captured element selectors |
295
- | `dom://mutations` | Recent DOM changes |
296
- | `css://variables` | CSS custom properties |
297
- | `css://typography` | Typography analysis |
298
- | `css://colors` | Color palette data |
299
- | `layout://responsive` | Viewport & breakpoint info |
309
+ | `dom://snapshot` | Full DOM tree |
310
+ | `dom://elements` | Element selectors |
311
+ | `dom://mutations` | DOM changes |
312
+ | `css://variables` | Custom properties |
313
+ | `css://typography` | Font analysis |
314
+ | `css://colors` | Color palette |
315
+ | `layout://responsive` | Viewport info |
300
316
  | `layout://spacing` | Spacing analysis |
301
317
  | `visual://screenshots` | Screenshot metadata |
302
- | `a11y://audit` | Accessibility audit results |
318
+ | `a11y://audit` | Accessibility audit |
303
319
  | `figma://comparisons` | Comparison results |
304
- | `browser://page` | Page info + data availability |
320
+ | `browser://page` | Page info |
305
321
 
306
322
  ---
307
323
 
308
- ## Configuration
324
+ ## Bidirectional Command System
309
325
 
310
- ### Ports
326
+ Unlike other MCP tools that only read cached data, Browser Lens has a **live command channel**:
311
327
 
312
- | Port | Protocol | Purpose |
313
- |------|----------|---------|
314
- | `3202` | HTTP | Connector page + health endpoint + data ingestion |
315
- | `3203` | WebSocket | Real-time data streaming from browser |
328
+ ```
329
+ IDE → MCP Server → WebSocket → Browser Bookmarklet
330
+
331
+ Execute command
332
+
333
+ IDE ← MCP Server ← WebSocket ← Send result
334
+ ```
335
+
336
+ **Commands the server can send to the browser:**
337
+ - `screenshot` — Capture and send a fresh screenshot
338
+ - `query_element` — Inspect any element by CSS selector on-demand
339
+ - `fullsync` — Trigger a full data re-capture
340
+
341
+ This means your AI agent can ask about ANY element, even ones not in the initial auto-capture.
342
+
343
+ ---
316
344
 
317
- ### Environment Variables
345
+ ## Configuration
318
346
 
319
347
  | Variable | Default | Description |
320
348
  |----------|---------|-------------|
321
349
  | `MCP_BROWSER_LENS_PORT` | `3202` | HTTP server port |
322
350
  | `MCP_BROWSER_LENS_WS_PORT` | `3203` | WebSocket server port |
323
- | `MCP_BROWSER_LENS_STORE_PATH` | `.store/browser.json` | Custom store file path |
324
-
325
- **Custom port example:**
326
-
327
- ```bash
328
- MCP_BROWSER_LENS_PORT=4000 MCP_BROWSER_LENS_WS_PORT=4001 npx browser-lens-mcp
329
- ```
351
+ | `MCP_BROWSER_LENS_STORE_PATH` | `.store/browser.json` | Custom store path |
330
352
 
331
353
  ---
332
354
 
package/dist/src/index.js CHANGED
@@ -7,9 +7,9 @@ import { createWsReceiver } from "./transport/ws-receiver.js";
7
7
  const HTTP_PORT = parseInt(process.env.MCP_BROWSER_LENS_PORT ?? "3202", 10);
8
8
  const WS_PORT = parseInt(process.env.MCP_BROWSER_LENS_WS_PORT ?? "3203", 10);
9
9
  const store = new BrowserStore();
10
- const mcpServer = createMcpServer(store);
10
+ const wsChannel = createWsReceiver(store, WS_PORT);
11
+ const mcpServer = createMcpServer(store, wsChannel);
11
12
  createHttpReceiver(store, HTTP_PORT, WS_PORT);
12
- createWsReceiver(store, WS_PORT);
13
13
  const transport = new StdioServerTransport();
14
14
  mcpServer.connect(transport).then(() => {
15
15
  process.stderr.write(`[mcp-browser-lens] MCP server connected via stdio\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAE7E,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;AACjC,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AAEzC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC9C,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEjC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC9B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IAC/B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAE7E,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;AACjC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACnD,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAEpD,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAE9C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC9B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IAC/B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { BrowserStore } from "./store/browser-store.js";
3
- export declare function createMcpServer(store: BrowserStore): McpServer;
3
+ import type { WsCommandChannel } from "./transport/ws-receiver.js";
4
+ export declare function createMcpServer(store: BrowserStore, wsChannel?: WsCommandChannel): McpServer;
4
5
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAK7D,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAW9D"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAKnE,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,SAAS,CAAC,EAAE,gBAAgB,GAC3B,SAAS,CAWX"}
@@ -2,13 +2,13 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { registerResources } from "./resources/index.js";
3
3
  import { registerTools } from "./tools/index.js";
4
4
  import { registerPrompts } from "./prompts/index.js";
5
- export function createMcpServer(store) {
5
+ export function createMcpServer(store, wsChannel) {
6
6
  const server = new McpServer({
7
7
  name: "mcp-browser-lens",
8
8
  version: "1.0.0",
9
9
  });
10
10
  registerResources(server, store);
11
- registerTools(server, store);
11
+ registerTools(server, store, wsChannel);
12
12
  registerPrompts(server, store);
13
13
  return server;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,UAAU,eAAe,CAAC,KAAmB;IACjD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7B,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE/B,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,UAAU,eAAe,CAC7B,KAAmB,EACnB,SAA4B;IAE5B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE/B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { BrowserStore } from "../store/browser-store.js";
3
- export declare function registerTools(server: McpServer, store: BrowserStore): void;
3
+ import type { WsCommandChannel } from "../transport/ws-receiver.js";
4
+ export declare function registerTools(server: McpServer, store: BrowserStore, wsChannel?: WsCommandChannel): void;
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAyD9D,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAk/B1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAwDpE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,CA+lCxG"}
@@ -47,7 +47,7 @@ function compareValues(property, expected, actual) {
47
47
  suggestion: `Change ${property} from "${actual}" to "${expected}"`,
48
48
  };
49
49
  }
50
- export function registerTools(server, store) {
50
+ export function registerTools(server, store, wsChannel) {
51
51
  server.registerTool("get_page_info", {
52
52
  title: "Page Info",
53
53
  description: "Get connected page URL, viewport size, element count, and data availability summary",
@@ -885,5 +885,92 @@ export function registerTools(server, store) {
885
885
  content.push({ type: "text", text: sections.join("\n") });
886
886
  return { content };
887
887
  });
888
+ server.registerTool("trigger_screenshot", {
889
+ title: "Trigger Screenshot",
890
+ description: "Request the browser to take a fresh screenshot NOW and send it back. Use this when you need the current visual state of the page. Returns the screenshot image directly.",
891
+ }, async () => {
892
+ if (!wsChannel) {
893
+ const shot = store.getLatestScreenshot();
894
+ if (shot)
895
+ return imageContent(shot.dataUrl, `Cached screenshot (${shot.width}x${shot.height})`);
896
+ return text({ message: "No browser connected and no cached screenshots." });
897
+ }
898
+ const before = store.getScreenshots().length;
899
+ const sent = wsChannel.requestScreenshot();
900
+ const ok = await sent;
901
+ if (ok) {
902
+ const shot = store.getLatestScreenshot();
903
+ if (shot) {
904
+ return imageContent(shot.dataUrl, `Fresh screenshot (${shot.width}x${shot.height}) captured at ${new Date(shot.timestamp).toISOString()}`);
905
+ }
906
+ }
907
+ const after = store.getScreenshots().length;
908
+ if (after > before) {
909
+ const shot = store.getLatestScreenshot();
910
+ if (shot)
911
+ return imageContent(shot.dataUrl, `Screenshot (${shot.width}x${shot.height})`);
912
+ }
913
+ return text({
914
+ message: "Screenshot request sent to browser but capture failed. This usually means cross-origin images tainted the canvas. Check browser console for [BrowserLens] errors.",
915
+ suggestion: "The page may have cross-origin images. Try using describe_ui for a text description instead.",
916
+ });
917
+ });
918
+ server.registerTool("live_query_element", {
919
+ title: "Live Query Element",
920
+ description: "Query the browser in real-time to inspect ANY element by CSS selector — even deeply nested ones. Sends a command to the browser to capture the element's computed styles, layout, text, and classes. Use this when inspect_element returns 'not found' because the element wasn't in the initial auto-capture.",
921
+ inputSchema: {
922
+ selector: z.string().describe("Any valid CSS selector (e.g. 'header button', '.hero-btn', '#login-form input[type=email]')"),
923
+ },
924
+ }, async (args) => {
925
+ if (!wsChannel) {
926
+ return text({
927
+ message: "No live browser connection. This tool requires the bookmarklet to be active.",
928
+ fallback: "Use inspect_element or query_selector to search cached data instead.",
929
+ });
930
+ }
931
+ const sent = wsChannel.sendCommand("query_element", { selector: args.selector });
932
+ if (!sent) {
933
+ return text({ message: "Browser not connected. Click the bookmarklet first." });
934
+ }
935
+ await new Promise((r) => setTimeout(r, 2000));
936
+ const el = store.getElement(args.selector);
937
+ if (el) {
938
+ return text({
939
+ selector: args.selector,
940
+ tagName: el.snapshot?.tagName,
941
+ textContent: el.snapshot?.textContent,
942
+ classes: el.computedStyle?.appliedClasses,
943
+ styles: el.computedStyle?.styles,
944
+ layout: {
945
+ width: el.layout?.box.width,
946
+ height: el.layout?.box.height,
947
+ display: el.layout?.display,
948
+ position: el.layout?.position.type,
949
+ },
950
+ accessibility: el.accessibility,
951
+ });
952
+ }
953
+ const dom = store.getDom();
954
+ if (!dom)
955
+ return text({ error: "No DOM data. Browser may not be connected." });
956
+ const found = store.querySelector(args.selector);
957
+ if (found.length > 0) {
958
+ return text({
959
+ message: `Found ${found.length} match(es) in DOM tree but detailed styles not captured for this depth. Here's what we know:`,
960
+ elements: found.slice(0, 10).map((f) => ({
961
+ selector: f.selector,
962
+ tagName: f.tagName,
963
+ id: f.id,
964
+ classes: f.classNames,
965
+ text: f.textContent.slice(0, 150),
966
+ childCount: f.childCount,
967
+ })),
968
+ });
969
+ }
970
+ return text({
971
+ error: `No element matching '${args.selector}' found.`,
972
+ suggestion: "Try a different selector. Use query_selector to search by tag name or class.",
973
+ });
974
+ });
888
975
  }
889
976
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"connector-script.d.ts","sourceRoot":"","sources":["../../../src/transport/connector-script.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA8U3E"}
1
+ {"version":3,"file":"connector-script.d.ts","sourceRoot":"","sources":["../../../src/transport/connector-script.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAgY3E"}
@@ -221,34 +221,47 @@ function captureSpacing(){
221
221
  return{timestamp:Date.now(),elements:entries,inconsistencies:[],spacingScale:Object.keys(Object.assign({},vals.margin,vals.padding)).sort(function(a,b){return parseFloat(a)-parseFloat(b)})};
222
222
  }
223
223
 
224
- var _ssLastOk=0,_ssFailing=false;
224
+ var _ssLastOk=0,_ssFailing=false,_ssAttempts=0;
225
+ function _safeExport(canvas){
226
+ try{return canvas.toDataURL('image/png');}
227
+ catch(e){return null;}
228
+ }
225
229
  function _doCapture(opts){
226
230
  var w=Math.min(window.innerWidth,1440),h=Math.min(window.innerHeight,900);
227
231
  return html2canvas(document.body,Object.assign({scale:1,width:w,height:h,logging:false,removeContainer:true,imageTimeout:5000},opts)).then(function(canvas){
228
- var dataUrl=canvas.toDataURL('image/png');
229
- _ssLastOk=Date.now();_ssFailing=false;
232
+ var dataUrl=_safeExport(canvas);
233
+ if(!dataUrl)throw new Error('Canvas tainted - toDataURL blocked');
234
+ _ssLastOk=Date.now();_ssFailing=false;_ssAttempts=0;
230
235
  log('Screenshot OK: '+canvas.width+'x'+canvas.height);
231
236
  return{timestamp:Date.now(),type:'viewport',width:canvas.width,height:canvas.height,dataUrl:dataUrl,format:'png'};
232
237
  });
233
238
  }
234
239
  function captureScreenshot(){
235
- if(_ssFailing&&Date.now()-_ssLastOk<120000)return Promise.resolve(null);
240
+ if(_ssFailing&&_ssAttempts>2&&Date.now()-_ssLastOk<300000)return Promise.resolve(null);
241
+ _ssAttempts++;
236
242
  return new Promise(function(resolve){
237
- function run(){
238
- _doCapture({useCORS:true,allowTaint:false,foreignObjectRendering:false}).then(resolve)
239
- .catch(function(){
240
- log('Retrying screenshot without cross-origin images...');
241
- _doCapture({useCORS:false,allowTaint:false,foreignObjectRendering:false,ignoreElements:function(el){
242
- if(el.tagName==='IMG'){var s=el.src||'';if(s&&!s.startsWith(location.origin)&&!s.startsWith('data:'))return true;}
243
- return false;
244
- }}).then(resolve)
245
- .catch(function(e){
246
- _ssFailing=true;
247
- err('Screenshot failed (will retry in 2min)',e);
248
- resolve(null);
249
- });
243
+ function attempt3(){
244
+ log('Attempt 3: minimal capture without images/videos/iframes...');
245
+ _doCapture({useCORS:false,allowTaint:false,foreignObjectRendering:false,ignoreElements:function(el){
246
+ var t=el.tagName;return t==='IMG'||t==='VIDEO'||t==='IFRAME'||t==='CANVAS'||t==='SVG';
247
+ }}).then(resolve).catch(function(e){
248
+ _ssFailing=true;
249
+ log('All screenshot attempts failed. Will retry in 5min.');
250
+ resolve(null);
250
251
  });
251
252
  }
253
+ function attempt2(){
254
+ log('Attempt 2: without cross-origin images...');
255
+ _doCapture({useCORS:false,allowTaint:false,foreignObjectRendering:false,ignoreElements:function(el){
256
+ if(el.tagName==='IMG'){var s=el.src||'';if(s&&!s.startsWith(location.origin)&&!s.startsWith('data:'))return true;}
257
+ if(el.tagName==='IFRAME'||el.tagName==='VIDEO')return true;
258
+ return false;
259
+ }}).then(resolve).catch(attempt3);
260
+ }
261
+ function attempt1(){
262
+ _doCapture({useCORS:true,allowTaint:false,foreignObjectRendering:false}).then(resolve).catch(attempt2);
263
+ }
264
+ function run(){try{attempt1();}catch(e){resolve(null);}}
252
265
  try{
253
266
  if(typeof html2canvas==='function'){run();}
254
267
  else{
@@ -259,7 +272,7 @@ function captureScreenshot(){
259
272
  s.onerror=function(){err('CDN load failed');resolve(null);};
260
273
  document.head.appendChild(s);
261
274
  }
262
- }catch(e){err('Screenshot error',e);resolve(null);}
275
+ }catch(e){resolve(null);}
263
276
  });
264
277
  }
265
278
 
@@ -319,10 +332,47 @@ try{
319
332
  observer.observe(document.documentElement,{childList:true,attributes:true,subtree:true,attributeOldValue:true});
320
333
  }catch(e){err('MutationObserver failed',e);}
321
334
 
335
+ function handleCommand(cmd){
336
+ try{
337
+ if(cmd.action==='screenshot'){
338
+ log('Server requested screenshot...');
339
+ captureScreenshot().then(function(shot){
340
+ if(shot){log('Sending requested screenshot');send({timestamp:Date.now(),screenshots:[shot]});}
341
+ else{send({timestamp:Date.now(),screenshotError:'capture failed'});}
342
+ });
343
+ }
344
+ else if(cmd.action==='query_element'&&cmd.selector){
345
+ log('Server requested element: '+cmd.selector);
346
+ var els=document.querySelectorAll(cmd.selector);
347
+ var elements={};
348
+ for(var i=0;i<Math.min(els.length,10);i++){
349
+ var d=captureElementDetail(els[i]);
350
+ if(d)elements[buildSelector(els[i])]=d;
351
+ }
352
+ if(Object.keys(elements).length>0){
353
+ send({timestamp:Date.now(),elements:elements});
354
+ log('Sent '+Object.keys(elements).length+' element(s) for '+cmd.selector);
355
+ }else{
356
+ log('No elements found for: '+cmd.selector);
357
+ }
358
+ }
359
+ else if(cmd.action==='fullsync'){
360
+ log('Server requested full sync');
361
+ fullSync();
362
+ }
363
+ }catch(e){err('Command handler error',e);}
364
+ }
365
+
322
366
  function connectWs(){
323
367
  try{
324
368
  ws=new WebSocket(WS_URL);
325
369
  ws.onopen=function(){log('WebSocket connected to '+WS_URL);fullSync();};
370
+ ws.onmessage=function(evt){
371
+ try{
372
+ var msg=JSON.parse(evt.data);
373
+ if(msg.type==='command')handleCommand(msg);
374
+ }catch(e){}
375
+ };
326
376
  ws.onclose=function(){ws=null;log('WebSocket closed, reconnecting in 5s...');setTimeout(connectWs,5000);};
327
377
  ws.onerror=function(e){err('WebSocket error',e);try{ws.close();}catch(ex){}};
328
378
  }catch(e){err('WebSocket connect failed',e);setTimeout(connectWs,5000);}
@@ -1 +1 @@
1
- {"version":3,"file":"connector-script.js","sourceRoot":"","sources":["../../../src/transport/connector-script.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,MAAc;IACjE,OAAO;;;+BAGsB,MAAM;mCACF,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwUtC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"connector-script.js","sourceRoot":"","sources":["../../../src/transport/connector-script.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,MAAc;IACjE,OAAO;;;+BAGsB,MAAM;mCACF,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0XtC,CAAC;AACN,CAAC"}
@@ -1,4 +1,9 @@
1
1
  import { WebSocketServer } from "ws";
2
2
  import type { BrowserStore } from "../store/browser-store.js";
3
- export declare function createWsReceiver(store: BrowserStore, port: number): WebSocketServer;
3
+ export interface WsCommandChannel {
4
+ wss: WebSocketServer;
5
+ sendCommand: (action: string, params?: Record<string, unknown>) => boolean;
6
+ requestScreenshot: () => Promise<boolean>;
7
+ }
8
+ export declare function createWsReceiver(store: BrowserStore, port: number): WsCommandChannel;
4
9
  //# sourceMappingURL=ws-receiver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ws-receiver.d.ts","sourceRoot":"","sources":["../../../src/transport/ws-receiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,GACX,eAAe,CAsDjB"}
1
+ {"version":3,"file":"ws-receiver.d.ts","sourceRoot":"","sources":["../../../src/transport/ws-receiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkB,MAAM,IAAI,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,eAAe,CAAC;IACrB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IAC3E,iBAAiB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3C;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,GACX,gBAAgB,CAmHlB"}
@@ -1,39 +1,94 @@
1
1
  import { WebSocketServer } from "ws";
2
2
  export function createWsReceiver(store, port) {
3
3
  const wss = new WebSocketServer({ port });
4
+ let screenshotResolve = null;
5
+ function getActiveClient() {
6
+ for (const client of wss.clients) {
7
+ if (client.readyState === 1)
8
+ return client;
9
+ }
10
+ return null;
11
+ }
12
+ function sendCommand(action, params) {
13
+ const client = getActiveClient();
14
+ if (!client)
15
+ return false;
16
+ try {
17
+ client.send(JSON.stringify({ type: "command", action, ...params }));
18
+ return true;
19
+ }
20
+ catch {
21
+ return false;
22
+ }
23
+ }
24
+ function requestScreenshot() {
25
+ return new Promise((resolve) => {
26
+ const client = getActiveClient();
27
+ if (!client) {
28
+ resolve(false);
29
+ return;
30
+ }
31
+ screenshotResolve = resolve;
32
+ try {
33
+ client.send(JSON.stringify({ type: "command", action: "screenshot" }));
34
+ }
35
+ catch {
36
+ screenshotResolve = null;
37
+ resolve(false);
38
+ return;
39
+ }
40
+ setTimeout(() => {
41
+ if (screenshotResolve === resolve) {
42
+ screenshotResolve = null;
43
+ resolve(false);
44
+ }
45
+ }, 15000);
46
+ });
47
+ }
4
48
  wss.on("connection", (ws) => {
5
- process.stderr.write(`[mcp-browser-lens] WebSocket client connected (total: ${wss.clients.size})\n`);
49
+ process.stderr.write(`[mcp-browser-lens] Browser connected (total: ${wss.clients.size})\n`);
6
50
  ws.on("message", (raw) => {
7
51
  try {
8
52
  const payload = JSON.parse(raw.toString());
9
53
  if (payload.timestamp) {
10
54
  store.ingest(payload);
55
+ if (payload.screenshots && payload.screenshots.length > 0) {
56
+ process.stderr.write(`[mcp-browser-lens] Screenshot received (${payload.screenshots[0].width}x${payload.screenshots[0].height})\n`);
57
+ if (screenshotResolve) {
58
+ screenshotResolve(true);
59
+ screenshotResolve = null;
60
+ }
61
+ }
11
62
  }
12
- ws.send(JSON.stringify({ ok: true, elements: store.getElementCount() }));
63
+ ws.send(JSON.stringify({
64
+ ok: true,
65
+ elements: store.getElementCount(),
66
+ screenshots: store.getScreenshots().length,
67
+ }));
13
68
  }
14
69
  catch {
15
70
  ws.send(JSON.stringify({ error: "Invalid JSON" }));
16
71
  }
17
72
  });
18
73
  ws.on("close", () => {
19
- process.stderr.write(`[mcp-browser-lens] WebSocket client disconnected (remaining: ${wss.clients.size})\n`);
74
+ process.stderr.write(`[mcp-browser-lens] Browser disconnected (remaining: ${wss.clients.size})\n`);
20
75
  if (wss.clients.size === 0) {
21
76
  store.clear();
22
- process.stderr.write(`[mcp-browser-lens] All clients disconnected — store cleared.\n`);
77
+ process.stderr.write(`[mcp-browser-lens] All disconnected — store cleared.\n`);
23
78
  }
24
79
  });
25
80
  });
26
81
  wss.on("error", (err) => {
27
82
  if (err.code === "EADDRINUSE") {
28
- process.stderr.write(`[mcp-browser-lens] WS port ${port} already in use — disabled.\n`);
83
+ process.stderr.write(`[mcp-browser-lens] WS port ${port} in use — disabled.\n`);
29
84
  }
30
85
  else {
31
- process.stderr.write(`[mcp-browser-lens] WebSocket error: ${err.message}\n`);
86
+ process.stderr.write(`[mcp-browser-lens] WS error: ${err.message}\n`);
32
87
  }
33
88
  });
34
89
  wss.on("listening", () => {
35
90
  process.stderr.write(`[mcp-browser-lens] WebSocket listening on port ${port}\n`);
36
91
  });
37
- return wss;
92
+ return { wss, sendCommand, requestScreenshot };
38
93
  }
39
94
  //# sourceMappingURL=ws-receiver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ws-receiver.js","sourceRoot":"","sources":["../../../src/transport/ws-receiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAIrC,MAAM,UAAU,gBAAgB,CAC9B,KAAmB,EACnB,IAAY;IAEZ,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,yDAAyD,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAC/E,CAAC;QAEF,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAkB,CAAC;gBAC5D,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oBACtB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;gBACD,EAAE,CAAC,IAAI,CACL,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC,CAChE,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gEAAgE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CACtF,CAAC;YACF,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gEAAgE,CACjE,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;QAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8BAA8B,IAAI,+BAA+B,CAClE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uCAAuC,GAAG,CAAC,OAAO,IAAI,CACvD,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kDAAkD,IAAI,IAAI,CAC3D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"ws-receiver.js","sourceRoot":"","sources":["../../../src/transport/ws-receiver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "browser-lens-mcp",
3
- "version": "1.3.0",
3
+ "version": "2.0.0",
4
4
  "description": "MCP server that connects to your browser for real-time DOM, CSS, layout inspection, screenshot capture, and Figma design comparison — your IDE's AI agent sees exactly what users see",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",