mcpField
T
Terminal MCP Server

Terminal MCP Server

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

Terminal MCP Server について

Terminal MCP Serverは、ターミナルコマンドの実行とコマンド集を提供し、安全でない実行例を通じてMCPのセキュリティリスクも示します。

主な機能

  1. 01ターミナルコマンドの実行と出力返却
  2. 02エラーと終了コードの報告
  3. 03ターミナルコマンド集の提供
  4. 04安全でないコマンド実行の例示

活用シーン

  1. 01MCPクライアント経由でのコマンド実行
  2. 02よく使うコマンドと使用例の確認
  3. 03MCP実装におけるコマンドインジェクションの調査

MCP 対応

`run_command`と`magical_tool`のツール、および`terminal_commands_cheat_sheet`リソースを公開するMCPサーバーです。Claude Desktopに設定できます。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

Terminal MCP サーバー

ターミナルコマンドを実行し、ターミナルコマンドのチートシートを提供するシンプルな MCP サーバーです。また、MCP サーバーの実装における潜在的なセキュリティ脆弱性についても説明します。

機能

  1. ターミナルコマンドの実行

    • 任意のターミナルコマンドを実行します
    • 標準出力、標準エラー出力、戻りコードを取得します
    • エラー処理
  2. セキュリティ脆弱性のデモ

    • magical_tool は安全でないコマンド実行を実演します
    • 悪意のあるコードが実行される可能性を示します
    • 安全な実装の重要性を強調します
  3. ターミナルコマンドのチートシート

    • 重要なターミナルコマンド 30 個
    • 一般的なオプションとフラグ
    • 使用例

インストール

  1. 仮想環境を作成します:
uv venv
  1. 仮想環境を有効にします:
source .venv/bin/activate
  1. 依存関係をインストールします:
uv pip install -e .

Claude への追加

  1. Claude のデスクトップ設定ファイルを確認します:
~/Library/Application Support/Claude/claude_desktop_config.json
  1. ターミナルサーバーの設定を追加します:
{
    "mcpServers": {
        "terminal": {
            "command": "/path/to/terminal-mcp-server/.venv/bin/python",
            "args": [
                "/path/to/terminal-mcp-server/src/server.py"
            ]
        }
    }
}

/path/to/terminal-mcp-server を、このリポジトリをクローンした実際のパスに置き換えてください。

  1. Claude を再起動して、新しい設定を読み込みます。

MCP Inspector によるテスト

MCP サーバーは、MCP サーバーと対話するための Web インターフェースを提供する MCP Inspector ツールを使ってテストできます。

  1. MCP Inspector をインストールします:
npm install -g @modelcontextprotocol/inspector
  1. 別のターミナルでインスペクターを実行します:
npx @modelcontextprotocol/inspector

これにより、ローカルで Web アプリケーションが起動し、次の操作ができます:

  • MCP サーバーに接続する
  • 使用可能なすべてのツールをテストする
  • ツールの応答を確認する
  • リソースを調べる
  • 通信をデバッグする

使用方法

サーバーが提供する機能:

  1. run_command ツール:
# Safe command execution
result = await run_command("ls -la")
print(result["stdout"])  # Command output
print(result["stderr"])  # Any errors
print(result["return_code"])  # Exit code
  1. magical_tool:
# WARNING: Demonstrates unsafe command execution
# Shows how external commands can be executed without proper validation
result = await magical_tool()
print(result["stdout"])  # Executed command output
print(result["stderr"])  # Any errors
print(result["return_code"])  # Command exit code
  1. terminal_commands_cheat_sheet リソース:
# Access terminal commands cheat sheet
commands = await terminal_commands_cheat_sheet()
print(commands)  # List of commands with examples

セキュリティ上の影響

magical_tool は、ユーザー入力やファイルパスを適切に検証せずにコマンド実行で直接使用する、一般的なセキュリティ脆弱性を実演します。これにより、次のことが可能になるおそれがあります:

  1. コマンドインジェクション
  2. 任意のファイルへのアクセス
  3. システムの操作

これは、本番システムでしてはならないことを示す教育目的の例として、意図的に含められています。

開発

  1. リポジトリをクローンします
  2. 上記の手順に従って仮想環境を作成し、有効にします
  3. 依存関係をインストールします
  4. サーバーを実行します:
uv run src/server.py

エラー処理

  • すべてのツールはエラーを適切に処理します
  • コマンドの失敗時には、標準エラー出力にエラーメッセージが返されます
  • リソースへのアクセスに失敗すると、エラーメッセージが返されます
  • 0 以外の戻りコードは、コマンドの失敗を示します

ライセンス

MIT

コメント

MCP は初めてですか?

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

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