home / mcp / tabby mcp server

Tabby MCP Server

Provides terminal control, tab management, profile handling, and SFTP operations via an MCP server for Tabby Terminal.

Installation
Add the following to your MCP client configuration file.

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.

How to use

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.

How to install

# 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.sh

After installation

1. Restart Tabby. 2. Go to Settings β†’ MCP. 3. Start the MCP server.

Configuration reference

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.

Endpoints and connection options

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.

Platform support and notes

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.

Security and reliability

The server includes a pair programming mode with confirmation dialogs, comprehensive logging, and safe command execution to reduce unintended actions and improve traceability.

End-to-end connection details

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 considerations

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.

Tools at a glance

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.

Troubleshooting tips

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.

Examples and best practices

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.

Available tools

get_session_list

List all terminal sessions with stable UUIDs and metadata

exec_command

Execute a command with flexible session targeting

send_input

Send interactive input to a running command (including special keys)

get_terminal_buffer

Read the active terminal buffer content

abort_command

Abort a running command

get_command_status

Monitor the status of active commands

focus_pane

Focus a specific pane within a split tab

list_tabs

List all open tabs with stable IDs

select_tab

Focus a specific tab (defaults to active)

close_tab

Close a tab

close_all_tabs

Close all tabs

duplicate_tab

Duplicate the current tab

next_tab

Move focus to the next tab

previous_tab

Move focus to the previous tab

move_tab_left

Reorder tabs to the left

move_tab_right

Reorder tabs to the right

reopen_last_tab

Reopen the most recently closed tab

split_tab

Split the current tab in horizontal or vertical direction

list_profiles

List all terminal profiles available for quick access

open_profile

Open a tab using a specific terminal profile

show_profile_selector

Show a dialog to select a profile for opening a tab

quick_connect

SSH quick connect to a profile or host

sftp_list_files

List files in a remote directory via SFTP (requires tabby-ssh)

sftp_read_file

Read a remote file as text via SFTP

sftp_write_file

Write text to a remote file via SFTP

sftp_mkdir

Create a directory on the remote side via SFTP

sftp_delete

Delete a remote file or directory via SFTP

sftp_rename

Rename or move a remote file via SFTP

sftp_stat

Get file or directory information via SFTP

sftp_upload

Upload a local file to the remote side (sync/async)

sftp_download

Download a remote file to the local side (sync/async)

sftp_get_transfer_status

Query status of an in-progress transfer

sftp_list_transfers

List all ongoing transfers with optional status filtering

sftp_cancel_transfer

Cancel an active transfer