見出し画像

Claude x D Commander MCPにて、ターミナル権限をLLMにぶん投げてみる

普段作業に欠かせないTool「ターミナル」。
しかし、ターミナルを使っていると、あれ?あの作業するコマンドなんだっけ?といった、ターミナルコマンドがわからなくなる問題がよく発生するため、今回、ターミナル利用権限をLLMにぶん投げて、実行させることで、ターミナルを通じたソートを自動化してみました。

0.Desktop Commander MCPとは?

Desktop Commander MCPは、Claude Desktopアプリケーションにターミナルコマンドの実行やファイルシステムの操作、プロセス管理などの機能を追加するオープンソースのMCP(Model Context Protocol)サーバーです。これにより、Claudeを単なるチャットボットから、ローカル環境での高度な操作が可能なAIアシスタントへと進化させます。

1.Claude Desktopをインストールし、ログインします。

https://claude.ai/download

上記リンクより、Claude Desktopをインストールし、ログインします。Claude Desktopは初回起動時に、画面を選択しても動作しない等のトラブルが発生することがありますが、これはセットアップに時間がかかっているだけなので、画面選択が反応しない場合は、しばらく待ってみることをオススメします。

2.Desktop Commander MCP をインストール

Claude Desktopのままでは、ClaudeがPowerShellを操作できないため、「Desktop Commander MCP」を入れていきます。

2.1: Claude Desktop configファイルを編集する

画像

設定画面を開き「開発者」➛「構成を編集」を押します。「claude_desktop_config.json」を開き、以下の内容を追加します。

{
  "mcpServers": {
    "desktop-commander": {
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander"
      ]
    }
  }
}

2.2: Desktop Commander MCPをインストールする

Desktop Commanderを動作させるには、Node.jsが必要なため事前にインストールしておきます。

次に以下のコマンドをPowerShellを実行してインストールします。

npx @wonderwhy-er/desktop-commander@latest setup
画像

最後にClaude Desktopを再起動します。
「ファイル」➛「終了」をクリックし終了後再起動します。

画像

再起動すると、MCPが有効になります。

画像

2.3: Desktop Commanderをしてみる

ドキュメントフォルダ直下のファイルを取得してもらう

画像

Dドライブを圧縮しているデータを探してもらう

画像

3.Desktop Commander にて使用可能なツール一覧

🔧 設定関連

  • get_config
    サーバーの現在の設定をJSON形式で取得します。これには以下の項目が含まれます:

    • blockedCommands: 実行を禁止するシェルコマンドのリスト

    • defaultShell: コマンド実行時に使用するシェル(例: bash, zsh, powershell)

    • allowedDirectories: ファイル操作が許可されているディレクトリのリスト(※ターミナルコマンドはこの制限を受けません)(GitHub)

  • set_config_value
    特定の設定項目の値を変更します。利用可能な設定項目は上記と同様です。

💻 ターミナル操作

  • execute_command
    指定したターミナルコマンドを実行します。タイムアウトや使用するシェルの指定が可能です。

  • read_output
    実行中のターミナルセッションから新しい出力を取得します。

  • force_terminate
    実行中のターミナルセッションを強制終了します。

  • list_sessions
    現在アクティブなターミナルセッションの一覧を表示します。

  • list_processes
    実行中のプロセスを詳細情報付きで一覧表示します。

  • kill_process
    指定したPIDのプロセスを終了します。

📁 ファイルシステム操作

  • read_file
    ローカルファイルまたはURLから内容を読み取ります。テキストと画像の両方に対応しています。

  • read_multiple_files
    複数のファイルを同時に読み取ります。

  • write_file
    ファイルの内容を完全に置き換えます。大規模な変更に適しています。

  • create_directory
    新しいディレクトリを作成するか、既存のディレクトリが存在することを確認します。

  • list_directory
    ディレクトリ内のファイルとサブディレクトリの詳細な一覧を取得します。

  • move_file
    ファイルやディレクトリを移動または名前を変更します。

  • search_files
    ファイル名を部分一致(大文字小文字を区別しない)で検索します。

  • search_code
    ripgrepを使用して、ファイル内容内のテキストやコードパターンを検索します。

  • get_file_info
    ファイルやディレクトリの詳細なメタデータを取得します。

✏️ テキスト編集

  • edit_block
    ファイル内の特定の部分を精密に置換します。ファイルサイズの20%未満の変更に最適です。

4.感想

Desktop Commander MCP導入により、LLM Chat + ターミナルを実現させ、Claude Desktopがより高度な作業ができるようになりました。
これは、Claude DesktopにShellの調査能力と実行能力を融合することで、Claude Desktopがより複雑なタスクを処理可能になりました。

しかし、ターミナルの自動化の視点で見るとDesktop Commanderによるshellの自動化は問題を抱えています。

  • 生成されたコマンドについて、ユーザーによるレビューが難しいため、意図しないコマンドが実行される恐れがあること。

  • ユーザーが手動でコマンドを入力できないことです。

例えば、インフラエンジニアが本構成で、サーバーメンテナンスを半自動化するようなタスクには、本MCPは全く向いていません。
意図しないコマンドが実行され、サーバーをクラッシュさせる可能性があるためです。
またパスワード情報などユーザーが手動入力したい情報についても直接ターミナルを叩けないため、ターミナルのサポートツールとして利用が推奨出来ないのが現状です。。

いいなと思ったら応援しよう!

ピックアップされています

博士的AI情報マガジン

  • 37本

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
Claude x D Commander MCPにて、ターミナル権限をLLMにぶん投げてみる|猩々博士
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1