Back to skills
extension
Category: Development & EngineeringNo API key required

tabz-mcp

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.

personAuthor: jakexiaohubgithub

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

  1. Active tab detection: tabz_list_tabs uses Chrome Extension API - the active: true field shows the user's ACTUAL focused tab (not a guess)
  2. Tab IDs: Chrome tab IDs are large numbers (e.g., 1762556601), not simple indices like 1, 2, 3
  3. Tab targeting: After tabz_switch_tab, all subsequent tools auto-target that tab
  4. Parallel tab ops: tabz_screenshot, tabz_screenshot_full, tabz_click, tabz_fill accept optional tabId param to target background tabs without switching
  5. Network capture: Must call tabz_enable_network_capture BEFORE the page makes requests
  6. Selectors: Use CSS selectors - #id, .class, button, input[type="text"]
  7. 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