Tabby MCP

Give Claude Eyes Into Your Terminal

Free|Open Source|MIT Licensed|Python 3.10+
View on GitHubPyPI Package

See, Don't Describe

Describing a painting over the phone - endless back-and-forth explaining visual details

Claude sees your terminal directly - no more descriptive gymnastics

No way to verify UI changes without manual inspection

Screenshot tool captures exactly what Claude needs to see

Angular apps require waiting for rendering to complete

Built-in Zone.js awareness - auto-waits for Angular to stabilize

Visual Feedback Loop

claude

MCP Tools

list_targets

View all available CDP targets (tabs) with index, title, URL, and WebSocket URL for direct connection.

execute_js

Run JavaScript in Tabby's Electron context. Supports async/await with automatic IIFE wrapping.

query

Search DOM elements with CSS selectors. Automatically waits for Angular Zone.js to stabilize.

screenshot

Capture full window or specific elements. DPI-aware scaling, PNG/JPEG support, quality control.

How It Works

Claude Code
MCP Protocol
tabby-mcp
CDP
Tabby

Tech Stack

Python 3.10+
MCP Protocol
Chrome DevTools Protocol
pychrome

Installation

1. Install Package

pip install tabby-mcp

Or with uv: uv pip install tabby-mcp

2. Launch Tabby with CDP

tabby.exe --remote-debugging-port=9222

Enable Chrome DevTools Protocol

3. Configure Claude Code

Add to ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "tabby": {
      "command": "uv",
      "args": ["--directory", "/path/to/tabby-mcp", "run", "tabby-mcp"]
    }
  }
}

Ready to give Claude visual access?

Get Started on GitHubView on PyPI