Tabz MCP - Browser Automation
Overview
Control Chrome browser programmatically via the Tabz MCP server. This skill dynamically discovers available tools (never goes stale) and provides workflow patterns for common browser automation tasks.
Tool Discovery
Always discover available tools dynamically - never assume which tools exist:
# List all available Tabz tools
mcp-cli tools tabz
# Get schema for a specific tool (REQUIRED before calling)
mcp-cli info tabz/<tool_name>
# Search for tools by keyword
mcp-cli grep "screenshot"
Calling Tools
Mandatory workflow - always check schema before calling:
# Step 1: Check schema (REQUIRED)
mcp-cli info tabz/tabz_screenshot
# Step 2: Call with correct parameters
mcp-cli call tabz/tabz_screenshot '{"selector": "#main"}'
Tool Categories
Discover tools by running mcp-cli tools tabz. Common categories include:
| Category |
Tools Pattern |
Purpose |
| Tab Management |
tabz_list_tabs, tabz_switch_tab, tabz_rename_tab |
Navigate between tabs |
| Tab Groups |
tabz_list_groups, tabz_create_group, tabz_update_group, tabz_add_to_group, tabz_ungroup_tabs |
Organize tabs into groups |
| Claude Group |
tabz_claude_group_add, tabz_claude_group_remove, tabz_claude_group_status |
Highlight tabs Claude is working with |
| Windows |
tabz_list_windows, tabz_create_window, tabz_update_window, tabz_close_window |
Manage browser windows |
| Displays |
tabz_get_displays, tabz_tile_windows, tabz_popout_terminal |
Multi-monitor layouts, terminal popouts |
| Audio |
tabz_speak, tabz_list_voices, tabz_play_audio |
TTS and audio file playback |
| Page Info |
tabz_get_page_info, tabz_get_element |
Inspect page content |
| Interaction |
tabz_click, tabz_fill |
Interact with elements |
| Screenshots |
tabz_screenshot* |
Capture page visuals |
| Downloads |
tabz_download* |
Download files/images |
| Network |
tabz_enable_network_capture, tabz_get_network_requests, tabz_clear_network_requests |
Monitor API calls |
| Scripting |
tabz_execute_script, tabz_get_console_logs |
Run JS, debug |
| History |
tabz_history_search, tabz_history_visits, tabz_history_recent, tabz_history_delete_* |
Search and manage browsing history |
| Sessions |
tabz_sessions_recently_closed, tabz_sessions_restore, tabz_sessions_devices |
Recover closed tabs, synced devices |
| Cookies |
tabz_cookies_get, tabz_cookies_list, tabz_cookies_set, tabz_cookies_delete, tabz_cookies_audit |
Debug auth, audit trackers |
| Emulation |
tabz_emulate_device, tabz_emulate_geolocation, tabz_emulate_network, tabz_emulate_media, tabz_emulate_vision |
Responsive testing, accessibility |
| Notifications |
tabz_notification_show, tabz_notification_update, tabz_notification_clear, tabz_notification_list |
Desktop alerts |
Quick Patterns
Take a screenshot:
mcp-cli call tabz/tabz_screenshot '{}'
Click a button:
mcp-cli call tabz/tabz_click '{"selector": "button.submit"}'
Fill a form field:
mcp-cli call tabz/tabz_fill '{"selector": "#email", "value": "test@example.com"}'
Switch to a specific tab:
# First list tabs to find the ID (returns Chrome tab IDs like 1762556601)
mcp-cli call tabz/tabz_list_tabs '{}'
# Then switch using the actual tabId from the list
mcp-cli call tabz/tabz_switch_tab '{"tabId": 1762556601}'
Download AI-generated image (ChatGPT/Copilot):
# Use specific selector to avoid matching avatars
mcp-cli call tabz/tabz_download_image '{"selector": "img[src*=\"oaiusercontent.com\"]"}'
Download full-res from expanded modal:
# When user clicks image to expand, find modal image URL then download
mcp-cli call tabz/tabz_execute_script '{"code": "document.querySelector(\"[role=dialog] img\").src"}'
mcp-cli call tabz/tabz_download_file '{"url": "<url-from-above>"}'
Important Notes
- Active tab detection:
tabz_list_tabs uses Chrome Extension API - the active: true field shows the user's ACTUAL focused tab (not a guess)
- Tab IDs: Chrome tab IDs are large numbers (e.g.,
1762556601), not simple indices like 1, 2, 3
- Tab targeting: After
tabz_switch_tab, all subsequent tools auto-target that tab
- Parallel tab ops:
tabz_screenshot, tabz_screenshot_full, tabz_click, tabz_fill accept optional tabId param to target background tabs without switching
- Network capture: Must call
tabz_enable_network_capture BEFORE the page makes requests
- Selectors: Use CSS selectors -
#id, .class, button, input[type="text"]
- Screenshots: Return file paths - use Read tool to display images to user
Resources
For detailed workflow examples and common automation patterns, see:
references/workflows.md - Step-by-step workflows for complex tasks
1---2name: tabz-mcp3description: Control Chrome browser: take screenshots, click buttons, fill forms, download images, inspect pages, capture network requests. Use when user says: 'screenshot this', 'click the button', 'fill the form', 'download that image', 'what page am I on', 'check the browser', 'look at my screen', 'interact with the website', 'capture the page', 'get the HTML', 'inspect element'. Provides MCP tool discovery for tabz_* browser automation tools.4---5
6# Tabz MCP - Browser Automation
7
8## Overview
9
10Control Chrome browser programmatically via the Tabz MCP server. This skill dynamically discovers available tools (never goes stale) and provides workflow patterns for common browser automation tasks.
11
12## Tool Discovery
13
14**Always discover available tools dynamically** - never assume which tools exist:
15
16```bash
17# List all available Tabz tools
18mcp-cli tools tabz
19
20# Get schema for a specific tool (REQUIRED before calling)
21mcp-cli info tabz/<tool_name>
22
23# Search for tools by keyword
24mcp-cli grep "screenshot"
25```
26
27## Calling Tools
28
29**Mandatory workflow** - always check schema before calling:
30
31```bash
32# Step 1: Check schema (REQUIRED)
33mcp-cli info tabz/tabz_screenshot
34
35# Step 2: Call with correct parameters
36mcp-cli call tabz/tabz_screenshot '{"selector": "#main"}'
37```
38
39## Tool Categories
40
41Discover tools by running `mcp-cli tools tabz`. Common categories include:
42
43| Category | Tools Pattern | Purpose |
44|----------|---------------|---------|
45| Tab Management | `tabz_list_tabs`, `tabz_switch_tab`, `tabz_rename_tab` | Navigate between tabs |
46| Tab Groups | `tabz_list_groups`, `tabz_create_group`, `tabz_update_group`, `tabz_add_to_group`, `tabz_ungroup_tabs` | Organize tabs into groups |
47| Claude Group | `tabz_claude_group_add`, `tabz_claude_group_remove`, `tabz_claude_group_status` | Highlight tabs Claude is working with |
48| Windows | `tabz_list_windows`, `tabz_create_window`, `tabz_update_window`, `tabz_close_window` | Manage browser windows |
49| Displays | `tabz_get_displays`, `tabz_tile_windows`, `tabz_popout_terminal` | Multi-monitor layouts, terminal popouts |
50| Audio | `tabz_speak`, `tabz_list_voices`, `tabz_play_audio` | TTS and audio file playback |
51| Page Info | `tabz_get_page_info`, `tabz_get_element` | Inspect page content |
52| Interaction | `tabz_click`, `tabz_fill` | Interact with elements |
53| Screenshots | `tabz_screenshot*` | Capture page visuals |
54| Downloads | `tabz_download*` | Download files/images |
55| Network | `tabz_enable_network_capture`, `tabz_get_network_requests`, `tabz_clear_network_requests` | Monitor API calls |
56| Scripting | `tabz_execute_script`, `tabz_get_console_logs` | Run JS, debug |
57| History | `tabz_history_search`, `tabz_history_visits`, `tabz_history_recent`, `tabz_history_delete_*` | Search and manage browsing history |
58| Sessions | `tabz_sessions_recently_closed`, `tabz_sessions_restore`, `tabz_sessions_devices` | Recover closed tabs, synced devices |
59| Cookies | `tabz_cookies_get`, `tabz_cookies_list`, `tabz_cookies_set`, `tabz_cookies_delete`, `tabz_cookies_audit` | Debug auth, audit trackers |
60| Emulation | `tabz_emulate_device`, `tabz_emulate_geolocation`, `tabz_emulate_network`, `tabz_emulate_media`, `tabz_emulate_vision` | Responsive testing, accessibility |
61| Notifications | `tabz_notification_show`, `tabz_notification_update`, `tabz_notification_clear`, `tabz_notification_list` | Desktop alerts |
62
63## Quick Patterns
64
65**Take a screenshot:**
66```bash
67mcp-cli call tabz/tabz_screenshot '{}'
68```
69
70**Click a button:**
71```bash
72mcp-cli call tabz/tabz_click '{"selector": "button.submit"}'
73```
74
75**Fill a form field:**
76```bash
77mcp-cli call tabz/tabz_fill '{"selector": "#email", "value": "test@example.com"}'
78```
79
80**Switch to a specific tab:**
81```bash
82# First list tabs to find the ID (returns Chrome tab IDs like 1762556601)
83mcp-cli call tabz/tabz_list_tabs '{}'
84# Then switch using the actual tabId from the list
85mcp-cli call tabz/tabz_switch_tab '{"tabId": 1762556601}'
86```
87
88**Download AI-generated image (ChatGPT/Copilot):**
89```bash
90# Use specific selector to avoid matching avatars
91mcp-cli call tabz/tabz_download_image '{"selector": "img[src*=\"oaiusercontent.com\"]"}'
92```
93
94**Download full-res from expanded modal:**
95```bash
96# When user clicks image to expand, find modal image URL then download
97mcp-cli call tabz/tabz_execute_script '{"code": "document.querySelector(\"[role=dialog] img\").src"}'
98mcp-cli call tabz/tabz_download_file '{"url": "<url-from-above>"}'
99```
100
101## Important Notes
102
1031. **Active tab detection**: `tabz_list_tabs` uses Chrome Extension API - the `active: true` field shows the user's ACTUAL focused tab (not a guess)
1042. **Tab IDs**: Chrome tab IDs are large numbers (e.g., `1762556601`), not simple indices like `1, 2, 3`
1053. **Tab targeting**: After `tabz_switch_tab`, all subsequent tools auto-target that tab
1064. **Parallel tab ops**: `tabz_screenshot`, `tabz_screenshot_full`, `tabz_click`, `tabz_fill` accept optional `tabId` param to target background tabs without switching
1075. **Network capture**: Must call `tabz_enable_network_capture` BEFORE the page makes requests
1086. **Selectors**: Use CSS selectors - `#id`, `.class`, `button`, `input[type="text"]`
1097. **Screenshots**: Return file paths - use Read tool to display images to user
110
111## Resources
112
113For detailed workflow examples and common automation patterns, see:
114- `references/workflows.md` - Step-by-step workflows for complex tasks