@weavetab/mcp 2.5.0-beta.5 → 2.5.0

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/README.md CHANGED
@@ -1,153 +1,269 @@
1
- # MCP Registry
2
-
3
- The MCP registry provides MCP clients with a list of MCP servers, like an app store for MCP servers.
4
-
5
- [**📤 Publish my MCP server**](docs/modelcontextprotocol-io/quickstart.mdx) | [**⚡️ Live API docs**](https://registry.modelcontextprotocol.io/docs) | [**👀 Ecosystem vision**](docs/design/ecosystem-vision.md) | 📖 **[Full documentation](./docs)**
6
-
7
- ## Development Status
8
-
9
- **2025-10-24 update**: The Registry API has entered an **API freeze (v0.1)** 🎉. For the next month or more, the API will remain stable with no breaking changes, allowing integrators to confidently implement support. This freeze applies to v0.1 while development continues on v0. We'll use this period to validate the API in real-world integrations and gather feedback to shape v1 for general availability. Thank you to everyone for your contributions and patience—your involvement has been key to getting us here!
10
-
11
- **2025-09-08 update**: The registry has launched in preview 🎉 ([announcement blog post](https://blog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/)). While the system is now more stable, this is still a preview release and breaking changes or data resets may occur. A general availability (GA) release will follow later. We'd love your feedback in [GitHub discussions](https://github.com/modelcontextprotocol/registry/discussions/new?category=ideas) or in the [#registry-dev Discord](https://discord.com/channels/1358869848138059966/1369487942862504016) ([joining details here](https://modelcontextprotocol.io/community/communication)).
12
-
13
- Registry Working Group:
14
- - **Radoslav (Rado) Dimitrov** (Stacklok) [@rdimitrov](https://github.com/rdimitrov) - WG Lead
15
- - **Tadas Antanavicius** (PulseMCP) [@tadasant](https://github.com/tadasant)
16
- - **Bob Dickinson** (TeamSpark) [@BobDickinson](https://github.com/BobDickinson)
17
- - **Preeti (Pree) Dewani** (Ravenmail) [@pree-dew](https://github.com/pree-dew)
18
-
19
- ## Contributing
20
-
21
- We use multiple channels for collaboration - see [modelcontextprotocol.io/community/communication](https://modelcontextprotocol.io/community/communication).
22
-
23
- Often (but not always) ideas flow through this pipeline:
24
-
25
- - **[Discord](https://modelcontextprotocol.io/community/communication)** - Real-time community discussions
26
- - **[Discussions](https://github.com/modelcontextprotocol/registry/discussions)** - Propose and discuss product/technical requirements
27
- - **[Issues](https://github.com/modelcontextprotocol/registry/issues)** - Track well-scoped technical work
28
- - **[Pull Requests](https://github.com/modelcontextprotocol/registry/pulls)** - Contribute work towards issues
29
-
30
- ### Quick start:
31
-
32
- #### Pre-requisites
33
-
34
- - **Docker**
35
- - **Go 1.24.x**
36
- - **ko** - Container image builder for Go ([installation instructions](https://ko.build/install/))
37
- - **golangci-lint v2.4.0**
38
-
39
- #### Running the server
40
-
41
- ```bash
42
- # Start full development environment
43
- make dev-compose
44
- ```
45
-
46
- This starts the registry at [`localhost:8080`](http://localhost:8080) with PostgreSQL. The database uses ephemeral storage and is reset each time you restart the containers, ensuring a clean state for development and testing.
47
-
48
- **Note:** The registry uses [ko](https://ko.build) to build container images. The `make dev-compose` command automatically builds the registry image with ko and loads it into your local Docker daemon before starting the services.
49
-
50
- By default, the registry seeds from the production API with a filtered subset of servers (to keep startup fast). This ensures your local environment mirrors production behavior and all seed data passes validation. For offline development you can seed from a file without validation with `MCP_REGISTRY_SEED_FROM=data/seed.json MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=false make dev-compose`.
51
-
52
- The setup can be configured with environment variables in [docker-compose.yml](./docker-compose.yml) - see [.env.example](./.env.example) for a reference.
53
-
54
- <details>
55
- <summary>Alternative: Running a pre-built Docker image</summary>
56
-
57
- Pre-built Docker images are automatically published to GitHub Container Registry. Note that the image does not bundle PostgreSQL, so you need to run your own and point the registry at it via `MCP_REGISTRY_DATABASE_URL` (see [docker-compose.yml](./docker-compose.yml) for a working example):
58
-
59
- ```bash
60
- # Run latest stable release
61
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
62
-
63
- # Run latest from main branch (continuous deployment)
64
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main
65
-
66
- # Run specific release version
67
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
68
-
69
- # Run development build from main branch
70
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
71
- ```
72
-
73
- **Available tags:**
74
- - **Releases**: `latest`, `v1.0.0`, `v1.1.0`, etc.
75
- - **Continuous**: `main` (latest main branch build)
76
- - **Development**: `main-<date>-<sha>` (specific commit builds)
77
-
78
- </details>
79
-
80
- #### Publishing a server
81
-
82
- To publish a server, we've built a simple CLI. You can use it with:
83
-
84
- ```bash
85
- # Build the latest CLI
86
- make publisher
87
-
88
- # Use it!
89
- ./bin/mcp-publisher --help
90
- ```
91
-
92
- See [the publisher guide](./docs/modelcontextprotocol-io/quickstart.mdx) for more details.
93
-
94
- #### Other commands
95
-
96
- ```bash
97
- # Run lint, unit tests and integration tests
98
- make check
99
- ```
100
-
101
- There are also a few more helpful commands for development. Run `make help` to learn more, or look in [Makefile](./Makefile).
102
-
103
- <!--
104
- For Claude and other AI tools: Always prefer make targets over custom commands where possible.
105
- -->
106
-
107
- ## Architecture
108
-
109
- ### Project Structure
110
-
111
- ```
112
- ├── cmd/ # Application entry points
113
- │ └── publisher/ # Server publishing tool
114
- ├── data/ # Seed data
115
- ├── deploy/ # Deployment configuration (Pulumi)
116
- ├── docs/ # Documentation
117
- ├── internal/ # Private application code
118
- │ ├── api/ # HTTP handlers and routing
119
- │ ├── auth/ # Authentication (GitHub OAuth, JWT, namespace blocking)
120
- │ ├── config/ # Configuration management
121
- │ ├── database/ # Data persistence (PostgreSQL)
122
- │ ├── service/ # Business logic
123
- │ ├── telemetry/ # Metrics and monitoring
124
- │ └── validators/ # Input validation
125
- ├── pkg/ # Public packages
126
- │ ├── api/ # API types and structures
127
- │ │ └── v0/ # Version 0 API types
128
- │ └── model/ # Data models for server.json
129
- ├── scripts/ # Development and testing scripts
130
- ├── tests/ # Integration tests
131
- └── tools/ # CLI tools and utilities
132
- └── validate-*.sh # Schema validation tools
133
- ```
134
-
135
- ### Authentication
136
-
137
- Publishing supports multiple authentication methods:
138
- - **GitHub OAuth** - For publishing by logging into GitHub
139
- - **GitHub OIDC** - For publishing from GitHub Actions
140
- - **DNS verification** - For proving ownership of a domain and its subdomains
141
- - **HTTP verification** - For proving ownership of a domain
142
-
143
- The registry validates namespace ownership when publishing. E.g. to publish...:
144
- - `io.github.domdomegg/my-cool-mcp` you must login to GitHub as `domdomegg`, or be in a GitHub Action on domdomegg's repos
145
- - `me.adamjones/my-cool-mcp` you must prove ownership of `adamjones.me` via DNS or HTTP challenge
146
-
147
- ## Community Projects
148
-
149
- Check out [community projects](docs/community-projects.md) to explore notable registry-related work created by the community.
150
-
151
- ## More documentation
152
-
153
- See the [documentation](./docs) for more details if your question has not been answered here!
1
+ <div align="center">
2
+
3
+ <img src="weavetab-banner.png" alt="Weavetab" /><br /><br />
4
+
5
+ <p>The open automation engine for AI agents.<br />Control live browsers and desktop apps locally with instant execution.</p>
6
+
7
+ <p>
8
+ <a href="https://github.com/weavetab/mcp/releases"><img src="https://img.shields.io/github/v/release/weavetab/mcp?label=version&style=flat-square&color=3b82f6" alt="version" /></a>
9
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-AGPL--3.0-8b5cf6?style=flat-square" alt="license" /></a>
10
+ <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-10b981?style=flat-square" alt="MCP" /></a>
11
+ <img src="https://img.shields.io/badge/Node.js-%3E%3D18-green?style=flat-square" alt="Node" />
12
+ <a href="docs/tools/tools.md"><img src="https://img.shields.io/badge/tools-42-ec4899?style=flat-square" alt="tools" /></a>
13
+ <a href="https://github.com/sponsors/fy2ne"><img src="https://img.shields.io/badge/sponsor-fy2ne-ea4aaa?style=flat-square&logo=github-sponsors" alt="sponsor" /></a>
14
+ </p>
15
+
16
+ <p>
17
+ <a href="docs/tools/tools.md">Tool Reference</a> &nbsp;&middot;&nbsp;
18
+ <a href="docs/DOCUMENTATION.md">Documentation</a> &nbsp;&middot;&nbsp;
19
+ <a href="ARCHITECTURE.md">Architecture</a> &nbsp;&middot;&nbsp;
20
+ <a href="SUPPORT.md">Support</a> &nbsp;&middot;&nbsp;
21
+ <a href="SECURITY.md">Security</a>
22
+ </p>
23
+
24
+ </div>
25
+
26
+ ---
27
+
28
+ Weavetab is the open automation engine for AI agents. It connects models directly to live Chromium browsers and Electron desktop applications via native **Chrome DevTools Protocol (CDP)** sockets — no WebDriver binaries, no cloud relay, zero telemetry.
29
+
30
+ Actions execute with **sub-10ms latency**. Web pages are translated into agent-readable semantic maps with turn-by-turn diffing that reduces token usage by **up to 95%**. Built-in security enforces local domain policies, role-based access control, and client-side credential injection.
31
+
32
+ Built and architected by [fy2ne](https://github.com/fy2ne).
33
+
34
+ ---
35
+
36
+ ## Why not Playwright or Puppeteer?
37
+
38
+ > The standard approach ΓÇö Playwright over MCP ΓÇö works. But it carries fundamental architectural costs that compound at scale.
39
+
40
+ | | Playwright / Puppeteer | **Weavetab** |
41
+ |---|---|---|
42
+ | **Protocol layer** | WebDriver BiDi or CDP via browser binary | Raw CDP WebSocket, Layer 0 |
43
+ | **Tool execution latency** | 50ΓÇô300 ms (binary + IPC overhead) | **3ΓÇô8 ms** |
44
+ | **Desktop app control** | Browser only | Chrome + any Electron app (Discord, VS Code, Figma…) |
45
+ | **DOM representation** | Full HTML dump to LLM | Semantic Map 3.0 with delta diffing |
46
+ | **Token cost per map** | ~2,000ΓÇô8,000 tokens | **~80ΓÇô400 tokens** (95% reduction via delta) |
47
+ | **CAPTCHA** | API service required | **Zero-API** via CDP mouse physics |
48
+ | **Credential safety** | Secrets passed in plaintext | **Blind Injection** ΓÇö never in LLM context |
49
+ | **Extension access** | Limited | Full Chrome Extension API surface |
50
+
51
+ ---
52
+
53
+ ## Architecture
54
+
55
+ ```
56
+ MCP Client (Claude / Cursor / Antigravity / Copilot / Windsurf)
57
+ |
58
+ | JSON-RPC 2.0 (stdio or WebSocket :3000)
59
+ v
60
+ +-------------------------------------------------------------+
61
+ | Weavetab MCP Server |
62
+ | |
63
+ | +-----------------+ +---------------------------------+ |
64
+ | | Security Layer |-->| Intelligence Engine | |
65
+ | | Rate ┬╖ RBAC | | Map 3.0 ┬╖ Delta ┬╖ Memory | |
66
+ | | Policy ┬╖ Audit | | Pruner ┬╖ Framework Detector | |
67
+ | +-----------------+ +----------------+----------------+ |
68
+ | | |
69
+ | +----------v----------------+ |
70
+ | | CDP Bridge | |
71
+ | | Ghost Cursor ┬╖ Typing | |
72
+ | | App Router ┬╖ Loop Guard | |
73
+ | +----------+----------------+ |
74
+ +-------------------------------------------------------------+
75
+ | CDP WebSocket (127.0.0.1)
76
+ +---------------------------+-----------------------------+
77
+ v v v
78
+ Chrome / Edge VS Code / Discord Your Electron App
79
+ (any tab) (Electron apps) (local dev)
80
+ ```
81
+
82
+ No cloud. No external process. The CDP WebSocket connection is strictly bound to `127.0.0.1`.
83
+
84
+ ---
85
+
86
+ ## Quick Start
87
+
88
+ ```bash
89
+ npx -y @weavetab/mcp
90
+ ```
91
+
92
+ Add to your MCP client config:
93
+
94
+ ```json
95
+ {
96
+ "mcpServers": {
97
+ "weavetab": {
98
+ "command": "npx",
99
+ "args": ["-y", "@weavetab/mcp"]
100
+ }
101
+ }
102
+ }
103
+ ```
104
+
105
+ | Client | Config path |
106
+ |---|---|
107
+ | Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` |
108
+ | Claude Code | `claude mcp add weavetab -- npx -y @weavetab/mcp` |
109
+ | Cursor | `.cursor/mcp.json` |
110
+ | Antigravity | `~/.gemini/antigravity/mcp/weavetab/` |
111
+ | VS Code Copilot | `.vscode/mcp.json` |
112
+ | Windsurf | `~/.codeium/windsurf/mcp_config.json` |
113
+
114
+ ---
115
+
116
+ ## Core Technology
117
+
118
+ ### Semantic Map 3.0
119
+
120
+ The primary bottleneck in browser-based agents is DOM representation. Full HTML dumps are noisy, large, and structurally meaningless to language models. Weavetab's `browser_map` runs an in-browser CDP walker that produces a compact semantic map:
121
+
122
+ ```
123
+ ΓòöΓòÉ ACTIVE DIALOG: "Confirm Payment" ΓòÉΓòù
124
+ [w:3] button "Confirm" [w:4] button "Cancel"
125
+
126
+ Γöî "Pro Plan ΓÇö $49/mo"
127
+ [w:12] button "Upgrade" [w:13] button "View Details"
128
+ [w:14] input val:"john@example.com" ph:"Email address" FOCUSED
129
+
130
+ [w:20...w:38] 18 nav links: "Dashboard" ... "Sign out"
131
+ ```
132
+
133
+ Key properties:
134
+
135
+ - **Ref IDs** (`w:N`) are stable within a session and used by all interaction tools
136
+ - **Container binding** ΓÇö buttons and inputs are grouped under their parent card, row, or section header
137
+ - **Modal hoisting** ΓÇö open dialogs are isolated at the top so agents cannot miss them
138
+ - **Link collapsing** ΓÇö repeated nav/footer runs of 4+ links compress into a single token line
139
+ - **Semantic delta** — on re-reads, only changed nodes are transmitted (`~` modified, `+` added, `−` removed), cutting re-read cost by up to 95%
140
+
141
+ ### Ghost Cursor
142
+
143
+ Clicks are not dispatched as synthetic DOM events. They are delivered as a physical sequence of `Input.dispatchMouseEvent` CDP calls along a Bezier curve trajectory with randomized acceleration, natural jitter, and hold durations. Anti-bot fingerprinting that flags event-based automation does not trigger.
144
+
145
+ `browser_pointer` supports `hover_chain` for multi-level menu traversal in a single tool call:
146
+
147
+ ```json
148
+ {
149
+ "hover_chain": ["File", "Export As", "PNG"],
150
+ "click_final": true
151
+ }
152
+ ```
153
+
154
+ ### Blind Credential Injection
155
+
156
+ `browser_type_secret` resolves secrets server-side from `~/.weavetab/secrets.json`. The resolved value is never included in the MCP response, never appears in DOM snapshots, and is permanently masked as `[REDACTED]` in all audit logs. The LLM context never sees the credential.
157
+
158
+ ```bash
159
+ weavetab secrets set GITHUB_TOKEN
160
+ # Stored. Never echoed, never logged, never surfaced to the agent.
161
+ ```
162
+
163
+ ### Electron & Desktop App Automation
164
+
165
+ Any tool accepts an optional `app` parameter that routes the command to a registered Electron process instead of a browser tab:
166
+
167
+ ```json
168
+ { "app": "discord", "ref": "w:24", "text": "Hey, deploying now" }
169
+ ```
170
+
171
+ Register apps in `~/.weavetab/config.json`:
172
+
173
+ ```json
174
+ {
175
+ "electron": {
176
+ "discord": "C:\\Users\\<user>\\AppData\\Local\\Discord\\Discord.exe",
177
+ "vscode": "C:\\Users\\<user>\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe",
178
+ "figma": "C:\\Users\\<user>\\AppData\\Local\\Figma\\Figma.exe"
179
+ }
180
+ }
181
+ ```
182
+
183
+ Weavetab auto-attaches via CDP to the registered process. No code changes required in the target application.
184
+
185
+ ### Zero-API CAPTCHA Solving
186
+
187
+ `browser_captcha` solves Cloudflare Turnstile, reCAPTCHA v2/v3, GeeTest, and hCaptcha by orchestrating CDP mouse events that replicate human behavioral signatures ΓÇö velocity curves, micro-pauses, scroll inertia ΓÇö with no third-party API, no external service, and no API key required.
188
+
189
+ ---
190
+
191
+ ## Tool Suite
192
+
193
+ 42 tools across 9 categories. Full parameter reference: [`docs/tools/tools.md`](docs/tools/tools.md)
194
+
195
+ | Category | Tools |
196
+ |---|---|
197
+ | **Vision & DOM** | `browser_map` `browser_find` `browser_scrape` `browser_inspect` `browser_snapshot` `browser_screenshot` `browser_console` `browser_extract_design` |
198
+ | **Input & Interaction** | `browser_click` `browser_type` `browser_type_secret` `browser_key` `browser_pointer` `browser_select` `browser_fill` `browser_upload` `browser_scroll` |
199
+ | **Navigation & Environment** | `browser_navigate` `browser_tabs` `browser_detect` `browser_viewport` `browser_emulate` |
200
+ | **Mission & Automation** | `browser_burst` `browser_automation` `browser_recording` `browser_pattern_learn` |
201
+ | **Safety & Human Oversight** | `browser_dialog` `browser_thoughts` `browser_clipboard` `browser_wait` |
202
+ | **Autonomous CAPTCHA** | `browser_captcha` |
203
+ | **Network & Storage** | `browser_network_intercept` `browser_storage` `browser_cookies` `browser_checkpoint` `browser_performance` |
204
+ | **GitHub & Documents** | `browser_github` `browser_office` |
205
+ | **Canvas & Eval** | `browser_eval` `browser_pdf` `browser_canvas` `browser_highlight` |
206
+
207
+ ---
208
+
209
+ ## Security
210
+
211
+ - **Transport**: CDP WebSocket strictly bound to `127.0.0.1`. No listener on external interfaces.
212
+ - **Policy Engine**: Per-domain `allow` / `read-only` / `deny` / `audit` rules in `~/.weavetab/policy.json`
213
+ - **RBAC**: Four roles ΓÇö `admin`, `operator`, `viewer`, `automation` ΓÇö enforce tool-level permission gates
214
+ - **Blind Injection**: Credentials resolved server-side, masked in all outputs and audit logs
215
+ - **Loop Breaker**: Strike-based stuck-loop detector halts runaway autonomous sequences
216
+ - **Audit Log**: All tool invocations, policy decisions, and errors written to `~/.weavetab/logs/audit.log`
217
+
218
+ Security vulnerabilities: `security@fy2ne.me` (do not use public issues).
219
+
220
+ ---
221
+
222
+ ## CLI Reference
223
+
224
+ ```bash
225
+ weavetab # Start in stdio mode (default)
226
+ weavetab --ws --port 3000 # WebSocket daemon mode
227
+ weavetab config # Interactive configuration wizard
228
+ weavetab secrets set KEY_NAME # Store a secret (never echoed)
229
+ weavetab secrets list # List stored secret keys (not values)
230
+ weavetab plugin add <name> # Install a plugin from npm
231
+ weavetab plugin list # List installed plugins
232
+ ```
233
+
234
+ Configuration file: `~/.weavetab/config.json`
235
+
236
+ ```json
237
+ {
238
+ "browserType": "chromium",
239
+ "headless": false,
240
+ "extension": true,
241
+ "maxActionsPerMinute": 60,
242
+ "role": "admin",
243
+ "electron": {
244
+ "discord": "...",
245
+ "vscode": "...",
246
+ "antigravity": "..."
247
+ }
248
+ }
249
+ ```
250
+
251
+ ---
252
+
253
+ ## Extensibility
254
+
255
+ Weavetab exposes a typed Plugin SDK for authoring custom MCP tools, HUD overlays, and tool lifecycle hooks:
256
+
257
+ ```bash
258
+ npx @weavetab/sdk init my-plugin
259
+ ```
260
+
261
+ See [`docs/PLUGINS.md`](docs/PLUGINS.md) for architecture, manifest spec, and SDK API reference.
262
+
263
+ ---
264
+
265
+ ## License
266
+
267
+ AGPL-3.0-only. Client connections over stdio or WebSocket do not extend copyleft obligations to your client application or models.
268
+
269
+ [Sponsor development](https://github.com/sponsors/fy2ne) &nbsp;&middot;&nbsp; [Discussions](https://github.com/weavetab/mcp/discussions) &nbsp;&middot;&nbsp; [SUPPORT.md](SUPPORT.md)
package/dist/server.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Weavetab — server.ts
3
- * MCP server: 44 browser automation tools with security, rate limiting, and visual overlay.
3
+ * MCP server: 42 browser automation tools with security, rate limiting, and visual overlay.
4
4
  * Weavetab by fy2ne
5
5
  */
6
6
  import type { Config } from "./config/loader.js";
package/dist/server.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Weavetab — server.ts
3
- * MCP server: 44 browser automation tools with security, rate limiting, and visual overlay.
3
+ * MCP server: 42 browser automation tools with security, rate limiting, and visual overlay.
4
4
  * Weavetab by fy2ne
5
5
  */
6
6
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
package/dist/version.d.ts CHANGED
@@ -2,4 +2,4 @@
2
2
  * Weavetab Version Constant
3
3
  * Single source of truth for runtime versioning.
4
4
  */
5
- export declare const WEAVETAB_VERSION = "2.5.0-beta.5";
5
+ export declare const WEAVETAB_VERSION = "2.5.0";
package/dist/version.js CHANGED
@@ -2,4 +2,4 @@
2
2
  * Weavetab Version Constant
3
3
  * Single source of truth for runtime versioning.
4
4
  */
5
- export const WEAVETAB_VERSION = "2.5.0-beta.5";
5
+ export const WEAVETAB_VERSION = "2.5.0";
package/docs/PLUGINS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Weavetab Plugin System & SDK Specification
2
2
 
3
- > **Version:** 2.5.0-beta.5 | **SDK:** @weavetab/sdk (MIT) | **Runtime:** AGPL-3.0-only
3
+ > **Version:** 2.5.0 | **SDK:** @weavetab/sdk (MIT) | **Runtime:** AGPL-3.0-only
4
4
 
5
5
  The **Weavetab Plugin System** allows developers to extend the MCP runtime with custom tools, visual HUD overlays, thought bubbles, lifecycle hooks, and tool overrides.
6
6
 
package/docs/TOOLS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Weavetab MCP Tool Reference
2
2
 
3
- > **Version:** 2.5.0-beta.5 | **Total Tools:** 42 | **Architecture:** Layer 0 Direct CDP
3
+ > **Version:** 2.5.0 | **Total Tools:** 42 | **Architecture:** Layer 0 Direct CDP
4
4
 
5
5
  Weavetab provides 42 production-grade MCP tools organized into functional categories.
6
6
 
@@ -1,36 +1,36 @@
1
- ---
2
- title: "Security Model"
3
- description: "Layered defenses that gate every tool invocation."
4
- product: mcp
5
- section: architecture
6
- icon: ShieldCheck
7
- slug: security
8
- ---
9
-
10
- # Security Model
11
-
12
- Weavetab executes direct Layer 0 CDP commands — security is layered and **deny-by-default for risky surfaces**.
13
-
14
- ## Defense-in-Depth Mechanisms
15
-
16
- | Mechanism | Description |
17
- |---|---|
18
- | **Domain Blacklist** | Hard-blocked high-risk domains (banking, IAM consoles, internal infrastructure). |
19
- | **Domain Policy Engine** | Per-domain enforcement modes: `allow`, `read-only`, `deny`, `audit`. |
20
- | **Localhost Binding** | WebSocket server and CDP endpoints strictly bound to `127.0.0.1`. |
21
- | **Rate Limiting** | Mutex-enforced actions-per-minute rate limiter. |
22
- | **RBAC Roles** | 5 roles gating tool access (`admin`, `operator`, `viewer`, `automation`, `system`). |
23
- | **Root Guard** | Prevents execution as root/superuser on Unix systems. |
24
- | **Blind Injection** | Credential injection from `secrets.json` without exposing raw text to LLM context. |
25
- | **Shadow DOM Isolation** | All injected HUD and modal overlays run in isolated Shadow DOM trees. |
26
- | **Path Traversal Guard** | File upload and download paths strictly validated against path traversal. |
27
-
28
- ## RBAC Role Matrix
29
-
30
- | Tool Category | admin | operator | viewer | automation | system |
31
- |---|:---:|:---:|:---:|:---:|:---:|
32
- | Mutation tools (`click`, `type`, `fill`, etc.) | yes | yes | no | yes | no |
33
- | Read-only tools (`map`, `find`, `scrape`, `screenshot`) | yes | yes | yes | yes | no |
34
- | High-level orchestration (`burst`, `automation`, `wait`) | yes | yes | no | yes | no |
35
- | Interactive HUD (`thoughts`) | yes | yes | no | no | yes |
36
- | System introspection (`detect`, `performance`, `checkpoint`) | yes | yes | no | yes | yes |
1
+ ---
2
+ title: "Security Model"
3
+ description: "Layered defenses that gate every tool invocation."
4
+ product: mcp
5
+ section: architecture
6
+ icon: ShieldCheck
7
+ slug: security
8
+ ---
9
+
10
+ # Security Model
11
+
12
+ Weavetab executes direct Layer 0 CDP commands — security is layered and **deny-by-default for risky surfaces**.
13
+
14
+ ## Defense-in-Depth Mechanisms
15
+
16
+ | Mechanism | Description |
17
+ |---|---|
18
+ | **Domain Blacklist** | Hard-blocked high-risk domains (banking, IAM consoles, internal infrastructure). |
19
+ | **Domain Policy Engine** | Per-domain enforcement modes: `allow`, `read-only`, `deny`, `audit`. |
20
+ | **Localhost Binding** | WebSocket server and CDP endpoints strictly bound to `127.0.0.1`. |
21
+ | **Rate Limiting** | Mutex-enforced actions-per-minute rate limiter. |
22
+ | **RBAC Roles** | 5 roles gating tool access (`admin`, `operator`, `viewer`, `automation`, `system`). |
23
+ | **Root Guard** | Prevents execution as root/superuser on Unix systems. |
24
+ | **Blind Injection** | Credential injection from `secrets.json` without exposing raw text to LLM context. |
25
+ | **Shadow DOM Isolation** | All injected HUD and modal overlays run in isolated Shadow DOM trees. |
26
+ | **Path Traversal Guard** | File upload and download paths strictly validated against path traversal. |
27
+
28
+ ## RBAC Role Matrix
29
+
30
+ | Tool Category | admin | operator | viewer | automation | system |
31
+ |---|:---:|:---:|:---:|:---:|:---:|
32
+ | Mutation tools (`click`, `type`, `fill`, etc.) | yes | yes | no | yes | no |
33
+ | Read-only tools (`map`, `find`, `scrape`, `screenshot`) | yes | yes | yes | yes | no |
34
+ | High-level orchestration (`burst`, `automation`, `wait`) | yes | yes | no | yes | no |
35
+ | Interactive HUD (`thoughts`) | yes | yes | no | no | yes |
36
+ | System introspection (`detect`, `performance`, `checkpoint`) | yes | yes | no | yes | yes |
@@ -1,37 +1,37 @@
1
- ---
2
- title: "Transport Modes"
3
- description: "stdio vs WebSocket — pick the right wire for your client."
4
- product: mcp
5
- section: architecture
6
- icon: Cable
7
- slug: transport
8
- ---
9
-
10
- # Transport Modes
11
-
12
- | Mode | Flag | Protocol | Use Case |
13
- |---|---|---|---|
14
- | **stdio** | *(default)* | JSON-RPC 2.0 / stdio | Claude Desktop, Cursor, VS Code Copilot, Antigravity |
15
- | **WebSocket** | `--ws [--port N]` | JSON-RPC 2.0 / WebSocket | Custom agents, Python/Go backends, remote daemons, n8n |
16
-
17
- ## stdio (Default)
18
-
19
- The MCP client spawns Weavetab as a child process and pipes messages over stdin/stdout. No network port is opened:
20
-
21
- ```json
22
- {
23
- "mcpServers": {
24
- "weavetab": {
25
- "command": "weavetab"
26
- }
27
- }
28
- }
29
- ```
30
-
31
- ## WebSocket
32
-
33
- ```bash
34
- weavetab --ws --port 3000
35
- ```
36
-
37
- Starts the daemon on `127.0.0.1:3000` (override with `--port <n>` / `--port=<n>`). The daemon binds strictly to loopback for local security — front it with your own TLS/auth layer if exposing across a private network.
1
+ ---
2
+ title: "Transport Modes"
3
+ description: "stdio vs WebSocket — pick the right wire for your client."
4
+ product: mcp
5
+ section: architecture
6
+ icon: Cable
7
+ slug: transport
8
+ ---
9
+
10
+ # Transport Modes
11
+
12
+ | Mode | Flag | Protocol | Use Case |
13
+ |---|---|---|---|
14
+ | **stdio** | *(default)* | JSON-RPC 2.0 / stdio | Claude Desktop, Cursor, VS Code Copilot, Antigravity |
15
+ | **WebSocket** | `--ws [--port N]` | JSON-RPC 2.0 / WebSocket | Custom agents, Python/Go backends, remote daemons, n8n |
16
+
17
+ ## stdio (Default)
18
+
19
+ The MCP client spawns Weavetab as a child process and pipes messages over stdin/stdout. No network port is opened:
20
+
21
+ ```json
22
+ {
23
+ "mcpServers": {
24
+ "weavetab": {
25
+ "command": "weavetab"
26
+ }
27
+ }
28
+ }
29
+ ```
30
+
31
+ ## WebSocket
32
+
33
+ ```bash
34
+ weavetab --ws --port 3000
35
+ ```
36
+
37
+ Starts the daemon on `127.0.0.1:3000` (override with `--port <n>` / `--port=<n>`). The daemon binds strictly to loopback for local security — front it with your own TLS/auth layer if exposing across a private network.