poke-browser 0.4.6 → 0.4.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BpE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAItD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAEtD;AAgMD,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAwuBlD"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BpE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAItD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAEtD;AAwPD,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CA2wBlD"}
package/dist/tools.js CHANGED
@@ -137,7 +137,7 @@ const BROWSER_GUIDE_MARKDOWN = `## Poke Browser MCP — agent guide
137
137
  - **browser_guide** — This playbook (static Markdown; no parameters).
138
138
  - **navigate_to** — Open a URL in a tab; waits for load (short or long timeout).
139
139
  - **click_element** — Click via CSS/XPath or viewport **x**/**y** (CDP); **1s CDP hover** (mouseMoved) at the target before the click.
140
- - **type_text** — Type into an input/textarea/contenteditable (or focused element); optional **clear** (default true) replaces existing value first.
140
+ - **type_text** — Type into the currently active input/textarea/contenteditable. Recommended flow: click target field first, verify focus/active element, then type. Optional **clear** (default true) replaces existing value first.
141
141
  - **scroll_window** — Scroll the page (selector into view, absolute position, deltas, or direction).
142
142
  - **capture_screenshot** — Visible viewport screenshot (PNG/JPEG).
143
143
  - **capture_and_upload_screenshot** — Same capture, then multipart POST to \`uploadUrl\` or \`POKE_UPLOAD_URL\`; on failure returns base64 + temp path.
@@ -170,6 +170,50 @@ const BROWSER_GUIDE_MARKDOWN = `## Poke Browser MCP — agent guide
170
170
 
171
171
  This avoids brittle hard-coded pixels and matches what the user actually sees.
172
172
 
173
+ ### Input focus safety (important)
174
+
175
+ Some apps render decoy/fake inputs and move focus to a different real editor after click.
176
+ Before **type_text**, always follow this sequence:
177
+
178
+ 1. **click_element** on the intended input/editor area.
179
+ 2. Confirm the currently focused element with **evaluate_js**.
180
+ Recommended check:
181
+ - \`document.activeElement?.tagName\`
182
+ - \`document.activeElement?.id\`
183
+ - \`document.activeElement?.className\`
184
+ - \`document.activeElement?.isContentEditable\`
185
+ - \`document.activeElement?.getAttribute('role')\`
186
+ 3. If focus points to the expected editor, call **type_text**.
187
+ - Prefer **type_text without selector** so input is sent to the real active editor.
188
+ - Use \`selector\` only when it exactly matches the verified focused element.
189
+
190
+ If focus is wrong, do not type yet. Click again and re-check active element before typing.
191
+
192
+ #### Focus handshake retry policy
193
+
194
+ - Retry the click + focus-check loop up to **3 times**.
195
+ - If focus still lands on a non-editable/decoy element, use **find_element** again with a more specific query and click a different match.
196
+ - After any modal, popover, rerender, or route change, re-run focus check before the next **type_text**.
197
+
198
+ #### Evaluate snippet example
199
+
200
+ \`\`\`js
201
+ (() => {
202
+ const el = document.activeElement;
203
+ if (!el) return { ok: false, reason: "no_active_element" };
204
+ return {
205
+ ok: true,
206
+ tag: el.tagName,
207
+ id: el.id || "",
208
+ className: typeof el.className === "string" ? el.className : "",
209
+ role: el.getAttribute?.("role") || "",
210
+ isContentEditable: !!el.isContentEditable,
211
+ type: "type" in el ? el.type : undefined,
212
+ ariaLabel: el.getAttribute?.("aria-label") || "",
213
+ };
214
+ })();
215
+ \`\`\`
216
+
173
217
  ### Cloudflare / cookie / bot walls
174
218
 
175
219
  When the tab **title** is **Just a moment...** or the page shows **Verify you are human**:
@@ -198,54 +242,81 @@ Do not stop at the wall—drive the verification control explicitly.
198
242
  *Call **browser_guide** any time for this reference.*`;
199
243
  /** Flat ZodObject (required `action`) so MCP tools/list JSON Schema includes `required: ["action"]`. */
200
244
  const ManageTabsSchema = z.object({
201
- action: z.enum(["list", "get_active", "new", "close", "switch"]),
202
- tabId: z.number().optional(),
203
- url: z.string().optional(),
245
+ action: z
246
+ .enum(["list", "get_active", "new", "close", "switch"])
247
+ .describe("Tab operation to perform. Use list/get_active for discovery, new to open a tab, and close/switch with tabId."),
248
+ tabId: z
249
+ .number()
250
+ .int()
251
+ .positive()
252
+ .optional()
253
+ .describe("Required for close and switch. Ignored for list/get_active/new."),
254
+ url: z
255
+ .string()
256
+ .optional()
257
+ .describe("Optional URL for action=new. If omitted, Chrome opens a blank new tab."),
204
258
  });
205
259
  export function registerTools(mcp) {
206
260
  mcp.registerTool("browser_guide", {
207
- description: "Return a static Markdown playbook: all tools (one line each), snapshot-then-act clicking, Cloudflare/human-verify flows, common errors, and execute_script vs evaluate_js / CSP notes. No parameters.",
261
+ description: "Return the built-in Markdown playbook for this MCP server. Use when you need workflow guidance, tool ordering, or troubleshooting notes. No parameters.",
208
262
  inputSchema: {},
209
263
  }, async () => {
210
264
  logToolCall("browser_guide", {});
211
265
  return { content: [{ type: "text", text: BROWSER_GUIDE_MARKDOWN }] };
212
266
  });
213
267
  mcp.registerTool("navigate_to", {
214
- description: "Navigate a tab to a URL (defaults to the active tab). Always waits for chrome.tabs status complete (via onUpdated) before returning tabId, url, and title. waitForLoad false uses a 10s load timeout; omitted/true uses 30s.",
268
+ description: "Navigate a browser tab to a URL and wait for load completion. Use this before interacting with a new page. Prefer this over managetabs(new) when you want deterministic 'loaded' state in the result.",
215
269
  inputSchema: {
216
- url: z.string().min(1).describe("Destination URL"),
217
- tabId: tabIdSchema.optional().describe("Optional tab id; defaults to active tab"),
270
+ url: z
271
+ .string()
272
+ .min(1)
273
+ .describe("Absolute destination URL to open, for example https://x.com/home."),
274
+ tabId: tabIdSchema
275
+ .optional()
276
+ .describe("Optional target tab id. If omitted, navigates the current active tab."),
218
277
  waitForLoad: z
219
278
  .boolean()
220
279
  .optional()
221
- .describe("If false, use a shorter (10s) load wait timeout; if true/omitted, up to ~30s"),
280
+ .describe("If false, use shorter wait (about 10s). If true/omitted, wait up to about 30s."),
222
281
  },
223
282
  }, async ({ url, tabId, waitForLoad }) => callTool("navigate_to", { url, tabId, waitForLoad }, PENDING_REQUEST_TIMEOUT_MS + 35_000));
224
283
  mcp.registerTool("click_element", {
225
- description: "Click via CSS selector / XPath (content script) or viewport coordinates (Chrome DevTools Protocol). Provide either selector or x+y. Always performs CDP Input.dispatchMouseEvent mouseMoved at the target point, waits 1s, then clicks so hover-dependent UI can render. After clicking, it is highly recommended to inspect the DOM (e.g., using get_dom_snapshot) to detect any new modals or UI changes that may have appeared.",
284
+ description: "Click an element by selector or viewport coordinates. Use selector when available; use x+y when you already resolved bounds from find_element/get_dom_snapshot. Performs hover first, then click, to support hover-activated UI. After each click, re-inspect the page before the next action.",
226
285
  inputSchema: {
227
286
  selector: z
228
287
  .string()
229
288
  .min(1)
230
289
  .optional()
231
- .describe("CSS selector, '//xpath', or 'xpath:expr'"),
232
- x: z.number().optional().describe("Viewport X when using coordinate click (debugger)"),
233
- y: z.number().optional().describe("Viewport Y when using coordinate click (debugger)"),
234
- tabId: tabIdSchema.optional(),
290
+ .describe("CSS selector, //xpath, or xpath:expr. Provide this OR x+y."),
291
+ x: z.number().optional().describe("Viewport X coordinate for CDP click. Requires y."),
292
+ y: z.number().optional().describe("Viewport Y coordinate for CDP click. Requires x."),
293
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
235
294
  },
236
295
  }, async (args) => handleClickElementTool(args));
237
296
  mcp.registerTool("type_text", {
238
- description: "Type into an input, textarea, or contenteditable (selector optional; uses focused element if omitted). When clear is true (default), the extension selects all and deletes existing content before typing (content script or CDP key events on fallback). Set clear false to append without clearing.",
297
+ description: "Type text into the currently focused editable element (input/textarea/contenteditable). Required workflow: click target field first, verify document.activeElement, then type. This prevents writing into fake/decoy inputs used by some apps. Prefer this over execute_script/evaluate_js for realistic editor behavior.",
239
298
  inputSchema: {
240
- text: z.string().describe("Text to type"),
241
- selector: z.string().min(1).optional(),
242
- x: z.number().optional().describe("Optional viewport X shows brief cursor feedback dot in the tab"),
243
- y: z.number().optional().describe("Optional viewport Y — shows brief cursor feedback dot in the tab"),
244
- tabId: tabIdSchema.optional(),
299
+ text: z
300
+ .string()
301
+ .describe("Exact text to type. Supports newlines. Empty string is allowed but usually unnecessary."),
302
+ selector: z
303
+ .string()
304
+ .min(1)
305
+ .optional()
306
+ .describe("Optional target selector. Use only after verifying focus and only when selector matches the real active editor. Safer default: omit selector after click+focus check."),
307
+ x: z
308
+ .number()
309
+ .optional()
310
+ .describe("Optional viewport X for visual cursor feedback marker only. Does not determine typing target."),
311
+ y: z
312
+ .number()
313
+ .optional()
314
+ .describe("Optional viewport Y for visual cursor feedback marker only. Does not determine typing target."),
315
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
245
316
  clear: z
246
317
  .boolean()
247
318
  .optional()
248
- .describe("If true (default), select-all and delete existing content before typing"),
319
+ .describe("If true (default), clear existing value before typing. If false, append/insert at current caret/selection in the active editor."),
249
320
  },
250
321
  }, async ({ text, selector, x, y, tabId, clear }) => callTool("type_text", {
251
322
  text,
@@ -256,39 +327,39 @@ export function registerTools(mcp) {
256
327
  clear: clear !== false,
257
328
  }));
258
329
  mcp.registerTool("scroll_window", {
259
- description: "Scroll the target tab's main frame (via injected main-world script). Use selector to scroll an element into view; x/y for absolute scroll position; deltaX/deltaY for relative scroll; or direction (up/down/left/right) with optional amount (pixels, default ~85% of viewport). Precedence: selector, then absolute x/y, then direction+deltas, then deltaX/deltaY alone.",
330
+ description: "Scroll the page using one of four modes: selector into view, absolute position, directional step, or delta offsets. Use this when content is offscreen before click/type.",
260
331
  inputSchema: {
261
- x: z.number().optional().describe("Absolute scrollLeft"),
262
- y: z.number().optional().describe("Absolute scrollTop"),
263
- deltaX: z.number().optional().describe("Horizontal scroll delta (used alone or as fallback amount with direction)"),
264
- deltaY: z.number().optional().describe("Vertical scroll delta (used alone or as fallback amount with direction)"),
332
+ x: z.number().optional().describe("Absolute scrollLeft. Used when x or y is provided."),
333
+ y: z.number().optional().describe("Absolute scrollTop. Used when x or y is provided."),
334
+ deltaX: z.number().optional().describe("Horizontal scroll delta in pixels."),
335
+ deltaY: z.number().optional().describe("Vertical scroll delta in pixels."),
265
336
  direction: z
266
337
  .enum(["up", "down", "left", "right"])
267
338
  .optional()
268
- .describe("Scroll in this direction; combine with amount or non-zero delta on that axis"),
339
+ .describe("Directional scroll mode. Use with amount for deterministic movement."),
269
340
  amount: z
270
341
  .number()
271
342
  .optional()
272
- .describe("Distance in pixels when using direction (default ~85% of viewport height or width)"),
273
- selector: z.string().min(1).optional().describe("Element to scroll into view"),
274
- tabId: tabIdSchema.optional(),
275
- behavior: z.enum(["smooth", "instant"]).optional().describe("Scroll behavior (default instant)"),
343
+ .describe("Pixels to scroll in directional mode. Default is about 85% of viewport."),
344
+ selector: z.string().min(1).optional().describe("Element selector to scroll into view (highest precedence)."),
345
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
346
+ behavior: z.enum(["smooth", "instant"]).optional().describe("Scroll animation behavior. Default instant."),
276
347
  },
277
348
  }, async (args) => callTool("scroll_window", args));
278
349
  mcp.registerTool("capture_screenshot", {
279
- description: "Capture the visible area of a browser tab as an image (PNG or JPEG). Defaults to the active tab. May activate the target tab briefly to capture it.",
350
+ description: "Capture a viewport screenshot of the current page. Use for visual verification, debugging, and coordinate-based actions.",
280
351
  inputSchema: {
281
- tabId: tabIdSchema.optional().describe("Tab to capture; defaults to the active tab in the focused window"),
352
+ tabId: tabIdSchema.optional().describe("Tab to capture. Defaults to active tab in focused window."),
282
353
  format: z
283
354
  .enum(["png", "jpeg"])
284
355
  .optional()
285
- .describe("Image format (default png). JPEG supports quality."),
356
+ .describe("Output image format. Default png."),
286
357
  quality: z
287
358
  .number()
288
359
  .min(0)
289
360
  .max(100)
290
361
  .optional()
291
- .describe("JPEG quality 0100 (only used when format is jpeg)"),
362
+ .describe("JPEG quality 0-100; ignored unless format=jpeg."),
292
363
  },
293
364
  }, async ({ tabId, format, quality }) => {
294
365
  logToolCall("capture_screenshot", { tabId, format, quality });
@@ -328,24 +399,24 @@ export function registerTools(mcp) {
328
399
  }
329
400
  });
330
401
  mcp.registerTool("capture_and_upload_screenshot", {
331
- description: "Capture the visible tab (same as capture_screenshot) and POST it as multipart/form-data to an upload URL. On success returns mediaId and url from JSON. On failure (missing URL, network error, non-OK response, or unparseable JSON) returns base64 plus a temp file path. Defaults uploadUrl to env POKE_UPLOAD_URL.",
402
+ description: "Capture a viewport screenshot and upload it via multipart/form-data. Use when downstream systems need a hosted image URL. Falls back to base64 + local temp file when upload is unavailable or fails.",
332
403
  inputSchema: {
333
- tabId: tabIdSchema.optional().describe("Tab to capture; defaults to the active tab in the focused window"),
404
+ tabId: tabIdSchema.optional().describe("Tab to capture. Defaults to active tab in focused window."),
334
405
  format: z
335
406
  .enum(["png", "jpeg"])
336
407
  .optional()
337
- .describe("Image format (default png). JPEG supports quality."),
408
+ .describe("Output image format. Default png."),
338
409
  quality: z
339
410
  .number()
340
411
  .min(0)
341
412
  .max(100)
342
413
  .optional()
343
- .describe("JPEG quality 0100 (only used when format is jpeg)"),
414
+ .describe("JPEG quality 0-100; ignored unless format=jpeg."),
344
415
  uploadUrl: z
345
416
  .string()
346
417
  .min(1)
347
418
  .optional()
348
- .describe("POST endpoint for multipart upload; defaults to POKE_UPLOAD_URL when set"),
419
+ .describe("Upload endpoint URL. If omitted, uses env POKE_UPLOAD_URL when configured."),
349
420
  },
350
421
  }, async ({ tabId, format, quality, uploadUrl }) => {
351
422
  logToolCall("capture_and_upload_screenshot", { tabId, format, quality, uploadUrl });
@@ -399,11 +470,11 @@ export function registerTools(mcp) {
399
470
  }
400
471
  });
401
472
  mcp.registerTool("full_page_capture", {
402
- description: "Capture a full-page screenshot by scrolling the viewport and stitching strips (OffscreenCanvas). Slower than capture_screenshot; may duplicate fixed headers between strips.",
473
+ description: "Capture a stitched full-page screenshot by scrolling and combining strips. Use when viewport screenshot is insufficient. Slower than capture_screenshot and may duplicate sticky/fixed UI.",
403
474
  inputSchema: {
404
- tabId: tabIdSchema.optional(),
405
- format: z.enum(["png", "jpeg"]).optional(),
406
- quality: z.number().min(0).max(100).optional().describe("JPEG quality when format is jpeg"),
475
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
476
+ format: z.enum(["png", "jpeg"]).optional().describe("Output image format. Default png."),
477
+ quality: z.number().min(0).max(100).optional().describe("JPEG quality 0-100; only for format=jpeg."),
407
478
  },
408
479
  }, async ({ tabId, format, quality }) => {
409
480
  logToolCall("full_page_capture", { tabId, format, quality });
@@ -443,26 +514,26 @@ export function registerTools(mcp) {
443
514
  }
444
515
  });
445
516
  mcp.registerTool("pdf_export", {
446
- description: "Export the current page as PDF via CDP Page.printToPDF (printBackground true). Returns base64-encoded PDF data.",
517
+ description: "Export the page to PDF using CDP Page.printToPDF. Use for printable artifacts instead of screenshots.",
447
518
  inputSchema: {
448
- tabId: tabIdSchema.optional(),
449
- landscape: z.boolean().optional(),
450
- scale: z.number().positive().max(2).optional().describe("Scale factor (default 1)"),
519
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
520
+ landscape: z.boolean().optional().describe("Render PDF in landscape orientation when true."),
521
+ scale: z.number().positive().max(2).optional().describe("Print scale factor. Default 1."),
451
522
  },
452
523
  }, async ({ tabId, landscape, scale }) => callTool("pdf_export", { tabId, landscape, scale }, 120_000));
453
524
  mcp.registerTool("device_emulate", {
454
- description: "Apply CDP device metrics and optional user-agent override (mobile/tablet/desktop presets). Debugger attaches briefly; viewport may reset when the session detaches.",
525
+ description: "Emulate device viewport metrics (mobile/tablet/desktop) and optional user-agent override. Use before responsive layout checks or device-specific flows.",
455
526
  inputSchema: {
456
- tabId: tabIdSchema.optional(),
457
- device: z.enum(["mobile", "tablet", "desktop"]).optional().describe("Preset (default desktop)"),
458
- width: z.number().int().positive().optional(),
459
- height: z.number().int().positive().optional(),
460
- deviceScaleFactor: z.number().positive().optional(),
461
- userAgent: z.string().optional(),
527
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
528
+ device: z.enum(["mobile", "tablet", "desktop"]).optional().describe("Preset metrics profile. Default desktop."),
529
+ width: z.number().int().positive().optional().describe("Override viewport width in CSS pixels."),
530
+ height: z.number().int().positive().optional().describe("Override viewport height in CSS pixels."),
531
+ deviceScaleFactor: z.number().positive().optional().describe("Override pixel ratio / device scale factor."),
532
+ userAgent: z.string().optional().describe("Optional user-agent override string."),
462
533
  },
463
534
  }, async ({ tabId, device, width, height, deviceScaleFactor, userAgent }) => callTool("device_emulate", { tabId, device, width, height, deviceScaleFactor, userAgent }, 30_000));
464
535
  mcp.registerTool("managetabs", {
465
- description: "List tabs, read the active tab, open, close, or switch tabs in the connected Chrome profile.",
536
+ description: "Manage browser tabs: list, get active, open, close, or switch. Use this for tab orchestration; use navigate_to for load-aware URL navigation.",
466
537
  inputSchema: ManageTabsSchema,
467
538
  }, async (args) => {
468
539
  logToolCall("managetabs", args);
@@ -484,21 +555,21 @@ export function registerTools(mcp) {
484
555
  }
485
556
  });
486
557
  mcp.registerTool("evaluate_js", {
487
- description: "Evaluate JavaScript in the page's main world (via content-script relay)",
558
+ description: "Evaluate JavaScript in the page context via content-script relay. Use for lightweight reads/computations. Prefer dedicated tools (find_element, click_element, type_text) for interactions.",
488
559
  inputSchema: {
489
- code: z.string().min(1).describe("JavaScript source to evaluate"),
490
- tabId: tabIdSchema.optional(),
560
+ code: z.string().min(1).describe("JavaScript expression or statement block to run in page context."),
561
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
491
562
  timeoutMs: z
492
563
  .number()
493
564
  .int()
494
565
  .positive()
495
566
  .max(120_000)
496
567
  .optional()
497
- .describe("Optional timeout in ms (default 30000 in extension)"),
568
+ .describe("Execution timeout in milliseconds. Use higher values for heavy page scripts."),
498
569
  },
499
570
  }, async ({ code, tabId, timeoutMs }) => callTool("evaluate_js", { code, tabId, timeoutMs }, EVALUATE_JS_TIMEOUT_MS));
500
571
  mcp.registerTool("get_dom_snapshot", {
501
- description: "Capture a compact DOM tree from the active (or chosen) tab: tags, ids, classes, roles, aria-label, short text, bounding rects, interactivity, and children up to maxDepth.",
572
+ description: "Return a compact DOM tree snapshot with structure, text, roles, bounds, and interactivity hints. Use for broad page understanding and multi-step planning.",
502
573
  inputSchema: {
503
574
  tabId: tabIdSchema.optional().describe("Tab to read; defaults to active tab in focused window"),
504
575
  includeHidden: z
@@ -515,9 +586,9 @@ export function registerTools(mcp) {
515
586
  },
516
587
  }, async ({ tabId, includeHidden, maxDepth }) => callTool("get_dom_snapshot", { tabId, includeHidden, maxDepth }, EVALUATE_JS_TIMEOUT_MS));
517
588
  mcp.registerTool("get_accessibility_tree", {
518
- description: "Flat list of semantic nodes (roles, names, selectors, heading levels, form state) in reading order (top-to-bottom, left-to-right).",
589
+ description: "Return a flattened accessibility-oriented view: role/name/selector/state in reading order. Use when semantic targeting is more reliable than raw DOM shape.",
519
590
  inputSchema: {
520
- tabId: tabIdSchema.optional(),
591
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
521
592
  interactiveOnly: z
522
593
  .boolean()
523
594
  .optional()
@@ -525,104 +596,107 @@ export function registerTools(mcp) {
525
596
  },
526
597
  }, async ({ tabId, interactiveOnly }) => callTool("get_accessibility_tree", { tabId, interactiveOnly }, EVALUATE_JS_TIMEOUT_MS));
527
598
  mcp.registerTool("find_element", {
528
- description: "Find up to 5 elements by CSS selector, visible text, ARIA/title/alt, or XPath. Strategy auto tries css, then text, then aria. Prefer this over raw coordinates — always get bounding rect first, then compute center. TIP: When you need to look up multiple elements, prefer calling get_dom_snapshot once and searching within that result — it is more efficient than multiple find_element round-trips.",
599
+ description: "Find up to 5 matching elements by CSS, text, ARIA-like attributes, or XPath. Use this before click/type to obtain robust selectors and bounds. Prefer this over guessing coordinates.",
529
600
  inputSchema: {
530
- query: z.string().min(1).describe("Selector string, text snippet, aria substring, or XPath expression"),
531
- tabId: tabIdSchema.optional(),
601
+ query: z
602
+ .string()
603
+ .min(1)
604
+ .describe("Search query: selector, visible text snippet, aria/title/alt text, or xpath expression."),
605
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
532
606
  strategy: z
533
607
  .enum(["auto", "css", "text", "aria", "xpath"])
534
608
  .optional()
535
- .describe("Matching strategy (default auto)"),
609
+ .describe("Matching strategy. auto tries css -> text -> aria."),
536
610
  },
537
611
  }, async ({ query, tabId, strategy }) => callTool("find_element", { query, tabId, strategy }, EVALUATE_JS_TIMEOUT_MS));
538
612
  mcp.registerTool("read_page", {
539
- description: "Extract page content as structured data (default), plain text, or lightweight markdown (headings, links, lists, code). Skips script/style/nav/header/footer noise.",
613
+ description: "Extract readable page content as structured JSON, plain text, or lightweight markdown. Use this for content understanding rather than interaction.",
540
614
  inputSchema: {
541
- tabId: tabIdSchema.optional(),
615
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
542
616
  format: z
543
617
  .enum(["markdown", "text", "structured"])
544
618
  .optional()
545
- .describe("structured (default), text, or markdown"),
619
+ .describe("Output format: structured (default), text, or markdown."),
546
620
  },
547
621
  }, async ({ tabId, format }) => callTool("read_page", { tabId, format }, EVALUATE_JS_TIMEOUT_MS));
548
622
  mcp.registerTool("wait_for_selector", {
549
- description: "Poll every 100ms until a CSS selector or XPath matches in the page (content script). Optional strict visibility checks.",
623
+ description: "Wait until an element exists (and optionally is visible). Use after actions that trigger async rendering, route changes, or delayed widgets.",
550
624
  inputSchema: {
551
625
  selector: z
552
626
  .string()
553
627
  .min(1)
554
628
  .describe("CSS selector, '//xpath', or 'xpath:expr' (same as find_element)"),
555
- tabId: tabIdSchema.optional(),
629
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
556
630
  timeout: z
557
631
  .number()
558
632
  .int()
559
633
  .positive()
560
634
  .max(120_000)
561
635
  .optional()
562
- .describe("Max wait in ms (default 10000)"),
636
+ .describe("Maximum wait in milliseconds. Default 10000."),
563
637
  visible: z
564
638
  .boolean()
565
639
  .optional()
566
- .describe("If true, require visible layout (offsetParent / fixed-sticky rules) and not display:none, visibility:hidden, or opacity:0"),
640
+ .describe("If true, require element to be visually present (not display:none, hidden, or fully transparent)."),
567
641
  },
568
642
  }, async ({ selector, tabId, timeout, visible }) => {
569
643
  const t = timeout ?? 10_000;
570
644
  return callTool("wait_for_selector", { selector, tabId, timeout: t, visible }, t + 3000);
571
645
  });
572
646
  mcp.registerTool("execute_script", {
573
- description: "Run an async script in the page main world via chrome.scripting. The script body is wrapped so `await` works; `args` is available as `args`. Result is JSON-clone-safe (circular refs become \"[Circular]\").",
647
+ description: "Execute async JavaScript via chrome.scripting with extension privileges. Use when evaluate_js is blocked by page constraints or you need script arguments/results in one call.",
574
648
  inputSchema: {
575
- script: z.string().min(1).describe("JavaScript source body executed as async IIFE"),
576
- tabId: tabIdSchema.optional(),
577
- args: z.array(z.unknown()).optional().describe("Array available inside the script as `args`"),
649
+ script: z.string().min(1).describe("JavaScript function body executed as an async IIFE."),
650
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
651
+ args: z.array(z.unknown()).optional().describe("Arguments array exposed inside the script as `args`."),
578
652
  },
579
653
  }, async ({ script, tabId, args }) => callTool("execute_script", { script, tabId, args: args ?? [] }, 60_000));
580
654
  mcp.registerTool("error_reporter", {
581
- description: "Return the last N uncaught page errors and unhandled promise rejections (separate from console logs): message, stack, filename, line/column, timestamp.",
655
+ description: "Return uncaught errors and unhandled promise rejections from the page context. Use this to diagnose runtime failures after interactions.",
582
656
  inputSchema: {
583
- tabId: tabIdSchema.optional(),
657
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
584
658
  limit: z.number().int().positive().max(200).optional().describe("Max entries (default 50)"),
585
659
  },
586
660
  }, async ({ tabId, limit }) => callTool("error_reporter", { tabId, limit: limit ?? 50 }));
587
661
  mcp.registerTool("get_performance_metrics", {
588
- description: "Navigation timing (domContentLoaded, loadEventEnd), paint timings (firstPaint, firstContentfulPaint), and JS heap from CDP Performance.getMetrics (requires debugger attach briefly).",
662
+ description: "Return performance metrics (navigation timings, paint timings, JS heap) via CDP. Use for quick perf triage without full profiling.",
589
663
  inputSchema: {
590
- tabId: tabIdSchema.optional(),
664
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
591
665
  },
592
666
  }, async ({ tabId }) => callTool("get_performance_metrics", { tabId }, EVALUATE_JS_TIMEOUT_MS));
593
667
  mcp.registerTool("get_console_logs", {
594
- description: "Read console entries captured by the content script ring buffer (max 500). Requires the page to have loaded the poke-browser content script.",
668
+ description: "Read buffered console logs captured by the content script. Use for debugging page behavior and script errors.",
595
669
  inputSchema: {
596
- tabId: tabIdSchema.optional(),
670
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
597
671
  level: z.enum(["all", "error", "warn", "info", "log"]).optional().describe("Filter (default all)"),
598
672
  limit: z.number().int().positive().max(500).optional().describe("Max entries (default 100)"),
599
673
  },
600
674
  }, async ({ tabId, level, limit }) => callTool("get_console_logs", { tabId, level: level ?? "all", limit: limit ?? 100 }));
601
675
  mcp.registerTool("clear_console_logs", {
602
- description: "Clear the tab's console capture ring buffer in the content script.",
676
+ description: "Clear buffered console logs for a tab.",
603
677
  inputSchema: {
604
- tabId: tabIdSchema.optional(),
678
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
605
679
  },
606
680
  }, async ({ tabId }) => callTool("clear_console_logs", { tabId }));
607
681
  mcp.registerTool("start_network_capture", {
608
- description: "Enable CDP Network.* events for a tab and clear its prior in-memory network buffer (max 200 requests per tab).",
682
+ description: "Start capturing network traffic for a tab and reset its in-memory buffer. Call this before reproducing a request flow you want to inspect.",
609
683
  inputSchema: {
610
- tabId: tabIdSchema.optional(),
684
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
611
685
  },
612
686
  }, async ({ tabId }) => callTool("start_network_capture", { tabId }));
613
687
  mcp.registerTool("stop_network_capture", {
614
- description: "Detach CDP from the tab when it was attached only for network capture (stops new events).",
688
+ description: "Stop network capture for a tab (no new network events recorded).",
615
689
  inputSchema: {
616
- tabId: tabIdSchema.optional(),
690
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
617
691
  },
618
692
  }, async ({ tabId }) => callTool("stop_network_capture", { tabId }));
619
693
  mcp.registerTool("get_network_logs", {
620
- description: "Return buffered network requests for a tab. Optionally include response bodies (Network.getResponseBody). Use start_network_capture first to record new traffic.",
694
+ description: "Return buffered network requests for a tab. Optionally include response bodies. Use start_network_capture first to collect fresh traffic.",
621
695
  inputSchema: {
622
- tabId: tabIdSchema.optional(),
623
- filter: z.string().optional().describe("Substring filter on URL"),
624
- limit: z.number().int().positive().max(200).optional().describe("Max entries (default 50)"),
625
- includeBody: z.boolean().optional().describe("Fetch bodies for completed requests (slower)"),
696
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
697
+ filter: z.string().optional().describe("Optional substring filter applied to request URL."),
698
+ limit: z.number().int().positive().max(200).optional().describe("Maximum entries to return. Default 50."),
699
+ includeBody: z.boolean().optional().describe("Include response bodies for completed requests. Slower."),
626
700
  },
627
701
  }, async ({ tabId, filter, limit, includeBody }) => callTool("get_network_logs", {
628
702
  tabId,
@@ -631,76 +705,84 @@ export function registerTools(mcp) {
631
705
  includeBody: includeBody === true,
632
706
  }, includeBody === true ? 60_000 : PENDING_REQUEST_TIMEOUT_MS));
633
707
  mcp.registerTool("clear_network_logs", {
634
- description: "Clear in-memory network request buffer for a tab.",
708
+ description: "Clear buffered network logs for a tab.",
635
709
  inputSchema: {
636
- tabId: tabIdSchema.optional(),
710
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
637
711
  },
638
712
  }, async ({ tabId }) => callTool("clear_network_logs", { tabId }));
639
713
  mcp.registerTool("hover_element", {
640
- description: "Hover using a selector (content script: mousemove/mouseover/mouseenter at element center) or viewport coordinates (CDP mouseMoved).",
714
+ description: "Hover over an element by selector or coordinates. Use to reveal hover menus/tooltips before clicking.",
641
715
  inputSchema: {
642
- selector: z.string().min(1).optional(),
643
- x: z.number().optional(),
644
- y: z.number().optional(),
645
- tabId: tabIdSchema.optional(),
716
+ selector: z.string().min(1).optional().describe("Target selector (CSS/XPath). Provide this OR x+y."),
717
+ x: z.number().optional().describe("Viewport X coordinate for CDP hover. Requires y."),
718
+ y: z.number().optional().describe("Viewport Y coordinate for CDP hover. Requires x."),
719
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
646
720
  },
647
721
  }, async ({ selector, x, y, tabId }) => callTool("hover_element", { selector, x, y, tabId }));
648
722
  const fillFormFieldSchema = z.object({
649
- selector: z.string().min(1),
650
- value: z.string(),
651
- type: z.enum(["text", "select", "checkbox", "radio", "file"]).optional(),
723
+ selector: z.string().min(1).describe("Field selector (CSS/XPath)."),
724
+ value: z.string().describe("Value to apply to the matched field."),
725
+ type: z
726
+ .enum(["text", "select", "checkbox", "radio", "file"])
727
+ .optional()
728
+ .describe("Optional field type hint. Usually inferred automatically."),
652
729
  });
653
730
  mcp.registerTool("script_inject", {
654
- description: "Inject a `<script>` into the page DOM (main world), unlike evaluate_js/execute_script isolated worlds. Optional persistent registration survives navigations on the same origin via a bundled loader + storage.",
731
+ description: "Inject a classic <script> tag into the page DOM (main world). Use when code must run as true page script rather than isolated execution contexts. Supports optional persistent re-injection by origin.",
655
732
  inputSchema: {
656
- script: z.string().min(1).describe("JavaScript source executed as a classic script tag in the page"),
657
- tabId: tabIdSchema.optional(),
658
- persistent: z.boolean().optional().describe("If true, store and re-inject on future loads for this origin (registerContentScripts)"),
733
+ script: z.string().min(1).describe("JavaScript source inserted as a classic script tag."),
734
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
735
+ persistent: z.boolean().optional().describe("Persist script for future loads on same origin."),
659
736
  runAt: z
660
737
  .enum(["document_start", "document_end", "document_idle"])
661
738
  .optional()
662
- .describe("When to inject (default document_idle for one-shot; persistent loader honors timing per entry)"),
739
+ .describe("Injection timing. Default document_idle."),
663
740
  },
664
741
  }, async ({ script, tabId, persistent, runAt }) => callTool("script_inject", { script, tabId, persistent, runAt: runAt ?? "document_idle" }, EVALUATE_JS_TIMEOUT_MS));
665
742
  mcp.registerTool("cookie_manager", {
666
- description: "Read/write/delete cookies via chrome.cookies (Chrome profile). Actions: get, get_all, set, delete, delete_all.",
743
+ description: "Read/write/delete browser cookies via chrome.cookies. Use this for session setup, auth checks, and cookie cleanup.",
667
744
  inputSchema: {
668
- action: z.enum(["get", "get_all", "set", "delete", "delete_all"]),
669
- url: z.string().optional().describe("Cookie store URL (often required for get/set/delete)"),
670
- name: z.string().optional(),
671
- value: z.string().optional(),
672
- domain: z.string().optional().describe("For get_all / delete_all / some set operations"),
673
- path: z.string().optional(),
674
- secure: z.boolean().optional(),
675
- httpOnly: z.boolean().optional(),
676
- expirationDate: z.number().optional(),
677
- tabId: tabIdSchema.optional().describe("Derive url from tab when url omitted"),
745
+ action: z
746
+ .enum(["get", "get_all", "set", "delete", "delete_all"])
747
+ .describe("Cookie operation to run."),
748
+ url: z.string().optional().describe("Cookie URL scope. Often required for get/set/delete."),
749
+ name: z.string().optional().describe("Cookie name (required for get/set/delete)."),
750
+ value: z.string().optional().describe("Cookie value (required for set)."),
751
+ domain: z.string().optional().describe("Cookie domain (used by get_all/delete_all and some set cases)."),
752
+ path: z.string().optional().describe("Cookie path scope."),
753
+ secure: z.boolean().optional().describe("Set secure attribute when action=set."),
754
+ httpOnly: z.boolean().optional().describe("Set httpOnly attribute when action=set."),
755
+ expirationDate: z.number().optional().describe("Unix timestamp expiry for action=set."),
756
+ tabId: tabIdSchema.optional().describe("Use tab URL when url is omitted."),
678
757
  },
679
758
  }, async (args) => callTool("cookie_manager", args, PENDING_REQUEST_TIMEOUT_MS));
680
759
  mcp.registerTool("fill_form", {
681
- description: "Fill multiple form fields in one round trip (text, select, checkbox, radio). Optional form submit via selector or default submit button.",
760
+ description: "Fill multiple form fields in one call. Use for deterministic multi-field form completion with optional submit.",
682
761
  inputSchema: {
683
- fields: z.array(fillFormFieldSchema).min(1),
684
- tabId: tabIdSchema.optional(),
685
- submitAfter: z.boolean().optional(),
686
- submitSelector: z.string().optional().describe("CSS selector for submit control; else first [type=submit] in same form"),
762
+ fields: z.array(fillFormFieldSchema).min(1).describe("Fields to fill in order."),
763
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
764
+ submitAfter: z.boolean().optional().describe("Submit form after filling fields."),
765
+ submitSelector: z
766
+ .string()
767
+ .optional()
768
+ .describe("Optional submit control selector. If omitted, uses first submit control in same form."),
687
769
  },
688
770
  }, async ({ fields, tabId, submitAfter, submitSelector }) => callTool("fill_form", { fields, tabId, submitAfter, submitSelector }, EVALUATE_JS_TIMEOUT_MS));
689
771
  mcp.registerTool("get_storage", {
690
- description: "Read localStorage, sessionStorage (page origin), or cookies (Chrome cookie store for the tab URL). Single key or entire map.",
772
+ description: "Read storage values from localStorage, sessionStorage, or cookies. Use key for one value or omit to fetch full map.",
691
773
  inputSchema: {
692
- type: z.enum(["local", "session", "cookie"]),
693
- key: z.string().optional(),
694
- tabId: tabIdSchema.optional(),
774
+ type: z.enum(["local", "session", "cookie"]).describe("Storage backend to read."),
775
+ key: z.string().optional().describe("Optional key name. Omit to return all keys/values."),
776
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
695
777
  },
696
778
  }, async ({ type, key, tabId }) => callTool("get_storage", { type, key, tabId }, EVALUATE_JS_TIMEOUT_MS));
697
779
  mcp.registerTool("set_storage", {
698
- description: "Write a key to localStorage or sessionStorage in the page origin (not cookies).",
780
+ description: "Write one key/value to localStorage or sessionStorage for the page origin.",
699
781
  inputSchema: {
700
- type: z.enum(["local", "session"]),
701
- key: z.string().min(1),
702
- value: z.string(),
703
- tabId: tabIdSchema.optional(),
782
+ type: z.enum(["local", "session"]).describe("Storage backend to write."),
783
+ key: z.string().min(1).describe("Storage key to set."),
784
+ value: z.string().describe("String value to store."),
785
+ tabId: tabIdSchema.optional().describe("Optional target tab id; defaults to active tab."),
704
786
  },
705
787
  }, async ({ type, key, value, tabId }) => callTool("set_storage", { type, key, value, tabId }, PENDING_REQUEST_TIMEOUT_MS));
706
788
  }
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": 3,
3
3
  "name": "poke-browser",
4
- "version": "0.4.5",
4
+ "version": "0.4.8",
5
5
  "description": "Browser automation bridge for MCP agents via WebSocket.",
6
6
  "permissions": [
7
7
  "tabs",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poke-browser",
3
- "version": "0.4.6",
3
+ "version": "0.4.8",
4
4
  "description": "MCP server + WebSocket bridge for the poke-browser Chrome extension",
5
5
  "type": "module",
6
6
  "engines": {
@@ -55,6 +55,7 @@
55
55
  "devDependencies": {
56
56
  "@semantic-release/changelog": "^6.0.3",
57
57
  "@semantic-release/commit-analyzer": "^13.0.0",
58
+ "@semantic-release/exec": "^7.1.0",
58
59
  "@semantic-release/git": "^10.0.1",
59
60
  "@semantic-release/github": "^11.0.0",
60
61
  "@semantic-release/npm": "^12.0.1",