Skip to main content
Glama

πŸš€ Tabby-MCP

License: MIT TypeScript Tabby Plugin MCP Protocol GitHub Release npm version npm downloads AI Generated Tested on

A Comprehensive MCP Server Plugin for Tabby Terminal

Connect AI assistants to your terminal with full control β€” 35 MCP tools including SFTP support

English | δΈ­ζ–‡


πŸš€ Tabby-MCP is a powerful plugin for Tabby Terminal, bridging the gap between AI agents and your terminal environment. It provides a standardized MCP interface for AI to execute commands, manage tabs, and handle file operations securely.

Give your AI hands to work with.


✨ Features

Safety model (v1.6.3): Pair Programming Mode gates exec_command, send_input, and sensitive SFTP operations with a non-blocking approval dialog that automatically rejects after two minutes. The dialog restores terminal focus to avoid Electron/xterm keyboard and IME issues. Read-only transfer-status tools and emergency abort_command remain available without approval. Network access is restricted to loopback (127.0.0.1), Origin validation is applied to both MCP transports, and the direct tool API is disabled by default.


Related MCP server: Terminally MCP

πŸ“¦ Installation

Method 1: Tabby Plugin Manager (Easiest)

Search for tabby-mcp-server directly in Tabby's built-in Plugin Manager:

  1. Open Tabby β†’ Settings β†’ Plugins

  2. Search for tabby-mcp-server

  3. Click Install

  4. Restart Tabby


Method 2: Quick Install Script

No Node.js required! Downloads pre-built release from GitHub.

curl -fsSL https://raw.githubusercontent.com/GentlemanHu/Tabby-MCP/main/scripts/install.sh | bash

Or download and run:

wget https://raw.githubusercontent.com/GentlemanHu/Tabby-MCP/main/scripts/install.sh
bash install.sh
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

Or manually:

npm install --legacy-peer-deps
npm run build
# Then copy dist/ and package.json to Tabby plugins folder

πŸ”„ After Installation

  1. Restart Tabby

  2. Go to Settings β†’ MCP

  3. Start the MCP server


πŸ”Œ Connecting AI Clients

Streamable HTTP Mode (Cursor / Windsurf / Cline)

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "Tabby MCP": {
      "type": "streamable_http",
      "url": "http://127.0.0.1:3001/mcp"
    }
  }
}

STDIO Mode (Claude Desktop / VS Code)

For clients that don't support SSE, use the STDIO bridge:

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "tabby-mcp-server": {
      "command": "node",
      "args": ["/path/to/Tabby-MCP/scripts/stdio-bridge.js"]
    }
  }
}

VS Code / Other IDEs:

{
  "mcp": {
    "servers": {
      "tabby-mcp-server": {
        "type": "stdio",
        "command": "node",
        "args": ["scripts/stdio-bridge.js"],
        "cwd": "/path/to/Tabby-MCP"
      }
    }
  }
}

Note: STDIO mode requires Node.js installed. The bridge script connects to the SSE server running in Tabby.

Endpoints

Endpoint

URL

Protocol

Streamable HTTP

http://127.0.0.1:3001/mcp

2025-03-26 (recommended)

Legacy SSE

http://127.0.0.1:3001/sse

2024-11-05

Health

http://127.0.0.1:3001/health

-

Info

http://127.0.0.1:3001/info

-


πŸ› οΈ Available Tools

Terminal Control (8)

Tool

Description

get_session_list

List all terminal sessions with stable UUIDs and metadata

exec_command

Execute command with flexible session targeting

send_input

Send interactive input (Ctrl+C, etc)

get_terminal_buffer

Read terminal buffer (defaults to active session)

abort_command

Abort running command

get_command_status

Monitor active commands

focus_pane

Focus a specific pane in split view

get_session_environment

Detect shell/REPL context (optional; disabled by default)

New in v1.1: All terminal tools now support flexible session targeting:

  • sessionId (stable UUID, recommended)

  • tabIndex (legacy, may change)

  • title (partial match)

  • profileName (partial match)

  • No parameters = use active session

Tab Management (11)

Tool

Description

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 a tab

next_tab / previous_tab

Navigate tabs

move_tab_left / move_tab_right

Reorder tabs

reopen_last_tab

Reopen closed tab

split_tab

Split current tab (horizontal/vertical)

Profile Management (4)

Tool

Description

list_profiles

List terminal profiles

open_profile

Open tab with profile

show_profile_selector

Show profile dialog

quick_connect

Smart quick connect (SSH/telnet/socket/serial)

SFTP Operations (12) πŸ†•

Requires tabby-ssh. If it is not installedβ€”or SFTP is disabled in Settingsβ€”all 12 SFTP tools are omitted for new MCP sessions. With Pair Programming confirmation enabled, directory listing, metadata reads, file reads/writes, transfers, deletes, renames, directory creation, and transfer cancellation require approval.

Basic Operations:

Tool

Description

Key Parameters

sftp_list_files

List remote directory

path

sftp_read_file

Read remote file (text)

path

sftp_write_file

Write text to remote file

path, content

sftp_mkdir

Create remote directory

path

sftp_delete

Delete remote file/directory

path

sftp_rename

Rename/move remote file

sourcePath, destPath

sftp_stat

Get file/directory info

path

File Transfer (supports sync/async):

Tool

Description

Key Parameters

sftp_upload

Upload local file β†’ remote

localPath, remotePath, sync

sftp_download

Download remote β†’ local file

remotePath, localPath, sync

sftp_get_transfer_status

Query transfer progress

transferId

sftp_list_transfers

List all transfers

status (filter)

sftp_cancel_transfer

Cancel active transfer

transferId

Transfer Modes: sync=true (default) waits for completion. sync=false returns immediately with transferId.

Size Limits: Configurable in Settings β†’ MCP β†’ SFTP.


βš™οΈ Configuration

Setting

Description

Default

Port

MCP server port

3001

Start on Boot

Auto-start server

true

Pair Programming

Confirm commands, raw input, and sensitive SFTP operations

true

Confirm SFTP Operations

Apply the approval dialog to sensitive SFTP operations (send_input always follows command confirmation)

true

Session Tracking

Use stable UUIDs

true

Background Execution

Run without focus

false

SFTP Enabled

Enable SFTP tools

true

Environment Detection

Expose get_session_environment

false

Direct Tool API

Enable compatibility endpoint /api/tool/:name (manual config only)

false


πŸ”„ Background Execution Mode

Enable this mode to allow MCP commands to run without switching focus to the terminal. This lets you continue working on other tabs while AI executes commands in the background.

Settings β†’ MCP β†’ Background Execution

⚠️ Risks:

  • You won't see commands executing in real-time

  • If you type in the target terminal while AI is running, input will conflict

  • For split panes, commands go to the sessionId target, not the focused pane

  • Dangerous commands could run without you noticing

βœ… Recommended: Keep Pair Programming Mode, confirmation dialogs, and file-operation confirmation enabled. The server binds only to 127.0.0.1; the direct /api/tool/:name compatibility API is disabled by default.


⚠️ Platform Support

Platform

Status

Notes

macOS

βœ… Tested

Fully functional

Windows

⚠️ Untested

Should work β€” please report issues

Linux

⚠️ Untested

Should work β€” please report issues

Note: This plugin has been developed and tested on macOS. Windows and Linux support should work but is unverified. Community testing and feedback welcome!


πŸ€– About This Project

🎨 95%+ AI Generated

This project was created almost entirely by AI (Claude/Gemini) through pair programming.
The human's role was primarily to provide requirements and test the results.

Acknowledgments

This project builds upon the work of tabby-mcp-server by @thuanpham582002.

Improvements over the original:

Feature

Original

This Project

MCP Tools

4

35

Tab Management

❌

βœ…

Profile/SSH

❌

βœ…

SFTP Support

❌

βœ…

Stable Session IDs

❌

βœ…

Streamable HTTP

❌

βœ…

Init Bug

Has issue

βœ… Fixed

Install Script

Manual

βœ… One-liner


πŸ“ Changelog

v1.6.3-rc.1 (2026-07-27) β€” prerelease

⚠️ Prerelease, not yet published to npm. These fixes are verified by static analysis, a typecheck, smoke regression checks, and a production build β€” but not by a manual run inside a real Tabby/Electron session. Dialog focus restoration, live SFTP transfer cancellation, and multi-instance port handover in particular still need hands-on testing. Install it from the GitHub prerelease and please report anything that misbehaves on the referenced issues.

  • Fixed Issue #9: Pair Programming approval now covers send_input and sensitive SFTP operations; transfer cancellation now stops the underlying transfer.

  • Fixed Issue #7: replaced blocking browser dialogs with a non-blocking focus-restoring dialog and made command focus honor the Auto-focus setting.

  • Fixed Issue #5: loopback-only bind, startup retry, stale-instance detection, and authenticated same-install port handover.

  • Fixed Legacy SSE JSON body handling for SDK 1.25.2, session cleanup, stale Streamable HTTP session handling, Origin validation, fish active environment probes, SFTP locator consistency, and STDIO reconnect/framing behavior.

  • Pinned @modelcontextprotocol/sdk to 1.25.2, committed package-lock.json, and added typecheck/smoke/build quality gates.

  • Tool count is now documented accurately: 35 total (34 normally visible; get_session_environment is optional and disabled by default).

See CHANGELOG.md for the complete version history.


🀝 Contributing

See CONTRIBUTING.md for guidelines.


πŸ“„ License

MIT License - see LICENSE


Made with ❀️ by AI and GentlemanHu

⭐ Star this repo if you find it useful!

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

–Maintainers
–Response time
1wRelease cycle
19Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    A
    maintenance
    A plugin for the Tabby terminal emulator that allows AI assistants to execute commands, manage SSH sessions, and read terminal buffers through the Model Context Protocol. It includes a pair programming mode with confirmation dialogs to ensure safe and controlled terminal automation.
    Last updated
    47
    82
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables AI assistants to control iTerm2 sessions, windows, tabs, and profiles using the official iTerm2 Python API. It includes a security model with session tagging and tiered permissions to ensure safe and controlled terminal interactions.
    Last updated
    40
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.

  • Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.

  • Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GentlemanHu/Tabby-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server