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
Metadata
Release files for tabby-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| tabby_mcp-0.1.0.tar.gz | 64.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tabby_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 74.8 kB
Release files / tabby_mcp-0.1.0.tar.gz
| Download URL | tabby_mcp-0.1.0.tar.gz |
|---|---|
| Size | 64.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7cebc905c6c4c940b29c29d8fb9d79654a9de8ccd466e1461a5a25badb10b605
|
|
BLAKE2b-256 checksum How to use checksums |
5f437dc3f41277ea818e7a9a937417cb27523c65a1c154df65dc19c80c306286
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.13
|
Release files / tabby_mcp-0.1.0-py3-none-any.whl
| Download URL | tabby_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d317aeaf94aec7afe1b2f5e007758bdf0049247dbfcf416eafeb8fedc03fb4ff
|
|
BLAKE2b-256 checksum How to use checksums |
6e9e015037bfcf57e2139e43c7f9ca39a7c755abb6f329bf77e105054b07fa08
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.13
|
Security for tabby-mcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.