@weavetab/mcp 2.5.0-beta.0 → 2.5.0-beta.2
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 +1 -0
- package/LICENSE +2 -2
- package/README.md +208 -43
- package/SECURITY.md +3 -3
- package/TROUBLESHOOTING.md +1 -1
- package/dist/cdp/bridge.d.ts +10 -0
- package/dist/cdp/bridge.js +288 -68
- package/dist/cdp/connector.d.ts +5 -3
- package/dist/cdp/connector.js +188 -74
- package/dist/cdp/extension.js +0 -1
- package/dist/cdp/helpers.js +0 -2
- package/dist/cdp/lock.d.ts +9 -6
- package/dist/cdp/lock.js +72 -59
- package/dist/cdp/omni_broker.d.ts +1 -0
- package/dist/cdp/omni_broker.js +12 -6
- package/dist/cdp/profiles.d.ts +10 -0
- package/dist/cdp/profiles.js +65 -0
- package/dist/cdp/walker.js +50 -0
- package/dist/cli/plugin.d.ts +0 -2
- package/dist/cli/plugin.js +31 -683
- package/dist/cli/updater.js +2 -2
- package/dist/config/loader.d.ts +25 -6
- package/dist/config/loader.js +133 -20
- package/dist/index.js +48 -52
- package/dist/lifecycle/mission_manager.d.ts +0 -1
- package/dist/lifecycle/mission_manager.js +0 -3
- package/dist/overlay/ghost.d.ts +4 -0
- package/dist/overlay/ghost.js +118 -94
- package/dist/overlay/injector.d.ts +1 -1
- package/dist/overlay/injector.js +1 -15
- package/dist/plugin/extension_bridge.d.ts +40 -0
- package/dist/plugin/extension_bridge.js +158 -0
- package/dist/plugin/interface.d.ts +78 -16
- package/dist/plugin/loader.d.ts +4 -0
- package/dist/plugin/loader.js +178 -57
- package/dist/plugin/registry.js +11 -1
- package/dist/plugin/storage.d.ts +51 -0
- package/dist/plugin/storage.js +164 -0
- package/dist/server.js +217 -151
- package/dist/state/session.d.ts +2 -2
- package/dist/state/session.js +33 -13
- package/dist/tools/browser_detect.d.ts +2 -1
- package/dist/tools/browser_detect.js +6 -5
- package/dist/tools/burst.d.ts +1 -0
- package/dist/tools/burst.js +4 -6
- package/dist/tools/click.js +23 -28
- package/dist/tools/clipboard.js +31 -24
- package/dist/tools/navigate.d.ts +1 -1
- package/dist/tools/navigate.js +28 -10
- package/dist/tools/read.js +1 -1
- package/dist/tools/tabs.d.ts +10 -10
- package/dist/tools/tabs.js +47 -39
- package/dist/tools/type.js +2 -2
- package/docs/DOCUMENTATION.md +63 -6
- package/docs/architecture/blind-injection.md +20 -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 +54 -0
- package/docs/desktop-automation/electron-apps.md +162 -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/skills-ecosystem/skills-overview.md +35 -0
- package/docs/skills-ecosystem/skills-recipes.md +36 -0
- package/docs/tools/tools.md +293 -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/content.js +126 -101
- package/mcp.json +8 -15
- package/package.json +11 -5
- package/server.json +3 -3
- package/dist/tools/plan.d.ts +0 -39
- package/dist/tools/plan.js +0 -161
- package/docs/DEV_MODE.md +0 -68
- package/docs/PLUGINS.md +0 -538
- package/docs/TOOLS.md +0 -104
- package/docs/dev_plugin.md +0 -310
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Installation"
|
|
3
|
+
description: "Install Weavetab globally or run it ad-hoc with npx."
|
|
4
|
+
product: mcp
|
|
5
|
+
section: get-started
|
|
6
|
+
icon: Download
|
|
7
|
+
slug: installation
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Installation
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# Global installation (recommended)
|
|
14
|
+
npm install -g @weavetab/mcp@latest
|
|
15
|
+
|
|
16
|
+
# Or run directly without installation
|
|
17
|
+
npx -y @weavetab/mcp@latest
|
|
18
|
+
|
|
19
|
+
# Install Developer SDK as dev dependency in a project
|
|
20
|
+
npm install -D @weavetab/sdk@latest
|
|
21
|
+
|
|
22
|
+
# Verify installation
|
|
23
|
+
weavetab --version
|
|
24
|
+
# → @weavetab/mcp 2.5.0
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## System Requirements
|
|
28
|
+
|
|
29
|
+
- **Node.js** >= 18.0.0 (Node 20 or 22 LTS recommended)
|
|
30
|
+
- **Chromium-based browser** (Google Chrome, Microsoft Edge, Brave, or Chromium)
|
|
31
|
+
- *Optional:* Firefox or Safari Technology Preview via `browserType` config
|
|
32
|
+
- *Optional for Desktop Automation:* Any Electron application (Discord, VS Code, Figma, Obsidian, Postman, etc.)
|
|
33
|
+
|
|
34
|
+
## CLI Binary Aliases
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
weavetab # standard binary
|
|
38
|
+
Weavetab # case-insensitive alias
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## What Gets Configured
|
|
42
|
+
|
|
43
|
+
Weavetab ships as a single, self-contained Node package. On first run it:
|
|
44
|
+
|
|
45
|
+
1. Auto-detects an installed Chromium binary on `$PATH`
|
|
46
|
+
2. Creates `~/.weavetab/` for global configuration, secrets, and policy rules
|
|
47
|
+
3. Registers a local MCP entry point that clients launch over stdio or WebSocket
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Introduction"
|
|
3
|
+
description: "What Weavetab is, Layer 0 CDP architecture, and design tenets."
|
|
4
|
+
product: mcp
|
|
5
|
+
section: get-started
|
|
6
|
+
icon: BookOpen
|
|
7
|
+
slug: introduction
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Introduction
|
|
11
|
+
|
|
12
|
+
Weavetab is a production-grade, local **Model Context Protocol (MCP) server** that grants AI agents human-like control over Chromium browsers and native **Electron desktop applications** (VS Code, Discord, Slack, Figma, Obsidian, Postman, Antigravity IDE, etc.) — communicating directly over the **Chrome DevTools Protocol (CDP)** at Layer 0.
|
|
13
|
+
|
|
14
|
+
No WebDriver. No browser binary downloads. No Playwright or Puppeteer abstraction layer. No cloud dependency. Tool invocations resolve in **3–8 ms** of mean latency.
|
|
15
|
+
|
|
16
|
+
## Synchronized Ecosystem Releases
|
|
17
|
+
|
|
18
|
+
Both **`@weavetab/mcp`** and the **`@weavetab/sdk`** share synchronized release lines. Every capability introduced in the core runtime is immediately available in the developer SDK with 100% type safety and zero version mismatch.
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Install core Weavetab MCP server globally
|
|
22
|
+
npm install -g @weavetab/mcp@latest
|
|
23
|
+
|
|
24
|
+
# Or run directly via npx
|
|
25
|
+
npx -y @weavetab/mcp@latest
|
|
26
|
+
|
|
27
|
+
# Install Weavetab Developer SDK as a dev dependency
|
|
28
|
+
npm install -D @weavetab/sdk@latest
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Design Tenets
|
|
32
|
+
|
|
33
|
+
| Tenet | Implementation |
|
|
34
|
+
|---|---|
|
|
35
|
+
| **Ultra-Low Latency** | Sub-10 ms tool execution via direct CDP WebSocket connections |
|
|
36
|
+
| **Universal Control** | Native orchestration across Chromium web tabs and any Electron desktop app |
|
|
37
|
+
| **Autonomous CAPTCHA** | Zero-API solving (Cloudflare Turnstile, GeeTest, reCAPTCHA) via human Bézier mouse physics |
|
|
38
|
+
| **Security & RBAC** | 4-tier RBAC + domain policies + Blind Credential Injection + profile isolation |
|
|
39
|
+
| **Token Efficiency** | Semantic Delta diffing (up to 97% reduction) + intelligent DOM pruning |
|
|
40
|
+
| **Stealth & Physics** | Ghost Cursor (Bézier curves), human typing jitter, and CDP early-script fingerprint spoofing |
|
|
41
|
+
| **Self-Learning** | Per-domain session memory, framework detection, and automated loop recovery |
|
|
42
|
+
| **Zero Cloud** | Pure local computation. No external telemetry or cloud tracking unless explicitly opted in |
|
|
43
|
+
|
|
44
|
+
## What You Get
|
|
45
|
+
|
|
46
|
+
- **46 built-in MCP tools** covering DOM vision, input synthesis, desktop apps, tabs, network interception, office files, design extraction, and plugin lifecycle
|
|
47
|
+
- **Universal Desktop App Runtime** — seamlessly control Chrome and native Electron apps (Discord, Figma, VS Code) side-by-side without port conflicts
|
|
48
|
+
- **Autonomous Zero-API CAPTCHA Solver** — solve Cloudflare Turnstile, GeeTest, and reCAPTCHA locally via CDP mouse physics with $0 API costs
|
|
49
|
+
- **Two transport modes** — stdio (Claude Desktop, Cursor, VS Code, Windsurf, Antigravity) and WebSocket (`--ws --port 3000`)
|
|
50
|
+
- **Four RBAC roles** — `admin`, `operator`, `viewer`, and `automation`
|
|
51
|
+
- **Per-domain policies** — ring-fences sensitive banking, internal, and production surfaces
|
|
52
|
+
- **Blind Injection** — credentials resolved server-side from `secrets.json` and never exposed to the LLM
|
|
53
|
+
- **Extensible Plugin System** — auto-discovers and mounts custom MCP tools from `node_modules`
|
|
54
|
+
|
|
55
|
+
## Next Steps
|
|
56
|
+
|
|
57
|
+
- **[Quickstart](/docs/quickstart)** — install and run a first mission in 60 seconds
|
|
58
|
+
- **[Desktop & Electron Apps](/docs/electron-apps)** — configure and control desktop apps
|
|
59
|
+
- **[Autonomous CAPTCHA Solver](/docs/captcha-solver)** — zero-API anti-bot solving
|
|
60
|
+
- **[MCP Tools Reference](/docs/tools)** — full reference for all 46 built-in automation tools
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Quickstart"
|
|
3
|
+
description: "Install, configure, and run a first mission in under a minute."
|
|
4
|
+
product: mcp
|
|
5
|
+
section: get-started
|
|
6
|
+
icon: Zap
|
|
7
|
+
slug: quickstart
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Quickstart
|
|
11
|
+
|
|
12
|
+
Get Weavetab attached to your agent and running a real browser mission in three simple steps.
|
|
13
|
+
|
|
14
|
+
## 1. Install Weavetab
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Global installation (recommended)
|
|
18
|
+
npm install -g @weavetab/mcp@latest
|
|
19
|
+
|
|
20
|
+
# Or run directly with npx
|
|
21
|
+
npx -y @weavetab/mcp@latest
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 2. Wire to your MCP Client
|
|
25
|
+
|
|
26
|
+
Point any MCP-compatible client (Claude Desktop, Cursor, Windsurf, VS Code, Antigravity) at the binary:
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"mcpServers": {
|
|
31
|
+
"weavetab": {
|
|
32
|
+
"command": "weavetab"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 3. Run a First Mission
|
|
39
|
+
|
|
40
|
+
Use `browser_burst` to chain multiple actions in a single round-trip:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"name": "browser_burst",
|
|
45
|
+
"arguments": {
|
|
46
|
+
"steps": [
|
|
47
|
+
{ "action": "navigate_and_read", "url": "https://example.com" },
|
|
48
|
+
{ "action": "click_and_wait", "selector": "#login-btn" }
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
You will see the browser launch, the Ghost Cursor glide across the page along human Bézier curves, and the agent complete the task with sub-10ms CDP execution.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Setup Wizard"
|
|
3
|
+
description: "Interactive wizard that writes a clean config.json."
|
|
4
|
+
product: mcp
|
|
5
|
+
section: get-started
|
|
6
|
+
icon: Wand2
|
|
7
|
+
slug: setup-wizard
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Setup Wizard
|
|
11
|
+
|
|
12
|
+
Run the interactive CLI configuration wizard:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
weavetab config
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The wizard walks through every option across 5 interactive phases. Re-run it at any time to update your saved config.
|
|
19
|
+
|
|
20
|
+
## Wizard Phases
|
|
21
|
+
|
|
22
|
+
1. **Phase 1 — Essentials:** Browser path, RBAC role (`admin`, `operator`, `viewer`, `automation`), headless mode, dev mode, max tabs, actionability timeout, domain block/allow lists.
|
|
23
|
+
2. **Phase 2 — Advanced:** Browser engine selection, navigation timeouts, dark mode preferences, telemetry opt-in, outbound HTTP/SOCKS proxy, domain policy modes.
|
|
24
|
+
3. **Phase 3 — Save Location:** Global (`~/.weavetab/config.json`) or Project-scoped (`./.weavetab/config.json`).
|
|
25
|
+
4. **Phase 4 — MCP Auto-Config:** Auto-detects installed IDEs (Claude Desktop, Cursor, Windsurf, VS Code, OpenCode, Claude Code, Antigravity) and merges Weavetab into their MCP configuration.
|
|
26
|
+
5. **Phase 5 — Summary:** Displays full configuration validation report.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Skills Ecosystem"
|
|
3
|
+
description: "Drop-in agent skills and recipes from @weavetab/skills."
|
|
4
|
+
product: mcp
|
|
5
|
+
section: skills-ecosystem
|
|
6
|
+
icon: BrainCircuit
|
|
7
|
+
slug: skills-overview
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Weavetab Skills Ecosystem
|
|
11
|
+
|
|
12
|
+
The **`@weavetab/skills`** package provides drop-in operational directives and behavior skills for AI agents (Claude, Cursor, Windsurf, Copilot, Antigravity).
|
|
13
|
+
|
|
14
|
+
## Interactive Skills Installer
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npx -y @weavetab/skills@latest
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
The interactive installer detects your IDE (`.agents`, `.cursorrules`, `.clinerules`, `.roocode`, etc.) and injects selected skills directly without workspace clutter.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Available Skills Directory
|
|
25
|
+
|
|
26
|
+
- **CAPTCHA Evasion** (`general/captcha-evasion.md`) — Heuristics for resolving bot challenges and checkbox modals.
|
|
27
|
+
- **Context Awareness** (`general/context-awareness.md`) — Deep page analysis and landmark scoping.
|
|
28
|
+
- **Cookie Consent Banners** (`general/cookie-consent.md`) — Auto-dismissing GDPR and overlay modals.
|
|
29
|
+
- **Data Extraction** (`general/data-extraction.md`) — CSS & XPath tabular scraping.
|
|
30
|
+
- **Dynamic Interaction** (`general/dynamic-interaction.md`) — Precision hover, drag-and-drop, and flyout menus.
|
|
31
|
+
- **Error Recovery** (`general/error-recovery.md`) — Resolving 404s, stale elements, and network timeouts.
|
|
32
|
+
- **File Upload** (`general/file-upload.md`) — Direct CDP file attachments.
|
|
33
|
+
- **Form Filling** (`general/form-filling.md`) — Multi-field smart form batch completion.
|
|
34
|
+
- **Infinite Scroll** (`general/infinite-scroll.md`) — Pagination and dynamic lazy loading.
|
|
35
|
+
- **SPA Navigation** (`general/spa-navigation.md`) — Client-side route changes in React/Vue/Angular.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Automation Recipes"
|
|
3
|
+
description: "Step-by-step recipes for common browser automation challenges."
|
|
4
|
+
product: mcp
|
|
5
|
+
section: skills-ecosystem
|
|
6
|
+
icon: BookOpenCheck
|
|
7
|
+
slug: skills-recipes
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Automation Skills Recipes
|
|
11
|
+
|
|
12
|
+
## Recipe 1: Handling Dynamic Cookie Consent Overlays
|
|
13
|
+
|
|
14
|
+
```markdown
|
|
15
|
+
1. Run browser_find({ query: "Accept all cookies" })
|
|
16
|
+
2. If found, call browser_click({ label: "Accept all" })
|
|
17
|
+
3. Wait for stability: browser_wait({ for: "stable", timeout: 2000 })
|
|
18
|
+
4. Read page with delta: browser_map({ delta: true, prune: true })
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Recipe 2: Autonomous Form Completion
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
1. Map the form: browser_map({ scope: "form", query: "input" })
|
|
27
|
+
2. Batch fill fields in one round-trip:
|
|
28
|
+
browser_fill({
|
|
29
|
+
fields: [
|
|
30
|
+
{ ref: "w:12", value: "alex@company.com" },
|
|
31
|
+
{ ref: "w:14", value: "United States" }
|
|
32
|
+
],
|
|
33
|
+
submit: "w:16"
|
|
34
|
+
})
|
|
35
|
+
3. Wait for submission: browser_wait({ for: "network" })
|
|
36
|
+
```
|
|
@@ -0,0 +1,293 @@
|
|
|
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
|
+
```
|
|
@@ -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.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Loop Detection"
|
|
3
|
+
description: "When the agent gets stuck in an action loop."
|
|
4
|
+
product: mcp
|
|
5
|
+
section: troubleshooting
|
|
6
|
+
icon: RotateCcw
|
|
7
|
+
slug: trouble-loop
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Loop Detection Diagnostics
|
|
11
|
+
|
|
12
|
+
## Symptoms
|
|
13
|
+
|
|
14
|
+
A tool call returns `stuck_warning: true` or `STUCK_LOOP_WARNING`.
|
|
15
|
+
|
|
16
|
+
## Cause
|
|
17
|
+
|
|
18
|
+
Weavetab tracks a rolling 50-action window in `~/.weavetab-system/sessions/context.json`. If repeated identical actions fail to produce DOM state changes, strikes are accumulated:
|
|
19
|
+
|
|
20
|
+
| Strikes | Severity | System Behavior |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| < 5 | Normal | Standard execution |
|
|
23
|
+
| 5–9 | Warning | Warning hint injected into agent context |
|
|
24
|
+
| 10+ | Critical | Agent marked as `stuck`; recovery strategy triggered |
|
|
25
|
+
|
|
26
|
+
## Resolution
|
|
27
|
+
|
|
28
|
+
1. Call `browser_reset_loop_counter({ reason: "new_task" })` to clear strikes
|
|
29
|
+
2. Call `browser_map({ delta: true })` to verify if DOM elements actually changed
|
|
30
|
+
3. Call `browser_inspect` to check if target element is hidden or occluded by modals
|
|
31
|
+
4. Use `browser_wait({ for: "stable" })` before triggering inputs
|