Terminator について
Terminatorは、macOSとLinuxで端末コマンドを制御して実行するGo製MCPサーバーです。単発コマンドや状態を維持するシェルセッションをAI連携から利用でき、STDIOとStreamableHTTPに対応します。
主な機能
- 01タイムアウト付きコマンド実行
- 02永続シェルセッション
- 03実行シェルの設定
- 04STDIOとStreamableHTTP対応
- 05GUIコマンドへのDISPLAY転送
活用シーン
- 01MCPクライアントからの端末コマンド実行
- 02複数コマンド間でのディレクトリと環境状態の維持
- 03コマンドによるGUIアプリの起動
MCP 対応
execute_command、persistent_shell、session_managerの各ツールをMCPクライアントに提供します。STDIOとStreamableHTTPのトランスポートに対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
http://localhost:8080/mcpclaude mcp add --transport http terminal_mcp http://localhost:8080/mcp{"mcpServers":{"terminal_mcp":{"type":"http","url":"http://localhost:8080/mcp"}}}Cursor で開く{"servers":{"terminal_mcp":{"type":"http","url":"http://localhost:8080/mcp"}}}VS Code で開く{"mcpServers":{"terminal_mcp":{"type":"http","url":"http://localhost:8080/mcp"}}}{"mcpServers":{"terminal_mcp":{"serverUrl":"http://localhost:8080/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
MCP Terminal Server
🚀 安全なターミナル実行を実現する高性能な Model Context Protocol サーバー
✨ クロスプラットフォーム • ⚡ 高性能 • 🔒 超安全 ✨

機能
- クロスプラットフォーム対応:macOS と Linux で動作します
- タイムアウトの設定:コマンド実行に任意のタイムアウト値を設定できます
- 安全な実行:適切なエラー処理を備えた制御環境でコマンドを実行します
- プラットフォーム対応:ホストプラットフォームを自動的に検出し、適応します
- 柔軟なシェル対応:コマンド実行に使用するシェルを設定できます
- GUI アプリケーション対応:X11 アプリケーション向けに
DISPLAY環境変数を自動転送します - 複数のトランスポートモード:
- 従来の MCP クライアント向けの STDIO モード
- 🌐 StreamableHTTP トランスポート:ウェブ連携向けの、標準準拠の HTTP ベース MCP トランスポート
- 柔軟なセッション管理:事前登録は不要で、任意のセッション ID を使用できます
- 🎉 永続シェルセッション:コマンド間でシェルの状態(作業ディレクトリ、環境変数など)を維持します
クイックスタート
# Build the server
make build
# Run in HTTP mode with StreamableHTTP transport
./mcp-terminal-server --http --port 8080
# Run in STDIO mode (default)
./mcp-terminal-server
🚀 クイックテスト
StreamableHTTP トランスポートのテスト
# Start server in HTTP mode
./mcp-terminal-server --http --port 8080
# Test MCP initialization
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test-client", "version": "1.0.0"}}}'
# Test tools listing (use session ID from initialize response)
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: <session-id>" \
-d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}'
# Execute a command
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: <session-id>" \
-d '{"jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": {"name": "execute_command", "arguments": {"command": "echo Hello StreamableHTTP!"}}}'
永続シェルのテスト
# Test persistent shell functionality
chmod +x examples/persistent_shell_examples.sh
./examples/persistent_shell_examples.sh
ドキュメント
📚 ドキュメント全文
- クイックスタートガイド - 数分で使い始められます
- はじめに - 詳細なセットアップと設定
- Vercel AI SDK 連携 - Vercel AI SDK に接続します
- アーキテクチャ概要 - システム設計とモジュール構成
利用可能なツール
- execute_command - タイムアウト付きで単一のコマンドを実行します
- persistent_shell - 永続シェルセッションでコマンドを実行します
- session_manager - シェルセッションを管理します(一覧表示、終了)
環境変数
サーバーは次の環境変数に対応しています。
MCP_COMMAND_TIMEOUT- コマンドのデフォルトタイムアウト(秒)(デフォルト:30)MCP_SHELL- コマンド実行に使用するカスタムシェル(デフォルト:Unix では /bin/bash)DISPLAY- GUI アプリケーション用の X11 ディスプレイ(コマンドに自動転送されます)
GUI アプリケーション対応
サーバーは DISPLAY 環境変数を実行するすべてのコマンドに自動転送し、GUI アプリケーションを正しいディスプレイで起動できるようにします。これは、永続しないコマンドと永続シェルセッションの両方で機能します。
例:GUI アプリケーションを起動する
# Set DISPLAY when starting the server
DISPLAY=:0 ./mcp-terminal-server
# GUI applications launched through MCP will use the correct display
# e.g., xterm, firefox, gedit, etc.
サーバーエンドポイント
HTTP モード(--http フラグ)で実行すると、サーバーは次のエンドポイントを提供します。
POST /mcp- すべての MCP 操作用の StreamableHTTP トランスポートエンドポイントinitialize、tools/list、tools/callメソッドに対応しています- 認証済みリクエストには
Mcp-Session-Idヘッダーが必要です initialize呼び出しでは、レスポンスヘッダーにセッション ID を返します
MCP プロトコルのサポート
このサーバーは、Model Context Protocol の仕様を実装しています。
- JSON-RPC 2.0 による通信
- UUID ベースのセッション ID によるセッション管理
- 構造化された入出力によるツールの実行
- 標準の JSON-RPC エラーコードによるエラー処理
プラットフォームのサポート
- macOS(darwin):完全サポート - AMD64 および ARM64
- Linux:完全サポート - AMD64 および ARM64
- Docker:buildx によるマルチアーキテクチャサポート
統合
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"terminal": {
"command": "/path/to/mcp-terminal-server",
"env": {
"MCP_COMMAND_TIMEOUT": "30",
"DISPLAY": ":0"
}
}
}
}
Docker
# Run AMD64 image
docker run --rm -p 8080:8080 terminal-mcp:latest-linux-amd64 --http --port 8080
# Run ARM64 image
docker run --rm -p 8080:8080 terminal-mcp:latest-linux-arm64 --http --port 8080
# Run with persistent shell session
docker run --rm -p 8080:8080 -v /tmp:/tmp terminal-mcp:latest-linux-amd64 --http --port 8080
その他の MCP クライアント
このサーバーは標準の MCP プロトコルに準拠しており、準拠しているあらゆる MCP クライアントで動作するはずです。
開発
ビルド
# Build for current platform
make build
# Build for all platforms
make build-all
# Build Docker images
make docker-build
# Build and push Docker images
REGISTRY=your-registry.com make docker-push
# Build DXT package for distribution
make dxt
依存関係
github.com/mark3labs/mcp-go- MCP Go ライブラリ- Go 1.23 以降(自動的に管理されます)
本番環境へのデプロイ
本番環境では、適切なプロセス管理とセキュリティ対策を施してサーバーを実行することをおすすめします。
プロセス管理
- s6:自動再起動に対応した軽量なプロセス監視
- systemd:リソース制限を備えた多機能なサービス管理
- Docker:セキュリティ分離を備えたコンテナ化デプロイ
- Supervisor:Python ベースのプロセス管理
セキュリティ機能
- 非 root での実行:権限を制限するため、専用のユーザーアカウントで実行
- リソース制限:CPU、メモリ、ファイルアクセスの制限
- ネットワーク分離:セキュリティを強化するため、localhost のみでバインド
- AppArmor/SELinux:追加の強制アクセス制御
- ファイル権限:必要なディレクトリのみにアクセスを制限
📋 詳しいセットアップ手順については、プロセス管理ガイドをご覧ください。
Iris Agent との統合
この MCP サーバーは、自動化されたターミナル操作を実現する高度なコンピューター操作エージェントである Iris Computer Use Agent によって使用されます。
ライセンス
このプロジェクトは開発目的で現状のまま提供されます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。