@weavetab/mcp 2.5.0-beta.2 → 2.5.0-beta.5

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.
Files changed (127) hide show
  1. package/AGENTS.md +1 -1
  2. package/ARCHITECTURE.md +6 -6
  3. package/LICENSE +216 -631
  4. package/README.md +153 -1074
  5. package/SECURITY.md +33 -22
  6. package/TROUBLESHOOTING.md +2 -2
  7. package/dist/cdp/bridge.js +2 -1
  8. package/dist/cdp/connector.d.ts +2 -0
  9. package/dist/cdp/connector.js +10 -6
  10. package/dist/cdp/helpers.d.ts +4 -0
  11. package/dist/cdp/helpers.js +181 -0
  12. package/dist/cdp/omni_broker.d.ts +1 -1
  13. package/dist/cdp/omni_broker.js +1 -1
  14. package/dist/cdp/walker.d.ts +25 -1
  15. package/dist/cdp/walker.js +304 -7
  16. package/dist/cli/plugin.d.ts +1 -0
  17. package/dist/cli/plugin.js +81 -18
  18. package/dist/cli/updater.d.ts +1 -1
  19. package/dist/cli/updater.js +27 -7
  20. package/dist/config/loader.d.ts +9 -1
  21. package/dist/config/loader.js +42 -3
  22. package/dist/desktop/discovery.d.ts +44 -0
  23. package/dist/desktop/discovery.js +364 -0
  24. package/dist/index.js +137 -21
  25. package/dist/intelligence/marks.d.ts +36 -0
  26. package/dist/intelligence/marks.js +30 -0
  27. package/dist/intelligence/patternCompiler.d.ts +118 -0
  28. package/dist/intelligence/patternCompiler.js +259 -0
  29. package/dist/intelligence/sessionMemory.d.ts +2 -0
  30. package/dist/intelligence/sessionMemory.js +18 -8
  31. package/dist/overlay/injector.js +2 -2
  32. package/dist/plugin/interface.d.ts +88 -5
  33. package/dist/plugin/loader.d.ts +12 -1
  34. package/dist/plugin/loader.js +280 -70
  35. package/dist/plugin/pipeline.d.ts +75 -0
  36. package/dist/plugin/pipeline.js +183 -0
  37. package/dist/plugin/registry.d.ts +2 -1
  38. package/dist/plugin/registry.js +24 -14
  39. package/dist/security/secrets.d.ts +7 -0
  40. package/dist/security/secrets.js +37 -0
  41. package/dist/sensors/actionability.js +1 -2
  42. package/dist/sensors/guard.js +4 -10
  43. package/dist/sensors/mutations.js +12 -0
  44. package/dist/sensors/operation_monitor.js +1 -0
  45. package/dist/server.d.ts +1 -1
  46. package/dist/server.js +453 -178
  47. package/dist/state/agent.d.ts +1 -0
  48. package/dist/state/agent.js +3 -0
  49. package/dist/state/delta.d.ts +12 -4
  50. package/dist/state/delta.js +67 -14
  51. package/dist/state/session.d.ts +6 -0
  52. package/dist/state/session.js +27 -0
  53. package/dist/tools/browser_detect.d.ts +16 -3
  54. package/dist/tools/browser_detect.js +52 -7
  55. package/dist/tools/burst.d.ts +17 -8
  56. package/dist/tools/burst.js +236 -77
  57. package/dist/tools/captcha.js +1 -1
  58. package/dist/tools/checkpoint.d.ts +38 -0
  59. package/dist/tools/checkpoint.js +271 -0
  60. package/dist/tools/click.d.ts +1 -0
  61. package/dist/tools/click.js +74 -70
  62. package/dist/tools/design_extract.js +1 -1
  63. package/dist/tools/eval.js +1 -1
  64. package/dist/tools/fill.d.ts +20 -1
  65. package/dist/tools/fill.js +199 -40
  66. package/dist/tools/find.d.ts +16 -0
  67. package/dist/tools/find.js +67 -44
  68. package/dist/tools/github/index.d.ts +19 -4
  69. package/dist/tools/github/index.js +40 -4
  70. package/dist/tools/highlight.d.ts +6 -2
  71. package/dist/tools/highlight.js +158 -72
  72. package/dist/tools/inspect.js +1 -1
  73. package/dist/tools/key.js +65 -56
  74. package/dist/tools/navigate.d.ts +1 -1
  75. package/dist/tools/navigate.js +34 -39
  76. package/dist/tools/pdf.js +21 -13
  77. package/dist/tools/pointer.d.ts +18 -3
  78. package/dist/tools/pointer.js +89 -1
  79. package/dist/tools/read.d.ts +28 -8
  80. package/dist/tools/read.js +230 -56
  81. package/dist/tools/scrape.js +67 -13
  82. package/dist/tools/screenshot.js +21 -16
  83. package/dist/tools/scroll.js +6 -11
  84. package/dist/tools/select.js +8 -2
  85. package/dist/tools/snapshot.js +3 -34
  86. package/dist/tools/tabs.js +15 -7
  87. package/dist/tools/thought.d.ts +2 -0
  88. package/dist/tools/thought.js +13 -14
  89. package/dist/tools/type.d.ts +2 -0
  90. package/dist/tools/type.js +107 -58
  91. package/dist/tools/type_secret.js +42 -76
  92. package/dist/tools/upload.js +1 -1
  93. package/dist/tools/video_compiler.d.ts +1 -1
  94. package/dist/tools/video_compiler.js +11 -12
  95. package/dist/version.d.ts +5 -0
  96. package/dist/version.js +5 -0
  97. package/docs/DOCUMENTATION.md +37 -41
  98. package/docs/PLUGINS.md +121 -0
  99. package/docs/TOOLS.md +54 -0
  100. package/docs/architecture/blind-injection.md +83 -20
  101. package/docs/architecture/overview.md +49 -49
  102. package/docs/architecture/security.md +8 -7
  103. package/docs/architecture/transport.md +2 -2
  104. package/docs/cli/cli-commands.md +7 -1
  105. package/docs/cli/cli-flags.md +15 -7
  106. package/docs/cli/cli-scripting.md +6 -3
  107. package/docs/configuration/config-locations.md +3 -4
  108. package/docs/configuration/env-variables.md +4 -4
  109. package/docs/configuration/folders.md +55 -54
  110. package/docs/desktop-automation/electron-apps.md +214 -162
  111. package/docs/get-started/introduction.md +60 -60
  112. package/docs/get-started/setup-wizard.md +7 -6
  113. package/docs/intelligence/site-profiles.md +151 -0
  114. package/docs/tools/tools.md +631 -293
  115. package/docs/troubleshooting/trouble-browser.md +1 -1
  116. package/docs/troubleshooting/trouble-loop.md +31 -31
  117. package/ext-dist/background.js +10 -62
  118. package/ext-dist/content.js +333 -920
  119. package/ext-dist/hud/hud.js +9 -9
  120. package/ext-dist/manifest.json +2 -6
  121. package/ext-dist/styles.css +6 -1
  122. package/icon.png +0 -0
  123. package/mcp.json +87 -71
  124. package/package.json +118 -119
  125. package/server.json +5 -5
  126. package/ext-dist/sidepanel/sidepanel.js +0 -25
  127. package/ext-dist/sidepanel.html +0 -547
@@ -1,293 +1,631 @@
1
- ---
2
- title: "MCP Tools (46 Tools)"
3
- description: "Complete reference of all 46 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 **46 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** utilizing 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). Supports `app`. |
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_reset_loop_counter` | Wait, Timing & Safety | Resets the repetitive action strike counter to zero for long-running automated workflows. |
62
- | 37 | `browser_detect` | Tabs & Windows | Detects installed local browsers and reports CDP feature support matrices. |
63
- | 38 | `browser_performance` | Performance & Vitals | Retrieves Core Web Vitals (FCP, LCP, CLS) and detailed network resource timings. Supports `app`. |
64
- | 39 | `browser_macro_compile` | Mission & Automation | Compiles recent action trails from session history into reusable `browser_burst` macros. |
65
- | 40 | `github_analyze` | GitHub Intelligence | Analyzes GitHub repository structure, file trees, and READMEs without API token limits. |
66
- | 41 | `github_read` | GitHub Intelligence | Reads raw file contents and specific line ranges from GitHub repositories. |
67
- | 42 | `github_issues` | GitHub Intelligence | Lists, searches, and inspects GitHub issues and discussion threads. |
68
- | 43 | `github_get_pr` | GitHub Intelligence | Inspects GitHub Pull Requests including changed files, diffs, and review comments. |
69
- | 44 | `browser_office` | Office Documents | Parses Word (`.docx`), Excel (`.xlsx`), PDF, and CSV files into structured data. |
70
- | 45 | `browser_emulate` | Navigation & Environment | Emulates network throttling (3G/4G/Offline), CPU slowdown, geolocation, and custom User-Agent. Supports `app`. |
71
- | 46 | `list_plugins` | Plugins & Extensions | Inspects installed SDK plugins, loaded tool overrides, custom schemas, and capability manifests. |
72
-
73
- ---
74
-
75
- ## 1. Vision & DOM Reading
76
-
77
- ### `browser_map`
78
- DOM tree snapshotter with volatile `w:NN` ref IDs. The foundational tool for reading and understanding page structure.
79
-
80
- **Parameters:**
81
- | Parameter | Type | Description |
82
- |---|---|---|
83
- | `delta` | `boolean?` | Diff mode: returns only elements added or modified since the previous snapshot (up to 97% token savings). |
84
- | `prune` | `boolean?` | One-shot semantic compression: collapses repetitive elements and strips non-interactable noise. |
85
- | `scope` | `enum?` | Restricts extraction to a semantic landmark: `"navigation"`, `"main_content"`, `"sidebar"`, `"form"`, `"modal"`, `"utility"`. |
86
- | `query` | `string?` | Filters elements by accessible name, ARIA role, or label substring. |
87
- | `ax_tree` | `boolean?` | Uses Chromium Accessibility Tree directly (essential for closed Shadow DOM and canvas SPAs). |
88
- | `full` | `boolean?` | Return full markdown table format with bounding boxes instead of compact list. |
89
- | `tab_id` | `string?` | Read a specific background tab ID. |
90
- | `app` | `string?` | Target desktop Electron app name (e.g. `"discord"`, `"vscode"`, `"figma"`). |
91
-
92
- ```typescript
93
- // Initial fast read with semantic pruning
94
- browser_map({ prune: true })
95
-
96
- // Efficient polling for changes
97
- browser_map({ delta: true, prune: true })
98
-
99
- // Inspect inputs inside Discord desktop app
100
- browser_map({ app: "discord", scope: "main_content" })
101
- ```
102
-
103
- ---
104
-
105
- ### `browser_find`
106
- Sub-5ms native CDP in-page text search via `Page.searchInPage`. Approximately 10× cheaper than `browser_map` when only checking for text presence.
107
-
108
- **Parameters:**
109
- | Parameter | Type | Description |
110
- |---|---|---|
111
- | `query` | `string` *(required)* | Text search query string. |
112
- | `app` | `string?` | Target Electron desktop application. |
113
-
114
- ```typescript
115
- browser_find({ query: "Order Confirmed" })
116
- ```
117
-
118
- ---
119
-
120
- ### `browser_scrape`
121
- Rapid structured data extraction via CSS or XPath selectors. Executes a single CDP `Runtime.evaluate` call and returns clean tabular data.
122
-
123
- **Parameters:**
124
- | Parameter | Type | Description |
125
- |---|---|---|
126
- | `query` | `string` *(required)* | CSS selector or XPath query expression. |
127
- | `type` | `"css" | "xpath"?` | Selector query type (default `"css"`). |
128
- | `attributes` | `string[]?` | Element attributes to extract per match (default `["textContent"]`). |
129
- | `multiple` | `boolean?` | Return all matches or just the first element (default `true`). |
130
-
131
- ```typescript
132
- browser_scrape({
133
- query: ".pricing-card",
134
- type: "css",
135
- attributes: ["data-plan", "textContent", "href"]
136
- })
137
- ```
138
-
139
- ---
140
-
141
- ### `browser_extract_design`
142
- 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.
143
-
144
- **Parameters:**
145
- | Parameter | Type | Description |
146
- |---|---|---|
147
- | `selector` | `string?` | CSS selector of container element (default `"main"`, fallback `"body"`). |
148
- | `format` | `"tailwind" | "vanilla_css" | "tokens_only"?` | Style export preset (default `"tailwind"`). |
149
- | `outputDir` | `string?` | Custom output directory. If omitted, writes to `~/.weavetab/designs/<domain>-<ts>/`. |
150
- | `name` | `string?` | Custom name for the saved design folder (e.g. `"pricing-hero"`). |
151
-
152
- ```typescript
153
- browser_extract_design({
154
- selector: "#hero-section",
155
- format: "tailwind",
156
- name: "landing-hero"
157
- })
158
- ```
159
-
160
- ---
161
-
162
- ## 2. Input & Interaction
163
-
164
- ### `browser_click`
165
- Physical click engine using Ghost Cursor Bézier curve trajectories. Resolves targets through a 5-layer fallback cascade: `ref` → `selector` → `label` → `intent` → `coords`.
166
-
167
- **Parameters:**
168
- | Parameter | Type | Description |
169
- |---|---|---|
170
- | `id` | `string?` | Volatile `w:NN` ref ID from `browser_map` (preferred). |
171
- | `selector` | `string?` | CSS selector of target element. |
172
- | `label` | `string?` | Visible text label of the target element. |
173
- | `intent` | `string?` | Semantic intent for AI-assisted Memory Intent Intercept. |
174
- | `app` | `string?` | Target Electron desktop application. |
175
-
176
- ```typescript
177
- // Preferred: stable ref ID
178
- browser_click({ id: "w:14" })
179
-
180
- // Target desktop application
181
- browser_click({ id: "w:8", app: "discord" })
182
- ```
183
-
184
- ---
185
-
186
- ### `browser_type`
187
- Realistic humanized keystroke engine with temporal jitter (35–95ms), typing burst profiling, and stuck-input loop detection.
188
-
189
- **Parameters:**
190
- | Parameter | Type | Description |
191
- |---|---|---|
192
- | `text` | `string` *(required)* | Text string to type. |
193
- | `id` | `string?` | Target `w:NN` ref ID. |
194
- | `selector` | `string?` | CSS selector for target input. |
195
- | `clearFirst` | `boolean?` | Clear input field value before typing. |
196
- | `paste` | `boolean?` | Fast paste mode (recommended for tokens/strings > 8 chars). |
197
- | `app` | `string?` | Target Electron desktop application. |
198
-
199
- ---
200
-
201
- ### `browser_type_secret`
202
- **Blind Credential Injection** — Resolves passwords, API keys, and 2FA tokens server-side from `secrets.json`. Secrets are **never sent to the LLM context** and are permanently redacted as `[REDACTED]` in all subsequent DOM snapshots and audit logs.
203
-
204
- **Parameters:**
205
- | Parameter | Type | Description |
206
- |---|---|---|
207
- | `envKey` | `string` *(required)* | Key name in `secrets.json` (e.g. `"OKTA_PASSWORD"`). |
208
- | `id` | `string?` | Target `w:NN` ref ID. |
209
- | `target` | `string?` | CSS selector for target password/auth input. |
210
-
211
- ```typescript
212
- browser_type_secret({ id: "w:8", envKey: "PROD_AUTH_TOKEN" })
213
- ```
214
-
215
- ---
216
-
217
- ## 3. Mission & Automation
218
-
219
- ### `browser_burst`
220
- High-performance atomic action pipeline. Executes multiple sequential actions in a single MCP JSON-RPC round-trip, eliminating protocol latency overhead.
221
-
222
- **Parameters:**
223
- | Parameter | Type | Description |
224
- |---|---|---|
225
- | `steps` | `array` *(required)* | Array of compound macro step objects. |
226
- | `batch` | `boolean?` | Run in batch mode. |
227
- | `app` | `string?` | Target Electron desktop application context. |
228
-
229
- ```typescript
230
- browser_burst({
231
- steps: [
232
- { action: "navigate_and_read", url: "https://example.com/login" },
233
- { action: "type_and_send", selector: "#username", text: "admin@corp.internal" },
234
- { action: "click_and_wait", selector: "#submit-btn" }
235
- ]
236
- })
237
- ```
238
-
239
- ---
240
-
241
- ## 4. Autonomous CAPTCHA Solving
242
-
243
- ### `browser_captcha`
244
- 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**.
245
-
246
- **Parameters:**
247
- | Parameter | Type | Description |
248
- |---|---|---|
249
- | `action` | `"detect" | "solve" | "wait_for_user" | "status"` *(required)* | CAPTCHA action. |
250
- | `timeout` | `number?` | Max solving timeout in milliseconds (default `120000`). |
251
-
252
- ```typescript
253
- browser_captcha({ action: "solve", timeout: 45000 })
254
- ```
255
-
256
- ---
257
-
258
- ## 5. Enterprise Documents & Office
259
-
260
- ### `browser_office`
261
- 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.
262
-
263
- **Parameters:**
264
- | Parameter | Type | Description |
265
- |---|---|---|
266
- | `action` | `"read" | "list"` *(required)* | Document parsing operation. |
267
- | `file` | `string?` | Path to local document file. |
268
- | `url` | `string?` | Authenticated browser session URL to document. |
269
- | `max_rows` | `number?` | Maximum spreadsheet/table rows to parse. |
270
-
271
- ```typescript
272
- browser_office({
273
- action: "read",
274
- file: "./.weavetab/downloads/financial_report.xlsx",
275
- max_rows: 100
276
- })
277
- ```
278
-
279
- ---
280
-
281
- ## 6. Plugins & Extensions
282
-
283
- ### `list_plugins`
284
- Inspects all dynamically loaded Weavetab SDK plugins, active tool overrides, registered capability manifests, and isolated plugin storage directories.
285
-
286
- **Parameters:**
287
- | Parameter | Type | Description |
288
- |---|---|---|
289
- | `verbose` | `boolean?` | Return complete schema definitions and absolute file storage paths (default `false`). |
290
-
291
- ```typescript
292
- list_plugins({ verbose: true })
293
- ```
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 **44 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
+