TabWeave MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TabWeave MCP navigate to localhost:3000, sign in, and screenshot the dashboard"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TabWeave MCP
TabWeave attaches to an existing Chrome/Chromium instance over CDP and exposes 54 primary tools plus 21 compatibility aliases through newline-delimited MCP JSON-RPC on standard input/output. Tool names, schemas, parameters and results retain the baseline contract; the project and its internal bindings are renamed.
Install and use
Node.js 18 or newer.
npm ci
CDP_PORT=9222 npm start
npm testThe Chrome instance must already be running with a localhost debugging port. TabWeave does not launch a user's browser. A client configuration can invoke:
{
"mcpServers": {
"tabweave": {
"command": "node",
"args": ["/absolute/path/to/TabWeave/launch.cjs"],
"env": { "CDP_PORT": "9222" }
}
}
}Related MCP server: chrome-remote-debugging-mcp
Source organization
launch.cjs: process lifecycle and command entry point.stdio_channel.cjs: ordered line exchange, EOF handling and parse errors.session_kernel.cjs: CDP session, documents, frames, console events and dispatch.action_catalog.cjs: cached tool descriptions and schemas.argument_gate.cjs: canonical file-path checks and schema validation.actions/: session, composition, page, input, observation and compatibility tools.checks/: renamed validation and protocol tests.
The action modules share live session values through accessors; they do not copy mutable state when configuration, tabs or frames change. Page-evaluated functions remain self-contained and third-party Playwright names remain intact.
Behavior and boundaries
Navigation, forms, keyboard/mouse input, human/smart timing, screenshots, cookies, storage, frame/tab management, assertions, retry/batch/step composition and bounded nesting remain available. Screenshot buffers are returned in full.
Only the baseline supported JSON Schema checks are enforced: required fields, declared top-level types and enums. Numeric strings remain accepted for numeric fields; unimplemented schema features remain unvalidated. Canonical path checks remain check-time restrictions, not a filesystem sandbox. CDP must stay local; use an isolated profile for sensitive work.
The local regression suite uses a browser stub. Additional rewrite verification
uses isolated Chrome with synthetic local pages; it does not establish behavior
on every external site. See VALIDATION.md, ORIGIN.md and LICENSE.
Available Tools
75 toolsassertC
Unified assertion (text/visible/hidden/url/count/element)
Inputs: type (required), text, state, pattern, +4 more.
batchD
Batch execution
Inputs: actions (required).
blurD
Out of focus elements
Inputs: selector (required).
checkC
Unified check of element status (exists/visible/hidden/enabled/disabled/checked/focused/editable/in_viewport)
Inputs: text, state, timeout, selector, +1 more.
checkboxD
Check box operation
Inputs: selector (required), checked.
cleanupC
Clear cache
Inputs: no named parameters.
clear_cookiesC
Clear Cookies(alias)
Inputs: no named parameters.
clear_storageD
Clear Storage (alias)
Inputs: type.
clickC
Unified click (supports selector/text/coordinates, single/double/triple/right/long, fast/human/smart mode)
Inputs: x, y, mode, text, +9 more.
close_tabD
Close tab
Inputs: index.
console_logsD
Console log
Inputs: clear, limit.
cookiesC
Cookie operation (get/set/delete/clear)
Inputs: name, path, value, action, +4 more.
countD
element count
Inputs: selector (required).
dialogD
Dialog processing
Inputs: text, action.
dragD
Drag and drop
Inputs: to_x, to_y, from_x, from_y, +4 more.
enter_frameC
Enter iframe
Inputs: selector (required), timeout.
evalD
Execute JavaScript
Inputs: script (required), timeout.
existsD
Check for existence (alias)
Inputs: selector (required), timeout.
exit_all_framesC
Exit all iframes
Inputs: no named parameters.
exit_frameB
Exit the current iframe
Inputs: no named parameters.
fillD
Quick filling (direct replacement)
Inputs: text (required), selector (required), timeout.
fill_formC
Fill out forms in batches
Inputs: fields (required), submit.
findD
Find elements
Inputs: tag, text, limit, value, +2 more.
focusD
Focus on elements
Inputs: selector (required).
getC
Get element information (text/html/attribute/value/position/dimensions/styles/count/classes/tag/dataset)
Inputs: selector (required), type, outer, fallback, +2 more.
get_attributeD
Get attributes (alias)
Inputs: selector (required), attribute (required).
get_configD
Get configuration
Inputs: no named parameters.
get_cookiesD
Get Cookies (alias)
Inputs: no named parameters.
get_htmlD
Get HTML (alias)
Inputs: selector (required), outer.
get_pageC
Get page information (url/title/source/text/viewport)
Inputs: type.
get_storageD
Get Storage (alias)
Inputs: key, type.
get_textD
Get text (alias)
Inputs: selector (required), fallback.
get_titleC
Get title (alias)
Inputs: no named parameters.
get_urlC
Get URL (alias)
Inputs: no named parameters.
go_backC
Back
Inputs: no named parameters.
go_forwardD
Forward
Inputs: no named parameters.
health_checkD
Health Check
Inputs: no named parameters.
highlightC
Highlight elements (debugging)
Inputs: selector (required), color, duration.
hotkeyD
Key combination
Inputs: keys (required).
hoverD
Hover
Inputs: selector (required).
is_visibleD
check visible (alias)
Inputs: selector (required).
list_framesB
List all iframes
Inputs: no named parameters.
list_tabsB
List all tabs
Inputs: no named parameters.
mouseD
Mouse operation (move/down/up/click)
Inputs: action (required), x, y, steps, +1 more.
mouse_downD
Mouse press (alias)
Inputs: button.
mouse_upC
mouse release (alias)
Inputs: button.
move_mouseD
Move mouse (alias)
Inputs: x (required), y (required), steps.
new_tabC
Open a new tab
Inputs: url.
press_keyD
Button
Inputs: key (required), modifiers.
reconnectC
Reconnect browser
Inputs: no named parameters.
reloadC
Refresh the page
Inputs: timeout.
request_statsC
Request statistics
Inputs: no named parameters.
retryD
Automatic retry
Inputs: tool (required), args, delay_ms, max_retries, +1 more.
run_stepsA
Intelligent multi-step execution - execute multiple operation steps in one call, with built-in automatic waiting and error retry. Suitable for multi-step processes such as login and form filling, 10 times faster than step-by-step calls
Inputs: steps (required), auto_wait, step_timeout, retry_on_fail, +3 more.
screenshotD
Screenshot
Inputs: path, fullPage, selector.
scrollC
unified scrolling (supports top/bottom/element/text/coordinates/relative/direction/loading more)
Inputs: by, to, text, amount, +5 more.
selectD
drop-down selection
Inputs: selector (required), text, index, value.
select_optionD
Select options (aliases)
Inputs: value (required), selector (required).
set_checkedD
Set check (alias)
Inputs: selector (required), checked.
set_configD
Setup configuration
Inputs: fast_timeout, long_timeout, default_timeout.
set_cookieD
Set Cookie (alias)
Inputs: name (required), value (required), domain (required).
set_debugC
Set debug mode
Inputs: enabled (required).
set_storageD
Set Storage (alias)
Inputs: key (required), type, value.
snapshotB
Get the page ARIA snapshot as YAML
Inputs: no named parameters.
statusC
Get browser status
Inputs: no named parameters.
stop_loadingC
Stop loading
Inputs: no named parameters.
storageC
Storage operation (get/set/remove/clear)
Inputs: key, type, value, action.
switch_tabD
Switch tabs
Inputs: index (required).
toggle_checkboxD
Toggle checkbox (alias)
Inputs: selector (required).
typeC
unified input (supports selector/label/placeholder/index, fast/human/slow mode)
Inputs: text (required), mode, clear, delay, +7 more.
upload_fileD
File upload
Inputs: files (required), selector (required).
waitC
Unified waiting (supports time/element/disappear/text/URL/loading/network idle/DOM stable/JS conditions)
Inputs: ms, text, type, state, +4 more.
wait_forD
Wait for element (alias)
Inputs: selector (required), state, timeout.
wait_for_textD
Wait for text (alias)
Inputs: text (required), timeout.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 75 tools
Many tools are explicit aliases or unified duplicates (cookies vs get_cookies/set_cookie/clear_cookies; storage vs get_storage/set_storage/clear_storage; mouse vs move_mouse/mouse_down/mouse_up; select vs select_option; checkbox vs set_checked/toggle_checkbox; get vs get_text/get_html/get_attribute/get_url/get_title). These overlapping purposes make misselection highly likely.
Mostly snake_case, but the set mixes one-word noun/verb tools (click, wait, cookies), operation-style names, and alias variants with different conventions. Readable overall, but not a predictable verb_noun pattern throughout.
75 tools is an extreme mismatch for the apparent scope. Many are redundant aliases, inflating the surface far beyond what is needed for browser automation.
The surface broadly covers navigation, tabs, frames, interactions, waits, assertions, cookies/storage, dialogs, upload, JavaScript eval, screenshots, and page snapshots. Minor gaps remain around network interception, download handling, and permission controls.
Maintenance
Related MCP Connectors
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
Browserless MCP — wraps the Browserless headless-Chromium REST API (browserless.io)
Related MCP Servers
- AlicenseAqualityDmaintenanceConnects to a running Chrome instance via CDP to expose browser control as MCP tools, preserving login state, cookies, and extensions for automation.1914 npmMIT
- AlicenseAqualityBmaintenanceControls a running Chrome/Chromium browser via the Chrome DevTools Protocol, enabling navigation, JavaScript evaluation, tab management, and raw CDP commands through MCP tools.5MIT
- AlicenseNot gradedqualityBmaintenanceConnects local stdio MCP servers to an existing Chrome 144+ session, preserving the user's signed-in sessions, cookies, tabs, and extension environment without launching a second browser. It provides tab control, semantic snapshots, screenshots, pointer, keyboard, form selection, scrolling, navigation, and waiting tools.MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to drive individually named Chrome profiles, providing tools for tabs, navigation, page interaction, screenshots, JavaScript evaluation, console logs, and network inspection over stdio without a TCP port.MIT