mcpField
T
Terminal UI DevTools

Terminal UI DevTools

ローカル
github.com/nvms開発ツール1412 週間前に更新

Terminal UI DevTools について

tui-mcpは、永続的な擬似端末セッションでターミナルアプリを起動・操作するMCPサーバーです。エージェントや開発者がTUIアプリを対話的に扱い、画面のスクリーンショットやテキストを取得できます。

主な機能

  1. 01永続的な擬似端末でアプリを起動
  2. 02キー入力・テキスト・マウスイベントの送信
  3. 03PNGスクリーンショットとテキストスナップショット
  4. 04端末領域とスクロールバックの読み取り
  5. 05複数セッションの監視と管理

活用シーン

  1. 01対話型コマンドラインツールの操作
  2. 02SSHプロンプトやインストーラーへの対応
  3. 03ビルド・ログ・デプロイの監視
  4. 04開発・デバッグセッションの並行実行

MCP 対応

MCPクライアント向けに、端末セッションの起動・確認・操作ツールを提供します。ツール呼び出しの間も、稼働中の擬似端末セッションを維持します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"tui": {
"command": "npx",
"args": [
"-y",
"tui-mcp"
]
}
}
}
起動コマンドnpx -y tui-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmtui-mcp

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

tui-mcp

ブラウザーにとっての Chrome DevTools MCP のように、tui-mcp はターミナルのためのものです。

任意のターミナルアプリを管理された pty で起動し、スクリーンショットの撮影、テキストの読み取り、キー入力の送信ができます。アプリは実際のターミナルで実行されているものとして動作します。TUI フレームワークの有無を問わず、vim、htop、bubbletea、textual、ink、inquirer、trend、ncurses など、どのようなアプリでも利用できます。

tui-mcp MCP サーバー

bash ツールとの違いは何ですか?

bash ツールはコマンドを個別に実行します。呼び出しごとに結果を待たずに実行し、プロセスが終了すると出力が返されます。tui-mcp は永続的な対話型セッションを維持します。呼び出しの間も pty は終了しません。これは次のような場合に重要です。

  • ツールに状態がある場合 - mysql シェルを開き、データベースで USE を実行し、トランザクション中であるとします。bash ツールでは、呼び出しの間もそのセッションを開いたままにできません。
  • ツールに UI がある場合 - htop、vim、k9s、lazygit などです。これらのアプリは ANSI エスケープコードで全画面のインターフェイスを描画するため、bash ツールでは意味のない出力が返されます。tui-mcp は xterm エミュレーションを通して、読みやすいスクリーンショットまたはテキストスナップショットに表示します。
  • 操作が複数の手順にわたる場合 - SSH でパスワード、次に 2FA コードを求められ、その後にログインできる場合です。対話型インストーラーで質問に答える場合もあります。git rebase -i ではエディターが開きます。こうした対話型の手順は、ステートレスな bash ツールでは処理できません。
  • 何かを監視する必要がある場合 - ログを tail したり、ビルドを監視したり、デプロイの完了を待ったりする場合です。セッションは開いたままなので、エージェントは進捗を確認したいときにいつでもスナップショットを取得できます。
  • ツールに TTY が必要な場合 - 実際のターミナルがないと動作が変わったり、起動を拒否したりする CLI もあります。node-pty は xterm-256color を備えた実際の pty を用意するため、すべてが想定どおりに動作します。

bash ツールは exec() です。tui-mcp は「ターミナルの前に座り、人間のように使う」ものです。一方はコマンドを実行し、もう一方はソフトウェアを操作します。

screenshot ツールの出力例:

trend ダッシュボード lore htop

セットアップ

claude mcp add --scope user tui-mcp -- npx tui-mcp

ツール

ツール説明
launch管理された pty で TUI アプリを起動します
killセッションを終了します
list_sessions終了直後のセッションも含め、セッションを一覧表示します
statusセッションの状態と終了コードを取得します
resizeターミナルのサイズを変更します
screenshotターミナルを PNG としてキャプチャします
snapshotターミナルをプレーンテキストとしてキャプチャします
scrollbackスクロールアウトした履歴を含むバッファーを読み取ります
outputpty の生のバイトストリームを読み取ります(エスケープシーケンスを含みます)
read_regionバッファーの矩形領域を読み取ります
cursorカーソル位置を取得します
send_keysキー入力またはキーの組み合わせを送信します(Enter、Ctrl+C、Ctrl+Up、q)
send_text文字列を入力します
send_mouseマウスイベントを送信します
wait_for_text正規表現パターンが表示されるまで待機します
wait_for_idleターミナルの変化が止まるまで待機します
wait_for_exitプロセスが終了するまで待機し、終了コードを取得します

興味深いユースケース

  • リモート運用:エージェントが SSH で本番環境のマシンに接続し、ログを追跡してエラーを grep で検索し、サービスを再起動して、復旧する様子を監視します。人間の SRE が見るのと同じターミナル出力を読み取ります。カスタム API は必要ありません。
  • レガシーシステムとのやり取り:ncurses の管理パネル、mysql cli、redis-cli、psql などをエージェントが操作できます。REST API が提供されることのないツールにも対応できます。
  • 複数セッションのオーケストレーション:エージェントが 3〜4 個のセッションを同時に起動します。1 つは開発サーバー、1 つはテスト、1 つはログの追跡、もう 1 つはデバッガーを実行します。もう 1 組の手を借りたペアプログラミングのようなものです。
  • 対話型デバッガー:gdb、lldb、pdb、node --inspect を操作できます。エージェントはブレークポイントを設定し、コードをステップ実行して、変数を調べられます。
  • 会話を通じたインフラ操作:kubectl、terraform、docker、aws cli を使います。エージェントは Kubernetes MCP サーバーや AWS MCP サーバーを必要としません。人間と同じように、CLI を直接使います。

ほとんどの MCP サーバーは、特定のツールや API を 1 つラップします。tui-mcp がラップするのはターミナルそのものです。ターミナルは、すべてのツールがすでに使っている汎用インターフェースです。これは MCP の eval() です。

モニター

ターミナルからすべてのアクティブなセッションを監視、操作できます。

npx tui-mcp monitor

左側にセッション一覧、右側にライブの ANSI レンダリングによるターミナルプレビューが表示されます。モニターはマシン上で実行中のすべての tui-mcp サーバーを検出し、それらのセッションを集約します。

キー操作:

  • j/k または矢印キーでサーバーやそのセッション間を移動します。g/G で先頭/末尾に移動でき、マウスでのクリックやスクロールも使えます
  • セッション上で enter を押すと接続します。入力した内容はすべてその pty に渡され、ctrl+\ で切断します
  • サーバー上で enter を押すと、そのサーバーを対象にした起動パネルが開きます
  • s を押すとセッションのスクロールバック全体をスクロール可能なビューに読み込み、esc でライブ表示に戻ります
  • l を押すと、選択した行のサーバーで新しいセッションを起動します(ctrl+s で対象を切り替えます)
  • x を 3 秒以内に 2 回押すと、選択したセッションを終了します
  • q で終了します

接続、新規起動、終了、スクロールバックの表示には、バージョン 1.2 以降のサーバーが必要です。それより古いサーバー上のセッションには ro(読み取り専用)と表示され、引き続き監視できます。

仕組み

your app  <-->  node-pty  <-->  xterm-headless  <-->  MCP tools
                (pty)        (terminal emulator)    (screenshot, send_keys, etc.)

アプリは node-pty を介して、実際の疑似ターミナルで実行されます。出力は xterm-headless(VS Code のターミナルを支えるものと同じターミナルエミュレーターですが、DOM はありません)で解析されます。MCP ツールは、解析されたバッファーを読み取り、操作します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。