Feature Comparison
This document compares w3pilot against VibiumDev clients (Java/JS/Python), the VibiumDev MCP server, Playwright MCP, and ChromeDevTools MCP.
Overview
Part 1: MCP Server Comparison
Compare the three MCP servers for LLM agent integration.
Architecture
┌───────────────────────────────────────────────────────────────────┐
│ w3pilot MCP │
├───────────────────────────────────────────────────────────────────┤
│ w3pilot-mcp ──► w3pilot SDK ──► BiDi Client ──► Chrome │
│ │ │
│ └── Uses official Go MCP SDK │
│ └── 100+ tools, comprehensive automation │
└───────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────┐
│ VibiumDev MCP │
├───────────────────────────────────────────────────────────────────┤
│ vibium mcp ──► clicker ──► BiDi Client ──► Chrome │
│ │ │
│ └── Hand-rolled JSON-RPC │
│ └── ~25 tools, core automation │
└───────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────┐
│ Playwright MCP │
├───────────────────────────────────────────────────────────────────┤
│ @playwright/mcp ──► Playwright ──► CDP/BiDi ──► Chromium │
│ │ │
│ └── Official TS MCP SDK │
│ └── ~45 tools (with opt-in caps) │
│ └── Snapshot-based (accessibility tree) │
└───────────────────────────────────────────────────────────────────┘
Implementation Details
| Aspect |
w3pilot |
VibiumDev |
Playwright MCP |
| Language |
Go |
Go |
TypeScript |
| MCP SDK |
Official Go SDK |
Hand-rolled |
Official TS SDK |
| Protocol |
WebDriver BiDi |
WebDriver BiDi |
CDP + BiDi |
| Tool prefix |
None |
browser_ |
browser_ |
| Tool count |
100+ |
~25 |
~45 (with caps) |
| Browser |
Chrome |
Chrome |
Chromium/Firefox/WebKit |
Legend: :white_check_mark: = Supported, :x: = Not supported, (opt) = Requires opt-in flag
Browser Management
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Launch browser |
browser_launch |
browser_start |
(auto-launch) |
| Quit browser |
browser_quit |
browser_stop |
browser_close |
| Resize viewport |
set_viewport |
:x: |
browser_resize |
| Get viewport |
get_viewport |
:x: |
:x: |
Navigation
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Navigate |
navigate |
browser_navigate |
browser_navigate |
| Back |
back |
:x: |
browser_navigate_back |
| Forward |
forward |
:x: |
:x: |
| Reload |
reload |
:x: |
:x: |
| Scroll |
scroll |
browser_scroll |
:x: |
Element Interaction
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Click |
click |
browser_click |
browser_click |
| Double-click |
dblclick |
:x: |
browser_click (doubleClick) |
| Type |
type |
browser_type |
browser_type |
| Fill |
fill |
:x: |
browser_type |
| Clear |
clear |
:x: |
:x: |
| Press key |
press |
browser_keys |
browser_press_key |
| Check/Uncheck |
check, uncheck |
:x: |
:x: |
| Select option |
select_option |
browser_select |
browser_select_option |
| Hover |
hover |
browser_hover |
browser_hover |
| Focus |
focus |
:x: |
:x: |
| Drag |
drag_to |
:x: |
browser_drag |
| Tap (touch) |
tap |
:x: |
:x: |
| Set files |
set_files |
:x: |
browser_file_upload |
| Fill form |
fill_form |
:x: |
browser_fill_form |
| Dispatch event |
dispatch_event |
:x: |
:x: |
Element State
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Get text |
get_text |
browser_get_text |
browser_snapshot |
| Get value |
get_value |
:x: |
:x: |
| Get innerHTML |
get_inner_html |
browser_get_html |
:x: |
| Get outerHTML |
get_outer_html |
:x: |
:x: |
| Get innerText |
get_inner_text |
:x: |
:x: |
| Get attribute |
get_attribute |
:x: |
:x: |
| Get bounding box |
get_bounding_box |
:x: |
:x: |
| Is visible |
is_visible |
:x: |
:x: |
| Is hidden |
is_hidden |
:x: |
:x: |
| Is enabled |
is_enabled |
:x: |
:x: |
| Is checked |
is_checked |
:x: |
:x: |
| Is editable |
is_editable |
:x: |
:x: |
| Get role |
get_role |
:x: |
:x: |
| Get label |
get_label |
:x: |
:x: |
Page State
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Get title |
get_title |
browser_get_title |
:x: |
| Get URL |
get_url |
browser_get_url |
:x: |
| Get content |
get_content |
:x: |
:x: |
| Set content |
set_content |
:x: |
:x: |
| Accessibility snapshot |
accessibility_snapshot |
:x: |
browser_snapshot |
Screenshots & PDF
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Screenshot |
screenshot |
browser_screenshot |
browser_take_screenshot |
| Full page screenshot |
screenshot (fullPage) |
:x: |
browser_take_screenshot (fullPage) |
| Element screenshot |
element_screenshot |
:x: |
browser_take_screenshot (ref) |
| PDF |
pdf |
:x: |
:x: |
JavaScript
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Evaluate |
evaluate |
browser_evaluate |
browser_evaluate |
| Element eval |
element_eval |
:x: |
browser_evaluate (ref) |
| Add script |
add_script |
:x: |
:x: |
| Add style |
add_style |
:x: |
:x: |
| Run Playwright code |
:x: |
:x: |
browser_run_code |
Waiting
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Wait for element state |
wait_until |
browser_wait |
browser_wait_for |
| Wait for selector |
wait_for_selector |
:x: |
:x: |
| Wait for URL |
wait_for_url |
:x: |
:x: |
| Wait for load |
wait_for_load |
:x: |
:x: |
| Wait for function |
wait_for_function |
:x: |
:x: |
| Wait for text |
wait_for_text |
:x: |
browser_wait_for (text) |
| Wait for time |
:x: |
:x: |
browser_wait_for (time) |
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Keyboard press |
keyboard_press |
browser_keys |
browser_press_key |
| Keyboard down/up |
keyboard_down, keyboard_up |
:x: |
:x: |
| Keyboard type |
keyboard_type |
:x: |
:x: |
| Mouse click |
mouse_click |
:x: |
:x: |
| Mouse move |
mouse_move |
:x: |
:x: |
| Mouse down/up |
mouse_down, mouse_up |
:x: |
:x: |
| Mouse wheel |
mouse_wheel |
:x: |
:x: |
| Mouse drag |
mouse_drag |
:x: |
browser_drag |
| Touch tap |
touch_tap |
:x: |
:x: |
| Touch swipe |
touch_swipe |
:x: |
:x: |
Tab/Page Management
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| New page |
new_page |
browser_new_page |
browser_tabs (new) |
| List pages |
get_pages, list_tabs |
browser_list_pages |
browser_tabs (list) |
| Switch page |
select_tab |
browser_switch_page |
browser_tabs (select) |
| Close page |
close_page, close_tab |
browser_close_page |
browser_tabs (close) |
| Bring to front |
bring_to_front |
:x: |
:x: |
Frame Management
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Get frames |
get_frames |
:x: |
:x: |
| Select frame |
select_frame |
:x: |
:x: |
| Select main frame |
select_main_frame |
:x: |
:x: |
Cookie Management
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Get cookies |
get_cookies |
:x: |
browser_cookie_list (opt) |
| Get cookie |
:x: |
:x: |
browser_cookie_get (opt) |
| Set cookies |
set_cookies |
:x: |
browser_cookie_set (opt) |
| Clear cookies |
clear_cookies |
:x: |
browser_cookie_clear (opt) |
| Delete cookie |
delete_cookie |
:x: |
browser_cookie_delete (opt) |
LocalStorage
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Get item |
localstorage_get |
:x: |
browser_localstorage_get (opt) |
| Set item |
localstorage_set |
:x: |
browser_localstorage_set (opt) |
| List items |
localstorage_list |
:x: |
browser_localstorage_list (opt) |
| Delete item |
localstorage_delete |
:x: |
browser_localstorage_delete (opt) |
| Clear |
localstorage_clear |
:x: |
browser_localstorage_clear (opt) |
SessionStorage
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Get item |
sessionstorage_get |
:x: |
browser_sessionstorage_get (opt) |
| Set item |
sessionstorage_set |
:x: |
browser_sessionstorage_set (opt) |
| List items |
sessionstorage_list |
:x: |
browser_sessionstorage_list (opt) |
| Delete item |
sessionstorage_delete |
:x: |
browser_sessionstorage_delete (opt) |
| Clear |
sessionstorage_clear |
:x: |
browser_sessionstorage_clear (opt) |
Storage State
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Get storage state |
get_storage_state |
:x: |
browser_storage_state (opt) |
| Set storage state |
set_storage_state |
:x: |
browser_set_storage_state (opt) |
| Clear storage |
clear_storage |
:x: |
:x: |
Network
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Route (mock) |
route |
:x: |
browser_route (opt) |
| Route list |
route_list |
:x: |
browser_route_list (opt) |
| Unroute |
unroute |
:x: |
browser_unroute (opt) |
| Network offline |
network_state_set |
:x: |
browser_network_state_set (opt) |
| Get requests |
get_network_requests |
:x: |
browser_network_requests |
| Clear requests |
clear_network_requests |
:x: |
:x: |
Console
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Get console messages |
get_console_messages |
:x: |
browser_console_messages |
| Clear console |
clear_console_messages |
:x: |
:x: |
Dialogs
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Handle dialog |
handle_dialog |
:x: |
browser_handle_dialog |
| Get dialog info |
get_dialog |
:x: |
:x: |
Emulation
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Emulate media |
emulate_media |
:x: |
:x: |
| Set geolocation |
set_geolocation |
:x: |
:x: |
| Network throttling |
emulate_network (CDP) |
:x: |
:x: |
| CPU throttling |
emulate_cpu (CDP) |
:x: |
:x: |
Profiling (CDP)
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Heap snapshot |
take_heap_snapshot (CDP) |
:x: |
:x: |
| Direct CDP access |
cdp_send |
:x: |
:x: |
Recording & Tracing
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Start recording |
start_recording |
:x: |
:x: |
| Stop recording |
stop_recording |
:x: |
:x: |
| Export script |
export_script |
:x: |
:x: |
| Start trace |
start_trace |
:x: |
browser_start_tracing (opt) |
| Stop trace |
stop_trace |
:x: |
browser_stop_tracing (opt) |
| Trace chunks |
start_trace_chunk, stop_trace_chunk |
:x: |
:x: |
| Trace groups |
start_trace_group, stop_trace_group |
:x: |
:x: |
| Start video |
start_video |
:x: |
browser_start_video (opt) |
| Stop video |
stop_video |
:x: |
browser_stop_video (opt) |
Testing & Assertions
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Assert text |
assert_text |
:x: |
:x: |
| Assert element |
assert_element |
:x: |
:x: |
| Verify value |
verify_value |
:x: |
:x: |
| Verify text |
verify_text |
:x: |
:x: |
| Verify visible |
verify_visible |
:x: |
:x: |
| Verify hidden |
verify_hidden |
:x: |
:x: |
| Verify enabled |
verify_enabled |
:x: |
:x: |
| Verify disabled |
verify_disabled |
:x: |
:x: |
| Verify checked |
verify_checked |
:x: |
:x: |
| Verify list visible |
verify_list_visible |
:x: |
:x: |
| Generate locator |
generate_locator |
:x: |
:x: |
| Get test report |
get_test_report |
:x: |
:x: |
| Reset session |
reset_session |
:x: |
:x: |
| Set target |
set_target |
:x: |
:x: |
Human-in-the-Loop
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Pause for human |
pause_for_human |
:x: |
:x: |
Configuration
| Tool |
w3pilot |
VibiumDev |
Playwright MCP |
| Get config |
get_config |
:x: |
browser_get_config (opt) |
| Add init script |
add_init_script |
:x: |
:x: |
| MCP Server |
Core Tools |
Opt-in Tools |
Total |
| w3pilot |
100+ |
- |
100+ |
| Playwright MCP |
~20 |
~25 |
~45 |
| VibiumDev |
~25 |
- |
~25 |
Unique Features by Server
w3pilot Only
| Feature |
Description |
| Script Runner |
YAML/JSON test execution via w3pilot run |
| Session Recording |
Capture actions as replayable scripts |
| Human-in-the-Loop |
pause_for_human for SSO, CAPTCHA, 2FA |
| Test Reports |
Structured reports (box, diagnostic, JSON) |
| Verification Tools |
verify_* tools with detailed output |
| Frame Selection |
select_frame/select_main_frame |
| Trace Chunks/Groups |
Fine-grained trace control |
| CDP Integration |
Direct Chrome DevTools Protocol access |
| - Heap Snapshots |
V8 memory profiling |
| - Network Emulation |
Slow 3G, Fast 3G, 4G presets |
| - CPU Throttling |
Simulate slower CPUs |
Playwright MCP Only
| Feature |
Description |
browser_run_code |
Execute arbitrary Playwright code |
browser_snapshot |
Accessibility tree snapshots |
| Multi-browser |
Chromium, Firefox, WebKit |
| Opt-in capabilities |
--caps=network,storage,devtools |
VibiumDev Only
| Feature |
Description |
| Daemon mode |
HTTP API for multi-client scenarios |
| Multi-language clients |
Official JS, Python, Java SDKs |
ChromeDevTools MCP is an official Chrome DevTools MCP server with 29 tools. W3Pilot provides equivalent functionality plus additional features.
| ChromeDevTools MCP (29 tools) |
W3Pilot Equivalent |
Notes |
| Input Automation |
|
|
click |
element_click |
✅ |
drag |
element_drag_to |
✅ |
fill |
element_fill |
✅ |
fill_form |
Multiple element_fill |
Use multiple calls |
handle_dialog |
dialog_handle |
✅ |
hover |
element_hover |
✅ |
press_key |
input_keyboard_press |
✅ |
type_text |
element_type |
✅ |
upload_file |
element_set_files |
✅ |
| Navigation |
|
|
close_page |
tab_close |
✅ |
list_pages |
tab_list |
✅ |
navigate_page |
page_navigate, page_go_back, page_go_forward, page_reload |
✅ Split into specific tools |
new_page |
page_new |
✅ |
select_page |
tab_select |
✅ |
wait_for |
wait_for_text, wait_for_selector |
✅ Multiple wait tools |
| Emulation |
|
|
emulate |
page_emulate_media, cdp_emulate_network, cdp_emulate_cpu |
✅ Split into specific tools |
resize_page |
page_set_viewport |
✅ |
| Performance |
|
|
performance_start_trace |
trace_start |
✅ |
performance_stop_trace |
trace_stop |
✅ |
performance_analyze_insight |
cdp_get_performance_metrics |
Core Web Vitals (LCP, CLS, INP) |
take_memory_snapshot |
cdp_take_heap_snapshot |
✅ |
| Network |
|
|
list_network_requests |
network_get_requests |
✅ |
get_network_request |
cdp_get_response_body |
✅ |
| Debugging |
|
|
evaluate_script |
js_evaluate |
✅ |
list_console_messages |
console_get_messages |
✅ |
get_console_message |
console_get_messages |
✅ Filter by ID |
lighthouse_audit |
cdp_run_lighthouse |
✅ |
take_screenshot |
page_screenshot |
✅ |
take_snapshot |
accessibility_snapshot |
✅ |
| Category |
W3Pilot Tools |
| Session Recording |
record_start, record_stop, record_export, record_status, record_clear |
| Video Capture |
video_start, video_stop |
| Storage Management |
storage_get_cookies, storage_set_cookies, storage_local_get, storage_local_set, storage_session_get, storage_session_set, storage_get_state, storage_set_state, storage_clear_all |
| Network Interception |
network_route, network_unroute, network_route_list, network_set_offline |
| Code Coverage |
cdp_start_coverage, cdp_stop_coverage |
| Test Assertions |
test_assert_text, test_assert_element, test_verify_value, test_verify_visible, test_verify_enabled, test_verify_checked, test_generate_locator, test_get_report |
| Semantic Selectors |
Find by role, label, placeholder, testid, alt, title, xpath, near |
| Frame Navigation |
frame_select, frame_select_main, frame_list |
| Human-in-the-Loop |
human_pause |
| Init Scripts |
js_init_script, js_add_script, js_add_style |
| Trace Control |
trace_chunk_start, trace_chunk_stop, trace_group_start, trace_group_stop |
| Clock Control |
Time manipulation for testing |
| Geolocation |
Location spoofing |
| MCP Server |
Tools |
| W3Pilot |
169 |
| ChromeDevTools MCP |
29 |
| Playwright MCP |
~45 |
| VibiumDev MCP |
~25 |
When to Use Which
| Use Case |
Recommendation |
| Comprehensive automation |
W3Pilot (169 tools) |
| Simple debugging tasks |
ChromeDevTools MCP |
| Performance tracing only |
ChromeDevTools MCP |
| Test automation with assertions |
W3Pilot |
| Session recording & export |
W3Pilot |
| Storage/cookie management |
W3Pilot |
Part 2: Client Library Comparison
Compare w3pilot SDK with VibiumDev client libraries.
Language & Integration
| Aspect |
w3pilot |
vibium-js |
vibium-py |
vibium-java |
| Language |
Go |
JavaScript/TS |
Python |
Java |
| Async model |
Context-based |
Promises |
async/await |
CompletableFuture |
| Error handling |
Error returns |
try/catch |
try/except |
Exceptions |
| Package manager |
go modules |
npm |
pip |
Maven/Gradle |
| Type safety |
Strong |
TypeScript |
Type hints |
Strong |
Core Features
| Feature |
w3pilot |
vibium-js |
vibium-py |
vibium-java |
| Launch browser |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Headless mode |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Connect remote |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Multiple contexts |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
Element Finding
| Feature |
w3pilot |
vibium-js |
vibium-py |
vibium-java |
| CSS selector |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Semantic selectors |
|
|
|
|
| - By role |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| - By text |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| - By label |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| - By placeholder |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| - By alt text |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| - By title |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| - By testid |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| - By xpath |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| - By proximity |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| FindAll |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Scoped find |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
Interactions
| Feature |
w3pilot |
vibium-js |
vibium-py |
vibium-java |
| Click/Type/Fill |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Check/Uncheck |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Select option |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Drag and drop |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| File upload |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| dispatchEvent |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Highlight element |
:white_check_mark: |
:x: |
:x: |
:white_check_mark: |
| Feature |
w3pilot |
vibium-js |
vibium-py |
vibium-java |
| Keyboard |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Mouse |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Touch |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
Event Listeners
| Feature |
w3pilot |
vibium-js |
vibium-py |
vibium-java |
| onConsole |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| onError |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| onRequest/onResponse |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| onDialog |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| onDownload |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| onPage/onPopup |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| onWebSocket |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
Recording/Tracing
| Feature |
w3pilot |
vibium-js |
vibium-py |
vibium-java |
| Trace recording |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Trace chunks |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Trace groups |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Video recording |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
Storage
| Feature |
w3pilot |
vibium-js |
vibium-py |
vibium-java |
| Cookies |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| LocalStorage |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| SessionStorage |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Full storage state |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Init scripts |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Delete single cookie |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
Network
| Feature |
w3pilot |
vibium-js |
vibium-py |
vibium-java |
| Route/mock |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Offline mode |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| Extra headers |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
Clock Control
| Feature |
w3pilot |
vibium-js |
vibium-py |
vibium-java |
| Install/fastForward |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| pauseAt/resume |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| setFixedTime |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| setTimezone |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
Accessibility
| Feature |
w3pilot |
vibium-js |
vibium-py |
vibium-java |
| a11yTree |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| interestingOnly option |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
| root element option |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
:white_check_mark: |
When to Use Which
MCP Server Selection
| Use Case |
Recommendation |
| Comprehensive LLM automation |
w3pilot MCP (100+ tools) |
| Simple browser control |
VibiumDev MCP or Playwright MCP |
| Accessibility-focused |
Playwright MCP (browser_snapshot) |
| Human-in-the-loop flows |
w3pilot MCP (pause_for_human) |
| Test automation with reports |
w3pilot MCP (verification + reports) |
| Multi-browser support |
Playwright MCP |
Client Library Selection
| Use Case |
Recommendation |
| Go application |
w3pilot SDK |
| JavaScript/TypeScript app |
vibium-js |
| Python application |
vibium-py |
| Java/JVM application |
vibium-java |
| Script-based automation |
w3pilot (w3pilot run) |
Relationship Between Projects
┌────────────────────────────────────────────────────────────────────┐
│ VibiumDev/vibium │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │vibium-js│ │vibium-py│ │vibium- │ │
│ │ Client │ │ Client │ │java Cli │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ │
│ └────────────┼───────────┘ │
│ │ HTTP API │
│ ▼ │
│ ┌──────────┐ │
│ │ clicker │ │
│ │ (binary) │ │
│ └────┬─────┘ │
│ │ BiDi │
│ ▼ │
│ Chrome │
└────────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────────┐
│ plexusone/w3pilot │
│ (dual-protocol architecture) │
│ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ w3pilot SDK │ │
│ │ BiDi client (automation) + CDP client (profiling) │ │
│ └────────────────────────┬───────────────────────────────────┘ │
│ │ │
│ ┌──────────────────┼──────────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ w3pilot-mcp w3pilot run Direct SDK │
│ │ │ │ │
│ └──────────────────┼──────────────────┘ │
│ ┌───────┴───────┐ │
│ │ │ │
│ ▼ ▼ │
│ BiDi (clicker) CDP (direct) │
│ │ │ │
│ └───────┬───────┘ │
│ ▼ │
│ Chrome │
│ (single browser instance) │
└────────────────────────────────────────────────────────────────────┘
Key point: w3pilot uses clicker (from VibiumDev) for BiDi automation commands via pipe mode, and direct CDP for profiling features. This dual-protocol architecture provides comprehensive automation with advanced performance profiling capabilities.
Legend
| Symbol |
Meaning |
| :white_check_mark: |
Supported |
| :x: |
Not supported |
| (opt) |
Requires opt-in flag |