Weavetab について
Weavetabは、CDP経由でChromiumブラウザーやElectronアプリを操作する、AIエージェント向けのローカル自動化エンジンです。ページを差分付きの簡潔なセマンティックマップで表し、認証情報のマスキングとローカルのセキュリティポリシーを備えています。
主な機能
- 01CDP経由でブラウザーとElectronを操作
- 02差分付きセマンティックマップの生成
- 03ページの操作とナビゲーション
- 04サーバー側で認証情報を注入・マスキング
- 05ドメインポリシーとロール権限の適用
活用シーン
- 01ウェブフォームとナビゲーションの自動化
- 02Electronアプリ内のタスク実行
- 03認証情報をエージェントのコンテキストから隔離
- 04ページ変更の確認と情報抽出
MCP 対応
Weavetab MCPサーバーは、stdioまたはローカルホストにバインドされたWebSocket経由で、ブラウザーとElectronの自動化ツールを公開します。クライアントはページ確認、操作、ナビゲーション、スクリーンショット、ネットワーク、ストレージ用のツールを呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
42掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| app | string | いいえ | config.json の 'electron' の下で設定された Electron アプリ名。 |
| full | boolean | いいえ | true に設定すると、簡易リストではなく完全な Markdown テーブル(より多くのコンテキストを使用)を返します。 |
| delta | boolean | いいえ | 差分モード:前回の browser_map 呼び出し以降に変更された(追加、削除、または修正された)要素のみを返します。prune とは異なり、時間経過による差分を表示します。連続呼び出し時にプロンプトトークンを最大 97% 削減します。 |
| force | boolean | いいえ | ループ検出で変更なしと判定された場合でも、完全な DOM マップを強制的に再構築します。マップのスキップガードを回避し、ループカウントをリセットします。 |
| prune | boolean | いいえ | セマンティック DOM のプルーニング:返す前に現在のスナップショットを圧縮します。インタラクティブな子孫要素がなく、切り替えトリガー(aria-controls など)からも参照されていない非表示要素を削除します。SVG アイコンを [SVG Icon: label] トークンに置き換えます。delta:true とは異なり、delta は時間をまたいだ差分を取り、prune はこのスナップショットを一度だけ圧縮します。両方を組み合わせると、トークン効率を最大化できます。 |
| query | string | いいえ | ラベルまたはロールの部分文字列で、返された要素をフィルタリングします。情報量の多いダッシュボードで便利です。 |
| scope | enum | いいえ | トークンを節約するため、解析対象をページ内のセマンティックな領域に限定します。情報密度の高いダッシュボードで便利です。navigation | main_content | sidebar | form | modal | utility |
| tab_id | string | いいえ | アクティブなタブではなく、指定したバックグラウンドタブを読み取ります。 |
| visual | any | いいえ | Set-of-Marks による視覚的グラウンディング。true = 常に番号付きバッジを挿入し、注釈付きスクリーンショットを返します。"auto" = DOM のインタラクティブ要素数が 5 未満の場合にのみ有効化します(canvas/WebGL/Figma ページ)。マークを受け取ったら、browser_click({ mark: N }) を使って番号付き要素を操作します。 |
| ax_tree | boolean | いいえ | 拡張機能を完全にバイパスして、生の Chrome Accessibility Tree を読み取ります。Shadow DOM によって要素が隠れている場合に使用します。 |
| show_overlays | boolean | いいえ | デフォルトは false です。デバッグ専用です。拡張機能で要素の境界線を色付きで描画します(見栄えはよくありません)。青いエッジの光彩は標準の視覚インジケーターで、読み取り状態中に自動表示されます。要素境界のデバッグ時にのみ有効にしてください。 |
詳細

AI エージェント向けのオープンな自動化エンジンです。
ライブブラウザーやデスクトップアプリをローカルで即座に操作できます。
Weavetab は AI エージェント向けのオープンな自動化エンジンです。ネイティブの Chrome DevTools Protocol(CDP) ソケットを介して、モデルをライブの Chromium ブラウザーや Electron デスクトップアプリケーションに直接接続します。WebDriver バイナリも、クラウドリレーも不要で、テレメトリもゼロです。
アクションは 10 ミリ秒未満のレイテンシで実行されます。Web ページは、ターンごとの差分比較によりトークン使用量を最大 95%削減する、エージェントが読み取れるセマンティックマップに変換されます。組み込みのセキュリティ機能により、ローカルドメインポリシー、ロールベースのアクセス制御、クライアント側での認証情報の注入が適用されます。
fy2ne が構築し、設計しました。
Playwright や Puppeteer ではなく、Weavetab を選ぶ理由
標準的な方法である MCP 経由の Playwright は機能します。しかし、規模が大きくなるにつれて積み重なる、アーキテクチャ上の根本的なコストを伴います。
| Playwright / Puppeteer | Weavetab | |
|---|---|---|
| プロトコル層 | ブラウザーバイナリ経由の WebDriver BiDi または CDP | 生の CDP WebSocket、レイヤー 0 |
| ツール実行のレイテンシ | 50~300 ms(バイナリと IPC のオーバーヘッド) | 3~8 ms |
| デスクトップアプリの操作 | ブラウザーのみ | Chrome とあらゆる Electron アプリ(Discord、VS Code、Figma…) |
| DOM の表現 | LLM に HTML 全体をダンプ | 差分比較機能を備えた Semantic Map 3.0 |
| マップごとのトークンコスト | 約 2,000~8,000 トークン | 約 80~400 トークン(差分によって 95%削減) |
| CAPTCHA | API サービスが必要 | CDP マウスの物理特性を利用し、API 不要 |
| 認証情報の安全性 | シークレットを平文で渡す | ブラインドインジェクション — LLM のコンテキストに入らない |
| 拡張機能へのアクセス | 制限あり | Chrome Extension API の全機能を利用可能 |
アーキテクチャ
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)
クラウドも外部プロセスもありません。CDP WebSocket 接続と、任意で使用できる MCP WebSocket デーモン(--ws)はどちらも、共有シークレット認証(~/.weavetab-system/ws-secret)および Origin/Host ヘッダーの検証により、127.0.0.1 に厳密にバインドされます。
クイックスタート
npx -y @weavetab/mcp
MCP クライアントの設定に追加します。
{
"mcpServers": {
"weavetab": {
"command": "npx",
"args": ["-y", "@weavetab/mcp"]
}
}
}
| クライアント | 設定パス |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Code | claude 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 |
コア技術
Semantic Map 3.0
ブラウザベースのエージェントにおける主なボトルネックは、DOM の表現です。HTML 全体のダンプはノイズが多く、サイズが大きいうえ、言語モデルにとって構造的な意味がありません。Weavetab の browser_map は、ブラウザ内で動作する CDP ウォーカーを実行し、コンパクトなセマンティックマップを生成します。
╔═ 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"
主な特長:
- Ref ID(
w:N)はセッション内で安定しており、すべての操作ツールで使用されます - コンテナへの紐付け — ボタンと入力欄は、親カード、行、セクション見出しの下にグループ化されます
- モーダルの上部配置 — 開いているダイアログは最上部に分離して表示されるため、エージェントが見落とすことはありません
- リンクの折りたたみ — 4 つ以上のリンクが繰り返されるナビゲーション/フッターのまとまりは、1 行のトークンに圧縮されます
- セマンティック差分 — 再読み込み時には変更されたノードのみが送信されます(変更は
~、追加は+、削除は−)。これにより、再読み込みのコストを最大 95% 削減できます
ゴーストカーソル
クリックは合成 DOM イベントとしてディスパッチされません。ランダム化された加速度、自然な揺らぎ、押下時間を用いたベジェ曲線の軌跡に沿って、Input.dispatchMouseEvent CDP 呼び出しを物理的なシーケンスとして送信します。イベントベースの自動化を検出するアンチボットのフィンガープリント判定は作動しません。
browser_pointer は hover_chain に対応しており、1 回のツール呼び出しで多階層メニューをたどれます。
{
"hover_chain": ["File", "Export As", "PNG"],
"click_final": true
}
認証情報のブラインド注入
browser_type_secret は、~/.weavetab/secrets.json からサーバー側でシークレットを解決します。解決された値は MCP のレスポンスに含まれず、DOM スナップショットにも表示されません。また、すべての監査ログで恒久的に [REDACTED] としてマスクされます。LLM のコンテキストに認証情報が表示されることはありません。
weavetab secrets set GITHUB_TOKEN
# Stored. Never echoed, never logged, never surfaced to the agent.
Electron とデスクトップアプリの自動化
任意のツールで省略可能な app パラメーターを受け付けます。このパラメーターを指定すると、コマンドはブラウザータブではなく、登録済みの Electron プロセスに送られます。
{ "app": "discord", "ref": "w:24", "text": "Hey, deploying now" }
~/.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 は CDP 経由で登録済みプロセスに自動接続します。対象アプリケーションのコードを変更する必要はありません。
API 不要の CAPTCHA 解決
browser_captcha は、Cloudflare Turnstile、reCAPTCHA v2/v3、GeeTest、hCaptcha を解決します。CDP のマウスイベントを調整して、速度曲線、微細な間、スクロールの慣性といった人間の行動特性を再現します。サードパーティ API、外部サービス、API キーは不要です。
ツールスイート
9 カテゴリーにわたる 41 個のツール。パラメーターの完全なリファレンスはこちらです:docs/tools/tools.md
| カテゴリー | ツール |
|---|---|
| ビジョンと DOM | browser_map browser_find browser_scrape browser_inspect browser_snapshot browser_screenshot browser_console browser_extract_design |
| 入力と操作 | browser_click browser_type browser_type_secret browser_key browser_pointer browser_select browser_fill browser_upload browser_scroll |
| ナビゲーションと環境 | browser_navigate browser_tabs browser_detect browser_viewport browser_emulate |
| ミッションと自動化 | browser_burst browser_automation browser_recording browser_pattern_learn |
| 安全性と人間による監視 | browser_dialog browser_thoughts browser_clipboard browser_wait |
| 自律型 CAPTCHA | browser_captcha |
| ネットワークとストレージ | browser_network_intercept browser_storage browser_cookies browser_checkpoint browser_performance |
| Office ドキュメント | browser_office |
| キャンバスと評価 | browser_eval browser_pdf browser_canvas browser_highlight |
セキュリティ
- トランスポート:CDP WebSocket と MCP WebSocket デーモン(
--ws)は、256 ビットの共有シークレットによる Bearer/ハンドシェイク認証とOrigin/Hostの検証を行い、127.0.0.1に厳密にバインドされます。外部インターフェースではリスナーを起動しません。 - ポリシーエンジン:
~/.weavetab/config.jsonのトップレベルにあるpolicies配列で、ドメインごとにallow/read-only/deny/auditルールを設定できます(初期状態で*.bank.*とpaypal.comをブロックします)。 - RBAC:5 つのロール(
operator(デフォルト)、viewer(最小権限の読み取り専用)、automation、system、admin)によって、ツールレベルの権限ゲートを適用します。 - プラグインの信頼性とマニフェスト:3 段階の検証(公式の
@weavetab/*、検証済みレジストリの許可リスト、未検証のパッケージに対する必須の対話型確認とweavetab.json権限マニフェストの検査)を実施します。 - ブラインドインジェクション:認証情報はサーバー側で解決され、すべての出力と監査ログでマスクされます。
- ループブレーカー:ストライクベースのスタックループ検出機能が、制御不能になった自律シーケンスを停止します。
- 監査ログ:すべてのツール呼び出し、ポリシー判断、エラーを
~/.weavetab-system/logs/mission_<timestamp>.logに記録します。
セキュリティ脆弱性の報告先:[email protected](公開のイシューは使用しないでください)。
CLI リファレンス
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
設定ファイル:~/.weavetab/config.json
{
"browserType": "chromium",
"headless": false,
"extension": true,
"maxActionsPerMinute": 60,
"role": "operator",
"electron": {
"discord": "...",
"vscode": "...",
"antigravity": "..."
}
}
拡張性
Weavetab は、カスタム MCP ツール、HUD オーバーレイ、ツールのライフサイクルフックを作成するための、型付きプラグイン SDK を提供します。
npx @weavetab/sdk init my-plugin
アーキテクチャ、マニフェスト仕様、SDK API リファレンスについては、docs/PLUGINS.md を参照してください。
ライセンス
AGPL-3.0-only。stdio または WebSocket 経由のクライアント接続によって、クライアントアプリケーションやモデルにコピーレフトの義務が及ぶことはありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。