MCP server for controlling Tabby terminal via Chrome DevTools Protocol
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tabby_mcp-0.1.0.tar.gz.
File metadata
- Download URL: tabby_mcp-0.1.0.tar.gz
- Upload date:
- Size: 64.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cebc905c6c4c940b29c29d8fb9d79654a9de8ccd466e1461a5a25badb10b605
|
|
| MD5 |
4ba375cc5e62aff72b419cc451af395b
|
|
| BLAKE2b-256 |
5f437dc3f41277ea818e7a9a937417cb27523c65a1c154df65dc19c80c306286
|
File details
Details for the file tabby_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: tabby_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d317aeaf94aec7afe1b2f5e007758bdf0049247dbfcf416eafeb8fedc03fb4ff
|
|
| MD5 |
924e860cbba589f3ce292238e3769747
|
|
| BLAKE2b-256 |
6e9e015037bfcf57e2139e43c7f9ca39a7c755abb6f329bf77e105054b07fa08
|