Desktop Commander MCP について
Desktop Commander MCPは、AIクライアントからローカルファイルやターミナルプロセスを操作したい開発者などに向けたMCPサーバーです。ファイル検索・編集に加え、対話的なコマンド実行や一般的な文書形式に対応します。
主な機能
- 01コマンド実行とプロセス管理
- 02ファイルの検索・読み取り・編集
- 03Excel、PDF、DOCXの編集
- 04Python、Node.js、Rのメモリ内実行
- 05ツール呼び出し履歴と監査ログの確認
活用シーン
- 01複数ディレクトリでコードやテキストを検索
- 02複数ファイルの該当箇所を編集
- 03長時間のターミナル処理を実行
- 04表計算ファイルや文書を分析・更新
MCP 対応
MCPクライアントにターミナル、プロセス、ファイルシステム、文書の操作機能を公開します。Remote MCP経由でChatGPTやClaude webなどからも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
26掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| origin | enum | いいえ | ui | llm |
詳細
Desktop Commander MCP
AI を使ってファイルを検索・更新・管理し、ターミナルコマンドを実行
ホストのクライアントサブスクリプションを利用するため、API トークンのコストをかけずに、ほかの AI エディターを大きく超えるコードやテキストの操作、プロセスの実行、タスクの自動化が可能です。
目次
- 機能
- インストール方法
- はじめに
- 使い方
- ファイルプレビュー UI と Markdown エディター
- 長時間実行コマンドの処理
- 開発中の機能と TODO
- スポンサーと支援者
- ウェブサイト
- メディア
- 推薦の声
- よくある質問
- コントリビューション
- ライセンス
AI 開発ツールをすべてひとつの場所に。 Desktop Commander は、すべての開発ツールをひとつのチャットに集約します。 Model Context Protocol(MCP)を通じて、コンピューター上で長時間実行されるターミナルコマンドを実行し、プロセスを管理できます。MCP Filesystem Server を基盤とし、ファイルの検索と置換による編集機能を追加しています。
機能
- リモート AI 制御 - Remote MCP を介して、ChatGPT、Claude web、その他の AI サービスから Desktop Commander を使用できます
- ファイルプレビュー UI - Claude Desktop で、レンダリングされた Markdown、インライン画像、展開可能なコンテンツ、内蔵 Markdown エディター、すばやくアクセスできる「フォルダーで開く」機能を備えたビジュアルファイルプレビューを利用できます
- インタラクティブなプロセス制御を備えた強化されたターミナルコマンド
- ファイルを保存せずにメモリ上でコードを実行(Python、Node.js、R)
- データをすぐに分析 - CSV/JSON/Excel ファイルの分析を依頼するだけです
- ネイティブの Excel ファイル対応 - 外部ツールを使わずに、Excel ファイル(.xlsx、.xls、.xlsm)の読み取り、書き込み、編集、検索ができます
- PDF 対応 - PDF のテキスト抽出、新しい PDF の Markdown からの作成、既存 PDF の変更ができます
- DOCX 対応 - 外科的な XML 編集と Markdown から DOCX への変換により、Word 文書(.docx)の読み取り、作成、編集、検索ができます
- 実行中のプロセス(SSH、データベース、開発サーバー)と対話
- 出力をストリーミングしながらターミナルコマンドを実行
- コマンドのタイムアウトとバックグラウンド実行に対応
- プロセス管理(プロセスの一覧表示と終了)
- 長時間実行コマンドのセッション管理
- プロセス出力のページネーション - オフセット/長さを指定してターミナル出力を読み取り、コンテキストのあふれを防ぎます
- サーバー設定の管理:
- 設定値の取得/設定
- 複数の設定を一度に更新
- サーバーを再起動せずに設定を動的に変更
- ファイルシステムのあらゆる操作:
- ファイルの読み取り/書き込み(テキスト、Excel、PDF、DOCX)
- ディレクトリの作成/一覧表示
- ディレクトリの再帰的な一覧表示。大きなフォルダーでのコンテキストあふれを防ぐため、深さを設定できます
- ファイル/ディレクトリの移動
- ファイルと内容の検索(Excel の内容を含む)
- ファイルのメタデータの取得
- 負のオフセットによるファイル読み取り:負のオフセット値を使用して、ファイルの末尾から読み取れます(Unix の tail のように動作します)
- コード編集機能:
- 小さな変更に適した、対象を絞ったテキスト置換
- 大きな変更に適した、ファイル全体の書き換え
- 複数ファイルに対応
- パターンに基づく置換
- vscode-ripgrep を使用した、フォルダー内のコードやテキストの再帰検索
- ローカルのツール呼び出し履歴と監査ログ:
- ツール呼び出しと引数は、Desktop Commander の実行中のマシンにローカルで記録されます
- 出力プレビューに上限を設けた直近の呼び出し履歴を、
get_recent_tool_callsから取得できます - サイズに基づくローテーション/トリミングにより、アクティブな履歴ファイルのサイズを制限します
- 安全対策(サンドボックスではありません。SECURITY.md を参照してください):
- ファイル操作でのシンボリックリンクのたどりを防止
- 誤実行を防ぐコマンドブロックリスト
- 完全な隔離を実現する Docker 隔離
インストール方法
ChatGPT、Claude web、その他のリモートクライアントについては、リモートデバイス用ランチャーを参照してください。これらのランチャーは、Node.js がインストールされていない場合はインストールし、macOS、Linux、Windows で Desktop Commander Remote を実行します。
Claude Desktop へのインストール
Desktop Commander には、Claude Desktop 用の複数のインストール方法があります。
📋 更新とアンインストールについて: オプション 1、2、3、4、6 は自動更新に対応しています。オプション 5 では手動更新が必要です。詳細は以下を参照してください。
オプション 1:npx でインストール ⭐ 自動更新(Node.js が必要)
ターミナルで次のコマンドを実行してください:
npx @wonderwhy-er/desktop-commander@latest setup
デバッグモード(Node.js インスペクター接続を許可)を使用する場合:
npx @wonderwhy-er/desktop-commander@latest setup --debug
セットアップ時のコマンドラインオプション:
--debug:Node.js インスペクターのデバッグモードを有効にします--no-onboarding:新規ユーザー向けのオンボーディングプロンプトを無効にします
Claude の実行中は再起動してください。
✅ 自動更新: はい - Claude の再起動時に自動的に更新されます
🔄 手動更新: セットアップコマンドをもう一度実行します
🗑️ アンインストール: npx @wonderwhy-er/desktop-commander@latest remove を実行します
オプション 2:bash スクリプトインストーラーを使用(macOS)⭐ 自動更新(必要に応じて Node.js をインストール)
curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash
このスクリプトは、すべての依存関係と設定を自動的に処理します。
✅ 自動更新: はい
🔄 手動更新: 上記の bash インストーラーコマンドを再実行します
🗑️ アンインストール: npx @wonderwhy-er/desktop-commander@latest remove を実行します
オプション 3:Smithery 経由でインストール ⭐ 自動更新(Node.js が必要)
- アクセス: https://smithery.ai/server/@wonderwhy-er/desktop-commander
- Smithery にログイン(まだログインしていない場合)
- 右側でクライアント(Claude Desktop)を選択します
- クライアントを選択した後に表示されるキーを使ってインストールします
- Claude Desktop を再起動します
✅ 自動更新: はい - Claude の再起動時に自動的に更新されます
🔄 手動更新: Smithery のページにアクセスして再インストールします
オプション 4:claude_desktop_config に手動で追加 ⭐ 自動更新(Node.js が必要)
このエントリを claude_desktop_config.json に追加します。
- Mac の場合:
~/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 が実行中の場合は再起動します。
✅ 自動更新: はい - Claude の再起動時に自動的に更新されます
🔄 手動更新: セットアップコマンドを再実行します
🗑️ アンインストール: npx @wonderwhy-er/desktop-commander@latest remove を実行するか、claude_desktop_config.json からエントリを削除します
オプション 5:ローカルにチェックアウト ❌ 手動更新(Node.js が必要)
git clone https://github.com/wonderwhy-er/DesktopCommanderMCP.git
cd DesktopCommanderMCP
npm run setup
Claude が実行中の場合は再起動します。
セットアップコマンドによって、依存関係がインストールされ、サーバーがビルドされ、Claude のデスクトップアプリが設定されます。
❌ 自動更新: いいえ - 手動での git 更新が必要です
🔄 手動更新: cd DesktopCommanderMCP && git pull && npm run setup
🗑️ アンインストール: npx @wonderwhy-er/desktop-commander@latest remove を実行するか、クローンしたディレクトリと Claude の設定から MCP サーバーのエントリを削除します
オプション 6:Docker でインストール 🐳 ⭐ 自動更新(Node.js 不要)
分離された環境を求める方や、Node.js がインストールされていない方に最適です。永続的な作業環境を備えた、サンドボックス化された Docker コンテナ内で実行されます。
前提条件: Docker Desktop がインストールされ、実行中であること。Claude Desktop アプリがインストールされていること。
macOS/Linux:
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)
Windows PowerShell:
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'))
インストーラーが Docker を確認してイメージを取得し、フォルダーのマウントを促してから、Claude Desktop を設定します。
Docker の永続性: ツール、設定、作業ファイル、パッケージキャッシュはすべて、再起動後も保持されます。
Docker の手動設定
基本設定(ファイルアクセスなし):
{
"mcpServers": {
"desktop-commander-in-docker": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp/desktop-commander:latest"]
}
}
}
フォルダーのマウントあり:
{
"mcpServers": {
"desktop-commander-in-docker": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/Users/username/Desktop:/mnt/desktop",
"-v", "/Users/username/Documents:/mnt/documents",
"mcp/desktop-commander:latest"
]
}
}
}
高度なフォルダーのマウント:
{
"mcpServers": {
"desktop-commander-in-docker": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "dc-system:/usr",
"-v", "dc-home:/root",
"-v", "dc-workspace:/workspace",
"-v", "dc-packages:/var",
"-v", "/Users/username/Projects:/mnt/Projects",
"-v", "/Users/username/Downloads:/mnt/Downloads",
"mcp/desktop-commander:latest"
]
}
}
}
Docker 管理コマンド
macOS/Linux:
# Check status
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) --status
# Reset all persistent data
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) --reset
Windows PowerShell:
# Check status
$script = (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'); & ([ScriptBlock]::Create("$script")) -Status
# Reset all data
$script = (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'); & ([ScriptBlock]::Create("$script")) -Reset
# Show help
$script = (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'); & ([ScriptBlock]::Create("$script")) -Help
トラブルシューティング: リセットして最初から再インストールします。
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) --reset && bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)
✅ 自動更新: はい - latest タグによって新しいバージョンが自動的に取得されます
🔄 手動更新: docker pull mcp/desktop-commander:latest を実行してから Claude を再起動します
その他のクライアントへのインストール
Desktop Commander は、MCP 互換の任意のクライアントで動作します。標準の JSON 設定は次のとおりです。
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": ["-y", "@wonderwhy-er/desktop-commander@latest"]
}
}
}
以下の場所にあるクライアントの MCP 設定ファイルに、これを追加します。
Cursor
または、~/.cursor/mcp.json(グローバル)か、プロジェクトフォルダー内の .cursor/mcp.json(プロジェクト固有)に手動で追加します。
詳しくは、Cursor MCP のドキュメントをご覧ください。
Windsurf
`~/.codeium/windsurf/mcp_config.json` に追加します。詳細については、[Windsurf MCP docs](https://docs.windsurf.com/windsurf/cascade/mcp) をご覧ください。VS Code / GitHub Copilot
プロジェクト内の .vscode/mcp.json または VS Code のユーザー設定(JSON)に追加します。Chat > MCP で MCP が有効になっていることを確認してください。エージェントモードで動作します。
詳細については、VS Code MCP docs をご覧ください。
Cline
VS Code の Cline 拡張機能の設定から構成します。Cline のサイドバーを開き、MCP Servers アイコンをクリックして、上記の JSON 設定を追加します。詳細については、Cline MCP docs をご覧ください。
Roo Code
Roo Code の MCP 設定ファイルに追加します。詳細については、Roo Code MCP docs をご覧ください。
Claude Code
claude mcp add --scope user desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
現在のプロジェクトにのみインストールするには、--scope user を削除してください。詳細については、Claude Code MCP docs をご覧ください。
Trae
「Add manually」機能を使い、上記の JSON 設定を貼り付けます。詳細については、Trae MCP docs をご覧ください。
Kiro
Kiro > MCP Servers に移動し、+ Add をクリックして、上記の JSON 設定を貼り付けます。詳細については、Kiro MCP docs をご覧ください。
Codex (OpenAI)
Codex は TOML 設定を使用します。Desktop Commander を追加するには、次のコマンドを実行します。
codex mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
または、手動で ~/.codex/config.toml に追加します。
[mcp_servers.desktop-commander]
command = "npx"
args = ["-y", "@wonderwhy-er/desktop-commander@latest"]
詳細については、Codex MCP docs をご覧ください。
JetBrains (AI Assistant)
JetBrains IDE で、Settings → Tools → AI Assistant → Model Context Protocol (MCP) に移動し、+ Add をクリックして、As JSON を選択し、上記の JSON 設定を貼り付けます。詳細については、JetBrains MCP docs をご覧ください。
Gemini CLI
~/.gemini/settings.json に追加します。
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": ["-y", "@wonderwhy-er/desktop-commander@latest"]
}
}
}
詳細については、Gemini CLI docs をご覧ください。
Augment Code
Cmd/Ctrl+Shift+P を押して Augment パネルを開き、上記の JSON 設定を使って desktop-commander という名前の新しい MCP サーバーを追加します。詳細については、Augment Code MCP docs をご覧ください。
Qwen Code
Desktop Commander を追加するには、次のコマンドを実行します。
qwen mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
または、.qwen/settings.json(プロジェクト)か ~/.qwen/settings.json(グローバル)に追加します。詳細については、Qwen Code MCP docs をご覧ください。
ChatGPT / Claude Web (Remote MCP)
コマンドは引き続きコンピューター上で実行しながら、ChatGPT、Claude web、その他の AI サービスから Desktop Commander を使用できます。
リモートデバイスを起動します。
npx @wonderwhy-er/desktop-commander@latest remote
初回実行時にブラウザー認証を完了し、mcp.desktopcommander.app で AI を接続します。
Ctrl+Cでローカルデバイスを一時的に停止します- 利用可能な CLI オプションを確認するには、
npx @wonderwhy-er/desktop-commander@latest remote --helpを実行します - Remote MCP setup, logout/revocation, CLI reference, and troubleshooting をご覧ください
セキュリティ
- ✅ リモートデバイスは、実行中のときのみコマンドを受け付けます
- ✅ コマンドはユーザー権限でローカルに実行されます
- ✅ 安全な OAuth 認証と暗号化された通信チャネル
Desktop Commander の更新とアンインストール
自動更新(オプション 1、2、3、4、6)
**オプション 1(npx)、オプション 2(bash インストーラー)、オプション 3(Smithery)、オプション 4(手動設定)、オプション 6(Docker)**は、Claude を再起動するたびに最新バージョンへ自動更新されます。手動での操作は不要です。
手動更新(オプション 5)
- オプション 5(ローカルチェックアウト):
cd DesktopCommanderMCP && git pull && npm run setup
Desktop Commander のアンインストール
🤖 自動アンインストール(推奨)
Desktop Commander を完全に削除する最も簡単な方法です。
npx @wonderwhy-er/desktop-commander@latest remove
この自動アンインストーラーは、次の処理を行います。
- ✅ Claude の MCP サーバー設定から Desktop Commander を削除します
- ✅ 変更を加える前に Claude の設定ファイルをバックアップします
- ✅ パッケージを完全に削除するための手順を案内します
- ✅ 問題が発生した場合はバックアップから復元します
🔧 手動アンインストール
自動アンインストーラーが動作しない場合、または手動で削除したい場合は、次の手順に従ってください。
Claude の設定から削除する
- Claude Desktop の設定ファイルを探します。
- 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"エントリーを見つけて削除します- ファイルを保存します
例 — 次のセクションを削除します。
{
"desktop-commander": {
"command": "npx",
"args": ["@wonderwhy-er/desktop-commander@latest"]
}
}
削除を完了するには、Claude Desktop を終了して再起動してください。
🆘 トラブルシューティング
自動アンインストールに失敗する場合:
- 代わりに手動アンインストールを行ってください
アンインストール後に Claude が起動しない場合:
- アンインストーラーが作成したバックアップ設定ファイルを復元してください
- または、claude_desktop_config.json の JSON 構文を手動で修正してください
サポートが必要な場合:
- Discord コミュニティに参加してください:https://discord.com/invite/kQ27sNnZr7
はじめに
Desktop Commander をインストールして Claude Desktop を再起動すれば、Claude の機能をさらに活用する準備は完了です。
🚀 新規ユーザー向けオンボーディング
Desktop Commander には、できることを見つけるためのインテリジェントなオンボーディング機能が備わっています。
新規ユーザーの場合: 使い始めたばかりで(コマンドの成功回数が 10 回未満の場合)、Desktop Commander の使用に成功すると、Claude が役立つ開始ガイドや実践的なチュートリアルを自動的に提示します。
いつでもサポートをリクエストできます: 次のように伝えるだけで、いつでもオンボーディングのサポートを求められます。
- 「Desktop Commander の使い方を教えて」
- 「Desktop Commander の例を見せて」
- 「Desktop Commander で何ができるの?」
Claude は、次のような初心者向けのチュートリアルや例を表示します。
- 📁 Downloads フォルダーを自動で整理する
- 📊 Python で CSV/Excel ファイルを分析する
- ⚙️ GitHub Actions の CI/CD を設定する
- 🔍 コードベースを調べて理解する
- 🤖 インタラクティブな開発環境を実行する
使用方法
サーバーは、いくつかのカテゴリに整理された包括的なツールセットを提供します。
利用可能なツール
| カテゴリ | ツール | 説明 |
|---|---|---|
| 設定 | get_config | サーバー設定全体をJSON形式で取得します(blockedCommands、defaultShell、allowedDirectories、fileReadLineLimit、fileWriteLineLimit、telemetryEnabledを含む) |
set_config_value | キーを指定して設定値を変更します。利用可能な設定: • blockedCommands:実行できないシェルコマンドの配列• defaultShell:コマンドに使用するシェル(例:bash、zsh、powershell)• allowedDirectories:ファイル操作でサーバーがアクセスできるファイルシステムパスの配列(⚠️ ターミナルコマンドは引き続きこれらのディレクトリ外のファイルにもアクセスできます)• fileReadLineLimit:一度に読み取る最大行数(デフォルト:1000)• fileWriteLineLimit:一度に書き込む最大行数(デフォルト:50)• telemetryEnabled:テレメトリーの有効/無効(ブール値) | |
| ターミナル | start_process | 入力可能な状態になったことを自動検出してプログラムを起動します |
interact_with_process | 実行中のプログラムにコマンドを送信し、応答を取得します | |
read_process_output | 実行中のプロセスの出力を読み取ります | |
force_terminate | 実行中のターミナルセッションを強制終了します | |
list_sessions | アクティブなターミナルセッションをすべて一覧表示します | |
list_processes | 実行中のプロセスを詳細情報とともにすべて一覧表示します | |
kill_process | PIDを指定して実行中のプロセスを終了します | |
| ファイルシステム | read_file | ローカルファイルシステム、URL、Excelファイル(.xlsx、.xls、.xlsm)、PDFから、行/ページ単位のページネーションで内容を読み取ります |
read_multiple_files | 複数のファイルを同時に読み取ります | |
write_file | ファイルの内容を書き込みます。上書きモードまたは追記モードを選択できます。Excelファイル(JSON 2次元配列形式)に対応しています。PDFにはwrite_pdfを使用してください | |
write_pdf | MarkdownからPDFファイルを新規作成するか、既存のPDFを変更します(ページの挿入/削除)。HTML/CSSによるスタイル設定とSVGグラフィックに対応しています | |
create_directory | 新しいディレクトリを作成するか、ディレクトリが存在することを確認します | |
list_directory | ファイルとディレクトリを詳細な再帰一覧で取得します(深度パラメーターに対応。デフォルトの深度は2) | |
move_file | ファイルやディレクトリを移動または名前変更します | |
start_search | 名前または内容のパターンでファイルを検索し、結果をストリーミング配信で取得します(テキストファイルとExcelの内容を検索) | |
get_more_search_results | オフセット指定に対応し、実行中の検索からページネーションされた結果を取得します | |
stop_search | 実行中の検索を正常に停止します | |
list_searches | アクティブな検索セッションをすべて一覧表示します | |
get_file_info | ファイルまたはディレクトリの詳細なメタデータを取得します(Excelファイルのシート情報を含む) | |
| テキスト編集 | edit_block | テキストファイルに対する対象を絞ったテキスト置換、またはExcelファイルに対する範囲指定のセル更新を適用します |
| 分析 | get_usage_stats | 参考情報として使用統計を取得します |
get_recent_tool_calls | デバッグとコンテキスト復元用に、引数と出力を含む最近のツール呼び出し履歴を取得します | |
give_feedback_to_desktop_commander | Desktop Commander Teamにフィードバックを送るため、ブラウザーでフィードバックフォームを開きます |
簡単な例
データ分析:
"Analyze sales.csv and show top customers" → Claude runs Python code in memory
リモートアクセス:
"SSH to my server and check disk space" → Claude maintains SSH session
開発:
"Start Node.js and test this API" → Claude runs interactive Node session
ツール使用例
検索/置換ブロック形式:
filepath.ext
<<<<<<< SEARCH
content to find
=======
new content
>>>>>>> REPLACE
例:
src/main.js
<<<<<<< SEARCH
console.log("old message");
=======
console.log("new message");
>>>>>>> REPLACE
強化された編集ブロック機能
edit_block ツールには、信頼性を高めるための機能強化がいくつか含まれています。
- プロンプトの改善:ツールの説明で、大きな変更を一度に行うのではなく、小さく焦点を絞った編集を複数回行うことを強調するようになりました
- ファジー検索によるフォールバック:完全一致が見つからない場合、ファジー検索を実行し、詳細な情報を返します
- 文字単位の差分:
{-removed-}{+added+}形式で、変更点を正確に表示します - 複数箇所への対応:
expected_replacementsパラメーターを使って、複数の箇所を置換できます - 包括的なログ記録:すべてのファジー検索を分析とデバッグ用に記録します
検索に失敗すると、見つかった最も近い一致について、類似度、実行時間、文字の差分などの詳細が表示されます。これらの情報はすべて自動的に記録され、後からファジー検索ログツールを使って分析できます。
Docker のサポート
🐳 隔離環境での使用
Desktop Commander は Docker コンテナー内で実行でき、ホストシステムから完全に隔離されるため、コンピューターへのリスクはありません。テストや開発、または完全なサンドボックス化が必要な場合に最適です。
インストール手順
-
Windows/Mac 用の Docker をインストールする
- docker.com から Docker Desktop をダウンロードしてインストールします
-
Desktop Commander の Docker 設定を取得する
- 次のサイトにアクセスします:https://hub.docker.com/mcp/server/desktop-commander/manual
- オプション A: 用意されたターミナルコマンドを使って自動セットアップします
- オプション B: 「Standalone」をクリックして設定 JSON を取得し、Claude Desktop の設定に手動で追加します

-
マシンのフォルダーをマウントする(近日公開)
- ローカルディレクトリを Docker コンテナーにマウントする手順は、近日中に提供されます
- これにより、完全な隔離を維持しながらファイルを操作できるようになります
Docker を使用するメリット
- ホストシステムから完全に隔離
- 異なるマシン間で一貫した環境
- 簡単にクリーンアップ — 作業が終わったらコンテナーを削除するだけです
- 新機能や設定のテストに最適
URL のサポート
read_fileでローカルファイルと URL の両方からコンテンツを取得できるようになりました- 例:
isUrl: trueパラメーターを指定したread_fileで、ウェブ上のリソースを読み取れます - リモートソースのテキストと画像の両方を処理します
- 画像(ローカルまたは URL)はテキストではなく、Claude のインターフェースに視覚的に表示されます
- Claude は実際の画像コンテンツを見て分析できます
- URL リクエストのデフォルトのタイムアウトは 30 秒です
ファイルプレビュー UI と Markdown エディター
Desktop Commander には、AI がファイルを操作する際にその内容を視覚的に表示する、Claude Desktop 用の高機能なファイルプレビューウィジェットが含まれています。
対応ファイル形式
- Markdown — 内蔵エディターでプレビューをレンダリング
- 画像 — インライン表示(PNG、JPEG、GIF、WebP など)
- コードファイル — 構文強調表示付きのソース表示
- HTML — ソース表示への切り替えが可能なプレビュー
- ディレクトリ — 展開/折りたたみと遅延読み込みに対応したインタラクティブなツリー
- PDF、Excel、DOCX — コンテンツをネイティブに抽出して表示
Markdown エディター
Claude Desktop で .md ファイルを表示しているときは、別のアプリを開かずに、プレビューパネル内で直接編集できます。
使い方:
- Claude に Markdown ファイルの読み込みまたは作成を依頼します
- ⤢ Expand ボタンを使って、ファイルのプレビューを全画面表示にします
- エディターは全画面モードで自動的に有効になります
- ライブプレビューの切り替え、コピー、元に戻す、保存の各操作を使ってコンテンツを編集します
- 変更はディスクに保存されます。パネルを折りたたむと、インライン表示に戻ります
エディターの機能:
- ライブの編集/プレビュー切り替え — 生の Markdown とレンダリング結果を切り替えます
- ディスクへの自動保存と保存状態インジケーター
- 元に戻す — 保存前の変更を取り消せます
- コピーボタン — Markdown ソース全体をコピーできます
- エディターで開く — パネルからデフォルトの Markdown アプリを直接起動します
- 部分ファイルの認識 — ファイルが一部しか読み込まれていない場合、前後の行を読み込んで統合します
- テキスト選択のコンテキスト — プレビューモードでテキストを選択すると、AI がその選択範囲を参照できます
ディレクトリブラウザー
Claude が list_directory を実行すると、結果は生のテキスト出力ではなく、プレビューパネル内のインタラクティブなファイルツリーとして開きます。
機能:
- 展開可能なツリー — フォルダーはクリックして展開または折りたたむことができ、最上位の内容はすぐに表示されます
- 遅延読み込み — 初期表示を高速に保つため、サブフォルダーは必要に応じて読み込まれます
- 大規模なディレクトリへの対応 — 項目が多いディレクトリでは、表示が煩雑にならないよう、代わりに
⚠ click to load allボタンが表示されます - Finder/Explorer で開く — 各フォルダーには、ファイルマネージャーで表示するためのクイックオープンボタンがあります
- クリックしてプレビュー — ツリー内のファイルをクリックすると、そのファイルがファイルプレビューパネルで直接開きます
- 戻るナビゲーション — ツリーからファイルを開いた後、← Back ボタンをクリックするとディレクトリ表示に戻ります
その他のプレビュー機能
- 展開/折りたたみ — コンパクトな概要行とパネル全体の表示を切り替えます
- フォルダーで開く — ワンクリックで Finder/Explorer にファイルを表示します
- 行を追加読み込み — 部分読み込みされた範囲の上または下のコンテンツを段階的に読み込みます
- テキスト選択 — プレビュー内のテキストをハイライトすると、AI が選択範囲を確認して参照できます
あいまい検索ログの分析(npm スクリプト)
あいまい検索のログシステムには、MCP 環境外でログを分析するための便利な npm スクリプトが含まれています。
# View recent fuzzy search logs
npm run logs:view -- --count 20
# Analyze patterns and performance
npm run logs:analyze -- --threshold 0.8
# Export logs to CSV or JSON
npm run logs:export -- --format json --output analysis.json
# Clear all logs (with confirmation)
npm run logs:clear
これらのスクリプトの詳細なドキュメントについては、scripts/README.md を参照してください。
あいまい検索ログ
Desktop Commander の edit_block ツールには、あいまい検索操作の包括的なロギング機能が含まれています。完全一致が見つからない場合、システムはあいまい検索を実行し、分析用の詳細情報をログに記録します。
ログに記録される内容
あいまい検索の操作ごとに、以下がログに記録されます。
- 検索文字列と検出文字列:探しているテキストと、見つかったテキスト
- 類似度スコア:一致度(0~100%)
- 実行時間:検索にかかった時間
- 文字の差異:異なる箇所を正確に示す詳細な差分
- ファイルのメタデータ:拡張子、検索文字列と検出文字列の長さ
- 文字コード:差異の原因となっている具体的な文字コード
ログの保存場所
ログは次の場所に自動保存されます。
- macOS/Linux:
~/.claude-server-commander-logs/fuzzy-search.log - Windows:
%USERPROFILE%\.claude-server-commander-logs\fuzzy-search.log
ログから分かること
あいまい検索ログを使うと、次のことを把握できます。
- 完全一致に失敗する理由:空白の違い、改行コード、文字エンコーディングなどの一般的な問題
- パフォーマンスの傾向:検索の複雑さが実行時間に与える影響
- ファイル形式の問題:一致の問題がよく発生するファイル拡張子
- 文字エンコーディングの問題:差分の原因となる具体的な文字コード
ローカルのツール履歴と監査ログ
Desktop Commander は、MCP サーバーを実行しているマシン上にローカルでツール呼び出しの記録を保持します。これらのローカルファイルは任意のテレメトリとは別のものであり、サーバー側の履歴監査ログではありません。
claude_tool_call.log — ローカル引数ログ
ローカル MCP サーバーが処理したすべてのツール呼び出しは、ISO タイムスタンプ、ツール名、JSON にシリアライズされた引数を含むテキスト行として追記されます。このローカルファイルに書き込まれる引数は、事前に編集またはサニタイズされないため、ツールに渡されたコマンドテキスト、ファイルパス、その他の機密値が含まれる場合があります。ツールの出力はこのファイルには書き込まれません。
アクティブなファイルは 10 MB に達するとローテーションされます。前のファイルは claude_tool_call_2026-09-07_14-32-10.log のようにタイムスタンプを使った名前に変更され、新しい claude_tool_call.log が作成されます。ローテーションされたファイルは、ロガーによって自動的に削除されません。
保存場所:
- macOS/Linux:
~/.claude-server-commander/claude_tool_call.log - Windows:
%USERPROFILE%\.claude-server-commander\claude_tool_call.log
tool-history.jsonl — 最近のツール呼び出し履歴
Desktop Commander は、get_recent_tool_calls で使用する JSON Lines 形式の履歴も保持します。各レコードには、タイムスタンプ、ツール名、引数、所要時間、返された結果が含まれます。この履歴は起動時にディスクから読み込まれるため、最近の履歴は MCP サーバーの再起動後も保持される場合があります。
この履歴のサイズを制限するため、次のようにしています:
- メモリには直近の呼び出しを最大 1,000 件まで保持します。
- 保存される出力は 1 レコードあたり 4 KiB に制限されます。これを超える出力は省略マーカーに置き換えられます。
- オンディスクファイルが 5 MiB を超えると、概ね新しい 4 MiB を残してトリミングされます。
- 起動時に履歴が 2,000 レコードを超えている場合、直近の 1,000 レコードに書き換えられます。
get_recent_tool_callsとtrack_ui_eventは、この JSONL 履歴から除外されます。
保存場所:
- macOS/Linux:
~/.claude-server-commander/tool-history.jsonl - Windows:
%USERPROFILE%\.claude-server-commander\tool-history.jsonl
リモート呼び出しとサーバー側の保持
Remote Desktop Commander 経由で実行される呼び出しも、引き続きローカル MCP サーバーによって処理され、上記と同じローカル履歴ファイルが使用されます。Remote Desktop Commander サービスは、呼び出しのルーティングと完了のため、ツールの引数と結果を mcp_remote_calls に一時的に保存します。終了済みの行は完了後まもなく自動的に削除対象となるため(削除可能になるのは 1 分後で、作成から 1 時間を上限とします)、サーバー側の長期的な監査履歴として保持されることはありません。
これらのローカル履歴ファイルは、Desktop Commander のオプションのテレメトリとも別個のものです。ファイル自体がテレメトリとしてアップロードされることはありません。テレメトリの詳細については、データ収集とプライバシー および PRIVACY.md を参照してください。
長時間実行コマンドの処理
時間がかかる可能性のあるコマンドについて:
設定の管理
⚠️ 重要なセキュリティ警告
セキュリティ情報と脆弱性の報告について:SECURITY.md を参照してください。
-
既知のセキュリティ上の制限:ディレクトリ制限やコマンドのブロックは、シンボリックリンク、コマンド置換、絶対パス、コード実行など、さまざまな方法で回避される可能性があります。
-
設定は、実際の作業を行っているチャットウィンドウとは別のチャットウィンドウで必ず変更してください。 Claude は、ファイルシステムへのアクセス制限に遭遇した場合、
allowedDirectoriesなどの設定を変更しようとすることがあります。 -
allowedDirectories設定は現在、ファイルシステム操作のみを制限します。ターミナルコマンドからは、許可されたディレクトリの外にあるファイルにも引き続きアクセスできます。 -
本番環境のセキュリティ対策:ホストシステムから完全に分離できる Docker インストール を使用してください。
設定ツール
付属のツールを使用してサーバー設定を管理できます:
// Get the entire config
get_config({})
// Set a specific config value
set_config_value({ "key": "defaultShell", "value": "/bin/zsh" })
// Set multiple config values using separate calls
set_config_value({ "key": "defaultShell", "value": "/bin/bash" })
set_config_value({ "key": "allowedDirectories", "value": ["/Users/username/projects"] })
設定はサーバーの作業ディレクトリにある config.json に保存され、サーバーを再起動しても保持されます。
fileWriteLineLimit について
fileWriteLineLimit 設定は、1 回の write_file 操作で書き込める行数を制御します(デフォルト:50 行)。この上限には、いくつかの重要な理由があります。
上限がある理由:
- AI はトークンを無駄に使います:ファイルに小さな変更を 2 つ加える代わりに、AI はファイル全体を書き直すことがあります。時間とトークンを節約するため、より小さな変更に分けて作業するよう促しています。
- Claude の UX メッセージ上限:1 つのメッセージには上限があり、「続行」を押しても実際にはうまく機能しません。ここでは、AI の作業を小さな単位に分けることで、その上限に達したときに複数の作業単位が完了していて、その作業が失われず、最後の作業単位から再開するだけで済むようにしています。
上限の設定:
// You can set it to thousands if you want
set_config_value({ "key": "fileWriteLineLimit", "value": 1000 })
// Or keep it smaller to force more efficient behavior
set_config_value({ "key": "fileWriteLineLimit", "value": 25 })
最大値:技術的な制限はないため、必要に応じて数千に設定できます。
ベストプラクティス:
- 効率的な AI の動作を促し、トークンの浪費を避けるため、デフォルト(50)のままにします。
- 上限を超えると、システムが自動的に作業の分割を提案します。
- 作業単位が小さいほど、Claude がメッセージ上限に達した際に失われる作業が少なくなります。
ベストプラクティス
-
設定変更専用のチャットを作成します:設定変更はすべて 1 つのチャットで行い、その後、実際の作業用に新しいチャットを開始します。
-
空の
allowedDirectoriesに注意します:これを空の配列([])に設定すると、ファイル操作でファイルシステム全体へのアクセスが許可されます。 -
具体的なパスを使用します:
/のような広範なパスではなく、アクセスしたい正確なディレクトリを指定します。 -
変更後は必ず設定を確認します:
get_config({})を使用して、変更が正しく適用されたことを確認します。
コマンドラインオプション
Desktop Commander は、動作をカスタマイズするための複数のコマンドラインオプションをサポートしています。
オンボーディングを無効にする
デフォルトでは、Desktop Commander は新規ユーザー(ツールの呼び出しが 10 回未満のユーザー)に便利なオンボーディングプロンプトを表示します。この動作を無効にできます。
# Disable onboarding for this session
node dist/index.js --no-onboarding
# Or if using npm scripts
npm run start:no-onboarding
# For npx installations, modify your claude_desktop_config.json:
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": [
"-y",
"@wonderwhy-er/desktop-commander@latest",
"--no-onboarding"
]
}
}
}
オンボーディングが自動的に無効になる場合:
- MCP クライアント名が「desktop-commander」に設定されている場合
--no-onboardingフラグを使用している場合- ユーザーがオンボーディングプロンプトを使用した後、またはツールを 10 回以上呼び出した後
デバッグ情報: オンボーディングが無効になると、サーバーは次のようにログに記録します:「Onboarding disabled via --no-onboarding flag」
別のシェルを使用する
コマンドの実行に使用するシェルを指定できます。
// Using default shell (bash or system default)
execute_command({ "command": "echo $SHELL" })
// Using zsh specifically
execute_command({ "command": "echo $SHELL", "shell": "/bin/zsh" })
// Using bash specifically
execute_command({ "command": "echo $SHELL", "shell": "/bin/bash" })
これにより、シェル固有の機能を使用したり、コマンド間で一貫した環境を維持したりできます。
execute_commandはタイムアウト後、初期出力を返します。- コマンドはバックグラウンドで続行されます。
- PID を指定して
read_outputを使用すると、新しい出力を取得できます。 - 必要に応じて
force_terminateを使用して停止します。
デバッグ
サーバーをデバッグする必要がある場合は、デバッグモードでインストールできます。
# Using npx
npx @wonderwhy-er/desktop-commander@latest setup --debug
# Or if installed locally
npm run setup:debug
これにより、次の処理が行われます。
- 別の「desktop-commander」サーバーを使用するように Claude を設定します。
--inspect-brk=9229フラグで Node.js インスペクタープロトコルを有効にします。- デバッガーが接続するまで、起動時に実行を一時停止します。
- 追加のデバッグ用環境変数を有効にします。
デバッガーを接続するには:
- Chrome で
chrome://inspectにアクセスし、Node.js のインスタンスを探します。 - VS Code では、「Attach to Node Process」デバッグ構成を使用します。
- その他の IDE やツールにも、Node.js のデバッグ用に同様の「attach」オプションがある場合があります。
デバッグに関する重要な注意事項:
--inspect-brkフラグにより、デバッガーが接続するまでサーバーは起動時に一時停止します。- デバッグ中に動作が確認できない場合は、正しい Node.js プロセスに接続していることを確認してください。
- 複数の Node プロセスが実行されている場合があります。ポート 9229 を使用しているプロセスに接続してください。
- デバッグサーバーは、Claude の MCP サーバー一覧で「desktop-commander-debug」として識別されます。
トラブルシューティング:
- デバッグサーバーの使用中に Claude がタイムアウトする場合、デバッガーが正しく接続されていない可能性があります。
- 正しく接続されている場合、最初のブレークポイントに到達するとプロセスの実行が続行されます。
- 接続後、IDE でブレークポイントを追加できます。
Model Context Protocol の統合
このプロジェクトは MCP Filesystem Server を拡張し、以下を可能にします:
- Claude Desktop でのローカルサーバーのサポート
- システムコマンドの完全な実行
- プロセス管理
- ファイル操作
- 検索/置換ブロックを使用したコード編集
Claude MCP を探る取り組みの一環として作成されました:https://youtube.com/live/TlbjFDbl5Us
Desktop Commander をサポートする
📢 このプロジェクトをサポートしてください
Desktop Commander MCP は無料のオープンソースですが、発展を続けるには皆さまのサポートが必要です!
私たちの理念はシンプルです。成功を収めていない方に費用を負担していただくつもりはありません。しかし、Desktop Commander が皆さまの成功に貢献しているのであれば、私たちへのご支援もご検討ください。
サポート方法:
- 🌟 GitHub Sponsors - 継続的なご支援
- ☕ Buy Me A Coffee - 1回限りのご支援
- 💖 Patreon - パトロンになって毎月ご支援ください
- ⭐ GitHub でスターを付ける - プロジェクトをほかの人に知ってもらうのに役立ちます
❤️ サポーターの殿堂
寛大なサポーターの皆さまをご紹介します。このプロジェクトの実現にご協力いただき、ありがとうございます!
ご支援が大切な理由
皆さまのご支援により、以下が可能になります:
- 積極的な開発とメンテナンスの継続
- 新機能と統合の追加
- プラットフォーム間の互換性の向上
- ドキュメントとサンプルの改善
- プロジェクトを中心としたコミュニティの強化
ウェブサイト
最新情報、ドキュメント、更新情報については、公式ウェブサイト https://desktopcommander.app/ をご覧ください。
メディア
以下の資料で、このプロジェクトについて詳しくご覧いただけます:
記事
Claude with MCPs replaced Cursor & Windsurf. How did that happen? - Model Context Protocol の機能を備えた Claude が、開発者のワークフローをどのように変えているのかを詳しく解説しています。
動画
Claude Desktop Commander Video Tutorial - Commander の効果的なセットアップ方法と使い方をご覧ください。
AnalyticsIndiaMag での掲載
Claude と MCP を使い、この開発者は Windsurf と Cursor を使わなくなりました
コミュニティ
Discord サーバーに参加して、質問したり、フィードバックを共有したり、ほかのユーザーと交流したりしましょう。
お客様の声
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgyyBt6_ShdDX_rIOad4AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgztdHvDMqTb9jiqnf54AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgyQFTmYLJ4VBwIlmql4AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=Ugy4-exy166_Ma7TH-h4AaABAg
https://medium.com/@pharmx/you-sir-are-my-hero-62cff5836a3e
このプロジェクトが役に立つと思われたなら、GitHub で ⭐ スターを付けていただけると嬉しいです!これは他の人がこのプロジェクトを見つける助けになり、さらなる開発を促します。
コミュニティからのコントリビューションを歓迎します!バグを見つけた場合でも、機能リクエストがある場合でも、コードをコントリビュートしたい場合でも、次のようにして支援できます:
- バグを見つけましたか? github.com/wonderwhy-er/DesktopCommanderMCP/issues でイシューを作成してください
- 機能のアイデアがありますか? イシューセクションから機能リクエストを送信してください
- コードのコントリビュートを希望しますか? リポジトリをフォークしてブランチを作成し、プルリクエストを送信してください
- 質問や議論がありますか? GitHub Discussions タブでディスカッションを開始してください
大小を問わず、すべてのコントリビューションに感謝します!
このツールがワークフローに役立つと感じた場合は、プロジェクトへの支援をご検討ください。
よくある質問
よくある質問への回答をご紹介します。より詳しい FAQ については、詳細な FAQ ドキュメントをご覧ください。
Desktop Commander とは何ですか?
Claude Desktop がファイルシステムやターミナルにアクセスできるようにする MCP ツールです。Claude を、コーディング、自動化、コードベースの調査などに対応できる多用途なアシスタントにします。
Cursor/Windsurf とは何が違いますか?
IDE に特化したツールとは異なり、Claude Desktop Commander はコーディング環境内だけでなく、OS 全体で機能するソリューション重視のアプローチを提供します。Claude はファイルを分割せずに全文を読み取り、複数のプロジェクトを同時に扱い、絶えず確認を求めるのではなく、一度に変更を実行できます。
API クレジットを支払う必要がありますか?
いいえ。このツールは API 呼び出しではなく、Claude Desktop の標準 Pro サブスクリプション(月額 20 ドル)で動作するため、サブスクリプション料金以外の追加費用は発生しません。
Desktop Commander は自動的に更新されますか?
はい。npx または Smithery 経由でインストールすると、Claude の再起動時に Desktop Commander は最新バージョンへ自動的に更新されます。手動で更新する必要はありません。
最も一般的なユースケースは何ですか?
- 複雑なコードベースの調査と理解
- 図やドキュメントの生成
- システム全体にわたるタスクの自動化
- 複数のプロジェクトの同時作業
- 正確に制御しながら、コードに的を絞った変更を加えること
ツールのインストールや使用で問題が発生しています。どこでサポートを受けられますか?
コミュニティのサポートについてはDiscord サーバーに参加し、既知の問題についてはGitHub のイシューを確認するか、トラブルシューティングのヒントについてはFAQ 全文をご覧ください。より使いやすい形式で確認したい場合は、ウェブサイトの FAQ セクションもご利用いただけます。新しい問題が発生した場合は、問題の詳細を添えてGitHub イシューを作成してください。
セキュリティの脆弱性を報告するにはどうすればよいですか?
発見したセキュリティの脆弱性について、詳細情報を記載したGitHub Issueを作成してください。責任ある開示に関するガイドラインの全文は、セキュリティポリシーをご覧ください。
データの収集とプライバシー
Desktop Commander は、ツールの改善を目的として、限定的な仮名化テレメトリを収集します。テレメトリとしてファイルの内容、ファイルパス、コマンド引数を収集することはありません。
これはローカルのツール履歴と監査ログとは別のもので、これらは Desktop Commander を実行しているマシン上に保存され、ツールの引数や、上限付きの結果プレビューが含まれる場合があります。
オプトアウト: Claude に「disable Desktop Commander telemetry」と依頼するか、設定で "telemetryEnabled": false を設定してください。
詳しくは、プライバシーポリシーをご覧ください。
認証
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。