interminal について
interminalは、AIアシスタントにローカルシェルとSSHへのアクセスを提供する軽量なMCPサーバーです。対話型コマンドや長時間実行コマンドに対応し、出力の取得や入力の送信ができます。
主な機能
- 01SSHサーバーへの接続
- 02ローカルまたはリモートでのコマンド実行
- 03実行中コマンドの出力取得
- 04入力待ちコマンドへのテキスト送信
- 05制御キーの送信とSSHセッションの終了
活用シーン
- 01SSH経由でリモートホスト上のコマンドを実行
- 02入力を求めるターミナルプログラムの操作
- 03長時間実行コマンドの出力確認
MCP 対応
MCPサーバーとして、SSH接続、コマンド実行、出力取得、対話入力、制御キー送信、セッション切断のツールをクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Interminal
軽量な MCP サーバーです。AI アシスタントに SSH とローカルシェルへのターミナルアクセスを提供し、対話型コマンドや長時間実行コマンドにも対応します。
インストール
# Run directly, no install needed (recommended)
uvx mcp-interminal
# Or install permanently
pip install mcp-interminal
Python ≥ 3.11 が必要です。
MCP クライアントの設定
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"interminal": {
"command": "uvx",
"args": ["mcp-interminal"]
}
}
}
Cursor / その他のクライアント:上記と同じ command + args 形式です。
ツール
| ツール | 説明 |
|---|---|
connect_ssh | SSH サーバーに接続します。session_id とウェルカムバナーを返します |
execute | ローカル(セッション不要)または SSH 経由でコマンドを実行します。出力、または status=partial + command_id を返します |
read_output | 入力を送信せずに、実行中のコマンドの新しい出力をポーリングします |
respond | プロンプトで入力待ちのコマンドにテキスト入力を送信します |
send_control | ctrl+c、ctrl+z、矢印キー、F キーなどの制御キーを送信します |
disconnect | SSH セッションを閉じ、すべてのリソースを解放します |
永続状態
各 execute 呼び出しは独立したチャネルで実行されます。呼び出し間でシェルの状態は保持されません。簡単なタスクであれば、&& でコマンドを連結できます。
複数ステップのワークフロー(プロジェクト開発、デバッグ、デプロイ)では、(Zellij などの)ターミナルマルチプレクサーを使用すると、呼び出しをまたいで状態を保持できます。AI エージェントは永続セッションを作成でき、その中では cd、環境変数、仮想環境、長時間実行プロセスの状態が自然に引き継がれます。
主な動作
- ステートレスな execute — 各呼び出しは独立したチャネルです。
cd /fooの状態は保持されません。簡単なタスクにはコマンドを&&で連結し、複数ステップのワークフローにはターミナルマルチプレクサーを使用してください。 - 長時間実行コマンドは
command_idとともにstatus="partial"を返します。read_outputでポーリングするか、respondで入力を送信してください - SSH PTY は 500×200 の xterm-256color です。これにより、マルチプレクサーのセッションは実際のターミナルサイズで表示されます
オプションの依存関係
pip install "mcp-interminal[pty]" # Windows PTY support (pywinpty)
pip install "mcp-interminal[ansi]" # ANSI escape rendering (pyte)
pip install "mcp-interminal[pty,ansi]" # both
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。