mcpField
W
Weavetab

Weavetab

Local
github.com/WeavetabBrowser Automation3Updated today

About Weavetab

Weavetab is a local automation engine for AI agents to control Chromium browsers and Electron apps through CDP. It represents pages as compact semantic maps with change diffs, and includes credential masking and local security policies.

Key features

  1. 01Control browsers and Electron through CDP
  2. 02Create semantic maps with change diffs
  3. 03Interact with and navigate pages
  4. 04Inject and mask credentials server-side
  5. 05Apply domain policies and role permissions

Use cases

  1. 01Automate web forms and navigation
  2. 02Run tasks in Electron applications
  3. 03Keep credentials out of agent context
  4. 04Inspect page changes and extract information

MCP support

The Weavetab MCP server exposes browser and Electron automation tools over stdio or a WebSocket bound to localhost. Clients can call tools for page inspection, interaction, navigation, screenshots, network access, and storage.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"dev-weavetab": {
"command": "npx",
"args": [
"-y",
"@weavetab/mcp"
]
}
}
}
Run commandnpx -y @weavetab/mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@weavetab/mcp2.5.0

Tools

42

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
appstringNoElectron app name configured in config.json under 'electron'.
fullbooleanNoSet to true to return a full markdown table (heavier context) instead of the lite list.
deltabooleanNoDiff mode: return ONLY elements that changed since the last browser_map call (added, removed, or modified). Diffs across time — distinct from prune. Cuts prompt tokens by up to 97% on consecutive calls.
forcebooleanNoForce a full DOM map rebuild even if loop detection says nothing changed. Bypasses the map skip guard and resets loop strikes.
prunebooleanNoSemantic DOM pruning: compress the current snapshot before returning. Drops hidden elements with no interactive descendants and not referenced by any toggle trigger (aria-controls etc.). Replaces SVG icons with [SVG Icon: label] tokens. Distinct from delta:true — delta diffs across time, prune compresses this snapshot once. Combine both for maximum token efficiency.
querystringNoFilter returned elements by label or role substring. Useful on dense dashboards.
scopeenumNoRestrict parsing to a semantic page area to save tokens. Useful on dense dashboards.navigation | main_content | sidebar | form | modal | utility
tab_idstringNoRead a specific background tab instead of the active one.
visualanyNoSet-of-Marks visual grounding. true = always inject numbered badges + return annotated screenshot. "auto" = only activate when DOM interactive count < 5 (canvas/WebGL/Figma pages). After receiving marks, use browser_click({ mark: N }) to interact with numbered elements.
ax_treebooleanNoBypass the extension entirely and read raw Chrome Accessibility Tree. Use this if Shadow DOMs hide elements.
show_overlaysbooleanNoDefault false. Debug only — draws colored element borders via extension (ugly). The blue edge glow is the standard visual indicator, shown automatically during reading states. Only enable this for debugging element boundaries.

Details

From the project README

Weavetab

The open automation engine for AI agents.
Control live browsers and desktop apps locally with instant execution.

version license MCP Node tools sponsor

Tool Reference  ·  Documentation  ·  Architecture  ·  Support  ·  Security


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.

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.

Built and architected by fy2ne.


Why not Playwright or Puppeteer?

The standard approach — Playwright over MCP — works. But it carries fundamental architectural costs that compound at scale.

Playwright / PuppeteerWeavetab
Protocol layerWebDriver BiDi or CDP via browser binaryRaw CDP WebSocket, Layer 0
Tool execution latency50–300 ms (binary + IPC overhead)3–8 ms
Desktop app controlBrowser onlyChrome + any Electron app (Discord, VS Code, Figma…)
DOM representationFull HTML dump to LLMSemantic Map 3.0 with delta diffing
Token cost per map~2,000–8,000 tokens~80–400 tokens (95% reduction via delta)
CAPTCHAAPI service requiredZero-API via CDP mouse physics
Credential safetySecrets passed in plaintextBlind Injection — never in LLM context
Extension accessLimitedFull Chrome Extension API surface

Architecture

MCP Client (Claude / Cursor / Antigravity / Copilot / Windsurf)
       |
       |  JSON-RPC 2.0  (stdio or WebSocket 127.0.0.1:3000)
       v
+-------------------------------------------------------------+
|                   Weavetab MCP Server                       |
|                                                             |
|  +-----------------+   +---------------------------------+  |
|  | Security Layer  |-->|  Intelligence Engine            |  |
|  | Rate · RBAC     |   |  Map 3.0 · Delta · Memory       |  |
|  | Policy · Audit  |   |  Pruner · Framework Detector    |  |
|  +-----------------+   +----------------+----------------+  |
|                                         |                   |
|                              +----------v----------------+  |
|                              |  CDP Bridge               |  |
|                              |  Ghost Cursor · Typing    |  |
|                              |  App Router · Loop Guard  |  |
|                              +----------+----------------+  |
+-------------------------------------------------------------+
                                          |  CDP WebSocket (127.0.0.1)
              +---------------------------+-----------------------------+
              v                           v                            v
       Chrome / Edge               VS Code / Discord          Your Electron App
       (any tab)                   (Electron apps)            (local dev)

No cloud. No external process. Both the CDP WebSocket connection and the optional MCP WebSocket daemon (--ws) are strictly bound to 127.0.0.1 with shared-secret authentication (~/.weavetab-system/ws-secret) and Origin/Host header verification.


Quick Start

npx -y @weavetab/mcp

Add to your MCP client config:

{
  "mcpServers": {
    "weavetab": {
      "command": "npx",
      "args": ["-y", "@weavetab/mcp"]
    }
  }
}
ClientConfig path
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json
Claude Codeclaude mcp add weavetab -- npx -y @weavetab/mcp
Cursor.cursor/mcp.json
Antigravity~/.gemini/antigravity/mcp/weavetab/
VS Code Copilot.vscode/mcp.json
Windsurf~/.codeium/windsurf/mcp_config.json

Core Technology

Semantic Map 3.0

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:

╔═ ACTIVE DIALOG: "Confirm Payment" ═╗
  [w:3] button "Confirm"  [w:4] button "Cancel"

┌ "Pro Plan — $49/mo"
  [w:12] button "Upgrade"   [w:13] button "View Details"
  [w:14] input val:"[email protected]"  ph:"Email address"  FOCUSED

[w:20...w:38] 18 nav links: "Dashboard" ... "Sign out"

Key properties:

  • Ref IDs (w:N) are stable within a session and used by all interaction tools
  • Container binding — buttons and inputs are grouped under their parent card, row, or section header
  • Modal hoisting — open dialogs are isolated at the top so agents cannot miss them
  • Link collapsing — repeated nav/footer runs of 4+ links compress into a single token line
  • Semantic delta — on re-reads, only changed nodes are transmitted (~ modified, + added, − removed), cutting re-read cost by up to 95%
Ghost Cursor

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.

browser_pointer supports hover_chain for multi-level menu traversal in a single tool call:

{
  "hover_chain": ["File", "Export As", "PNG"],
  "click_final": true
}
Blind Credential Injection

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.

weavetab secrets set GITHUB_TOKEN
# Stored. Never echoed, never logged, never surfaced to the agent.
Electron & Desktop App Automation

Any tool accepts an optional app parameter that routes the command to a registered Electron process instead of a browser tab:

{ "app": "discord", "ref": "w:24", "text": "Hey, deploying now" }

Register apps in ~/.weavetab/config.json:

{
  "electron": {
    "discord":  "C:\\Users\\<user>\\AppData\\Local\\Discord\\Discord.exe",
    "vscode":   "C:\\Users\\<user>\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe",
    "figma":    "C:\\Users\\<user>\\AppData\\Local\\Figma\\Figma.exe"
  }
}

Weavetab auto-attaches via CDP to the registered process. No code changes required in the target application.

Zero-API CAPTCHA Solving

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.


Tool Suite

41 tools across 9 categories. Full parameter reference: docs/tools/tools.md

CategoryTools
Vision & DOMbrowser_map browser_find browser_scrape browser_inspect browser_snapshot browser_screenshot browser_console browser_extract_design
Input & Interactionbrowser_click browser_type browser_type_secret browser_key browser_pointer browser_select browser_fill browser_upload browser_scroll
Navigation & Environmentbrowser_navigate browser_tabs browser_detect browser_viewport browser_emulate
Mission & Automationbrowser_burst browser_automation browser_recording browser_pattern_learn
Safety & Human Oversightbrowser_dialog browser_thoughts browser_clipboard browser_wait
Autonomous CAPTCHAbrowser_captcha
Network & Storagebrowser_network_intercept browser_storage browser_cookies browser_checkpoint browser_performance
Office Documentsbrowser_office
Canvas & Evalbrowser_eval browser_pdf browser_canvas browser_highlight

Security

  • Transport: Both CDP WebSocket and MCP WebSocket daemon (--ws) are strictly bound to 127.0.0.1 with 256-bit shared-secret Bearer/handshake authentication and Origin/Host validation. No listener on external interfaces.
  • Policy Engine: Per-domain allow / read-only / deny / audit rules under the top-level policies array in ~/.weavetab/config.json (blocks *.bank.* and paypal.com out of the box)
  • RBAC: Five roles — operator (default), viewer (least-privilege read-only), automation, system, admin — enforce tool-level permission gates
  • Plugin Trust & Manifests: 3-tier verification (@weavetab/* official, verified registry allowlist, and mandatory interactive confirmation + weavetab.json permission manifest inspection for unverified packages)
  • Blind Injection: Credentials resolved server-side, masked in all outputs and audit logs
  • Loop Breaker: Strike-based stuck-loop detector halts runaway autonomous sequences
  • Audit Log: All tool invocations, policy decisions, and errors written to ~/.weavetab-system/logs/mission_<timestamp>.log

Security vulnerabilities: [email protected] (do not use public issues).


CLI Reference

weavetab                        # Start in stdio mode (default)
weavetab --ws --port 3000       # WebSocket daemon mode (bound to 127.0.0.1)
weavetab config                 # Interactive configuration wizard
weavetab secrets set KEY_NAME   # Store a secret (never echoed)
weavetab secrets list           # List stored secret keys (not values)
weavetab plugin add <name>      # Install a verified/confirmed plugin
weavetab plugin list            # List installed plugins

Configuration file: ~/.weavetab/config.json

{
  "browserType": "chromium",
  "headless": false,
  "extension": true,
  "maxActionsPerMinute": 60,
  "role": "operator",
  "electron": {
    "discord":     "...",
    "vscode":      "...",
    "antigravity": "..."
  }
}

Extensibility

Weavetab exposes a typed Plugin SDK for authoring custom MCP tools, HUD overlays, and tool lifecycle hooks:

npx @weavetab/sdk init my-plugin

See docs/PLUGINS.md for architecture, manifest spec, and SDK API reference.


License

AGPL-3.0-only. Client connections over stdio or WebSocket do not extend copyleft obligations to your client application or models.

Sponsor development  ·  Discussions  ·  SUPPORT.md

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.