Provides terminal control, tab management, profile handling, and SFTP operations via an MCP server for Tabby Terminal.
Configuration
View docs{
"mcpServers": {
"gentlemanhu-tabby-mcp": {
"url": "http://localhost:3001/mcp"
}
}
}Tabby-MCP turns your Tabby Terminal into an extensible MCP server, letting AI assistants control and interact with your terminal. It provides 34 tools for terminal control, tab management, profiles/SSH, and SFTP, all with secure defaults and flexible session targeting so you can automate and stream commands safely from client applications.
You connect AI clients to Tabby-MCP using either a remote HTTP endpoint or a local STDIO bridge. HTTP gives you a single, streamable interface over a URL, while STDIO lets you run a local bridge that talks to Tabby-MCP from your editor or desktop client. The tools include terminal control, tab management, profile handling, and SFTP operations (with dependencies on the tabby-ssh plugin when SFTP is used). Use the HTTP endpoint when your client supports remote connections, or use STDIO when your client runs on the same machine and can spawn a bridge process.
# Method 1: Tabby Plugin Manager (easiest)
# Open Tabby β Settings β Plugins
# Search for tabby-mcp-server
# Click Install
# Restart Tabby# Method 2: Quick Install Script (no Node.js required)
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/GentlemanHu/Tabby-MCP/main/scripts/install.sh | bash
# Or
wget https://raw.githubusercontent.com/GentlemanHu/Tabby-MCP/main/scripts/install.sh
bash install.sh# Windows (PowerShell)
irm https://raw.githubusercontent.com/GentlemanHu/Tabby-MCP/main/scripts/install.ps1 | iex# Or download and run
Invoke-WebRequest -Uri https://raw.githubusercontent.com/GentlemanHu/Tabby-MCP/main/scripts/install.ps1 -OutFile install.ps1
.\install.ps1# Method 3: Build from Source (requires Node.js 18+)
# Clone
git clone https://github.com/GentlemanHu/Tabby-MCP.git
cd Tabby-MCP
# Build & Install
bash scripts/build-and-install.sh1. Restart Tabby. 2. Go to Settings β MCP. 3. Start the MCP server.
Key settings include the MCP server port, auto-start behavior, pair programming confirmations, session tracking, and SFTP enablement. You can adjust these to tailor how you want the server to operate and how much you want to log or confirm actions.
You can connect clients via two modes: - SSE/HTTP: Use a server URL such as the streamable HTTP endpoint or legacy SSE endpoint for remote clients. - STDIO: Run a local bridge that connects to the SSE server, used by clients like Claude Desktop or IDE integrations that support a local stdio bridge.
macOS is tested and fully functional. Windows and Linux are untested in official tests, but the setup should work. Community feedback is welcome to help verify cross-platform compatibility.
The server includes a pair programming mode with confirmation dialogs, comprehensive logging, and safe command execution to reduce unintended actions and improve traceability.
The primary endpoints used for connections are: - Streamable HTTP: http://localhost:3001/mcp - Legacy SSE: http://localhost:3001/sse - Health: http://localhost:3001/health - Info: http://localhost:3001/info These endpoints enable clients to stream commands, monitor status, and verify the server health.
SFTP operations are available when the tabby-ssh plugin is installed. If SFTP is enabled, you can list, read, write, create directories, delete, rename, and transfer files with both synchronous and asynchronous options. SFTP size limits are configurable in settings.
Tabby-MCP provides a comprehensive set of 34 tools across four categories: Terminal Control, Tab Management, Profile Management, and SFTP Operations. These tools enable you to list sessions and tabs, execute commands, manage inputs, read buffers, split and manage tabs, profile operations, and remote file actions.
If you encounter issues with connections, confirm that the MCP server is running on the expected port (default 3001). Check logs for transport or session errors, and ensure the proper bridge or HTTP URL is used for your client. When using STDIO, verify the bridge script path and Node.js installation. For SFTP, ensure the tabby-ssh plugin is installed and active.
Use stable session IDs for reliable cross-tab and cross-session tracking. When using STDIO, prefer explicit bridge configurations over relying on defaults to ensure your client connects to the correct local bridge. Enable pair programming with confirmations for actions that could affect the terminal state.
List all terminal sessions with stable UUIDs and metadata
Execute a command with flexible session targeting
Send interactive input to a running command (including special keys)
Read the active terminal buffer content
Abort a running command
Monitor the status of active commands
Focus a specific pane within a split tab
List all open tabs with stable IDs
Focus a specific tab (defaults to active)
Close a tab
Close all tabs
Duplicate the current tab
Move focus to the next tab
Move focus to the previous tab
Reorder tabs to the left
Reorder tabs to the right
Reopen the most recently closed tab
Split the current tab in horizontal or vertical direction
List all terminal profiles available for quick access
Open a tab using a specific terminal profile
Show a dialog to select a profile for opening a tab
SSH quick connect to a profile or host
List files in a remote directory via SFTP (requires tabby-ssh)
Read a remote file as text via SFTP
Write text to a remote file via SFTP
Create a directory on the remote side via SFTP
Delete a remote file or directory via SFTP
Rename or move a remote file via SFTP
Get file or directory information via SFTP
Upload a local file to the remote side (sync/async)
Download a remote file to the local side (sync/async)
Query status of an in-progress transfer
List all ongoing transfers with optional status filtering
Cancel an active transfer