@weavetab/mcp 2.5.0-beta.1 → 2.5.0-beta.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/AGENTS.md +2 -1
- package/ARCHITECTURE.md +6 -6
- package/LICENSE +1 -1
- package/README.md +164 -802
- package/SECURITY.md +33 -22
- package/TROUBLESHOOTING.md +3 -3
- package/dist/cdp/bridge.d.ts +10 -0
- package/dist/cdp/bridge.js +285 -78
- package/dist/cdp/connector.d.ts +7 -3
- package/dist/cdp/connector.js +196 -75
- package/dist/cdp/helpers.d.ts +4 -0
- package/dist/cdp/helpers.js +181 -0
- package/dist/cdp/lock.d.ts +9 -6
- package/dist/cdp/lock.js +72 -59
- package/dist/cdp/omni_broker.d.ts +2 -1
- package/dist/cdp/omni_broker.js +13 -7
- package/dist/cdp/profiles.d.ts +10 -0
- package/dist/cdp/profiles.js +65 -0
- package/dist/cdp/walker.d.ts +25 -1
- package/dist/cdp/walker.js +354 -7
- package/dist/cli/plugin.d.ts +0 -2
- package/dist/cli/plugin.js +51 -696
- package/dist/cli/updater.d.ts +1 -1
- package/dist/cli/updater.js +27 -7
- package/dist/config/loader.d.ts +33 -6
- package/dist/config/loader.js +174 -22
- package/dist/desktop/discovery.d.ts +44 -0
- package/dist/desktop/discovery.js +364 -0
- package/dist/index.js +140 -64
- package/dist/intelligence/marks.d.ts +36 -0
- package/dist/intelligence/marks.js +30 -0
- package/dist/intelligence/patternCompiler.d.ts +118 -0
- package/dist/intelligence/patternCompiler.js +259 -0
- package/dist/intelligence/sessionMemory.d.ts +2 -0
- package/dist/intelligence/sessionMemory.js +18 -8
- package/dist/overlay/ghost.js +2 -2
- package/dist/overlay/injector.js +3 -5
- package/dist/plugin/extension_bridge.d.ts +40 -0
- package/dist/plugin/extension_bridge.js +158 -0
- package/dist/plugin/interface.d.ts +151 -15
- package/dist/plugin/loader.d.ts +19 -1
- package/dist/plugin/loader.js +331 -63
- package/dist/plugin/pipeline.d.ts +75 -0
- package/dist/plugin/pipeline.js +183 -0
- package/dist/plugin/registry.js +12 -1
- package/dist/plugin/storage.d.ts +51 -0
- package/dist/plugin/storage.js +164 -0
- package/dist/security/secrets.d.ts +1 -0
- package/dist/security/secrets.js +13 -0
- package/dist/sensors/actionability.js +1 -2
- package/dist/sensors/guard.js +4 -10
- package/dist/sensors/mutations.js +12 -0
- package/dist/sensors/operation_monitor.js +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.js +600 -236
- package/dist/state/agent.d.ts +1 -0
- package/dist/state/agent.js +3 -0
- package/dist/state/delta.d.ts +12 -4
- package/dist/state/delta.js +67 -14
- package/dist/state/session.d.ts +8 -2
- package/dist/state/session.js +60 -13
- package/dist/tools/browser_detect.d.ts +16 -2
- package/dist/tools/browser_detect.js +54 -6
- package/dist/tools/burst.d.ts +17 -7
- package/dist/tools/burst.js +240 -83
- package/dist/tools/checkpoint.d.ts +38 -0
- package/dist/tools/checkpoint.js +271 -0
- package/dist/tools/click.d.ts +1 -0
- package/dist/tools/click.js +97 -98
- package/dist/tools/clipboard.js +31 -24
- package/dist/tools/design_extract.js +1 -1
- package/dist/tools/eval.js +1 -1
- package/dist/tools/fill.d.ts +20 -1
- package/dist/tools/fill.js +199 -40
- package/dist/tools/find.d.ts +16 -0
- package/dist/tools/find.js +67 -44
- package/dist/tools/github/index.d.ts +19 -4
- package/dist/tools/github/index.js +40 -4
- package/dist/tools/highlight.d.ts +6 -2
- package/dist/tools/highlight.js +158 -72
- package/dist/tools/inspect.js +1 -1
- package/dist/tools/key.js +65 -56
- package/dist/tools/navigate.d.ts +1 -1
- package/dist/tools/navigate.js +57 -44
- package/dist/tools/pdf.js +21 -13
- package/dist/tools/pointer.d.ts +18 -3
- package/dist/tools/pointer.js +89 -1
- package/dist/tools/read.d.ts +28 -8
- package/dist/tools/read.js +230 -56
- package/dist/tools/scrape.js +67 -13
- package/dist/tools/screenshot.js +21 -16
- package/dist/tools/scroll.js +6 -11
- package/dist/tools/select.js +8 -2
- package/dist/tools/snapshot.js +3 -34
- package/dist/tools/tabs.d.ts +10 -10
- package/dist/tools/tabs.js +55 -39
- package/dist/tools/thought.d.ts +2 -0
- package/dist/tools/thought.js +13 -14
- package/dist/tools/type.d.ts +2 -0
- package/dist/tools/type.js +109 -60
- package/dist/tools/type_secret.js +42 -76
- package/dist/tools/upload.js +1 -1
- package/dist/tools/video_compiler.d.ts +1 -1
- package/dist/tools/video_compiler.js +11 -12
- package/dist/version.d.ts +5 -0
- package/dist/version.js +5 -0
- package/docs/DOCUMENTATION.md +82 -36
- package/docs/PLUGINS.md +82 -499
- package/docs/TOOLS.md +51 -99
- package/docs/architecture/blind-injection.md +83 -0
- package/docs/architecture/dual-injection.md +32 -0
- package/docs/architecture/overview.md +49 -0
- package/docs/architecture/security.md +35 -0
- package/docs/architecture/transport.md +37 -0
- package/docs/captcha-stealth/captcha-solver.md +75 -0
- package/docs/captcha-stealth/stealth-physics.md +60 -0
- package/docs/cli/cli-commands.md +44 -0
- package/docs/cli/cli-flags.md +20 -0
- package/docs/cli/cli-introduction.md +20 -0
- package/docs/cli/cli-scripting.md +32 -0
- package/docs/cli/g-ide/ide-antigravity.md +24 -0
- package/docs/cli/g-ide/ide-claude-code.md +24 -0
- package/docs/cli/g-ide/ide-claude-desktop.md +32 -0
- package/docs/cli/g-ide/ide-cursor.md +31 -0
- package/docs/cli/g-ide/ide-generic.md +34 -0
- package/docs/cli/g-ide/ide-opencode.md +24 -0
- package/docs/cli/g-ide/ide-vscode-copilot.md +24 -0
- package/docs/cli/g-ide/ide-windsurf.md +24 -0
- package/docs/configuration/config-locations.md +24 -0
- package/docs/configuration/configuration.md +73 -0
- package/docs/configuration/env-variables.md +19 -0
- package/docs/configuration/folders.md +55 -0
- package/docs/desktop-automation/electron-apps.md +217 -0
- package/docs/get-started/installation.md +47 -0
- package/docs/get-started/introduction.md +60 -0
- package/docs/get-started/quickstart.md +54 -0
- package/docs/get-started/setup-wizard.md +26 -0
- package/docs/intelligence/site-profiles.md +151 -0
- package/docs/skills-ecosystem/skills-overview.md +35 -0
- package/docs/skills-ecosystem/skills-recipes.md +36 -0
- package/docs/tools/tools.md +631 -0
- package/docs/troubleshooting/trouble-browser.md +27 -0
- package/docs/troubleshooting/trouble-config.md +20 -0
- package/docs/troubleshooting/trouble-loop.md +31 -0
- package/ext-dist/background.js +10 -62
- package/ext-dist/content.js +333 -921
- package/ext-dist/hud/hud.js +9 -9
- package/ext-dist/manifest.json +2 -6
- package/ext-dist/styles.css +6 -1
- package/mcp.json +108 -72
- package/package.json +14 -9
- package/server.json +3 -3
- package/docs/DEV_MODE.md +0 -68
- package/docs/dev_plugin.md +0 -310
- package/ext-dist/sidepanel/sidepanel.js +0 -25
- package/ext-dist/sidepanel.html +0 -547
|
@@ -0,0 +1,631 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "MCP Tools (44 Tools)"
|
|
3
|
+
description: "Complete reference of all 44 production-grade Weavetab automation tools."
|
|
4
|
+
product: mcp
|
|
5
|
+
section: tools
|
|
6
|
+
icon: Wrench
|
|
7
|
+
slug: tools
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# MCP Tools Master Reference
|
|
11
|
+
|
|
12
|
+
Weavetab exposes **49 production-grade MCP tools** engineered for sub-10ms browser automation, visual inspection, desktop app orchestration, zero-API CAPTCHA solving, and human-like interaction.
|
|
13
|
+
|
|
14
|
+
Every tool adheres to a strict contract:
|
|
15
|
+
- **Zod schema validation** for all runtime arguments
|
|
16
|
+
- **`withSecurity()` pipeline** enforcing rate limits, domain policies, and RBAC roles
|
|
17
|
+
- **Structured audit logging** via `logAction()`
|
|
18
|
+
- **Zero-waste token models** using volatile `w:NN` ref IDs, semantic deltas, and DOM pruning
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Tool Directory
|
|
23
|
+
|
|
24
|
+
| # | Tool Name | Category | Description |
|
|
25
|
+
| :--- | :--- | :--- | :--- |
|
|
26
|
+
| 1 | `browser_map` | Vision & Reading | DOM snapshotter with volatile `w:NN` ref IDs, delta diffing, pruning, and AX tree fallback. Supports `app`. |
|
|
27
|
+
| 2 | `browser_navigate` | Navigation & Environment | Navigates to a URL with blocklist checks, network idle wait, and desktop app connections. Supports `app`. |
|
|
28
|
+
| 3 | `browser_click` | Input & Interaction | Physical click engine using Bézier Ghost Cursor kinematics with 5-layer targeting fallback. Supports `app`. |
|
|
29
|
+
| 4 | `browser_type` | Input & Interaction | Keystroke dispatch with humanized temporal jitter, stuck-input breaking, and clearFirst. Supports `app`. |
|
|
30
|
+
| 5 | `browser_type_secret` | Input & Interaction | Blind credential injection from `secrets.json` without exposing values to LLM context. Supports `app`. |
|
|
31
|
+
| 6 | `browser_key` | Input & Interaction | Presses native key combinations (Enter, Tab, Escape, Ctrl+C, Alt+F4, etc.). Supports `app`. |
|
|
32
|
+
| 7 | `browser_scroll` | Input & Interaction | Directional and element-relative smooth scrolling via CDP wheel events. Supports `app`. |
|
|
33
|
+
| 8 | `browser_dialog` | Dialog & Human Oversight | Accepts, dismisses, or responds to JavaScript `alert`, `confirm`, and `prompt` dialogs. |
|
|
34
|
+
| 9 | `browser_burst` | Mission & Automation | Atomic multi-step action pipeline execution in a single JSON-RPC round-trip. Supports `app`. |
|
|
35
|
+
| 10 | `browser_tabs` | Tabs & Windows | Full tab & window CRUD lifecycle management (open, switch, close, consolidate, heal). Specify `app` when targeting desktop apps to avoid opening web browser. |
|
|
36
|
+
| 11 | `browser_wait` | Wait, Timing & Safety | Blocks execution until DOM element, text, URL pattern, network idle, or stability is met. Supports `app`. |
|
|
37
|
+
| 12 | `browser_captcha` | Wait, Timing & Safety | Autonomous zero-API solving of Turnstile, reCAPTCHA, GeeTest, and hCaptcha challenges. |
|
|
38
|
+
| 13 | `browser_thoughts` | Dialog & Human Oversight | Visual agent-to-user status HUD overlay (feedback banner or interactive question modal). |
|
|
39
|
+
| 14 | `browser_pointer` | Input & Interaction | Precision mouse control for hover flyouts, clicks, double-clicks, and drag-and-drop. Supports `app`. |
|
|
40
|
+
| 15 | `browser_select` | Input & Interaction | Selects options in native `<select>` dropdowns with framework-safe synthetic events. Supports `app`. |
|
|
41
|
+
| 16 | `browser_fill` | Input & Interaction | Smart multi-field form batch completion across text inputs, radios, checkboxes, and selects. Supports `app`. |
|
|
42
|
+
| 17 | `browser_highlight` | Canvas & Visual Overlays | Zero-token visual CDP overlay highlights over target elements without DOM mutations. Supports `app`. |
|
|
43
|
+
| 18 | `browser_upload` | Input & Interaction | File input attachment bypassing OS pickers via CDP `DOM.setFileInputFiles`. Supports `app`. |
|
|
44
|
+
| 19 | `browser_find` | Vision & Reading | Sub-5ms in-page text search via CDP `Page.searchInPage`. ~10× cheaper than `browser_map`. Supports `app`. |
|
|
45
|
+
| 20 | `browser_storage` | Storage & Cookies | Key-value store management for `localStorage` and `sessionStorage`. Supports `app`. |
|
|
46
|
+
| 21 | `browser_network_intercept` | Network & Security | Request mocking, URL pattern blocking, and network timing/TLS diagnostic extraction. Supports `app`. |
|
|
47
|
+
| 22 | `browser_console` | Vision & Reading | Reads and clears buffered console logs, warnings, exceptions, and network errors. Supports `app`. |
|
|
48
|
+
| 23 | `browser_pdf` | Output & Media | Prints the active page to PDF with custom scaling, landscape mode, and page ranges. Supports `app`. |
|
|
49
|
+
| 24 | `browser_eval` | Script Evaluation | Evaluates arbitrary JavaScript expressions directly in the main frame JS context. Supports `app`. |
|
|
50
|
+
| 25 | `browser_cookies` | Storage & Cookies | Complete cookie CRUD management via CDP Network domain. Supports `app`. |
|
|
51
|
+
| 26 | `browser_canvas` | Canvas & Visual Overlays | Export canvas pixels as Base64 PNG or execute vector coordinate drawings. Supports `app`. |
|
|
52
|
+
| 27 | `browser_scrape` | Vision & Reading | Structured data extraction via CSS or XPath selectors in a single round-trip. Supports `app`. |
|
|
53
|
+
| 28 | `browser_snapshot` | Vision & Reading | Capture or restore complete MHTML DOM snapshots including inline resources. Supports `app`. |
|
|
54
|
+
| 29 | `browser_screenshot` | Vision & Reading | Visual viewport or full-page capture in PNG or JPEG with custom clip regions. Supports `app`. |
|
|
55
|
+
| 30 | `browser_viewport` | Navigation & Environment | Configures viewport dimensions, device scale factor, mobile mode, and touch emulation. Supports `app`. |
|
|
56
|
+
| 31 | `browser_clipboard` | Dialog & Human Oversight | Plaintext and base64 image reading/writing to the system clipboard. Supports `app`. |
|
|
57
|
+
| 32 | `browser_inspect` | Vision & Reading | Deep DOM element inspection returning computed CSS styles, box model, and event listeners. Supports `app`. |
|
|
58
|
+
| 33 | `browser_extract_design` | Vision & Reading | Extracts design tokens, typography, colors, clean CSS, and Tailwind themes with pixel fidelity. Supports `app`. |
|
|
59
|
+
| 34 | `browser_automation` | Mission & Automation | Injects self-running background tracking scripts into the page context for polling/monitoring. Supports `app`. |
|
|
60
|
+
| 35 | `browser_recording` | Output & Media | Video screencast recording into `.webp`, `.gif`, `.webm`, or `.mp4` formats. Supports `app`. |
|
|
61
|
+
| 36 | `browser_detect` | Tabs & Windows | CRITICAL INITIALIZATION TOOL. Detects local browsers and configured desktop apps (Discord, Slack, etc.) and reports connection status, active tabs, and port. |
|
|
62
|
+
| 37 | `browser_performance` | Performance & Vitals | Retrieves Core Web Vitals (FCP, LCP, CLS) and detailed network resource timings. Supports `app`. |
|
|
63
|
+
| 38 | `browser_github` | GitHub Intelligence | Analyzes repository structure, reads raw files, searches issues, and inspects PRs. |
|
|
64
|
+
| 39 | `browser_office` | Office Documents | Parses Word (`.docx`), Excel (`.xlsx`), PDF, and CSV files into structured data. |
|
|
65
|
+
| 40 | `browser_emulate` | Navigation & Environment | Emulates network throttling (3G/4G/Offline), CPU slowdown, geolocation, and custom User-Agent. Supports `app`. |
|
|
66
|
+
| 41 | `list_plugins` | Plugins & Extensions | Inspects installed SDK plugins, loaded tool overrides, custom schemas, and capability manifests. |
|
|
67
|
+
| 42 | `load_plugin` | Plugins & Extensions | Dynamically loads Weavetab plugins by npm package name with isolated sandboxing. |
|
|
68
|
+
| 43 | `browser_checkpoint` | Storage & Safety | Snapshot and restore browser state (cookies, storage, scroll/URL) into named checkpoints for session time-travel and rollback. Supports `app`. |
|
|
69
|
+
| 44 | `browser_pattern_learn` | Self-Learning & Heuristics | Read, register, update, and record execution outcomes for named workflow patterns and site quirks per origin. Use `action: "get"` to inspect site profiles. |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 1. Vision & DOM Reading
|
|
74
|
+
|
|
75
|
+
### `browser_map` (Version 3.0)
|
|
76
|
+
High-density DOM tree snapshotter with volatile `w:NN` ref IDs. The foundational tool for reading and understanding page structure with zero prompt waste.
|
|
77
|
+
|
|
78
|
+
**Core 3.0 Capabilities:**
|
|
79
|
+
- **Entity & Container Binding**: Binds action buttons/inputs directly to parent cards, rows, or list items under `┌ [Container Header]` trees.
|
|
80
|
+
- **Active Modal & Dialog Hoisting**: Automatically detects and isolates active dialogs/modals at the top of the map under `╔═ ACTIVE DIALOG: "..." ═╗`.
|
|
81
|
+
- **Nav & Footer Cluster Collapsing**: Compresses cascades of repetitive navigation/footer links (4+ links) into compact `[w:5…w:24] 20 links: "Home" … "Terms"` summaries.
|
|
82
|
+
- **High-Density Unified Grammar**: Single-line format distinguishing `val:"..."`, `ph:"..."`, `FOCUSED`, `checked`, and `disabled` states.
|
|
83
|
+
|
|
84
|
+
**Parameters:**
|
|
85
|
+
| Parameter | Type | Description |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| `delta` | `boolean?` | Diff mode: returns only elements added or modified since the previous snapshot (up to 97% token savings). |
|
|
88
|
+
| `prune` | `boolean?` | One-shot semantic compression: collapses repetitive elements and strips non-interactable noise. |
|
|
89
|
+
| `scope` | `string?` | Restricts extraction to a semantic landmark or selector: `"navigation"`, `"main_content"`, `"sidebar"`, `"form"`, `"modal"`, `"utility"`, or CSS selector. |
|
|
90
|
+
| `query` | `string?` | Filters elements by accessible name, ARIA role, or label substring. |
|
|
91
|
+
| `visual` | `boolean \| "auto"?` | Set-of-Marks visual grounding. Injects numbered badges `[1]…[N]` and returns an annotated screenshot. Use `"auto"` for canvas/WebGL pages with < 5 DOM elements. |
|
|
92
|
+
| `ax_tree` | `boolean?` | Uses Chromium Accessibility Tree directly (essential for closed Shadow DOM and canvas SPAs). |
|
|
93
|
+
| `full` | `boolean?` | Return full markdown table format with bounding boxes instead of compact list. |
|
|
94
|
+
| `force` | `boolean?` | Force full DOM map rebuild even if loop detection says nothing changed. Bypasses skip guard and resets loop strikes. |
|
|
95
|
+
| `tab_id` | `string?` | Read a specific background tab ID. |
|
|
96
|
+
| `app` | `string?` | Target desktop Electron app name (e.g. `"discord"`, `"vscode"`, `"figma"`). |
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
// Standard high-density read
|
|
100
|
+
browser_map()
|
|
101
|
+
|
|
102
|
+
// Visual grounding for canvas/WebGL/Figma pages (auto-activates when DOM < 5 elements)
|
|
103
|
+
browser_map({ visual: "auto" })
|
|
104
|
+
|
|
105
|
+
// Scope specifically to open modal or active form
|
|
106
|
+
browser_map({ scope: "modal" })
|
|
107
|
+
browser_map({ scope: "form" })
|
|
108
|
+
|
|
109
|
+
// Efficient delta polling for changes
|
|
110
|
+
browser_map({ delta: true })
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
### `browser_find`
|
|
116
|
+
Sub-5ms native CDP in-page text search via `Page.searchInPage`. Approximately 10× cheaper than `browser_map` when only checking for text presence or targeting elements by visible string.
|
|
117
|
+
|
|
118
|
+
**Parameters:**
|
|
119
|
+
| Parameter | Type | Description |
|
|
120
|
+
|---|---|---|
|
|
121
|
+
| `query` | `string` *(required)* | Text search query string. |
|
|
122
|
+
| `all` | `boolean?` | Return all matching elements with bounding rects and selectors instead of just the first match. |
|
|
123
|
+
| `limit` | `number?` | Maximum number of matches to return when `all: true` (default `10`). |
|
|
124
|
+
| `app` | `string?` | Target Electron desktop application. |
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
// Single match check
|
|
128
|
+
browser_find({ query: "Order Confirmed" })
|
|
129
|
+
|
|
130
|
+
// Discover all occurrences of keyword with coordinates & selectors
|
|
131
|
+
browser_find({ query: "Delete", all: true, limit: 5 })
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### `browser_scrape`
|
|
137
|
+
Rapid structured data extraction via CSS or XPath selectors. Executes a single CDP `Runtime.evaluate` call and returns clean tabular data.
|
|
138
|
+
|
|
139
|
+
**Parameters:**
|
|
140
|
+
| Parameter | Type | Description |
|
|
141
|
+
|---|---|---|
|
|
142
|
+
| `query` | `string` *(required)* | CSS selector or XPath query expression. |
|
|
143
|
+
| `type` | `"css" | "xpath"?` | Selector query type (default `"css"`). |
|
|
144
|
+
| `attributes` | `string[]?` | Element attributes to extract per match (default `["textContent"]`). |
|
|
145
|
+
| `multiple` | `boolean?` | Return all matches or just the first element (default `true`). |
|
|
146
|
+
|
|
147
|
+
```typescript
|
|
148
|
+
browser_scrape({
|
|
149
|
+
query: ".pricing-card",
|
|
150
|
+
type: "css",
|
|
151
|
+
attributes: ["data-plan", "textContent", "href"]
|
|
152
|
+
})
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### `browser_extract_design`
|
|
158
|
+
Extracts design tokens (colors, typography, spacing, shadows, CSS variables), semantic HTML layouts, and scoped CSS into structured files or Tailwind themes with 100% pixel fidelity.
|
|
159
|
+
|
|
160
|
+
**Parameters:**
|
|
161
|
+
| Parameter | Type | Description |
|
|
162
|
+
|---|---|---|
|
|
163
|
+
| `selector` | `string?` | CSS selector of container element (default `"main"`, fallback `"body"`). |
|
|
164
|
+
| `format` | `"tailwind" | "vanilla_css" | "tokens_only"?` | Style export preset (default `"tailwind"`). |
|
|
165
|
+
| `outputDir` | `string?` | Custom output directory. If omitted, writes to `~/.weavetab/designs/<domain>-<ts>/`. |
|
|
166
|
+
| `name` | `string?` | Custom name for the saved design folder (e.g. `"pricing-hero"`). |
|
|
167
|
+
|
|
168
|
+
```typescript
|
|
169
|
+
browser_extract_design({
|
|
170
|
+
selector: "#hero-section",
|
|
171
|
+
format: "tailwind",
|
|
172
|
+
name: "landing-hero"
|
|
173
|
+
})
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 2. Input & Interaction
|
|
179
|
+
|
|
180
|
+
### `browser_click`
|
|
181
|
+
Physical click engine using Ghost Cursor Bézier curve trajectories. Resolves targets through a multi-layer cascade: `mark` (SoM visual grounding) → `ref` → `selector` → `label` → `intent` → `coords`.
|
|
182
|
+
|
|
183
|
+
**Parameters:**
|
|
184
|
+
| Parameter | Type | Description |
|
|
185
|
+
|---|---|---|
|
|
186
|
+
| `mark` | `number?` | Numbered badge from `browser_map({ visual: true/\"auto\" })`. Zero DOM walk — instant hardware coordinate click. Ideal for canvas/WebGL/Figma. |
|
|
187
|
+
| `id` | `string?` | Volatile `w:NN` ref ID from `browser_map` (preferred for DOM). |
|
|
188
|
+
| `selector` | `string?` | CSS selector of target element. |
|
|
189
|
+
| `label` | `string?` | Visible text label of the target element. |
|
|
190
|
+
| `intent` | `string?` | Semantic intent for AI-assisted Memory Intent Intercept. |
|
|
191
|
+
| `app` | `string?` | Target Electron desktop application. |
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
// Click visual mark from browser_map({ visual: "auto" })
|
|
195
|
+
browser_click({ mark: 3 })
|
|
196
|
+
|
|
197
|
+
// Preferred for DOM: stable ref ID
|
|
198
|
+
browser_click({ id: "w:14" })
|
|
199
|
+
|
|
200
|
+
// Target desktop application
|
|
201
|
+
browser_click({ id: "w:8", app: "discord" })
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
### `browser_type`
|
|
207
|
+
Realistic humanized keystroke engine with temporal jitter (35–95ms), typing burst profiling, and stuck-input loop detection.
|
|
208
|
+
|
|
209
|
+
**Key Upgrades:**
|
|
210
|
+
- **Zero-Target ActiveElement Typing**: If no `id`/`selector` is passed, automatically detects and types directly into the currently focused `document.activeElement` without throwing errors or requiring prior clicks.
|
|
211
|
+
- **Anti-Click Unfocus Guard**: If the target input is already active, avoids redundant hardware clicks that cause focus blur or close open dropdowns.
|
|
212
|
+
|
|
213
|
+
**Parameters:**
|
|
214
|
+
| Parameter | Type | Description |
|
|
215
|
+
|---|---|---|
|
|
216
|
+
| `text` | `string` *(required)* | Text string to type. |
|
|
217
|
+
| `id` | `string?` | Target `w:NN` ref ID (optional if element already focused). |
|
|
218
|
+
| `selector` | `string?` | CSS selector for target input. |
|
|
219
|
+
| `label` | `string?` | Accessible label or placeholder text. |
|
|
220
|
+
| `clearFirst` | `boolean?` | Clear input field value before typing. |
|
|
221
|
+
| `paste` | `boolean?` | Fast paste mode (recommended for tokens/strings > 8 chars). |
|
|
222
|
+
| `app` | `string?` | Target Electron desktop application. |
|
|
223
|
+
|
|
224
|
+
```typescript
|
|
225
|
+
// Type directly into active focused element (zero target)
|
|
226
|
+
browser_type({ text: "Autonomous Agent Query" })
|
|
227
|
+
|
|
228
|
+
// Type into specific ref ID with clearFirst
|
|
229
|
+
browser_type({ id: "w:15", text: "admin@corp.internal", clearFirst: true })
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
### `browser_type_secret`
|
|
235
|
+
Enterprise-grade blind credential injection from encrypted local storage (`secrets.json`). Injects sensitive tokens, passwords, and 2FA keys directly into input fields via CDP without exposing plaintext values to the AI context, audit logs, or DOM reads.
|
|
236
|
+
|
|
237
|
+
**Key Upgrades:**
|
|
238
|
+
- **Zero-Exposure In-Process Resolution**: The model passes only the key name (`envKey: "MY_KEY"`). The MCP server resolves the value in-process and enforces domain scoping.
|
|
239
|
+
- **Universal Selector Support**: Accepts direct CSS selectors (`#password`, `input[type='password']`, `.pwd-field`), ActionMap ref IDs (`w:5`), or `target: "focused"`.
|
|
240
|
+
- **Automatic DOM Hardening**: Injected elements are tagged with `data-wt-secret="true"`, instance `.value` getters are overridden with `[REDACTED]`, and symbol coercion/JSON serialization leaks are sealed.
|
|
241
|
+
|
|
242
|
+
**Parameters:**
|
|
243
|
+
| Parameter | Type | Description |
|
|
244
|
+
|---|---|---|
|
|
245
|
+
| `envKey` | `string` *(required)* | Key name stored in `secrets.json` (e.g. `"GITHUB_TOKEN"`, `"TEST_KEY"`). |
|
|
246
|
+
| `id` | `string?` | Target element `w:NN` ref ID or CSS selector. |
|
|
247
|
+
| `target` | `string?` | Target element alias (`"focused"`, selector, or ref ID). |
|
|
248
|
+
| `app` | `string?` | Target Electron desktop application. |
|
|
249
|
+
|
|
250
|
+
```typescript
|
|
251
|
+
// Inject credential into password field via CSS selector
|
|
252
|
+
browser_type_secret({
|
|
253
|
+
id: "#password",
|
|
254
|
+
envKey: "PROD_DB_PASSWORD"
|
|
255
|
+
})
|
|
256
|
+
|
|
257
|
+
// Inject into focused active element
|
|
258
|
+
browser_type_secret({
|
|
259
|
+
target: "focused",
|
|
260
|
+
envKey: "AWS_SESSION_TOKEN"
|
|
261
|
+
})
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
### `browser_fill`
|
|
267
|
+
Smart multi-field form batch completion across text inputs, radios, checkboxes, and selects.
|
|
268
|
+
|
|
269
|
+
**Key Upgrades:**
|
|
270
|
+
- **Input Discovery Scanner (`scan: true`)**: Call with `scan: true` (or empty) to get a lightweight JSON list of all fillable inputs on the page (with ref IDs, types, names, labels, current values, and focus states) in ~30 tokens without dumping the entire DOM.
|
|
271
|
+
- **Flexible Field Target Matching**: Supports targeting fields by `ref`, `selector`, `target`, `name`, `placeholder`, or `label`.
|
|
272
|
+
- **Google Sheets & Canvas Spreadsheet Grid Fill**: Supports typing directly into spreadsheet cell coordinates via `grid_data: [{ cell: "A1", value: "Revenue" }]`.
|
|
273
|
+
|
|
274
|
+
**Parameters:**
|
|
275
|
+
| Parameter | Type | Description |
|
|
276
|
+
|---|---|---|
|
|
277
|
+
| `fields` | `array?` | Array of field objects (`{ ref?, selector?, name?, label?, value }`). |
|
|
278
|
+
| `scan` | `boolean?` | Return all fillable inputs on the page without mutating DOM. |
|
|
279
|
+
| `inputs` | `boolean?` | Alias for `scan`. |
|
|
280
|
+
| `blast_mode` | `boolean?` | Fill all fields simultaneously in a single CDP eval round-trip. |
|
|
281
|
+
| `submit` | `string?` | Optional ref ID (`w:NN`) of submit button to click after filling. |
|
|
282
|
+
| `grid_data` | `array?` | Array of `{ cell: "A1", value: "..." }` pairs for Google Sheets / Canvas grids. |
|
|
283
|
+
| `app` | `string?` | Target Electron desktop application. |
|
|
284
|
+
|
|
285
|
+
```typescript
|
|
286
|
+
// 1. Discover all editable inputs on page (~30 tokens)
|
|
287
|
+
browser_fill({ scan: true })
|
|
288
|
+
|
|
289
|
+
// 2. Batch fill form fields by ref, name, or label
|
|
290
|
+
browser_fill({
|
|
291
|
+
fields: [
|
|
292
|
+
{ ref: "w:12", value: "Anas" },
|
|
293
|
+
{ name: "email", value: "anas@example.com" },
|
|
294
|
+
{ label: "Country", value: "Morocco" }
|
|
295
|
+
],
|
|
296
|
+
submit: "w:18"
|
|
297
|
+
})
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
### `browser_pointer`
|
|
303
|
+
Precision mouse control for hover flyouts, clicks, double-clicks, and drag-and-drop.
|
|
304
|
+
|
|
305
|
+
**Key Upgrades:**
|
|
306
|
+
- **Multi-Level `hover_chain`**: Traverse complex multi-level nested menus (e.g. Photoshop/Photopea `"File" → "Export As" → "PNG"`, Figma, or enterprise dashboards) in a single tool call without custom eval scripts.
|
|
307
|
+
|
|
308
|
+
**Parameters:**
|
|
309
|
+
| Parameter | Type | Description |
|
|
310
|
+
|---|---|---|
|
|
311
|
+
| `action` | `"hover" | "click" | "dblclick" | "drag"` | Mouse action type. |
|
|
312
|
+
| `id` | `string?` | Target `w:NN` ref ID. |
|
|
313
|
+
| `selector` | `string?` | CSS selector of target element. |
|
|
314
|
+
| `hover_chain` | `string[]?` | Array of labels/selectors to hover sequentially (e.g. `["File", "Export As", "PNG"]`). |
|
|
315
|
+
| `from` | `object?` | Drag start coordinates `{ x, y }` or target ID. |
|
|
316
|
+
| `to` | `object?` | Drag destination coordinates `{ x, y }` or target ID. |
|
|
317
|
+
| `app` | `string?` | Target Electron desktop application. |
|
|
318
|
+
|
|
319
|
+
```typescript
|
|
320
|
+
// Glide through multi-level flyout menu
|
|
321
|
+
browser_pointer({ hover_chain: ["File", "Export As", "PNG"] })
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
### `browser_key`
|
|
327
|
+
Native keyboard dispatch with modifier keys and hotkey combos.
|
|
328
|
+
|
|
329
|
+
**Key Upgrades:**
|
|
330
|
+
- **Hotkey Combinations**: Supports standard key combo strings like `"Ctrl+A"`, `"Control+Shift+P"`, `"Cmd+K"`, `"Alt+Tab"`.
|
|
331
|
+
- **Zero Lag Execution**: Removed arbitrary post-key wait times (<20ms execution on standard keys).
|
|
332
|
+
|
|
333
|
+
**Parameters:**
|
|
334
|
+
| Parameter | Type | Description |
|
|
335
|
+
|---|---|---|
|
|
336
|
+
| `key` | `string` *(required)* | Key name or hotkey combination (`"Enter"`, `"Tab"`, `"Escape"`, `"Ctrl+A"`, `"Cmd+K"`). |
|
|
337
|
+
| `app` | `string?` | Target Electron desktop application. |
|
|
338
|
+
|
|
339
|
+
```typescript
|
|
340
|
+
browser_key({ key: "Enter" })
|
|
341
|
+
browser_key({ key: "Ctrl+A" })
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
### `browser_scroll`
|
|
347
|
+
Directional and element-relative smooth scrolling via CDP wheel events.
|
|
348
|
+
|
|
349
|
+
**Key Upgrades:**
|
|
350
|
+
- **Ultra-Fast Non-Blocking Scroll**: Eliminates redundant full DOM action map rebuilds after scrolling, executing in sub-50ms.
|
|
351
|
+
- **Direct Target Scrolling**: Supports scrolling specific container elements by `w:NN` ref ID.
|
|
352
|
+
|
|
353
|
+
**Parameters:**
|
|
354
|
+
| Parameter | Type | Description |
|
|
355
|
+
|---|---|---|
|
|
356
|
+
| `direction` | `"up" | "down" | "left" | "right"` | Scroll direction. |
|
|
357
|
+
| `pixels` | `number?` | Scroll distance in pixels (default `400`). |
|
|
358
|
+
| `id` | `string?` | Target element `w:NN` ref ID or selector to scroll inside. |
|
|
359
|
+
| `app` | `string?` | Target Electron desktop application. |
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
### `browser_emulate`
|
|
364
|
+
Emulate environmental conditions over CDP: network throttling (Slow 3G, Fast 3G, 4G, Offline), CPU slowdown multipliers, geolocation overrides, timezone IDs, and custom User-Agent strings.
|
|
365
|
+
|
|
366
|
+
**Parameters:**
|
|
367
|
+
| Parameter | Type | Description |
|
|
368
|
+
|---|---|---|
|
|
369
|
+
| `network` | `string \| object?` | Throttling profile (`"offline" \| "slow3g" \| "fast3g" \| "4g" \| "online"`) or custom `{ latency, downloadThroughput, uploadThroughput }`. |
|
|
370
|
+
| `cpuThrottlingRate` | `number?` | CPU slowdown multiplier (e.g. `2` = 2× slowdown, `4` = 4× slowdown, `1` = normal). |
|
|
371
|
+
| `geolocation` | `object?` | Override coordinates `{ latitude: number, longitude: number, accuracy?: number }`. |
|
|
372
|
+
| `timezoneId` | `string?` | Override browser timezone (e.g. `'America/New_York'`). |
|
|
373
|
+
| `userAgent` | `string?` | Override browser User Agent string. |
|
|
374
|
+
| `app` | `string?` | Target Electron desktop application. |
|
|
375
|
+
|
|
376
|
+
```typescript
|
|
377
|
+
browser_emulate({
|
|
378
|
+
network: "slow3g",
|
|
379
|
+
cpuThrottlingRate: 4,
|
|
380
|
+
geolocation: { latitude: 37.7749, longitude: -122.4194 }
|
|
381
|
+
})
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## 3. Mission & Automation
|
|
387
|
+
|
|
388
|
+
### `browser_burst`
|
|
389
|
+
High-speed multi-action pipeline. Executes multiple sequential actions in a single MCP round-trip without waiting for LLM turns between steps. PREFER THIS over individual single-action calls to slash latency and token burn. Supports native primitives (`browser_click`, `browser_fill`, `browser_type`, `browser_type_secret`, `browser_navigate`, `browser_key`, `browser_scroll`, `browser_wait`, `browser_map`) plus compound macros (`type_and_send`, `click_and_wait`, `navigate_and_read`, `scroll_and_read`, `fill_form`).
|
|
390
|
+
|
|
391
|
+
**Parameters:**
|
|
392
|
+
| Parameter | Type | Description |
|
|
393
|
+
|---|---|---|
|
|
394
|
+
| `steps` | `array?` | Array of step objects (`{ tool, args }` or flat `{ tool, ...args }`). Alias: `actions`. |
|
|
395
|
+
| `actions` | `array?` | Alias for `steps`. |
|
|
396
|
+
| `compile_from_history` | `boolean?` | Compile recent successful session trail actions into a macro. If `steps` omitted, executes compiled macro directly. |
|
|
397
|
+
| `history_limit` | `number?` | Recent trail entries to inspect when compiling (default `20`). |
|
|
398
|
+
| `dry_run` | `boolean?` | With `compile_from_history: true`, returns compiled steps without executing. |
|
|
399
|
+
| `stop_on_error` | `boolean?` | Halt execution immediately if a step fails to prevent cascade errors (default `true`). |
|
|
400
|
+
| `batch` | `boolean?` | Defer action map generation until all steps are complete. |
|
|
401
|
+
| `app` | `string?` | Target Electron desktop application context. |
|
|
402
|
+
|
|
403
|
+
```typescript
|
|
404
|
+
// Burst form filling and submission in a single round-trip
|
|
405
|
+
browser_burst({
|
|
406
|
+
steps: [
|
|
407
|
+
{ tool: "browser_fill", ref: "w:12", value: "admin@corp.internal" },
|
|
408
|
+
{ tool: "browser_fill", ref: "w:14", value: "securePassword123" },
|
|
409
|
+
{ tool: "click_and_wait", ref: "w:18" }
|
|
410
|
+
]
|
|
411
|
+
})
|
|
412
|
+
|
|
413
|
+
// Compile and replay recent exploratory actions
|
|
414
|
+
browser_burst({ compile_from_history: true })
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
## 4. Autonomous CAPTCHA Solving
|
|
420
|
+
|
|
421
|
+
### `browser_captcha`
|
|
422
|
+
Autonomous zero-API challenge detection and solving. Solves Cloudflare Turnstile, Google reCAPTCHA v2/v3, GeeTest sliders, Arkose Labs, and hCaptcha locally using real CDP mouse physics and arithmetic heuristics — requiring **zero external API keys or third-party solver services**.
|
|
423
|
+
|
|
424
|
+
**Parameters:**
|
|
425
|
+
| Parameter | Type | Description |
|
|
426
|
+
|---|---|---|
|
|
427
|
+
| `action` | `"detect" | "solve" | "wait_for_user" | "status"` *(required)* | CAPTCHA action. |
|
|
428
|
+
| `timeout` | `number?` | Max solving timeout in milliseconds (default `120000`). |
|
|
429
|
+
|
|
430
|
+
```typescript
|
|
431
|
+
browser_captcha({ action: "solve", timeout: 45000 })
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
## 5. GitHub Intelligence
|
|
437
|
+
|
|
438
|
+
### `browser_github`
|
|
439
|
+
Interact with GitHub repositories without burning browser turns. Analyze repository structure and trees, read raw source files (with optional line ranges), search and inspect issues with comment threads, and examine PR diffs and reviews.
|
|
440
|
+
|
|
441
|
+
**Parameters:**
|
|
442
|
+
| Parameter | Type | Description |
|
|
443
|
+
|---|---|---|
|
|
444
|
+
| `action` | `"analyze" \| "read" \| "issues" \| "pr"` *(required)* | Operation to perform. |
|
|
445
|
+
| `repo` | `string?` | Optional 'owner/repo' slug or GitHub URL. If omitted, uses active tab's repository. |
|
|
446
|
+
| `paths` | `string[]?` | For action: 'read'. File paths relative to repository root. |
|
|
447
|
+
| `line_range` | `[number, number]?` | For action: 'read'. Optional [start, end] 1-indexed line range. |
|
|
448
|
+
| `number` | `number?` | For action: 'issues' or 'pr'. Issue or PR number. |
|
|
449
|
+
| `search` | `string?` | For action: 'issues'. Search query to find issues. |
|
|
450
|
+
| `labels` | `string[]?` | For action: 'issues'. Filter issues by labels. |
|
|
451
|
+
| `state` | `"open" \| "closed" \| "all"?` | For action: 'issues'. Filter issues by state. |
|
|
452
|
+
| `limit` | `number?` | For action: 'issues'. Max number of issues to return (default 5). |
|
|
453
|
+
|
|
454
|
+
```typescript
|
|
455
|
+
// Analyze repo metadata, file tree, and README
|
|
456
|
+
browser_github({ action: "analyze", repo: "weavetab/mcp" })
|
|
457
|
+
|
|
458
|
+
// Read file contents without API rate limit consumption
|
|
459
|
+
browser_github({ action: "read", repo: "weavetab/mcp", paths: ["src/server.ts"], line_range: [1, 50] })
|
|
460
|
+
|
|
461
|
+
// Inspect PR details and review comments
|
|
462
|
+
browser_github({ action: "pr", repo: "weavetab/mcp", number: 42 })
|
|
463
|
+
|
|
464
|
+
// Search repository issues
|
|
465
|
+
browser_github({ action: "issues", repo: "weavetab/mcp", search: "rate limit", state: "open" })
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
## 6. Enterprise Documents & Office
|
|
471
|
+
|
|
472
|
+
### `browser_office`
|
|
473
|
+
Parses and extracts structured tabular content, text paragraphs, and metadata from Word (`.docx`), Excel (`.xlsx`/`.xls`), PDF, and CSV files downloaded during browser sessions or referenced via URL.
|
|
474
|
+
|
|
475
|
+
**Parameters:**
|
|
476
|
+
| Parameter | Type | Description |
|
|
477
|
+
|---|---|---|
|
|
478
|
+
| `action` | `"read" | "list"` *(required)* | Document parsing operation. |
|
|
479
|
+
| `file` | `string?` | Path to local document file. |
|
|
480
|
+
| `url` | `string?` | Authenticated browser session URL to document. |
|
|
481
|
+
| `max_rows` | `number?` | Maximum spreadsheet/table rows to parse. |
|
|
482
|
+
|
|
483
|
+
```typescript
|
|
484
|
+
browser_office({
|
|
485
|
+
action: "read",
|
|
486
|
+
file: "./.weavetab/downloads/financial_report.xlsx",
|
|
487
|
+
max_rows: 100
|
|
488
|
+
})
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
## 7. Plugins & Extensions
|
|
494
|
+
|
|
495
|
+
### `list_plugins`
|
|
496
|
+
Inspects all dynamically loaded Weavetab SDK plugins, active tool overrides, registered capability manifests, and isolated plugin storage directories.
|
|
497
|
+
|
|
498
|
+
**Parameters:**
|
|
499
|
+
| Parameter | Type | Description |
|
|
500
|
+
|---|---|---|
|
|
501
|
+
| `verbose` | `boolean?` | Return complete schema definitions and absolute file storage paths (default `false`). |
|
|
502
|
+
|
|
503
|
+
```typescript
|
|
504
|
+
list_plugins({ verbose: true })
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
---
|
|
508
|
+
|
|
509
|
+
### `load_plugin`
|
|
510
|
+
Dynamically loads any published Weavetab plugin by npm package name into the active runtime with isolated sandboxing and hot tool registration.
|
|
511
|
+
|
|
512
|
+
**Parameters:**
|
|
513
|
+
| Parameter | Type | Description |
|
|
514
|
+
|---|---|---|
|
|
515
|
+
| `name` | `string` *(required)* | The exact npm package name of the plugin to load (e.g. `'@fy2ne/wt-youtube'`, `'my-plugin'`). |
|
|
516
|
+
|
|
517
|
+
```typescript
|
|
518
|
+
load_plugin({ name: "@fy2ne/wt-youtube" })
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
---
|
|
522
|
+
|
|
523
|
+
### `browser_checkpoint`
|
|
524
|
+
Snapshot and restore browser state (cookies, localStorage, sessionStorage, and scroll/URL) into named checkpoints to time-travel and rollback failed automation branches.
|
|
525
|
+
|
|
526
|
+
**Parameters:**
|
|
527
|
+
| Parameter | Type | Description |
|
|
528
|
+
|---|---|---|
|
|
529
|
+
| `action` | `'save' \| 'restore' \| 'list' \| 'delete'` *(required)* | Action to perform on the checkpoint store. |
|
|
530
|
+
| `name` | `string?` | Unique checkpoint name identifier (required for `save`, `restore`, `delete`). |
|
|
531
|
+
| `includeDom` | `boolean?` | Whether to include a lightweight DOM snapshot during `save` (default `false`). |
|
|
532
|
+
| `app` | `string?` | Target Electron app name if automating desktop applications. |
|
|
533
|
+
|
|
534
|
+
```typescript
|
|
535
|
+
// Save current session state before a risky form submit
|
|
536
|
+
browser_checkpoint({ action: "save", name: "pre-checkout-state" })
|
|
537
|
+
|
|
538
|
+
// Restore and time-travel back if automation failed or hit a roadblock
|
|
539
|
+
browser_checkpoint({ action: "restore", name: "pre-checkout-state" })
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
544
|
+
## 8. Tabs, Windows & Desktop Environment
|
|
545
|
+
|
|
546
|
+
### `browser_detect`
|
|
547
|
+
CRITICAL INITIALIZATION TOOL. Detects local browser engines and configured desktop applications (Discord, Slack, VS Code, etc.) and reports connection status, active tabs, and port.
|
|
548
|
+
|
|
549
|
+
**Parameters:**
|
|
550
|
+
None.
|
|
551
|
+
|
|
552
|
+
```typescript
|
|
553
|
+
browser_detect()
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
---
|
|
557
|
+
|
|
558
|
+
### `browser_tabs`
|
|
559
|
+
Full tab and window CRUD lifecycle management (open, switch, close, consolidate, heal). Specify `app` when targeting desktop apps (e.g. `app: "discord"`) to avoid opening the web browser.
|
|
560
|
+
|
|
561
|
+
**Parameters:**
|
|
562
|
+
| Parameter | Type | Description |
|
|
563
|
+
|---|---|---|
|
|
564
|
+
| `action` | `"list" \| "open" \| "close" \| "switch" \| "list_windows" \| "focus_window" \| "consolidate" \| "heal"` *(required)* | Action to perform. |
|
|
565
|
+
| `url` | `string?` | URL to open (required for `open`). |
|
|
566
|
+
| `app` | `string?` | Optional Electron app name configured in `config.json` under `electron`. |
|
|
567
|
+
| `tabId` | `string?` | Target Tab ID (required for `switch` or `close`). |
|
|
568
|
+
| `tabIds` | `string[]?` | Multiple Tab IDs for batch `close`. |
|
|
569
|
+
| `force` | `boolean?` | Force close protected (anchor) tabs. |
|
|
570
|
+
| `windowId` | `number?` | Window ID to focus (required for `focus_window`). |
|
|
571
|
+
| `reuse` | `boolean?` | Default `true`. Reuses existing tab if URL is already open. |
|
|
572
|
+
|
|
573
|
+
```typescript
|
|
574
|
+
// Inspect tabs inside Discord desktop application
|
|
575
|
+
browser_tabs({ action: "list", app: "discord" })
|
|
576
|
+
|
|
577
|
+
// Open a new tab in the web browser
|
|
578
|
+
browser_tabs({ action: "open", url: "https://github.com" })
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
## 8. Memory, Learning & Profiles
|
|
582
|
+
|
|
583
|
+
### `browser_pattern_learn`
|
|
584
|
+
Read, register, update, and record execution outcomes for named workflow patterns and site quirks. Use `action: "get"` at session start to inspect a site profile and decide between fast-path replay (reliability ≥ 0.8) or exploratory navigation.
|
|
585
|
+
|
|
586
|
+
**Parameters:**
|
|
587
|
+
| Parameter | Type | Description |
|
|
588
|
+
|---|---|---|
|
|
589
|
+
| `origin` | `string?` | Full origin (e.g. `'https://github.com'`). Required for write actions. If omitted with `get`, reads the active tab origin. |
|
|
590
|
+
| `action` | `"get" \| "learn" \| "record_execution" \| "record_quirk"` | Default `"learn"`. `"get"` returns the full site profile. |
|
|
591
|
+
| `pattern` | `string?` | With `get`: returns reliability score for this specific named pattern only. |
|
|
592
|
+
| `name` | `string?` | Pattern name in snake_case (required for `learn` and `record_execution`). |
|
|
593
|
+
| `steps` | `object[]?` | Workflow steps array containing tool calls and parameters (required for `learn`). |
|
|
594
|
+
| `success_indicator` | `string?` | CSS selector or URL confirming workflow success. |
|
|
595
|
+
| `entry` | `string?` | URL path or pattern where workflow starts. |
|
|
596
|
+
| `success` | `boolean?` | Execution outcome (required for `record_execution`). |
|
|
597
|
+
| `duration_ms` | `number?` | Execution duration in milliseconds. |
|
|
598
|
+
| `quirk_key` | `string?` | Quirk key: `"cookie_banner"`, `"rate_limit"`, or `"modal_popups"`. |
|
|
599
|
+
| `quirk_data` | `object?` | Quirk payload details. |
|
|
600
|
+
|
|
601
|
+
```typescript
|
|
602
|
+
// Inspect site memory profile at session start
|
|
603
|
+
browser_pattern_learn({ action: "get" })
|
|
604
|
+
|
|
605
|
+
// Check reliability for a specific workflow pattern
|
|
606
|
+
browser_pattern_learn({ action: "get", origin: "https://github.com", pattern: "create_pull_request" })
|
|
607
|
+
|
|
608
|
+
// Learn a successful checkout flow
|
|
609
|
+
browser_pattern_learn({
|
|
610
|
+
origin: "https://shop.example.com",
|
|
611
|
+
action: "learn",
|
|
612
|
+
name: "cart_checkout",
|
|
613
|
+
entry: "/cart",
|
|
614
|
+
steps: [
|
|
615
|
+
{ tool: "browser_click", target: "#checkout-button" },
|
|
616
|
+
{ tool: "browser_type", target: "#promo-code", value: "SUMMER" }
|
|
617
|
+
],
|
|
618
|
+
success_indicator: ".order-confirmation"
|
|
619
|
+
})
|
|
620
|
+
|
|
621
|
+
// Update pattern reliability score following an execution
|
|
622
|
+
browser_pattern_learn({
|
|
623
|
+
origin: "https://shop.example.com",
|
|
624
|
+
action: "record_execution",
|
|
625
|
+
name: "cart_checkout",
|
|
626
|
+
success: true,
|
|
627
|
+
duration_ms: 2400
|
|
628
|
+
})
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Browser Issues"
|
|
3
|
+
description: "CDP connection failures, crashes, and extension problems."
|
|
4
|
+
product: mcp
|
|
5
|
+
section: troubleshooting
|
|
6
|
+
icon: MonitorX
|
|
7
|
+
slug: trouble-browser
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Browser Connection Issues
|
|
11
|
+
|
|
12
|
+
## "CDP connection failed" Error
|
|
13
|
+
|
|
14
|
+
**Causes:**
|
|
15
|
+
- Port 9222 is occupied by another process
|
|
16
|
+
- Chrome was launched without `--remote-debugging-port`
|
|
17
|
+
|
|
18
|
+
**Fixes:**
|
|
19
|
+
1. Run `weavetab reset --yes` to terminate orphaned browser processes
|
|
20
|
+
2. Verify port availability: `netstat -an | grep 9222`
|
|
21
|
+
3. Restart Weavetab
|
|
22
|
+
|
|
23
|
+
## Browser Crashes on Launch
|
|
24
|
+
|
|
25
|
+
**Fixes:**
|
|
26
|
+
1. Run `weavetab reset` to purge corrupted profiles
|
|
27
|
+
2. Check `CHROME_PATH` environment variable points to a valid Chromium executable
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Config Errors"
|
|
3
|
+
description: "Configuration validation, secrets, and policy issues."
|
|
4
|
+
product: mcp
|
|
5
|
+
section: troubleshooting
|
|
6
|
+
icon: AlertTriangle
|
|
7
|
+
slug: trouble-config
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Configuration Issues
|
|
11
|
+
|
|
12
|
+
## Secrets Not Injecting
|
|
13
|
+
|
|
14
|
+
1. Check that `~/.weavetab/secrets.json` or `./.weavetab/secrets.json` exists
|
|
15
|
+
2. Verify the secret key name matches exactly (case-sensitive)
|
|
16
|
+
3. Run `weavetab secrets list` to confirm keys are registered
|
|
17
|
+
|
|
18
|
+
## Configuration Quarantined
|
|
19
|
+
|
|
20
|
+
If a config file has syntax errors, Weavetab quarantines it to `config.broken.<timestamp>.json` and falls back to defaults. Run `weavetab config` to regenerate a valid file.
|