mcpField
T
Terminator

Terminator

リモート
github.com/iris-networks開発ツール1067 週間前に更新
リポジトリ

Terminator について

Terminatorは、macOSとLinuxで端末コマンドを制御して実行するGo製MCPサーバーです。単発コマンドや状態を維持するシェルセッションをAI連携から利用でき、STDIOとStreamableHTTPに対応します。

主な機能

  1. 01タイムアウト付きコマンド実行
  2. 02永続シェルセッション
  3. 03実行シェルの設定
  4. 04STDIOとStreamableHTTP対応
  5. 05GUIコマンドへのDISPLAY転送

活用シーン

  1. 01MCPクライアントからの端末コマンド実行
  2. 02複数コマンド間でのディレクトリと環境状態の維持
  3. 03コマンドによるGUIアプリの起動

MCP 対応

execute_command、persistent_shell、session_managerの各ツールをMCPクライアントに提供します。STDIOとStreamableHTTPのトランスポートに対応します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttp://localhost:8080/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
ocishanurcsenitap/terminator:latest

ツール

詳細

💻 MCP Terminal Server

ビルドステータス リリース Go のバージョン ライセンス

🚀 安全なターミナル実行を実現する高性能な Model Context Protocol サーバー
✨ クロスプラットフォーム • ⚡ 高性能 • 🔒 超安全 ✨

Terminator ターミナル

機能

  • クロスプラットフォーム対応: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

ドキュメント

📚 ドキュメント全文

利用可能なツール

  1. execute_command - タイムアウト付きで単一のコマンドを実行します
  2. persistent_shell - 永続シェルセッションでコマンドを実行します
  3. 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 によって使用されます。

ライセンス

このプロジェクトは開発目的で現状のまま提供されます。

コメント

MCP は初めてですか?

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

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