mcpterm について
mcptermは、Claude Desktopなどのクライアント向けに、状態を保持するターミナルセッションを提供する概念実証のMCPサーバーです。コマンド実行に加え、TUIプログラムとの操作にも対応します。
主な機能
- 01状態を保持したコマンド実行
- 02TUI操作とキー入力
- 03ターミナル画面の出力
活用シーン
- 01ディレクトリ状態を保ちながら連続してコマンドを実行
- 02vimやPython REPLの操作
MCP 対応
MCPクライアントに2つのターミナルツールを提供します。`run`は状態を保持してコマンドを実行し、`runScreen`はコマンドやキー入力を受け付け、画面出力を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcpterm
ステートフルで TUI に対応したターミナルセッションを提供する MCP ツールサーバーです。
mcp-go を使用した概念実証です。
Claude Desktop と非常によく連携します。
使用方法
リポジトリをクローンし、make を実行して bin/mcpterm を生成します。
git clone https://github.com/dwrtz/mcpterm.git
cd mcpterm
make
mcpterm バイナリを PATH 内のディレクトリに移動します。
sudo mv bin/mcpterm /usr/local/bin/mcpterm
Claude Desktop に追加する
claude_desktop_config.json を編集します(Mac では ~/Library/Application Support/Claude/claude_desktop_config.json にあります)。
{
"mcpServers": {
"mcpterm": {
"command": "mcpterm",
"args": []
}
}
}
Claude Desktop を再起動します。これで Claude に mcpterm が提供する 2 つのツールが表示されます。
ツール
run:ステートフルなターミナルセッションでコマンドを実行します。たとえば、あるディレクトリに移動すると、以降のコマンドはそのディレクトリで実行されます。
runScreen:コマンドまたは一連のキー入力を実行し、画面出力を返します。vim や Python REPL などの TUI アプリ向けです。
ヒント:
runScreen ツールで次の制御シーケンスを使うよう Claude に指示するとよいでしょう。
"^X": "\x18", // Ctrl+X
"^O": "\x0F", // Ctrl+O
"^J": "\x0A", // Enter
"^C": "\x03", // Ctrl+C
"^D": "\x04", // Ctrl+D
"^Z": "\x1A", // Ctrl+Z
"^[": "\x1B", // Escape
"^H": "\x08", // Backspace
"^M": "\x0D", // Carriage return
"^L": "\x0C", // Form feed
"^G": "\x07", // Bell
"^U": "\x15", // Clear line
"^W": "\x17", // Delete word
"^Y": "\x19", // Paste from kill buffer
"^V": "\x16", // Literal input
"^K": "\x0B", // Kill line
"^E": "\x05", // End of line
"^A": "\x01", // Beginning of line
"^I": "\x09", // Tab
完璧ではありませんが、かなりうまく動作します。Claude は vim を使って Dockerfile を作成し、インタラクティブセッションでコンテナを起動してから、コンテナ内で Python REPL などのコマンドを実行できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。