Skip to content

MCP server for controlling Tabby terminal via Chrome DevTools Protocol

License

Notifications You must be signed in to change notification settings

halilc4/tabby-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tabby-mcp

A lightweight MCP (Model Context Protocol) server that enables control of the Tabby terminal via Chrome DevTools Protocol (CDP).

Features

  • list_targets - List CDP targets (tabs) with index, title, url, ws_url
  • execute_js - Execute JavaScript code in Tabby's Electron context
  • query - Query DOM elements by CSS selector (auto-waits for Angular)
  • screenshot - Capture Tabby window screenshot

About this project

This MCP server was built to automate development and testing of TabbySpaces.

TabbySpaces was written 100% by Claude Code - Igor didn't look at the Angular code once. But for this Python project, he has MCP experience and actually reviewed the code.

Here's the fun part: Claude Code (running inside TabbySpaces) served as the tester for this project. The AI that built the plugin now uses this MCP server to test it. Full circle.

Requirements

  • Python 3.10+
  • uv package manager
  • Tabby terminal with CDP debugging enabled

Installation

From PyPI (recommended)

pip install tabby-mcp

Or with uv:

uv pip install tabby-mcp

From source

git clone https://github.com/halilc4/tabby-mcp.git
cd tabby-mcp
uv sync

Setup

1. Launch Tabby with CDP debugging

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

2. Configure Claude Code

Add to your Claude Code MCP settings (~/.claude/claude_desktop_config.json):

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

Usage

Once configured, Claude Code can interact with Tabby through MCP tools:

# Execute JavaScript
execute_js({ "code": "document.title" })

# Query DOM elements
query({ "selector": ".tab-bar button" })

Architecture

server.py  ->  tools.py  ->  cdp.py  ->  Tabby (CDP port 9222)
Module Purpose
server.py MCP server entry point with stdio transport
tools.py MCP tool definitions and handlers
cdp.py CDP connection management via pychrome

License

MIT

About

MCP server for controlling Tabby terminal via Chrome DevTools Protocol

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages