Claude Media
Desktop CommanderでClaudeにPCのファイルとターミナルを任せる導入と安全面

Desktop CommanderでClaudeにPCのファイルとターミナルを任せる導入と安全面

Desktop Commanderの導入3経路、Claudeに渡る操作の範囲、allowedDirectoriesが境界にならない理由、手元に残るログ、Claude Codeとの役割の違いをまとめます。

Desktop Commanderは、Claude Desktopに「自分のPCのファイルを読み書きし、ターミナルでコマンドを走らせる」手を与えるMCPサーバーです。入れた瞬間から、Claudeはチャットの外にある実ファイルと実プロセスを動かせるようになります。

導入は数分で済みます。時間をかけるべきは、何を渡したのかを把握する部分です。作り手自身が、組み込みの制限を「安全の境界ではない」と明記しているからです。

Desktop Commanderは何を渡すツールか

プロジェクトのFAQは、Claudeがファイルシステムとターミナルを操作し、プロセスを管理できるようになるツールと説明しています。コネクタ一覧のページでも、説明文は「ローカルマシン上でファイルとターミナルにアクセスして構築・調査・自動化する」という趣旨です。ページには26個のツールが並びます。

押さえておきたいのは、次の二点です。

  • コネクタ一覧には「Anthropic verified」の表示があり、提供元は「Desktop Commander Team」、追加時期は2026年7月とされています
  • FAQには「Anthropic公式の製品ではなく、独立したオープンソースプロジェクト」と書かれています

つまりverifiedの表示は、Anthropicが作ったという意味にはなりません。同じコネクタページの注意書きは、Anthropicは開発者が提供するツールの中身を管理できず、期待どおりに動くことも後から変わらないことも確認できない、と述べています。信頼するかどうかの判断は、使う側に残ります。

MCPの基本や、拡張の配布形式の話はDesktop Extensions(.mcpb)の解説にあります。この記事はその一製品、Desktop Commanderの中身に絞ります。

導入の3経路 — npx・手動設定・Docker

READMEにはClaude Desktop向けの導入方法が複数あり、ここでは性質の違う3つを取り上げます。READMEによると、npx・手動設定・Dockerのいずれも、Claudeを再起動すると最新版に更新されます。FAQの前提条件の項には、Node.js 18以上とClaude Desktopに加えて、Claude Proの契約が挙がっています。

1. npxのセットアップコマンド

READMEが最初に挙げる方法です。

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

実行後にClaudeを再起動します。新規ユーザー向けのオンボーディングが不要なら--no-onboardingを付けます。削除は、同じパッケージにremoveを渡して実行します。

2. claude_desktop_config.jsonを手で編集

自分で設定ファイルを管理したい場合の経路です。ファイルの場所はREADMEによるとmacOSが~/Library/Application Support/Claude/claude_desktop_config.json、Windowsが%APPDATA%\Claude\claude_desktop_config.json、Linuxが~/.config/Claude/claude_desktop_config.jsonです。

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

保存後にClaude Desktopを再起動すると、ツールが読み込まれます。起動時に「Not ready after 60 seconds」のようなエラーが出る場合は、MCP起動失敗のエラー解説が参考になります。

3. Dockerで隔離して動かす

READMEの「Option 6」で、Dockerコンテナの中でサーバーを動かします。フォルダのマウントを付けない最小構成は次のとおりです。

{
  "mcpServers": {
    "desktop-commander-in-docker": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "mcp/desktop-commander:latest"]
    }
  }
}

この形だとホストのファイルは見えません。作業用に見せたいフォルダだけを-vで追加します。例えばREADMEには-v /Users/username/Desktop:/mnt/desktopの形の例があります。更新はdocker pull mcp/desktop-commander:latestの後に再起動です。

コネクタ一覧のページには「Add to Claude」のボタンもあります。そこから先の手順はページに書かれていないので、上の3経路との関係は分かりません。npxやDockerの設定を自分で管理したいなら、READMEの手順に従うのが確実です。

Claudeに渡る操作の範囲

READMEのツール表を見ると、渡している権限の幅が分かります。

区分主なツールできること
設定主なツールget_config / set_config_valueできることサーバー設定の参照と変更
ターミナル主なツールstart_process / interact_with_process / kill_processできることプログラム起動、対話、プロセスの強制終了
ファイル主なツールread_file / write_file / move_file / start_searchできること読み書き、移動、名前・内容の検索
編集主なツールedit_blockできること対象箇所だけの置換
履歴主なツールget_recent_tool_callsできること直近のツール呼び出しの参照

見落としやすいのは、読み取りの対象がローカルファイルに限られない点です。READMEによるとread_fileはURL、Excel、PDFも扱い、write_pdfでPDFの作成や編集まで行います。

起動したプロセスはread_process_outputで出力を後から読め、force_terminateで止められます。

ここで一つ、ツールの許可について確認しておきます。FAQのトラブルシューティングには、Claudeがツールの使用許可を求めたら「チャット全体に対して承認する」と書かれています。承認を一度で済ませる運用は、1回ごとのコマンドを目で見る機会を減らします。ターミナルを持つツールでは、この選択が実質的な安全設定になります。

許可の考え方 — ガードレールであって境界ではない

SECURITY.mdの冒頭は、Desktop Commanderを「特権を持つローカル自動化ツール」と位置づけています。接続されたAIクライアントが頼んだことを増幅する存在で、依頼が本物のユーザーからか、プロンプトインジェクションか、乗っ取られたアカウントからかは判別しない、という前提です。

組み込みの制御についても、表で明言されています。

制御役割セキュリティ境界か
allowed directories役割誤ったファイルアクセスを減らすセキュリティ境界かいいえ
コマンドのブロックリスト役割誤った実行を減らすセキュリティ境界かいいえ
シンボリックリンク経由の逸脱防止役割偶発的なパス逸脱の一部を防ぐセキュリティ境界かいいえ
Docker / VMによる隔離役割ツールを隔離環境に閉じ込めるセキュリティ境界かはい

理由もそこに書かれています。ターミナルで任意のプログラムを起動できる以上、パスやコマンドによる制限はシェルの置換、絶対パス、別のインタープリタ経由で回避できます。READMEも、allowedDirectoriesが制限するのはファイル操作だけで、ターミナルコマンドは許可ディレクトリの外にも届くと注意しています。

設定を見直す手順

それでも、誤操作を減らす目的でディレクトリを絞る意味はあります。READMEの設定例は次の形です。

get_config({})
set_config_value({ "key": "allowedDirectories", "value": ["/Users/username/projects"] })

READMEが挙げる注意は3点です。

  • 設定の変更は、作業とは別のチャットで行う。ファイルアクセスが拒否されたとき、Claude自身がallowedDirectoriesを書き換えようとすることがあるため
  • allowedDirectoriesに空の配列を入れると、ファイル操作の対象がファイルシステム全体になる
  • 変更のあとにget_configで値が反映されたかを確かめる

境界が必要な作業では、SECURITY.mdが推奨するとおりDockerや仮想マシン、専用の端末を使います。加えて、接続するAIアカウントの多要素認証を有効にする、使わないクライアントを外す、ホームフォルダ全体でなくプロジェクト単位のディレクトリに範囲を絞る、といった実務上の手当てが挙げられています。MCP全般の攻撃経路はMCPの脅威モデルの解説で扱っています。

FAQの安全面の記述は読み合わせが要る

安全面を調べるとき、FAQだけを読むと混乱します。同じFAQの中で、記述が揺れている箇所があるからです。

  • 「Claudeにファイルへのアクセス許可がない」の項は、最近の更新でディレクトリ制限は取り除かれたと書く。一方、セキュリティの項は「ディレクトリ制限は存在するが回避できる」と書く
  • ブロックリストについて、ある項はrmやsudoなどを既定でブロックすると述べ、別の項は事前定義のブロックリストを持たないと述べる

さらにFAQの長時間コマンドの項はexecute_commandとread_outputという名前で説明していますが、READMEのツール表にあるのはstart_processとread_process_outputです。FAQは古い名前の記述が残っているようです。

現行の設計に沿っているのは、SECURITY.mdとREADMEの記述です。SECURITY.mdには「2026年7月更新」の記載があり、ブロックリストもディレクトリ制限も境界ではないと書かれています。FAQの安全面の説明だけで判断せず、SECURITY.mdを併読してください。

手元に残るログとテレメトリ

READMEには、ツール呼び出しの記録について具体的な記述があります。

  • ~/.claude-server-commander/claude_tool_call.log(Windowsは%USERPROFILE%\.claude-server-commander\)に、全ツール呼び出しの時刻・ツール名・引数が追記される
  • 引数は伏せ字などの処理をせず書かれるため、コマンド文字列、ファイルパス、渡した秘密の値が含まれうる
  • 10MBで回転し、古いファイルは自動削除されない
  • 別にtool-history.jsonlがあり、出力は1レコード4KiBで切り詰められる

APIキーを引数に含むコマンドを実行させたなら、そのキーがログに残る可能性があります。共有PCや、フォルダごとバックアップに回す環境では、この保存先を意識しておく価値があります。

テレメトリは別の仕組みです。READMEによると、匿名化された限定的な情報を収集し、ファイルの中身、ファイルパス、コマンド引数は含みません。止めるには、Claudeに「Desktop Commanderのテレメトリを無効にして」と頼むか、設定でtelemetryEnabledをfalseにします。

Claude Codeとの使い分け

役割が重なって見えるため、迷いやすい組み合わせです。

READMEにはClaude Code向けの導入手順もあります。

claude mcp add --scope user desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest

ただしClaude Codeにはファイルの読み書きとシェル実行が最初から備わっており、標準の権限モードでは書き込みやBashコマンドの実行に承認を求めます。設定すれば、Bashコマンドの到達範囲をOSレベルで制限するサンドボックスも使えます。sandbox.enabledの設定解説にその入口があります。

そのサンドボックスの対象はシェルコマンドだけです。Claude Codeのドキュメントは、ファイルツール、MCPサーバー、hooksはサンドボックスの外で動くと明記しています。Desktop CommanderをMCPとしてClaude Codeに足すと、そのターミナル実行はClaude Codeの隔離の外側に出ます。足す場合は、重複する権限を二重に持つことになる点を踏まえて判断することになります。

整理すると、使い分けの軸は「どのアプリで作業するか」です。

場面向く選択
Claude Desktopのチャットから、フォルダ整理やCSV分析、ローカルでの調査をさせたい向く選択Desktop Commander
リポジトリ内でコードを書かせ、テストを回し、承認とサンドボックスで管理したい向く選択Claude Code標準の機能
触らせたくないファイルがある環境で試したい向く選択DockerのDesktop Commander、または隔離した環境

ローカルのMCPとリモートのMCPの選び分けはローカルMCPとリモートMCPの比較が詳しく、Desktop Commanderは前者の典型例です。

まとめ

Desktop Commanderは、Claude Desktopにローカル操作の力を与える手軽な方法です。ただし、組み込みの制限は誤操作を減らす程度の仕組みで、悪意のある依頼や乗っ取りを防ぐ壁ではありません。

試すなら、まずDockerで空の環境から始めるか、allowedDirectoriesをプロジェクト1つに絞り、ツール承認の粒度を決めてから実PCに広げる順番が無理のない進め方です。重要なデータが入った端末へ直接入れる前に、ログの保存先と承認の運用を決めておけば、後から困る場面を減らせます。

この記事を共有:XはてブLinkedIn