@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
package/AGENTS.md
CHANGED
|
@@ -9,6 +9,7 @@ This document is the universal specification for AI agents (Cursor, Antigravity,
|
|
|
9
9
|
1. **Layer 0 Direct CDP**:
|
|
10
10
|
* Weavetab connects directly to Chrome DevTools Protocol (CDP) via WebSocket (`127.0.0.1`).
|
|
11
11
|
* **Do NOT introduce Puppeteer, Playwright, or Selenium wrapper abstractions**.
|
|
12
|
+
* Supports both standard browsers (Chrome/Chromium) and **any Electron/desktop webview app** (Discord, VS Code, Antigravity, Figma, Obsidian, Slack, or local apps from source) via the generic `app` parameter and `electron` config mapping.
|
|
12
13
|
|
|
13
14
|
2. **Deterministic State & Token Efficiency**:
|
|
14
15
|
* Use the **Semantic Delta Engine** for DOM snapshot diffing.
|
package/LICENSE
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
Weavetab
|
|
2
|
-
Licensing inquiries: license@weavetab.dev
|
|
1
|
+
Weavetab — Copyright (C) 2026 fy2ne
|
|
2
|
+
Licensing inquiries: license@weavetab.pages.dev
|
|
3
3
|
Commercial licenses available for proprietary/embedded use.
|
|
4
4
|
|
|
5
5
|
MCP Transport Clarification:
|
package/README.md
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|

|
|
4
4
|
|
|
5
5
|
<h1>WeaveTab MCP</h1>
|
|
6
|
-
<p><strong>
|
|
7
|
-
<p><em>
|
|
6
|
+
<p><strong>Direct Layer 0 interface for AI agents across web and desktop applications.</strong></p>
|
|
7
|
+
<p><em>No WebDriver. No Cloud. Pure Control.</em></p>
|
|
8
8
|
|
|
9
9
|
<p>
|
|
10
10
|
<img src="https://img.shields.io/badge/version-2.5.0-3b82f6?style=flat-square" alt="Version" />
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
<p>
|
|
19
19
|
<a href="https://github.com/weavetab/mcp">GitHub</a> ·
|
|
20
|
-
<a href="docs/
|
|
20
|
+
<a href="docs/tools/overview.md">Tool Reference</a> ·
|
|
21
21
|
<a href="docs/DOCUMENTATION.md">Documentation</a> ·
|
|
22
22
|
<a href="SECURITY.md">Security Policy</a> ·
|
|
23
23
|
<a href="CONTRIBUTING.md">Contributing</a>
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
29
|
-
**Weavetab** is a local, high-performance [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server
|
|
29
|
+
**Weavetab** is a local, high-performance [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server providing AI agents with direct, physical control across Chromium browsers and Electron desktop applications (Discord, VS Code, Antigravity, Figma, Slack, and local projects). Communicating directly over the **Chrome DevTools Protocol (CDP) WebSocket at Layer 0**, Weavetab eliminates WebDriver binaries, browser wrappers, and cloud middleware for deterministic **3–8ms tool execution latency**.
|
|
30
30
|
|
|
31
31
|
Built by **fy2ne**, Weavetab is engineered for autonomous AI agents operating in production environments where latency, security, and token efficiency are non-negotiable.
|
|
32
32
|
|
|
@@ -37,6 +37,7 @@ Built by **fy2ne**, Weavetab is engineered for autonomous AI agents operating in
|
|
|
37
37
|
- [Quick Start](#quick-start)
|
|
38
38
|
- [Architecture](#architecture)
|
|
39
39
|
- [Core Features](#core-features)
|
|
40
|
+
- [Electron & Desktop App Automation](#electron--desktop-app-automation)
|
|
40
41
|
- [Tool Categories](#tool-categories)
|
|
41
42
|
- [CLI Reference](#cli-reference)
|
|
42
43
|
- [Configuration](#configuration)
|
|
@@ -215,6 +216,136 @@ Chain N actions in a single MCP round-trip with `browser_burst`. Supports macro
|
|
|
215
216
|
|
|
216
217
|
---
|
|
217
218
|
|
|
219
|
+
## Electron & Desktop App Automation
|
|
220
|
+
|
|
221
|
+
Weavetab extends its Layer 0 CDP engine beyond web browsers to **any Electron-based desktop application or locally hosted webview app** (e.g. **Discord**, **Slack**, **VS Code**, **Antigravity IDE**, **Figma**, **Obsidian**, **Postman**, or your own custom Electron projects running from source).
|
|
222
|
+
|
|
223
|
+
Because Electron is built on Chromium and Blink, Weavetab controls desktop apps using the exact same low-latency CDP primitives (`browser_map`, `browser_click`, `browser_type`, `browser_tabs`, etc.) with zero app-specific hacks or overhead.
|
|
224
|
+
|
|
225
|
+
### 1. Configuring Installed Desktop Apps
|
|
226
|
+
|
|
227
|
+
Add your application executable paths to `~/.weavetab/config.json` (or `./.weavetab/config.json`) under the `"electron"` dictionary:
|
|
228
|
+
|
|
229
|
+
```json
|
|
230
|
+
{
|
|
231
|
+
"browserType": "chromium",
|
|
232
|
+
"electron": {
|
|
233
|
+
"discord": "C:\\Users\\<user>\\AppData\\Local\\Discord\\app-1.0.9183\\Discord.exe",
|
|
234
|
+
"antigravity": "C:\\Users\\<user>\\AppData\\Local\\Programs\\antigravity\\Antigravity.exe",
|
|
235
|
+
"vscode": "C:\\Users\\<user>\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe",
|
|
236
|
+
"figma": "C:\\Users\\<user>\\AppData\\Local\\Figma\\Figma.exe",
|
|
237
|
+
"obsidian": "C:\\Users\\<user>\\AppData\\Local\\Obsidian\\Obsidian.exe",
|
|
238
|
+
"slack": "/Applications/Slack.app/Contents/MacOS/Slack"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### 2. Automating Local / Source-Hosted Electron Projects
|
|
244
|
+
|
|
245
|
+
If you are developing a local Electron app from source code or running it via Vite / Webpack / Next.js on `localhost`, you can automate it in two ways:
|
|
246
|
+
|
|
247
|
+
#### Option A: Launch with Remote Debugging Flag
|
|
248
|
+
Start your development process passing the Chrome DevTools Protocol remote debugging port:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
# Standard Electron CLI / npm script
|
|
252
|
+
npx electron . --remote-debugging-port=9222
|
|
253
|
+
|
|
254
|
+
# Or within your package.json scripts:
|
|
255
|
+
# "dev:debug": "electron . --remote-debugging-port=9222"
|
|
256
|
+
npm run dev:debug
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Then configure `"attachPort": 9222` in `.weavetab/config.json` or register it in `"electron"`:
|
|
260
|
+
```json
|
|
261
|
+
{
|
|
262
|
+
"electron": {
|
|
263
|
+
"my-dev-app": "npm run dev:debug"
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
#### Option B: Register Local App Executable / Wrapper Script
|
|
269
|
+
Specify your local build binary or launch script in `"electron"`:
|
|
270
|
+
```json
|
|
271
|
+
{
|
|
272
|
+
"electron": {
|
|
273
|
+
"my-local-app": "C:\\Users\\<user>\\projects\\my-app\\node_modules\\electron\\dist\\electron.exe"
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### 3. Controlling Desktop Apps via MCP Tools
|
|
279
|
+
|
|
280
|
+
All Weavetab tools accept an optional `app` parameter specifying which application to target. When specified, Weavetab automatically connects to that app's dedicated CDP session without launching or interfering with your default browser.
|
|
281
|
+
|
|
282
|
+
#### Launch / Focus Desktop App
|
|
283
|
+
```json
|
|
284
|
+
{
|
|
285
|
+
"name": "browser_navigate",
|
|
286
|
+
"arguments": {
|
|
287
|
+
"app": "antigravity"
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
#### List & Switch Windows / Workbenches
|
|
293
|
+
Desktop apps often run multiple browser windows or background webviews. Inspect and switch active contexts using `browser_tabs`:
|
|
294
|
+
```json
|
|
295
|
+
{
|
|
296
|
+
"name": "browser_tabs",
|
|
297
|
+
"arguments": {
|
|
298
|
+
"action": "list",
|
|
299
|
+
"app": "antigravity"
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
Switch to a specific window/tab:
|
|
305
|
+
```json
|
|
306
|
+
{
|
|
307
|
+
"name": "browser_tabs",
|
|
308
|
+
"arguments": {
|
|
309
|
+
"action": "switch",
|
|
310
|
+
"tabId": "D8832CBF1FEF413B6E09E96EF8C82DFF",
|
|
311
|
+
"app": "antigravity"
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
#### Inspect DOM & Interact with UI Elements
|
|
317
|
+
Generate actionable Ref IDs (`w:NN`) and interact directly with native desktop UI components:
|
|
318
|
+
```json
|
|
319
|
+
// 1. Snapshot the Desktop App UI
|
|
320
|
+
{
|
|
321
|
+
"name": "browser_map",
|
|
322
|
+
"arguments": {
|
|
323
|
+
"app": "antigravity"
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
// 2. Click Settings or Menus
|
|
328
|
+
{
|
|
329
|
+
"name": "browser_click",
|
|
330
|
+
"arguments": {
|
|
331
|
+
"ref": "w:14",
|
|
332
|
+
"app": "antigravity"
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// 3. Type text into Desktop inputs
|
|
337
|
+
{
|
|
338
|
+
"name": "browser_type",
|
|
339
|
+
"arguments": {
|
|
340
|
+
"ref": "w:28",
|
|
341
|
+
"text": "Hello from WeaveTab automation!",
|
|
342
|
+
"app": "discord"
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
218
349
|
## Tool Categories
|
|
219
350
|
|
|
220
351
|
Weavetab exposes **44+ MCP tools** organized into functional categories. See the complete reference in [`docs/TOOLS.md`](docs/TOOLS.md).
|
|
@@ -389,12 +520,17 @@ Weavetab auto-generates a config file at `~/.weavetab/config.json` on first run.
|
|
|
389
520
|
{
|
|
390
521
|
"browserType": "chromium",
|
|
391
522
|
"headless": false,
|
|
523
|
+
"extension": true,
|
|
392
524
|
"devMode": false,
|
|
393
525
|
"maxActionsPerMinute": 60,
|
|
394
526
|
"role": "admin",
|
|
395
527
|
"telemetry": false,
|
|
396
528
|
"downloadDir": "~/Downloads",
|
|
397
|
-
"profileDir": "~/.weavetab/profile"
|
|
529
|
+
"profileDir": "~/.weavetab/profile",
|
|
530
|
+
"electron": {
|
|
531
|
+
"discord": "C:\\Users\\<user>\\AppData\\Local\\Discord\\app-1.0.9183\\Discord.exe",
|
|
532
|
+
"antigravity": "C:\\Users\\<user>\\AppData\\Local\\Programs\\antigravity\\Antigravity.exe"
|
|
533
|
+
}
|
|
398
534
|
}
|
|
399
535
|
```
|
|
400
536
|
|
|
@@ -402,10 +538,12 @@ Weavetab auto-generates a config file at `~/.weavetab/config.json` on first run.
|
|
|
402
538
|
|-----|------|---------|-------------|
|
|
403
539
|
| `browserType` | `"chromium"` \| `"firefox"` \| `"webkit"` | `"chromium"` | Which browser to launch/attach |
|
|
404
540
|
| `headless` | boolean | `false` | Run browser without a window |
|
|
541
|
+
| `extension` | boolean | `true` | Enable Weavetab Chrome extension integration |
|
|
405
542
|
| `devMode` | boolean | `false` | Verbose CDP logging |
|
|
406
543
|
| `maxActionsPerMinute` | number | `60` | Rate limit threshold |
|
|
407
544
|
| `role` | `"admin"` \| `"system"` \| `"viewer"` \| `"automation"` | `"admin"` | RBAC role |
|
|
408
545
|
| `telemetry` | boolean | `false` | Opt-in telemetry |
|
|
546
|
+
| `electron` | `Record<string, string>` | `{}` | Named map of Electron desktop apps to executable paths or startup scripts |
|
|
409
547
|
|
|
410
548
|
### Domain Policy
|
|
411
549
|
|
|
@@ -472,12 +610,12 @@ Weavetab connects out-of-the-box via stdio JSON-RPC 2.0 with all major AI coding
|
|
|
472
610
|
|
|
473
611
|
| Environment | Setup Method | Guided Web Installer |
|
|
474
612
|
| :--- | :--- | :--- |
|
|
475
|
-
| **Cursor** | `.cursor/mcp.json` | [weavetab.dev/mcp/install/cursor](https://
|
|
476
|
-
| **Antigravity** | `~/.gemini/antigravity/mcp/` | [weavetab.dev/mcp/install/antigravity](https://
|
|
477
|
-
| **Claude Desktop** | `claude_desktop_config.json` | [weavetab.dev/mcp/install/claude-desktop](https://
|
|
478
|
-
| **Claude Code** | `claude mcp add` | [weavetab.dev/mcp/install/claude-code](https://
|
|
479
|
-
| **VS Code / Copilot** | 1-Click Protocol / `settings.json` | [weavetab.dev/mcp/install/vscode](https://
|
|
480
|
-
| **Windsurf** | `mcp_config.json` | [weavetab.dev/mcp/install/windsurf](https://
|
|
613
|
+
| **Cursor** | `.cursor/mcp.json` | [weavetab.pages.dev/mcp/install/cursor](https://github.com/weavetab/mcp/mcp/install/cursor) |
|
|
614
|
+
| **Antigravity** | `~/.gemini/antigravity/mcp/` | [weavetab.pages.dev/mcp/install/antigravity](https://github.com/weavetab/mcp/mcp/install/antigravity) |
|
|
615
|
+
| **Claude Desktop** | `claude_desktop_config.json` | [weavetab.pages.dev/mcp/install/claude-desktop](https://github.com/weavetab/mcp/mcp/install/claude-desktop) |
|
|
616
|
+
| **Claude Code** | `claude mcp add` | [weavetab.pages.dev/mcp/install/claude-code](https://github.com/weavetab/mcp/mcp/install/claude-code) |
|
|
617
|
+
| **VS Code / Copilot** | 1-Click Protocol / `settings.json` | [weavetab.pages.dev/mcp/install/vscode](https://github.com/weavetab/mcp/mcp/install/vscode) |
|
|
618
|
+
| **Windsurf** | `mcp_config.json` | [weavetab.pages.dev/mcp/install/windsurf](https://github.com/weavetab/mcp/mcp/install/windsurf) |
|
|
481
619
|
|
|
482
620
|
---
|
|
483
621
|
|
|
@@ -716,58 +854,85 @@ Setting `"devMode": true` in configuration or `WEAVETAB_DEV=1` activates diagnos
|
|
|
716
854
|
|
|
717
855
|
## Plugin System
|
|
718
856
|
|
|
719
|
-
|
|
857
|
+
> [!NOTE]
|
|
858
|
+
> **PLUGIN ENGINE (v2.5.0-beta.2)**
|
|
859
|
+
>
|
|
860
|
+
> The Weavetab Plugin System and SDK are in **v2.5.0-beta.2**.
|
|
861
|
+
> Use the official **[`@weavetab/sdk`](https://www.npmjs.com/package/@weavetab/sdk)** to build, scaffold, and publish plugins.
|
|
862
|
+
|
|
863
|
+
Weavetab supports dynamic tool extension via the **Plugin System**. Any npm package containing a valid `weavetab.json` manifest found in `node_modules` (or official `@weavetab/plugin-*` packages) is automatically discovered and loaded into the MCP server.
|
|
720
864
|
|
|
721
|
-
|
|
865
|
+
### Key Capabilities in v2.5.0-beta.2:
|
|
866
|
+
1. **Isolated Configuration Sandbox**: Each plugin maintains its own settings in `~/.weavetab/plugins/<name>/config.json` without modifying core Weavetab config.
|
|
867
|
+
2. **Sandboxed Key-Value & File Storage**: Secure storage inside `~/.weavetab/plugins/<name>/` via `ctx.storage` with path traversal protection.
|
|
868
|
+
3. **Real-time Extension & HUD Visuals**: Floating thought bubbles (`ctx.extension.showThought`), status badges (`setHudState`), and custom CSS injection (`injectStyles`).
|
|
869
|
+
4. **Tool Overrides & Wrapping**: Wrap or modify built-in MCP tools (e.g. `browser_eval`, `browser_click`) via `ctx.mcp.overrideTool`.
|
|
870
|
+
5. **Lifecycle Hooks**: Intercept actions before and after tool calls with `ctx.hooks.beforeToolCall` and `ctx.hooks.afterToolCall`.
|
|
871
|
+
|
|
872
|
+
> 📖 See [Developer Plugin Guide](docs/dev_plugin.md) for a step-by-step tutorial, and [docs/PLUGINS.md](docs/PLUGINS.md) for the complete architecture and manifest specification.
|
|
722
873
|
|
|
723
874
|
### Quick Scaffold & Build
|
|
724
875
|
|
|
725
876
|
```bash
|
|
726
|
-
# 1.
|
|
727
|
-
npx weavetab init
|
|
877
|
+
# 1. Scaffold a new plugin
|
|
878
|
+
npx @weavetab/sdk init my-custom-plugin
|
|
879
|
+
cd my-custom-plugin
|
|
880
|
+
npm install
|
|
728
881
|
|
|
729
|
-
# 2. Build
|
|
730
|
-
|
|
882
|
+
# 2. Build and compile
|
|
883
|
+
npm run build
|
|
731
884
|
```
|
|
732
885
|
|
|
733
886
|
### Installing a Plugin
|
|
734
887
|
|
|
735
888
|
```bash
|
|
736
889
|
# Official plugin
|
|
737
|
-
|
|
890
|
+
weavetab plugin add @weavetab/plugin-youtube
|
|
738
891
|
|
|
739
|
-
# Community plugin (any npm name)
|
|
740
|
-
|
|
741
|
-
# or via npm
|
|
742
|
-
npm install wt-n8n
|
|
892
|
+
# Community plugin (any npm package name)
|
|
893
|
+
weavetab plugin add seo-auditor
|
|
743
894
|
```
|
|
744
895
|
|
|
745
|
-
Restart `weavetab` — the plugin's tools are automatically registered
|
|
896
|
+
Restart `weavetab` — the plugin's tools are automatically registered into the MCP runtime.
|
|
746
897
|
|
|
747
|
-
###
|
|
898
|
+
### Authoring a Plugin
|
|
748
899
|
|
|
749
900
|
```typescript
|
|
750
901
|
// src/index.ts
|
|
751
|
-
import type
|
|
902
|
+
import { definePlugin, type PluginContext } from "@weavetab/sdk";
|
|
903
|
+
|
|
904
|
+
export default definePlugin({
|
|
905
|
+
name: "weavetab-plugin-sample",
|
|
906
|
+
|
|
907
|
+
defaultConfig: {
|
|
908
|
+
showVisualHud: true,
|
|
909
|
+
},
|
|
752
910
|
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
version: "1.0.0",
|
|
756
|
-
tools: [
|
|
757
|
-
{
|
|
911
|
+
async onLoad(ctx: PluginContext) {
|
|
912
|
+
ctx.mcp.registerTool({
|
|
758
913
|
name: "my_custom_tool",
|
|
759
|
-
description: "
|
|
760
|
-
schema: {
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
914
|
+
description: "Custom tool registered into Weavetab runtime",
|
|
915
|
+
schema: {
|
|
916
|
+
type: "object",
|
|
917
|
+
properties: {
|
|
918
|
+
param: { type: "string", description: "Input parameter" }
|
|
919
|
+
}
|
|
920
|
+
},
|
|
921
|
+
handler: async (args: { param?: string }, session: any) => {
|
|
922
|
+
// Show thought bubble on active tab
|
|
923
|
+
if (ctx.config.showVisualHud && session) {
|
|
924
|
+
await ctx.extension.showThought(session, `✨ Running tool with ${args.param || "default"}`);
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
return {
|
|
928
|
+
content: [
|
|
929
|
+
{ type: "text", text: `Executed with: ${args.param || "default"}` }
|
|
930
|
+
]
|
|
931
|
+
};
|
|
765
932
|
}
|
|
766
|
-
}
|
|
767
|
-
|
|
768
|
-
};
|
|
769
|
-
|
|
770
|
-
export default plugin;
|
|
933
|
+
});
|
|
934
|
+
}
|
|
935
|
+
});
|
|
771
936
|
```
|
|
772
937
|
|
|
773
938
|
Plugin tools follow the standard MCP contract: structured Zod input, deterministic JSON output, audit logging, and `WeaveError` protocol on failure.
|
|
@@ -884,7 +1049,7 @@ Commit format: `feat:`, `fix:`, `docs:`, `chore:`, `refactor:`, `test:`
|
|
|
884
1049
|
Running Weavetab MCP as an independent process and communicating with it over standard Model Context Protocol transports (`stdio` or WebSocket JSON-RPC) does **not** cause AGPL copyleft obligations to extend to your client application, IDE, or host AI models.
|
|
885
1050
|
|
|
886
1051
|
### Commercial Licensing
|
|
887
|
-
For commercial, proprietary, or embedded distribution without AGPL copyleft requirements, dual-licensing options are available. Inquire at `license@weavetab.dev`.
|
|
1052
|
+
For commercial, proprietary, or embedded distribution without AGPL copyleft requirements, dual-licensing options are available. Inquire at `license@weavetab.pages.dev`.
|
|
888
1053
|
|
|
889
1054
|
---
|
|
890
1055
|
|
|
@@ -895,7 +1060,7 @@ For commercial, proprietary, or embedded distribution without AGPL copyleft requ
|
|
|
895
1060
|
| [GitHub Issues](https://github.com/weavetab/mcp/issues) | Bug reports, feature requests |
|
|
896
1061
|
| [TROUBLESHOOTING.md](TROUBLESHOOTING.md) | Common issues and fixes |
|
|
897
1062
|
| [docs/](docs/) | Full documentation |
|
|
898
|
-
| security@weavetab.dev | Security vulnerabilities (private) |
|
|
1063
|
+
| security@weavetab.pages.dev | Security vulnerabilities (private) |
|
|
899
1064
|
|
|
900
1065
|
---
|
|
901
1066
|
|
package/SECURITY.md
CHANGED
|
@@ -131,7 +131,7 @@ If you discover a security vulnerability in Weavetab, please **do not** open a p
|
|
|
131
131
|
|
|
132
132
|
Instead, report via one of the following channels:
|
|
133
133
|
|
|
134
|
-
- **Email**: security@
|
|
134
|
+
- **Email**: security@weavetab.pages.dev
|
|
135
135
|
- **GitHub**: Use the private vulnerability reporting feature on the repository
|
|
136
136
|
|
|
137
137
|
### Disclosure Timeline
|
|
@@ -185,8 +185,8 @@ To receive security notifications:
|
|
|
185
185
|
|
|
186
186
|
For security-related inquiries:
|
|
187
187
|
|
|
188
|
-
- **Security Vulnerabilities**: security@
|
|
189
|
-
- **Security Questions**: conduct@
|
|
188
|
+
- **Security Vulnerabilities**: security@weavetab.pages.dev
|
|
189
|
+
- **Security Questions**: conduct@weavetab.pages.dev
|
|
190
190
|
- **GitHub Security**: https://github.com/weavetab/mcp/security
|
|
191
191
|
|
|
192
192
|
---
|
package/TROUBLESHOOTING.md
CHANGED
|
@@ -199,7 +199,7 @@ browser_click({ id: "w:42" })
|
|
|
199
199
|
**Cause:** Extension incompatibility or corrupted Chrome profile.
|
|
200
200
|
|
|
201
201
|
**Solution:**
|
|
202
|
-
- Try running without extension: Set `
|
|
202
|
+
- Try running without extension: Set `"extension": false` in config
|
|
203
203
|
- Use a fresh Chrome profile: Set `profileDir` to a new directory
|
|
204
204
|
- Check Chrome version compatibility (requires Chrome 90+)
|
|
205
205
|
- Disable hardware acceleration in Chrome settings
|
package/dist/cdp/bridge.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export interface BrowserInfo {
|
|
|
4
4
|
name: string;
|
|
5
5
|
path: string;
|
|
6
6
|
}
|
|
7
|
+
export declare function isValidElectronExecutablePath(execPath: string): boolean;
|
|
7
8
|
export declare function findBrowser(preferred?: string): BrowserInfo | null;
|
|
8
9
|
export declare function findFirefox(): BrowserInfo | null;
|
|
9
10
|
export declare function probeAllBrowsers(): BrowserInfo[];
|
|
@@ -14,3 +15,12 @@ export declare function launchWithBridge(config: Config): Promise<{
|
|
|
14
15
|
engine?: BrowserEngine;
|
|
15
16
|
}>;
|
|
16
17
|
export declare function injectStealthScript(session: CDP.Client): Promise<void>;
|
|
18
|
+
export declare function getFreePort(preferredPort?: number): Promise<number>;
|
|
19
|
+
export declare function testPortListening(port: number): Promise<boolean>;
|
|
20
|
+
export declare function launchElectronApp(appName: string, config: Config): Promise<{
|
|
21
|
+
path: string;
|
|
22
|
+
name: string;
|
|
23
|
+
port: number;
|
|
24
|
+
engine: "chromium";
|
|
25
|
+
isElectron: true;
|
|
26
|
+
}>;
|