🚀 Tabby-MCP-Server について
Tabby-MCP-Server は、Tabby ターミナルのプラグインとして、開いているターミナルセッションを MCP 対応の AI クライアントに SSE 経由で公開します。ローカルと SSH のセッションの一覧表示、コマンド実行、ターミナルバッファーの読み取りに対応しています。既存の Tabby タブ内で AI クライアントに作業させたい開発者向けです。
主な機能
- 01ローカルおよび SSH セッションの一覧表示
- 02選択したターミナルタブでのコマンド実行
- 03表示領域と履歴バッファー範囲の読み取り
- 04outputId による長い出力のページ分割取得
- 05Pair Programming モードの確認ダイアログ
活用シーン
- 01AI クライアントに開いている Tabby タブでコマンドを実行させる
- 02ターミナルの履歴を読み取り問題を調査する
- 03AI が発行したコマンドを実行前に確認する
MCP 対応
本プロジェクトは MCP サーバーであり、http://localhost:3001/sse の SSE エンドポイントで get_ssh_session_list、exec_command、get_terminal_buffer、get_command_output の 4 つのツールを MCP クライアントに提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
http://localhost:3001/sseclaude mcp add --transport sse tabby http://localhost:3001/sse{"mcpServers":{"tabby":{"type":"sse","url":"http://localhost:3001/sse"}}}Cursor で開く{"servers":{"tabby":{"type":"sse","url":"http://localhost:3001/sse"}}}VS Code で開く{"mcpServers":{"tabby":{"type":"sse","url":"http://localhost:3001/sse"}}}{"mcpServers":{"tabby":{"serverUrl":"http://localhost:3001/sse"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Tabby MCP Server
Tabby Terminal のプラグインです。Model Context Protocol (MCP) を通じて、アクティブなターミナルセッションを公開します。MCP 互換の AI クライアントから、ターミナルタブの検出、コマンドの実行、ターミナルバッファーの読み取り、長いコマンド出力の取得ができます。
Tabby はターミナル UI として動作します。AI クライアントは MCP を通じて Tabby に接続します。
特長
- Tabby 内の MCP サーバー —
http://localhost:3001/sseに SSE エンドポイントを公開します - ターミナルセッションの検出 — ローカルおよび SSH 接続の Tabby ターミナルセッションを一覧表示します
- コマンドの実行 — 選択した Tabby ターミナルタブでコマンドを実行します
- 堅牢な出力取得 — 終了コードの解析に対応したシンプルなマーカープロトコル
- ターミナルバッファーへのアクセス — タブの表示範囲/履歴範囲のバッファーを読み取ります
- 長い出力のページネーション —
outputIdを使ってコマンド出力全体を取得します - ペアプログラミングモード — 確認ダイアログとユーザーへのフィードバックを任意で有効にできます
- Docker ベースのビルド — Tabby 用の再現可能なローカルプラグインビルド
デモ
目次
要件
- Tabby Terminal がインストールされ、実行中であること
- ローカルビルド用の Docker
- 提供されているインストールスクリプトを使用する場合は macOS
- Claude Code、Cursor、Windsurf、Codex など、SSE に対応した MCP クライアント
インストール
オプション 1:Tabby Plugin Store
- Tabby を開きます
- Settings → Plugins に移動します
- Tabby MCP をインストールします
- Tabby を再起動します
- Settings → Plugins → MCP を開き、サーバー設定を確認します
オプション 2:ローカル Docker ビルド
git clone https://github.com/thuanpham582002/tabby-mcp-server.git
cd tabby-mcp-server
make build-dist
bash scripts/copy_to_plugin_folder.sh
インストールスクリプトはプラグインを次の場所にコピーします。
~/Library/Application Support/tabby/plugins/node_modules/tabby-mcp
プラグインのインストールまたは更新後に Tabby を再起動してください。
ローカルの Tabby インストールでプラグインの依存関係を同梱する必要がある場合は、完全なパッケージをビルドします。
make build-dist-with-deps
bash scripts/copy_to_plugin_folder.sh
クイックスタート
- Tabby を起動または再起動します
- ターミナルタブを 1 つ以上開きます
- MCP サーバーが実行中であることを確認します。
curl http://localhost:3001/health
# OK
- Tabby のターミナルセッションを一覧表示します。
curl -X POST http://localhost:3001/api/tool/get_ssh_session_list \
-H 'Content-Type: application/json' \
-d '{}'
- セッション内でコマンドを実行します。
curl -X POST http://localhost:3001/api/tool/exec_command \
-H 'Content-Type: application/json' \
-d '{"command":"pwd","tabId":"0"}'
MCP クライアントの接続
Tabby-MCP は次を提供します。
SSE endpoint: http://localhost:3001/sse
Health endpoint: http://localhost:3001/health
HTTP test API: http://localhost:3001/api/tool/<tool-name>
クライアントが接続する前に、Tabby プラグインが実行中である必要があります。
SSE クライアント
SSE MCP サーバーに直接対応するクライアントでは、次の設定を使用します。
{
"mcpServers": {
"tabby-mcp": {
"type": "sse",
"url": "http://localhost:3001/sse"
}
}
}
Cursor 系のクライアントでは、たとえば次のように MCP 設定ファイルに記述します。
~/.cursor/mcp.json
Claude Code
使用中の Claude Code バージョンが SSE MCP サーバーに対応している場合は、次のように設定します。
claude mcp add --transport sse tabby-mcp http://localhost:3001/sse
JSON 設定を使用する場合は、SSE クライアントの設定を使用してください。
Codex / OpenAI Codex CLI
Codex クライアントがサポートする SSE MCP サーバー設定を使用します。
{
"mcpServers": {
"tabby-mcp": {
"type": "sse",
"url": "http://localhost:3001/sse"
}
}
}
TOML ベースの設定では、クライアントがサポートする SSE MCP の構文を使って、同じ SSE URL を指定してください。
ツール
| ツール | 説明 | パラメーター |
|---|---|---|
get_ssh_session_list | 利用可能な Tabby ターミナルセッションを一覧表示します | なし |
exec_command | ターミナルタブでシェルコマンドを実行します | command、tabId、commandExplanation |
get_terminal_buffer | ターミナルバッファーの内容を読み取ります | tabId、startLine、endLine |
get_command_output | コマンド出力全体またはページ単位の出力を取得します | outputId、startLine、maxLines |
設定
デフォルトのプラグイン設定:
{
"mcp": {
"enabled": true,
"startOnBoot": true,
"port": 3001,
"listenHost": "127.0.0.1",
"serverUrl": "http://localhost:3001",
"enableDebugLogging": true,
"pairProgrammingMode": {
"enabled": true,
"showConfirmationDialog": true,
"autoFocusTerminal": true
}
}
}
Tabby の 設定 → プラグイン → MCP でこれらのオプションを設定します。
WSL など、ほかのマシンや環境からの接続を受け入れるには、MCP 設定で
listenHost を 0.0.0.0 に設定します。これにより、サーバーがネットワーク経由でアクセス可能になります。MCP クライアントから到達可能なアドレスをサーバー URL に指定し、必要なファイアウォール制限を適用してください。
ペアプログラミングモード
ペアプログラミングモードでは、AI クライアントがコマンドを実行する際に安全確認が追加されます。
- コマンド実行前の確認
- ターミナルの自動フォーカス(任意)
- フィードバック付きのコマンド拒否
- コマンド結果のダイアログと履歴管理
開発
クローンしてビルドします:
git clone https://github.com/thuanpham582002/tabby-mcp-server.git
cd tabby-mcp-server
make build-dist
ローカルの Tabby にインストールします:
bash scripts/copy_to_plugin_folder.sh
Tabby を再起動して確認します:
curl http://localhost:3001/health
ビルドターゲット
make build-dist # Build dist only
make build-dist-with-deps # Build dist and copy node_modules
make help # Show available targets
ライセンス
MIT — LICENSE を参照してください。
❤️ を込めて Pham Tien Thuan が作成
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
