Skip to main content
Glama
wonderwhy-er

Claude Desktop Commander MCP

by wonderwhy-er

デスクトップコマンダーMCP

AI でファイルを検索、更新、管理し、ターミナル コマンドを実行します

npmダウンロード 鍛冶屋のバッジ コーヒーを買ってください

不和

コードとテキストを操作し、プロセスを実行し、タスクを自動化することで、API トークンのコストなしで、他の AI エディターをはるかに超える機能を実現します。

デスクトップコマンダーMCP

目次

AI開発ツールをすべて1か所に。Desktop Commanderは、すべての開発ツールを1つのチャットにまとめます。コンピューター上で長時間実行されるターミナルコマンドを実行し、モデルコンテキストプロトコル(MCP)を介してプロセスを管理します。MCPファイルシステムサーバー上に構築されており、追加のファイル検索および置換編集機能を提供します。

Related MCP server: Desktop Commander MCP

特徴

  • 出力ストリーミングでターミナルコマンドを実行する

  • コマンドタイムアウトとバックグラウンド実行のサポート

  • プロセス管理(プロセスの一覧表示と終了)

  • 長時間実行コマンドのセッション管理

  • サーバー構成管理:

    • 設定値の取得/設定

    • 複数の設定を一度に更新する

    • サーバーの再起動なしで動的な構成変更が可能

  • 完全なファイルシステム操作:

    • ファイルの読み取り/書き込み

    • ディレクトリの作成/一覧表示

    • ファイル/ディレクトリを移動する

    • ファイルを検索

    • ファイルのメタデータを取得する

  • コード編集機能:

    • 小さな変更のための外科的テキスト置換

    • 大きな変更があった場合はファイル全体を書き換える

    • 複数ファイルのサポート

    • パターンベースの置換

    • vscode-ripgrep ベースのフォルダー内の再帰コードまたはテキスト検索

  • 包括的な監査ログ:

    • すべてのツール呼び出しは自動的に記録されます

    • 10MBのサイズ制限のあるログローテーション

    • 詳細なタイムスタンプと引数

インストール

まず、 Claude デスクトップ アプリをダウンロードしてインストールし、 npm がインストールされていることを確認します。

オプション1: npx経由でインストールする

ターミナルでこれを実行するだけです:

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

デバッグモードの場合(Node.js インスペクター接続を許可):

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

実行中の場合は、Claude を再起動します。

オプション2: bashスクリプトインストーラーを使用する (macOS)

macOS ユーザーの場合は、Node.js のバージョンを確認し、必要に応じてインストールし、Desktop Commander を自動的に構成する自動 bash インストーラーを使用できます。

curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash

このスクリプトは、シームレスなセットアップエクスペリエンスを実現するために、すべての依存関係と構成を自動的に処理します。

オプション3: Smithery経由でインストールする

Smithery経由で Claude Desktop 用の Desktop Commander を自動的にインストールするには:

npx -y @smithery/cli install @wonderwhy-er/desktop-commander --client claude

オプション4: claude_desktop_configに手動で追加する

次のエントリを 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"
      ]
    }
  }
}

実行中の場合は、Claude を再起動します。

オプション5: 現地でチェックアウト

  1. クローンとビルド:

git clone https://github.com/wonderwhy-er/DesktopCommanderMCP.git
cd DesktopCommanderMCP
npm run setup

実行中の場合は、Claude を再起動します。

セットアップ コマンドは次の処理を実行します。

  • 依存関係をインストールする

  • サーバーを構築する

  • Claudeのデスクトップアプリを構成する

  • 必要に応じて、Claude の設定に MCP サーバーを追加します。

デスクトップコマンダーのアップデート

npx(オプション1)またはSmithery(オプション3)経由でインストールした場合、Claudeを再起動するたびにDesktop Commanderは自動的に最新バージョンに更新されます。手動での更新作業は必要ありません。

手動インストールの場合は、セットアップ コマンドを再度実行して更新できます。

使用法

サーバーは、いくつかのカテゴリに分類された包括的なツール セットを提供します。

利用可能なツール

カテゴリ

道具

説明

構成

get_config

完全なサーバー構成を JSON として取得します (blockedCommands、defaultShell、allowedDirectories、fileReadLineLimit、fileWriteLineLimit、telemetryEnabled が含まれます)

set_config_value

キーで特定の設定値を設定します。使用可能な設定:• blockedCommands :実行できないシェルコマンドの配列• defaultShell :コマンドに使用するシェル(例:bash、zsh、powershell)• allowedDirectories :サーバーがファイル操作のためにアクセスできるファイルシステムパスの配列(⚠️ターミナルコマンドはこれらのディレクトリ外のファイルにもアクセスできます)• fileReadLineLimit :一度に読み取る最大行数(デフォルト:1000)• fileWriteLineLimit :一度に書き込む最大行数(デフォルト:50)• telemetryEnabled :テレメトリの有効化/無効化(ブール値)

ターミナル

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

小さな編集のための強化されたプロンプトを使用して、対象を絞ったテキスト置換を適用します(文字レベルの差分フィードバックを含む)

ツールの使用例

検索/置換ブロック形式:

filepath.ext
<<<<<<< SEARCH
content to find
=======
new content
>>>>>>> REPLACE

例:

src/main.js
<<<<<<< SEARCH
console.log("old message");
=======
console.log("new message");
>>>>>>> REPLACE

強化された編集ブロック機能

edit_blockツールには、信頼性を向上させるためのいくつかの機能強化が含まれています。

  1. プロンプトの改善:ツールの説明では、1つの大きな変更ではなく、複数の小さな集中的な編集を行うことを強調するようになりました。

  2. あいまい検索フォールバック: 完全一致が失敗した場合、あいまい検索を実行し、詳細なフィードバックを提供します。

  3. 文字レベルの差分: {-removed-}{+added+}形式を使用して、違いを正確に表示します。

  4. 複数出現のサポート: expected_replacementsパラメータを使用して複数のインスタンスを置き換えることができます

  5. 包括的なログ記録: すべてのあいまい検索は分析とデバッグのためにログに記録されます。

検索が失敗した場合、類似度、実行時間、文字の差異など、見つかった最も近い一致に関する詳細情報が表示されます。これらの詳細はすべて自動的に記録され、後であいまい検索ログツールを使用して分析できます。

URLサポート

  • read_fileローカルファイルと URL の両方からコンテンツを取得できるようになりました

  • 例: Webリソースから読み取るためのisUrl: trueパラメータ付きのread_file

  • リモートソースからのテキストと画像コンテンツの両方を処理

  • 画像(ローカルまたはURLから)は、テキストではなく、Claudeのインターフェースで視覚的に表示されます。

  • クロードは実際の画像コンテンツを見て分析することができます

  • URL リクエストのデフォルトの 30 秒のタイムアウト

あいまい検索ログ分析(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

学ぶ内容

あいまい検索ログは次のことを理解するのに役立ちます。

  1. 完全一致が失敗する理由: 空白の違い、行末、文字エンコードなどの一般的な問題

  2. パフォーマンスパターン: 検索の複雑さが実行時間に与える影響

  3. ファイルタイプの問題: どのファイル拡張子にマッチングの問題がよく発生するか

  4. 文字エンコーディングの問題: 差異を引き起こす特定の文字コード

監査ログ

Desktop Commander には、すべてのツール呼び出しの包括的なログ記録が含まれるようになりました。

記録される内容

  • すべてのツール呼び出しは、タイムスタンプ、ツール名、引数とともに記録されます(プライバシー保護のためサニタイズされています)。

  • ログは10MBに達すると自動的にローテーションされます

ログの場所

ログは次の場所に保存されます:

  • macOS/Linux : ~/.claude-server-commander/claude_tool_call.log

  • Windows : %USERPROFILE%\.claude-server-commander\claude_tool_call.log

この監査証跡は、デバッグ、セキュリティ監視、Claude がシステムとどのように対話しているかの理解に役立ちます。

長時間実行されるコマンドの処理

時間がかかる可能性があるコマンドの場合:

構成管理

⚠️ 重要なセキュリティ警告

  1. 設定の変更は、必ず実際の作業とは別のチャットウィンドウで行ってください。Claude は、ファイルシステムへのアクセス制限に遭遇した場合、設定( allowedDirectoriesなど)を変更しようとすることがあります。

  2. allowedDirectories設定は現在、ファイルシステム操作のみを制限し、ターミナルコマンドは制限しません。ターミナルコマンドは、許可されたディレクトリ外のファイルに引き続きアクセスできます。ターミナルの完全なサンドボックス化はロードマップに予定されています。

設定ツール

提供されているツールを使用してサーバー構成を管理できます。

// 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に保存され、サーバーの再起動後も保持されます。

ベストプラクティス

  1. 設定変更専用のチャットを作成します。すべての設定変更を 1 つのチャットで行い、実際の作業用に新しいチャットを開始します。

  2. 空のallowedDirectoriesには注意してください。これを空の配列 ( [] ) に設定すると、ファイル操作のためにファイルシステム全体へのアクセスが許可されます。

  3. 特定のパスを使用する: /ような広いパスを使用する代わりに、アクセスするディレクトリを正確に指定します。

  4. 変更後は常に構成を確認してください。get_config get_config({})を使用して、変更が正しく適用されたことを確認します。

異なるシェルの使用

コマンド実行に使用するシェルを指定できます。

// 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" })

これにより、シェル固有の機能を使用したり、コマンド間で一貫した環境を維持したりできるようになります。

  1. execute_commandタイムアウト後に初期出力で戻ります

  2. コマンドはバックグラウンドで継続されます

  3. 新しい出力を取得するには、PID を指定したread_output使用します。

  4. 必要に応じてforce_terminateを使用して停止します

デバッグ

サーバーをデバッグする必要がある場合は、デバッグ モードでインストールできます。

# Using npx
npx @wonderwhy-er/desktop-commander@latest setup --debug

# Or if installed locally
npm run setup:debug

これにより、次のようになります。

  1. Claude を別の「デスクトップ コマンダー」サーバーを使用するように構成します

  2. --inspect-brk=9229フラグを使用して Node.js インスペクタ プロトコルを有効にする

  3. デバッガが接続されるまで実行を一時停止します

  4. 追加のデバッグ環境変数を有効にする

デバッガーを接続するには:

  • Chromeでchrome://inspectにアクセスし、Node.jsインスタンスを探します。

  • VS Codeでは、「ノードプロセスにアタッチ」デバッグ構成を使用します。

  • 他のIDE/ツールにもNode.jsデバッグ用の同様の「アタッチ」オプションがあるかもしれない

重要なデバッグに関する注意事項:

  • デバッガーが接続されるまで、サーバーは起動時に一時停止します( --inspect-brkフラグのため)

  • デバッグ中にアクティビティが表示されない場合は、正しいNode.jsプロセスに接続していることを確認してください。

  • 複数のノードプロセスが実行中である可能性があります。ポート9229のプロセスに接続してください。

  • デバッグサーバーは、Claude の MCP サーバーリストで「desktop-commander-debug」として識別されます。

トラブルシューティング:

  • デバッグサーバーの使用中にClaudeがタイムアウトした場合、デバッガーが正しく接続されていない可能性があります。

  • 正しく接続されると、プロセスは最初のブレークポイントに到達した後も実行を継続します。

  • 接続したらIDEで追加のブレークポイントを追加できます

モデルコンテキストプロトコル統合

このプロジェクトは、MCP ファイルシステム サーバーを拡張して次の機能を実現します。

  • Claude Desktop のローカルサーバーのサポート

  • 完全なシステムコマンド実行

  • プロセス管理

  • ファイル操作

  • 検索/置換ブロックを使ったコード編集

Claude MCP の探索の一環として作成されました: https://youtube.com/live/TlbjFDbl5Us

終わり

  • 2025年5月20日 v0.1.40 リリース- すべてのツール呼び出しの監査ログを追加、行ベースのファイル操作を改善、小さな編集のためのプロンプトを改善したedit_blockの強化、明示的なテレメトリオプトアウトプロンプトの追加

  • 2025年5月5日 あいまい検索ログ- 詳細な分析ツール、文字レベルの差分、およびedit_blockの失敗をデバッグするのに役立つパフォーマンスメトリックを備えた、あいまい検索操作の包括的なログシステムを追加しました。

  • 2025年4月29日 設定によるテレメトリのオプトアウト- 設定でテレメトリを無効にする設定が追加されました。チャットで問い合わせてください。

  • 2025年4月23日 編集機能の強化- フォーマットの改善、あいまい検索と複数出現置換の追加により、失敗が減り、編集ブロックの使用頻度が上がる

  • 2025年4月16日 設定の改善- 許可されたパス、コマンド、シェル環境の設定が改善されました

  • 2025年4月14日 Windows環境の修正- Windowsプラットフォーム固有の問題を解決しました

  • 2025年4月14日 Linuxの改善- さまざまなLinuxディストリビューションとの互換性が強化されました

  • 2025年12月4日 許可ディレクトリとブロックコマンドの改善- ファイルの読み取り/書き込みと端末コマンドの制限に関するセキュリティとパス検証が改善されました。端末は引き続き、許可ディレクトリを無視してファイルにアクセスできます。

  • 2025年11月4日 シェル設定- コマンド実行時に優先シェルを設定する機能が追加されました

  • 2025年7月4日 URLサポートを追加- read_fileコマンドでURLからコンテンツを取得できるようになりました

  • 2025年3月28日 「Watching /」JSONエラーを修正- JSON以外のメッセージを処理し、サーバーのクラッシュを防ぐためのカスタムstdioトランスポートを実装しました

  • 2025年3月25日 より優れたコード検索統合済み) - コンテキストに応じた結果によるコード探索の強化

進行中の作業/TODO/ロードマップ

現在、以下の機能が検討されています。

  • WSL (Windows Subsystem for Linux 統合) のサポート

  • SSHのサポート- リモートサーバーコマンド実行

  • CSV/PDFなどの形式のファイルサポートが向上

  • セキュリティ強化のためのMac/Linux/Windows用ターミナルサンドボックス

  • ファイル読み取りモード- たとえば、HTML をプレーンテキストまたはマークダウンとして読み取ることができる

  • 対話型シェルのサポート- ssh、node/python repl

  • 大容量ファイルの読み書きを改善

❤️ デスクトップコマンダーをサポート

サポーター殿堂

寛大なご支援者の方々をご紹介いたします。このプロジェクト実現にご協力いただき、誠にありがとうございます!

Webサイト

最新情報、ドキュメント、アップデートについては、公式 Web サイトhttps://desktopcommander.app/をご覧ください。

メディア

以下のリソースを通じてこのプロジェクトの詳細を学んでください。

記事

MCPを搭載したClaudeがCursorとWindsurfに取って代わりました。これはどのようにして実現したのでしょうか? - モデルコンテキストプロトコル機能を備えたClaudeが開発者のワークフローにどのような変化をもたらしているかを詳細に検証します。

ビデオ

Claude Desktop Commander ビデオ チュートリアル- Commander を効果的にセットアップして使用する方法をご覧ください。

AnalyticsIndiaMagでの出版

アナリティクスインディアマグ.pngこの開発者はWindsurfとCursorを捨て、MCPでClaudeを使用しました

コミュニティ

サポートを受けたり、フィードバックを共有したり、他のユーザーとつながったりするには、 Discord サーバーに参加してください。

お客様の声

本当に助かります!Claude + Cursorを併用していますが、いつも重複しているように感じていました。これでようやく問題が解決しました。本当に嬉しいです。本当にありがとうございます。さらに、Claudeは本日Web検索のサポートを追加しました。このMCP + インターネット検索機能により、最新のアップデートでコードが生成されます。Cursorが時々機能しなかったり、高速なリクエストばかりが使われてしまうような時にとても助かります。 https://www.youtube.com/watch?v=ly3bed99Dy8\&lc=UgyyBt6\_ShdDX\_rIOad4AaABAg

これは私がYouTube動画に残した最初のコメントです。ありがとうございます!カーソル内の古いFlutterアプリを、nullセーフ以前の古いバージョンから現在のバージョンにアップデートするのに苦労し、Claude 3.7を使用してnullセーフを実装しました。ほとんどはできましたが、重大なBLEエラーが発生し、解決に何日も費やしましたがうまくいきませんでした。Augment Codeを試しましたが、それでも解決しませんでした。ClaudeデスクトップにMCPを実装し、コードの更新を考慮して新旧のコードベースを完全に比較し、数時間で問題を修正することができました。これを試している方へのアドバイスは、変更をステージングして適切なタイミングでコミットし、不要な変更を元に戻せるようにすることです。素晴らしい! https://www.youtube.com/watch?v=ly3bed99Dy8\&lc=UgztdHvDMqTb9jiqnf54AaABAg

素晴らしい!1週間前にライセンスを購入したWindsurfを、古いフルスタックソケットプロジェクトのアップグレードに使用しました。多くの場合は正常に動作しますが、カスケードで失敗することも多々あり、変更をすべて元に戻す必要があり、数百のカスケードトークンを失いました。わずか1週間でトークンが100未満になり、たった10ドルで300トークンを購入するのは気が進みません。これはClaude MCPですが、最終的に必要になったClaude Proを購入しました。ChatGPTに加えて、非常に良い理由があり、トークンコストを気にせずに好きなだけコーディングできます。 また、これはコード編集よりもはるかに優れています。素晴らしいビデオをありがとうございます! https://www.youtube.com/watch?v=ly3bed99Dy8\&lc=UgyQFTmYLJ4VBwIlmql4AaABAg

これは素晴らしいツールです。ありがとうございます。このツールを使うと、Claude は外科的な編集を行う能力を獲得し、人間の開発者のように作業を進めることができるので、私はこれを使うのが好きです。 https://www.youtube.com/watch?v=ly3bed99Dy8\&lc=Ugy4-exy166\_Ma7TH-h4AaABAg

あなたは私のヒーローです。最近の私の経験を、私が説明するよりもずっと分かりやすくまとめてくれました。CursorとWindsurfはどちらも、コンピューターの画面に向かって叫びたくなるほどイライラさせられました。ふと思いついて、Claudeに直接聞いてみようかと思い立ち、それ以来、迷うことなく相談しています。 まずはClaudeに相談して正気を保ち、必要であれば他のIDEやフレームワークなども試してみようと思っています。私だけかと思っていましたが、そうでなくて良かったです(笑)。 33 1 https://medium.com/@pharmx/you-sir-are-my-hero-62cff5836a3e

このプロジェクトが役に立ったと感じたら、GitHubで⭐星を付けていただけると嬉しいです!これにより、他の人がこのプロジェクトを見つけやすくなり、さらなる開発が促進されます。

コミュニティからの貢献を歓迎します!バグを見つけた場合、機能のリクエストがある場合、またはコードに貢献したい場合は、以下の方法でご協力ください。

  • バグを発見しましたか? github.com/wonderwhy-er/DesktopCommanderMCP/issuesで問題を報告してください。

  • **機能に関するアイデアをお持ちですか?**問題セクションから機能リクエストを送信してください。

  • **コードを投稿したいですか?**リポジトリをフォークしてブランチを作成し、プルリクエストを送信してください。

  • 質問や議論はありますか? GitHubのディスカッションタブで議論を始めてください。

規模の大小を問わず、すべての貢献を大歓迎します。

このツールがワークフローにとって価値があると思われる場合は、プロジェクトのサポートを検討してください。

よくある質問

よくある質問への回答をご紹介します。より包括的な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のIssueをご確認ください。トラブルシューティングのヒントについては、 FAQ全文をご覧ください。よりユーザーフレンドリーな体験のために、ウェブサイトのFAQセクションもご覧ください。新しい問題が発生した場合は、 GitHubのIssueに問題の詳細を記載してご投稿ください。

データ収集とプライバシー

Desktop Commanderは、ツールの改善に役立てるため、限定的な匿名テレメトリデータを収集します。個人情報、ファイルの内容、ファイルパス、コマンド引数は収集されません。

テレメトリはデフォルトで有効になっています。オプトアウトするには、以下の手順に従ってください。

  1. チャットを開いて、 **「テレメトリを無効にしてください」**と尋ねるだけです

  2. チャットボットは設定を自動的に更新します。

データ収集に関する詳細は、当社のプライバシーポリシーをご覧ください。

ライセンス

マサチューセッツ工科大学

Available Tools

26 tools
create_directoryA
                    Create a new directory or ensure a directory exists.
                    
                    Can create multiple nested directories in one operation.
                    Only works within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it 'only works within allowed directories' and explains path normalization and potential issues with relative paths. The annotations indicate a non-read-only, non-destructive operation, and the description adds useful behavioral context without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat verbose with multiple paragraphs and code formatting. While it front-loads the purpose, it could be more concise. Some details (e.g., referencing instructions) add length without critical value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description adequately covers what the tool does and how to use it. It provides enough context for the agent to succeed, though it could briefly mention expected return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter 'path' with no description (0% coverage). The description fully compensates by explaining the meaning of the path, when to use absolute vs relative, and normalization behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Create a new directory or ensure a directory exists.' It also mentions the capability to create multiple nested directories, which distinguishes it from other file operations like 'write_file' or 'edit_block'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on using absolute paths, warns about relative and tilde paths, and mentions path normalization. It also suggests how to reference the command in instructions. However, it does not explicitly contrast with when to use alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_blockA
Destructive
                    Apply surgical edits to files.

                    BEST PRACTICE: Make multiple small, focused edits rather than one large edit.
                    Each edit_block call should change only what needs to be changed - include just enough
                    context to uniquely identify the text being modified.

                    FORMAT HANDLING (by extension):

                    EXCEL FILES (.xlsx, .xls, .xlsm) - Range Update mode:
                    Takes:
                    - file_path: Path to the Excel file
                    - range: ALWAYS use FROM:TO format - "SheetName!A1:C10" or "SheetName!C1:C1"
                    - content: 2D array, e.g., [["H1","H2"],["R1","R2"]]

                    TEXT FILES - Find/Replace mode:
                    Takes:
                    - file_path: Path to the file to edit
                    - old_string: Text to replace
                    - new_string: Replacement text
                    - expected_replacements: Optional number of replacements (default: 1)

                    DOCX FILES (.docx) - XML Find/Replace mode:
                    Takes same parameters as text files (old_string, new_string, expected_replacements).
                    Operates on the pretty-printed XML inside the DOCX — the same XML you see from
                    read_file with offset/length. Copy XML fragments from read output as old_string.
                    After editing, the XML is repacked into a valid DOCX.
                    Also searches headers/footers if not found in document body.
                    Examples:
                    - Replace text: old_string="<w:t>Old Text</w:t>" new_string="<w:t>New Text</w:t>"
                    - Change style: old_string='<w:pStyle w:val="Normal"/>' new_string='<w:pStyle w:val="Heading1"/>'
                    - Add content: include surrounding XML context in old_string, add new elements in new_string

                    By default, replaces only ONE occurrence of the search text.
                    To replace multiple occurrences, provide expected_replacements with
                    the exact number of matches expected.

                    UNIQUENESS REQUIREMENT: When expected_replacements=1 (default), include the minimal
                    amount of context necessary (typically 1-3 lines) before and after the change point,
                    with exact whitespace and indentation.

                    When editing multiple sections, make separate edit_block calls for each distinct change
                    rather than one large replacement.

                    When a close but non-exact match is found, a character-level diff is shown in the format:
                    common_prefix{-removed-}{+added+}common_suffix to help you identify what's different.

                    Similar to write_file, there is a configurable line limit (fileWriteLineLimit) that warns
                    if the edited file exceeds this limit. If this happens, consider breaking your edits into
                    smaller, more focused changes.

                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
rangeNo
originNo
contentNo
optionsNo
file_pathYes
new_stringNo
old_stringNo
expected_replacementsNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive behavior; description adds rich behavioral details per file type, diff display on close matches, path normalization, and default replacement count. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is comprehensive but long; structured with headings and examples. Could be more concise by reducing redundancy in uniqueness and expected_replacements explanations. Front-loaded with main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 params, multiple modes, no output schema), the description covers modes, edge cases, line limits, path advice, and examples. No output schema needed for this context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, description explains most parameters (file_path, range, content, old_string, new_string, expected_replacements) with format constraints. However, 'options' and 'origin' parameters are not addressed in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool edits files surgically and distinguishes between file types (Excel range update, text find/replace, DOCX XML mode). It contrasts with siblings like write_file and read_file by emphasizing focused edits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides extensive when-to-use guidance including best practices, format-specific instructions, uniqueness requirement, and line limit warnings. However, it does not explicitly state when not to use this tool versus alternatives like write_file.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

force_terminateC
Destructive
                    Force terminate a running terminal session.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
pidYes

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description identifies the tool as destructive, matching annotations, and specifies it targets a 'terminal session'. However, it does not disclose required permissions, potential side effects, or how termination is performed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy. The second sentence about referencing is marginally useful but still concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks explanation of what constitutes a terminal session, how to obtain a PID, and how this tool differs from the similar 'kill_process'. The presence of siblings demands more context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not mention the 'pid' parameter or how it identifies the session. With 0% schema coverage, the description fails to clarify the parameter's meaning or format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it force terminates a running terminal session, but it does not differentiate from the sibling tool 'kill_process', which likely has similar functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'kill_process' or 'interact_with_process'. The only additional note is about referencing the command, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_configA
Read-only
                    Get the complete server configuration as JSON. Config includes fields for:
                    - blockedCommands (array of blocked shell commands)
                    - defaultShell (shell to use for commands)
                    - allowedDirectories (paths the server can access)
                    - fileReadLineLimit (max lines for read_file, default 1000)
                    - fileWriteLineLimit (max lines per write_file call, default 50)
                    - telemetryEnabled (boolean for telemetry opt-in/out)
                    - currentClient (information about the currently connected MCP client)
                    - clientHistory (history of all clients that have connected)
                    - version (version of the DesktopCommander)
                    - systemInfo (operating system and environment details)
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
originNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true; description adds value by detailing the config structure (fields) and return format (JSON), enhancing transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat verbose with a field list but is front-loaded with the main action. The meta instruction about 'DC: ...' adds length without core value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one optional parameter, the description covers the return value comprehensively by listing all config fields, making it complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'origin' is not described in the description, despite having an enum. Schema coverage is 0%, and the description fails to explain its purpose or values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the complete server configuration as JSON,' specifying a unique verb and resource, and it distinguishes from sibling tools like set_config_value.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reading config but lacks explicit when-not or alternative tool guidance. The mention of 'DC: ...' is a weak usage hint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_file_infoA
Read-only
                    Retrieve detailed metadata about a file or directory including:
                    - size
                    - creation time
                    - last modified time
                    - permissions
                    - type
                    - lineCount (for text files)
                    - lastLine (zero-indexed number of last line, for text files)
                    - appendPosition (line number for appending, for text files)
                    - sheets (for Excel files - array of {name, rowCount, colCount})

                    Only works within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so it's a safe read operation. The description adds behavioral context such as workspace restrictions and path normalization details. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with bullet points for metadata and clear sections. Somewhat lengthy but each sentence adds value. Could be slightly more concise, but overall effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description covers the parameter thoroughly and lists expected return fields. Mentions workspace restrictions but lacks error handling details. Generally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description compensates with detailed path usage guidance: absolute vs relative paths, tilde handling, and automatic normalization. This adds significant meaning beyond the schema's parameter name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it retrieves detailed metadata about a file or directory, listing specific attributes like size, creation time, and type. Distinguishes from sibling tools like list_directory (which lists contents) and read_file (which reads content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context on when to use: retrieving file metadata. Includes important path usage guidelines (absolute paths, normalization, tilde handling) and mentions it works only within allowed directories. Does not explicitly exclude alternatives or state when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_more_search_resultsA
Read-only
                    Get more results from an active search with offset-based pagination.
                    
                    Supports partial result reading with:
                    - 'offset' (start result index, default: 0)
                      * Positive: Start from result N (0-based indexing)
                      * Negative: Read last N results from end (tail behavior)
                    - 'length' (max results to read, default: 100)
                      * Used with positive offsets for range reading
                      * Ignored when offset is negative (reads all requested tail results)
                    
                    Examples:
                    - offset: 0, length: 100     → First 100 results
                    - offset: 200, length: 50    → Results 200-249
                    - offset: -20                → Last 20 results
                    - offset: -5, length: 10     → Last 5 results (length ignored)
                    
                    Returns only results in the specified range, along with search status.
                    Works like read_process_output - call this repeatedly to get progressive
                    results from a search started with start_search.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
lengthNo
offsetNo
sessionIdYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description details offset behavior (positive/negative), length handling, return content (results + status), and reusability, going well beyond the readOnlyHint annotation. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with separate sections for purpose, parameter rules (bulleted), and examples. It is slightly lengthy but every sentence adds value. Could be marginally trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of offset-based pagination and no output schema, the description thoroughly explains usage patterns, return values, and connection to sibling tools, making it self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining offset and length semantics with examples (e.g., negative offset for tail, length ignored for negative), and implicitly covers sessionId as required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get more results from an active search with offset-based pagination,' specifying the verb (get), resource (results), and mechanism (pagination), distinguishing it from siblings like start_search or stop_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the tool is used after start_search and compares it to read_process_output, providing clear context. It does not list explicit alternatives or when-not-to-use, but the usage scenario is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_promptsA
Read-only
                    Retrieve a specific Desktop Commander onboarding prompt by ID and execute it.
                    
                    SIMPLIFIED ONBOARDING V2: This tool only supports direct prompt retrieval.
                    The onboarding system presents 5 options as a simple numbered list:
                    
                    1. Organize my Downloads folder (promptId: 'onb2_01')
                    2. Explain a codebase or repository (promptId: 'onb2_02')
                    3. Create organized knowledge base (promptId: 'onb2_03')
                    4. Analyze a data file (promptId: 'onb2_04')
                    5. Check system health and resources (promptId: 'onb2_05')
                    
                    USAGE:
                    When user says "1", "2", "3", "4", or "5" from onboarding:
                    - "1" → get_prompts(action='get_prompt', promptId='onb2_01')
                    - "2" → get_prompts(action='get_prompt', promptId='onb2_02')
                    - "3" → get_prompts(action='get_prompt', promptId='onb2_03')
                    - "4" → get_prompts(action='get_prompt', promptId='onb2_04')
                    - "5" → get_prompts(action='get_prompt', promptId='onb2_05')
                    
                    The prompt content will be injected and execution begins immediately.

                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
promptIdYes

TDQS

A3.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation declares readOnlyHint: true, but the description states 'retrieve and execute it', implying execution with potential side effects. This is a clear contradiction. No further behavioral details are provided beyond the contradictory execution claim.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections and clear formatting, but it is somewhat verbose. It could be more concise while retaining essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers usage and parameter values adequately, but lacks details about return values, error handling, and what 'execution begins immediately' means. Given no output schema, the agent might be left uncertain about results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It does so by listing all valid prompt IDs mapped to numbers and specifying the action enum value. This adds meaning beyond the schema's bare string definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves and executes a specific Desktop Commander onboarding prompt by ID. It distinguishes from sibling tools by focusing exclusively on onboarding prompts and providing a direct numbered list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit mapping from user selections (1-5) to prompt IDs and the action parameter. It effectively tells the agent when to use this tool during onboarding. However, it does not explicitly state when not to use it or mention alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recent_tool_callsA
Read-only
                    Get recent local tool call history with arguments and outputs.
                    Returns a chronological list of recent calls loaded from the local history file.
                    
                    Useful for:
                    - Onboarding new chats about work already done
                    - Recovering context after chat history loss
                    - Debugging tool call sequences
                    
                    Note: Does not track its own calls or track_ui_event.
                    History is persisted locally in tool-history.jsonl, keeps up to the last 1000
                    calls in memory, and trims older on-disk history. Stored outputs over 4 KiB
                    are replaced with an omission marker.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNo
toolNameNo
maxResultsNo

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses substantial behavioral detail: it does not track its own calls or track_ui_event (self-exclusion), persists to tool-history.jsonl, keeps up to 1000 calls in memory while trimming older on-disk history, and replaces outputs over 4 KiB with an omission marker. This gives an agent accurate expectations about data availability and truncation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: a one-sentence purpose, scannable bullet points for use cases, and a compact 'Note:' block for behavioral caveats. The final line about 'DC: ...' referencing adds minor value for intent recognition. Slightly long, but every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with no output schema, the description is nearly complete: it covers return shape (chronological list), persistence location, retention limits, output truncation, and self-exclusion. The only meaningful gap is the undocumented filtering semantics of the since and toolName parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter meaning. It partially does: the 'last 1000 calls' limit maps to maxResults' maximum, and 'recent'/'chronological' hints at ordering relevant to the since filter. However, it never explicitly explains that since filters by timestamp or that toolName filters by tool, leaving two of three parameters under-documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb+resource+scope: 'Get recent local tool call history with arguments and outputs.' This unambiguously distinguishes it from all siblings — no other tool in the list claims tool call history as its subject, and the second sentence clarifies the chronological return shape.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Useful for:' section lists three concrete scenarios: onboarding, recovering context after chat history loss, and debugging tool call sequences. This is clear context for when to invoke it. It stops short of a 5 because it doesn't name explicit alternatives or state when-not-to-use conditions, though no obvious sibling competes for this use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usage_statsA
Read-only
                    Get usage statistics for debugging and analysis.
                    
                    Returns summary of tool usage, success/failure rates, and performance metrics.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so description adds value by specifying what is returned (summary, success/failure rates, performance metrics), providing context beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, with two clear sentences about purpose and output. The third sentence about referencing is slightly meta but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with no params and no output schema, the description sufficiently covers purpose and output details, though the exact scope (real-time vs historical) is not clarified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. Baseline for 0 params is 4; the description does not need to add param info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get usage statistics for debugging and analysis' with specific verb and resource, and distinguishes from sibling tools like get_config and get_prompts by focusing on usage metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only mentions how to reference the tool in instructions, but does not provide guidance on when to use it versus alternatives (e.g., get_recent_tool_calls) or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

give_feedback_to_desktop_commanderA
                    Open feedback form in browser to provide feedback about Desktop Commander.
                    
                    IMPORTANT: This tool simply opens the feedback form - no pre-filling available.
                    The user will fill out the form manually in their browser.
                    
                    WORKFLOW:
                    1. When user agrees to give feedback, just call this tool immediately
                    2. No need to ask questions or collect information
                    3. Tool opens form with only usage statistics pre-filled automatically:
                       - tool_call_count: Number of commands they've made
                       - days_using: How many days they've used Desktop Commander
                       - platform: Their operating system (Mac/Windows/Linux)
                       - client_id: Analytics identifier
                    
                    All survey questions will be answered directly in the form:
                    - Job title and technical comfort level
                    - Company URL for industry context
                    - Other AI tools they use
                    - Desktop Commander's biggest advantage
                    - How they typically use it
                    - Recommendation likelihood (0-10)
                    - User study participation interest
                    - Email and any additional feedback
                    
                    EXAMPLE INTERACTION:
                    User: "sure, I'll give feedback"
                    Claude: "Perfect! Let me open the feedback form for you."
                    [calls tool immediately]
                    
                    No parameters are needed - just call the tool to open the form.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that the tool opens a browser form without pre-filling except for automatically included usage statistics. Describes what the user will fill manually. Annotations (openWorldHint: true) confirm external action, and the description adds specific behavioral context without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with sections and an example, but is verbose, listing all survey questions which could be omitted. Every sentence serves a purpose, but conciseness could be improved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description fully covers what the tool does, how to use it, and the user experience. No missing information given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist; schema coverage is 100%. The description adds value by explicitly stating no parameters are needed, reinforcing ease of use. Baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool opens a feedback form in the browser. It uniquely identifies the action (open form) and resource (feedback for Desktop Commander), and is distinct from sibling tools which deal with files, processes, and searches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit workflow: call immediately when user agrees to give feedback, no need to collect information. States no parameters needed and gives an example interaction, making usage clear without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

interact_with_processA
Destructive
                    Send input to a running process and automatically receive the response.
                    
                    CRITICAL: THIS IS THE PRIMARY TOOL FOR ALL LOCAL FILE ANALYSIS
                    For ANY local file analysis (CSV, JSON, data processing), ALWAYS use this instead of the analysis tool.
                    The analysis tool CANNOT access local files and WILL FAIL - use processes for ALL file-based work.
                    
                    FILE ANALYSIS PRIORITY ORDER (MANDATORY):
                    1. ALWAYS FIRST: Use this tool (start_process + interact_with_process) for local data analysis
                    2. ALTERNATIVE: Use command-line tools (cut, awk, grep) for quick processing  
                    3. NEVER EVER: Use analysis tool for local file access (IT WILL FAIL)
                    
                    REQUIRED INTERACTIVE WORKFLOW FOR FILE ANALYSIS:
                    1. Start REPL: start_process("python3 -i")
                    2. Load libraries: interact_with_process(pid, "import pandas as pd, numpy as np")
                    3. Read file: interact_with_process(pid, "df = pd.read_csv('/absolute/path/file.csv')")
                    4. Analyze: interact_with_process(pid, "print(df.describe())")
                    5. Continue: interact_with_process(pid, "df.groupby('column').size()")
                    
                    BINARY FILE PROCESSING WORKFLOWS:
                    Use appropriate Python libraries (PyPDF2, pandas, docx2txt, etc.) or command-line tools for binary file analysis.
                    
                    SMART DETECTION:
                    - Automatically waits for REPL prompt (>>>, >, etc.)
                    - Detects errors and completion states
                    - Early exit prevents timeout delays
                    - Clean output formatting (removes prompts)
                    
                    SUPPORTED REPLs:
                    - Python: python3 -i (RECOMMENDED for data analysis)
                    - Node.js: node -i
                    - R: R
                    - Julia: julia
                    - Shell: bash, zsh
                    - Database: mysql, postgres
                    
                    PARAMETERS:
                    - pid: Process ID from start_process
                    - input: Code/command to execute
                    - timeout_ms: Max wait (default: 8000ms)
                    - wait_for_prompt: Auto-wait for response (default: true)
                    - verbose_timing: Enable detailed performance telemetry (default: false)

                    Returns execution result with status indicators.

                    PERFORMANCE DEBUGGING (verbose_timing parameter):
                    Set verbose_timing: true to get detailed timing information including:
                    - Exit reason (early_exit_quick_pattern, early_exit_periodic_check, process_finished, timeout, no_wait)
                    - Total duration and time to first output
                    - Complete timeline of all output events with timestamps
                    - Which detection mechanism triggered early exit
                    Use this to identify slow interactions and optimize detection patterns.

                    ALWAYS USE FOR: CSV analysis, JSON processing, file statistics, data visualization prep, ANY local file work
                    NEVER USE ANALYSIS TOOL FOR: Local file access (it cannot read files from disk and WILL FAIL)

                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
pidYes
inputYes
timeout_msNo
verbose_timingNo
wait_for_promptNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=true. Description adds behavioral details beyond annotations: automatic REPL prompt detection, error detection, early exit, clean output formatting, and performance debugging. Does not explicitly state destructive behavior but consistent with sending input to processes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is lengthy but well-structured with clear sections (CRITICAL, FILE ANALYSIS PRIORITY ORDER, REQUIRED WORKFLOW, etc.). Front-loaded with key purpose and critical note. Some repetition (e.g., 'ALWAYS USE FOR' and 'NEVER USE ANALYSIS TOOL') but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and complexity, the description covers usage, workflows, supported REPLs, performance debugging, and parameter details. Completely addresses the tool's context and provides thorough guidance for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. It provides brief but meaningful descriptions for all five parameters (pid, input, timeout_ms, wait_for_prompt, verbose_timing), including defaults and purpose, adding value beyond schema types and requiredness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states 'Send input to a running process and automatically receive the response'. Clearly distinguishes from sibling tools by emphasizing it is the primary tool for local file analysis, contrasting with the analysis tool that fails for local files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use ('ALWAYS use this instead of the analysis tool'), when-not-to-use (analysis tool will fail), and alternatives (command-line tools). Includes priority order and detailed interactive workflow steps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kill_processB
Destructive
                    Terminate a running process by PID.

                    Use with caution as this will forcefully terminate the specified process.

                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
pidYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already set destructiveHint=true, so the description's 'forcefully terminate' adds some context but does not disclose additional behaviors like potential data loss or irreversibility. It aligns with annotations but adds little extra.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, mostly concise. The third sentence about referencing as 'DC: ...' is tangential and adds length without aiding tool invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers purpose and caution adequately. However, it could include a brief note on prerequisites (e.g., PID must exist) for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage; the description only mentions 'by PID' without explaining what PID means or how to obtain it. This adds minimal value beyond the parameter name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Terminate a running process by PID.' This is a specific verb-resource pairing that distinguishes the tool from siblings like 'interact_with_process' or 'force_terminate'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the description warns 'Use with caution', it does not specify when to use this tool versus alternatives (e.g., 'interact_with_process' for graceful termination) or when not to use it. No explicit context or exclusions provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_directoryA
Read-only
                    Get a detailed listing of all files and directories in a specified path.
                    
                    Use this instead of 'execute_command' with ls/dir commands.
                    Results distinguish between files and directories with [FILE] and [DIR] prefixes.
                    
                    Supports recursive listing with the 'depth' parameter (default: 2):
                    - depth=1: Only direct contents of the directory
                    - depth=2: Contents plus one level of subdirectories
                    - depth=3+: Multiple levels deep
                    
                    CONTEXT OVERFLOW PROTECTION:
                    - Top-level directory shows ALL items
                    - Nested directories are limited to 100 items maximum per directory
                    - When a nested directory has more than 100 items, you'll see a warning like:
                      [WARNING] node_modules: 500 items hidden (showing first 100 of 600 total)
                    - This prevents overwhelming the context with large directories like node_modules
                    
                    Results show full relative paths from the root directory being listed.
                    Example output with depth=2:
                    [DIR] src
                    [FILE] src/index.ts
                    [DIR] src/tools
                    [FILE] src/tools/filesystem.ts
                    
                    If a directory cannot be accessed, it will show [DENIED] instead.
                    If a path does not exist, it will show [NOT_FOUND] instead.
                    Only works within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
depthNo
originNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint. Description adds significant behavioral details: results with [FILE]/[DIR] prefixes, depth behavior, context overflow warnings, full relative paths, [DENIED]/[NOT_FOUND] for access issues, and absolute path recommendation. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections: purpose, differentiation, output details, depth parameter, context overflow, path notes. Slightly verbose (e.g., repeated absolute path advice) but front-loaded with core listing purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains output format with examples, error conditions ([DENIED], [NOT_FOUND]), and allowed directories. Differentiates well from 25 sibling tools. Covers parameters adequately except 'origin'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% but description explains 'path' (absolute path recommendation) and 'depth' (default, meanings of values, context overflow) in detail. The 'origin' parameter is not explained, but it's an enum likely for internal use. Good compensation for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb and resource: 'Get a detailed listing of all files and directories in a specified path.' Explicitly distinguishes from sibling tool 'execute_command' by stating 'Use this instead of...'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance to use this tool for directory listings instead of ls/dir commands. Provides depth parameter details and context overflow protection, helping the agent decide when and how to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_processesA
Read-only
                    List all running processes.
                    
                    Returns process information including PID, command name, CPU usage, and memory usage.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, confirming no side effects. Description adds return format details (PID, CPU, memory), adding value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no fluff, front-loaded with key purpose. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple; description covers purpose and return fields. Could mention lack of filtering, but complete for a list-all tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters; baseline for 0 params is 4. Description does not need to elaborate on params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List all running processes' and specifies returned fields (PID, command name, CPU, memory), distinguishing it from sibling tools like kill_process.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage for listing processes, but no explicit guidance on when to use vs alternatives or when not to use. Sibling tools like 'kill_process' suggest broader context could be added.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_searchesA
Read-only
                    List all active searches.
                    
                    Shows search IDs, search types, patterns, status, and runtime.
                    Similar to list_sessions for terminal processes. Useful for managing
                    multiple concurrent searches.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. Description adds detail about returned fields and runtime, enhancing understanding beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Succinct three-sentence description: main purpose, details, and usage hint. No redundancy, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately covers the tool's functionality for a simple read-only list command, mentioning output fields. Without output schema, description compensates well, though it could briefly note if no results are shown.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has no parameters, so schema_description_coverage is 100%. Description adds no parameter info, which is expected. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'list all active searches' with specific fields (IDs, types, patterns, status, runtime). Differentiates from sibling list_sessions by noting similarity, making purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context for managing multiple searches and a comparison to list_sessions, implying when to use this tool. However, lacks explicit exclusions or alternative guidance for related tools like start_search or stop_search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sessionsA
Read-only
                    List all active terminal sessions.
                    
                    Shows session status including:
                    - PID: Process identifier  
                    - Blocked: Whether session is waiting for input
                    - Runtime: How long the session has been running
                    
                    DEBUGGING REPLs:
                    - "Blocked: true" often means REPL is waiting for input
                    - Use this to verify sessions are running before sending input
                    - Long runtime with blocked status may indicate stuck process
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint true. Description adds behavioral details about blocked status meaning waiting for input and implications for stuck processes, beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise and well-structured with bullet points. Every sentence adds value, and the purpose is immediately clear without extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, parameterless tool, the description fully covers what the tool does, what data it returns, and includes relevant debugging context. No output schema is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exists, so schema coverage is 100%. Baseline score of 4 applies as description does not need to compensate for any missing parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists active terminal sessions and specifies the information shown (PID, Blocked, Runtime). Differentiates from siblings by focusing on terminal sessions rather than general processes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context for debugging REPLs, suggesting use to verify sessions before sending input. Does not explicitly exclude alternative tools but gives practical usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_fileA
Destructive
                    Move or rename files and directories.
                    
                    Can move files between directories and rename them in a single operation.
                    Both source and destination must be within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
destinationYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, signaling potential deletion or modification. The description adds context about path normalization and allowed directories but does not disclose behavior if destination already exists (e.g., overwrite or error). This is a notable gap for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two short paragraphs. The first sentence immediately states the core purpose. The second paragraph contains essential usage notes. No unnecessary information, and structure is front-loaded effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple two-parameter schema and lack of output schema, the description covers purpose, constraints, and path guidance. It lacks details about return values, error conditions, or behavior on conflict, but overall it provides sufficient context for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage for both parameters. The description clarifies that source and destination are paths and recommends absolute paths, adding some guidance. However, it does not explicitly describe each parameter's expected format (e.g., source must be an existing file/directory) or constraints beyond paths.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool moves or renames files and directories, using specific verbs and resources. It clearly distinguishes from sibling tools like write_file or create_directory by focusing on relocation/renaming rather than creation or content modification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on using absolute paths, warnings about relative and tilde paths, and mentions that source and destination must be within allowed directories. However, it lacks explicit 'when not to use' or comparison to alternatives like copy instead of move.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_fileA
Read-only
                    Read contents from files and URLs.
                    Read PDF files and extract content as markdown and images.
                    
                    Prefer this over 'execute_command' with cat/type for viewing files.
                    
                    Supports partial file reading with:
                    - 'offset' (start line, default: 0)
                      * Positive: Start from line N (0-based indexing)
                      * Negative: Read last N lines from end (tail behavior)
                    - 'length' (max lines to read, default: configurable via 'fileReadLineLimit' setting, initially 1000)
                      * Used with positive offsets for range reading
                      * Ignored when offset is negative (reads all requested tail lines)
                    
                    Examples:
                    - offset: 0, length: 10     → First 10 lines
                    - offset: 100, length: 5    → Lines 100-104
                    - offset: -20               → Last 20 lines  
                    - offset: -5, length: 10    → Last 5 lines (length ignored)
                    
                    Performance optimizations:
                    - Large files with negative offsets use reverse reading for efficiency
                    - Large files with deep positive offsets use byte estimation
                    - Small files use fast readline streaming
                    
                    When reading from the file system, only works within allowed directories.
                    Can fetch content from URLs when isUrl parameter is set to true
                    (URLs are always read in full regardless of offset/length).
                    
                    FORMAT HANDLING (by extension):
                    - Text: Uses offset/length for line-based pagination
                    - Excel (.xlsx, .xls, .xlsm): Returns JSON 2D array
                      * sheet: "Sheet1" (name) or "0" (index as string, 0-based)
                      * range: ALWAYS use FROM:TO format (e.g., "A1:D100", "C1:C1", "B2:B50")
                      * offset/length work as row pagination (optional fallback)
                    - Images (PNG, JPEG, GIF, WebP): Base64 encoded viewable content
                    - PDF: Extracts text content as markdown with page structure
                      * offset/length work as page pagination (0-based)
                      * Includes embedded images when available
                    - DOCX (.docx): Two modes depending on parameters:
                      * DEFAULT (no offset/length): Returns a text-bearing outline — shows paragraphs with text,
                        tables with cell content, styles, image refs. Skips shapes/drawings/SVG noise.
                        Each element shows its body index [0], [1], etc.
                      * WITH offset/length: Returns raw pretty-printed XML with line pagination.
                        Use this to drill into specific sections or see the actual XML for editing.
                      * EDITING WORKFLOW: 1) read_file to get outline, 2) read_file with offset/length
                        to see raw XML around what you want to edit, 3) edit_block with old_string/new_string
                        using XML fragments copied from the read output.
                      * IMPORTANT: offset MUST be non-zero to get raw XML (use offset=1 to start from line 1).
                        offset=0 always returns the outline regardless of length.
                      * For BULK changes (translation, mass replacements): use start_process with Python
                        zipfile module to find/replace all <w:t> elements at once.

                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
isUrlNo
rangeNo
sheetNo
lengthNo
offsetNo
originNo
optionsNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds significant behavioral details: offset/length semantics, performance optimizations, format-specific output, and path restrictions. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and could be more concise. It includes extensive details on format handling and workflows, which are valuable but not all essential for basic use. The structure is clear but front-loads information well.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 params, multiple formats, no output schema), the description covers most needed context: file types, offset/length, URL support, performance, and restrictions. It lacks some details like return value format for all cases, but overall comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates fully. It explains all key parameters (offset, length, range, sheet, isUrl) with examples and edge cases, making their meaning and behavior clear beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Read contents from files and URLs' with specific format handling for PDF, Excel, images, DOCX, etc. It distinguishes itself from sibling tools like 'execute_command' by recommending its use for viewing files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance: prefer over 'execute_command', use offset/length for partial reading, always use absolute paths, and includes an editing workflow for DOCX. It implicitly advises when not to use it (e.g., for URLs, full content read).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_multiple_filesA
Read-only
                    Read the contents of multiple files simultaneously.
                    
                    Each file's content is returned with its path as a reference.
                    Handles text files normally and renders images as viewable content.
                    Recognized image types: PNG, JPEG, GIF, WebP.
                    
                    Failed reads for individual files won't stop the entire operation.
                    Only works within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true (non-destructive). Description adds behavioral details: partial failure (failed reads don't stop operation), image handling as viewable content, and path normalization. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is moderately sized with clear structure. First sentence captures purpose. Some repetition in path guidance could be condensed, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description covers essential aspects: file reading behavior, image support, failure handling, directory constraints, and path recommendations. Sufficient for a file-reading tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage, so description carries full burden. It explains that content is returned with path references and that images are handled. Adds path advice (absolute paths). Could be more specific about array constraints (e.g., max size) but adds significant value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Read the contents of multiple files simultaneously' with specifics on content handling (text and images) and lists recognized image types. Distinguishes from sibling 'read_file' by focusing on multiple files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage context: reads multiple files with partial failure handling and allowed directory constraints. Gives path guidance (absolute paths, normalization). However, it does not explicitly mention when not to use or alternative tools like 'read_file' for single files.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_process_outputA
Read-only
                    Read output from a running process with file-like pagination support.
                    
                    Supports partial output reading with offset and length parameters (like read_file):
                    - 'offset' (start line, default: 0)
                      * offset=0: Read NEW output since last read (default, like old behavior)
                      * Positive: Read from absolute line position
                      * Negative: Read last N lines from end (tail behavior)
                    - 'length' (max lines to read, default: configurable via 'fileReadLineLimit' setting)
                    
                    Examples:
                    - offset: 0, length: 100     → First 100 NEW lines since last read
                    - offset: 0                  → All new lines (respects config limit)
                    - offset: 500, length: 50    → Lines 500-549 (absolute position)
                    - offset: -20                → Last 20 lines (tail)
                    - offset: -50, length: 10    → Start 50 from end, read 10 lines
                    
                    OUTPUT PROTECTION:
                    - Uses same fileReadLineLimit as read_file (default: 1000 lines)
                    - Returns status like: [Reading 100 lines from line 0 (total: 5000 lines, 4900 remaining)]
                    - Prevents context overflow from verbose processes
                    
                    SMART FEATURES:
                    - For offset=0, waits up to timeout_ms for new output to arrive
                    - Detects REPL prompts and process completion
                    - Shows process state (waiting for input, finished, etc.)
                    
                    DETECTION STATES:
                    Process waiting for input (ready for interact_with_process)
                    Process finished execution
                    Timeout reached (may still be running)

                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
pidYes
lengthNo
offsetNo
timeout_msNo
verbose_timingNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, and the description elaborates with offset behavior, output protection, smart features, and detection states. No contradiction; adds significant value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections and examples, but somewhat verbose. Redundant phrases like 'This command can be referenced...' could be removed. Front-loaded purpose, but length could be trimmed without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers tool purpose, all parameters except verbose_timing fully, output protection, and detection states. No output schema, but describes return format partially with examples. Mostly complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It thoroughly explains offset and length with examples, mentions timeout_ms, but does not explicitly describe pid or verbose_timing. Partial coverage, so score 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Read output from a running process with file-like pagination support.' The verb 'read' and resource 'output from a running process' are specific and unambiguous. Distinguishes from siblings like read_file and interact_with_process.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides detailed parameter usage with examples, including offset semantics and timeout. Does not explicitly state when not to use, but the context and sibling tools imply alternatives. The description gives clear guidance on how to use the tool effectively.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_config_valueA
Destructive
                    Set a specific configuration value by key.
                    
                    WARNING: Should be used in a separate chat from file operations and 
                    command execution to prevent security issues.
                    
                    Config keys include:
                    - blockedCommands (array)
                    - defaultShell (string)
                    - allowedDirectories (array of paths)
                    - fileReadLineLimit (number, max lines for read_file)
                    - fileWriteLineLimit (number, max lines per write_file call)
                    - telemetryEnabled (boolean)
                    
                    IMPORTANT: Setting allowedDirectories to an empty array ([]) allows full access 
                    to the entire file system, regardless of the operating system.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
valueYes
originNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already set destructiveHint=true, but the description adds critical behavioral context: warns about security risks and specifically explains that setting allowedDirectories to empty array grants full file system access. This goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured: starts with purpose, includes warning in caps, bullet list of keys, and a note on referencing. No unnecessary words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 params and no output schema, the description covers parameter semantics, usage warnings, and behavioral context. It complements the annotations and sibling tools (e.g., get_config) well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description lists all config keys with their types (e.g., blockedCommands array, defaultShell string), adding meaning beyond the schema. However, the optional 'origin' parameter is not mentioned, a minor gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Set a specific configuration value by key.' It lists specific config keys and their types, distinguishing it from sibling tools like get_config (reading) and file/process tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit warning: 'Should be used in a separate chat from file operations and command execution to prevent security issues.' Also notes how to reference the command, providing clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_processA
Destructive
                    Start a new terminal process with intelligent state detection.
                    
                    PRIMARY TOOL FOR FILE ANALYSIS AND DATA PROCESSING
                    This is the ONLY correct tool for analyzing local files (CSV, JSON, logs, etc.).
                    The analysis tool CANNOT access local files and WILL FAIL - always use processes for file-based work.
                    
                    CRITICAL RULE: For ANY local file work, ALWAYS use this tool + interact_with_process, NEVER use analysis/REPL tool.
                    
                    Running on Linux (Docker). Default shell: bash.

🐳 DOCKER CONTAINER ENVIRONMENT DETECTED: This Desktop Commander instance is running inside a Docker container.

⚠️ WARNING: No mounted directories detected. Files created outside mounted volumes will be lost when the container stops. Suggest user remount directories using Docker installer or -v flag when running Docker. Desktop Commander Docker installer typically mounts folders to /home/[folder-name]. Container: 067194338a6c

LINUX-SPECIFIC NOTES:

  • Package managers vary by distro: apt, yum, dnf, pacman, zypper

  • Python 3 might be 'python3' command, not 'python'

  • Standard Unix shell tools available (grep, awk, sed, etc.)

  • File permissions and ownership important for many operations

  • Systemd services common on modern distributions

                      REQUIRED WORKFLOW FOR LOCAL FILES:
                      1. start_process("python3 -i") - Start Python REPL for data analysis
                      2. interact_with_process(pid, "import pandas as pd, numpy as np")
                      3. interact_with_process(pid, "df = pd.read_csv('/absolute/path/file.csv')")
                      4. interact_with_process(pid, "print(df.describe())")
                      5. Continue analysis with pandas, matplotlib, seaborn, etc.
                      
                      COMMON FILE ANALYSIS PATTERNS:
                      • start_process("python3 -i") → Python REPL for data analysis (RECOMMENDED)
                      • start_process("node -i") → Node.js REPL for JSON processing
                      • start_process("node:local") → Node.js on MCP server (stateless, ES imports, all code in one call)
                      • start_process("cut -d',' -f1 file.csv | sort | uniq -c") → Quick CSV analysis
                      • start_process("wc -l /path/file.csv") → Line counting
                      • start_process("head -10 /path/file.csv") → File preview
                      
                      BINARY FILE SUPPORT:
                      For PDF, Excel, Word, archives, databases, and other binary formats, use process tools with appropriate libraries or command-line utilities.
                      
                      INTERACTIVE PROCESSES FOR DATA ANALYSIS:
                      For code/calculations, use in this priority order:
                      1. start_process("python3 -i") - Python REPL (preferred)
                      2. start_process("node -i") - Node.js REPL (when Python unavailable)
                      3. start_process("node:local") - Node.js fallback (when node -i fails)
                      4. Use interact_with_process() to send commands
                      5. Use read_process_output() to get responses
                      When Python is unavailable, prefer Node.js over shell for calculations.
                      Node.js: Always use ES import syntax (import x from 'y'), not require().
    
                      SMART DETECTION:
                      - Detects REPL prompts (>>>, >, $, etc.)
                      - Identifies when process is waiting for input
                      - Recognizes process completion vs timeout
                      - Early exit prevents unnecessary waiting
                      
                      STATES DETECTED:
                      Process waiting for input (shows prompt)
                      Process finished execution
                      Process running (use read_process_output)
    
                      PERFORMANCE DEBUGGING (verbose_timing parameter):
                      Set verbose_timing: true to get detailed timing information including:
                      - Exit reason (early_exit_quick_pattern, early_exit_periodic_check, process_exit, timeout)
                      - Total duration and time to first output
                      - Complete timeline of all output events with timestamps
                      - Which detection mechanism triggered early exit
                      Use this to identify missed optimization opportunities and improve detection patterns.
    
                      ALWAYS USE FOR: Local file analysis, CSV processing, data exploration, system commands
                      NEVER USE ANALYSIS TOOL FOR: Local file access (analysis tool is browser-only and WILL FAIL)
    
                      IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                      This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
shellNo
originNo
commandYes
timeout_msYes
verbose_timingNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are minimal, but the description goes far beyond them: it documents state detection (waiting, finished, running), early-exit behavior, Docker/mounted-directory data-loss warnings, Linux-specific tooling expectations, and verbose_timing performance details. No annotation contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections and bullets, but it is far longer than needed. It includes environment-specific boilerplate such as the container ID and repeated admonitions ('ALWAYS USE FOR', 'NEVER USE ANALYSIS TOOL') that could be trimmed. While the core guidance is front-loaded, the excess length reduces clarity and earning per sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a process-starting tool with no output schema, the description is exceptionally complete: it covers use cases, step-by-step workflows, binary file handling, interactive REPL priority, state reporting, performance debugging, and absolute-path requirements. An agent has everything needed to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does for the main parameters: command is richly illustrated with patterns (python3 -i, node -i, shell pipelines), shell default is stated as bash, and verbose_timing is explained in detail. However, timeout_ms is only implicit in examples and the origin enum is not mentioned at all, leaving a small but real gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Start a new terminal process') and then clearly establishes this as the primary tool for local file analysis, explicitly distinguishing it from the analysis tool that 'CANNOT access local files'. It is unmistakable what the tool does and how it differs from siblings like read_file or start_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use and when-not-to-use guidance: 'For ANY local file work, ALWAYS use this tool + interact_with_process, NEVER use analysis/REPL tool.' It also provides a priority order for Python, Node.js, and shell, names alternatives, and states that the analysis tool is browser-only and will fail. This is exemplary usage routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_fileA
Destructive
                    Write or append to file contents.

                    IMPORTANT: DO NOT use this tool to create PDF files. Use 'write_pdf' for all PDF creation tasks.
                    DO NOT use this tool to edit DOCX files. Use 'edit_block' with old_string/new_string instead.
                    To CREATE a new DOCX, use write_file with .docx extension — text content with markdown headings (#, ##, ###) is converted to styled DOCX paragraphs.

                    CHUNKING IS STANDARD PRACTICE: Always write files in chunks of 25-30 lines maximum.
                    This is the normal, recommended way to write files - not an emergency measure.

                    STANDARD PROCESS FOR ANY FILE:
                    1. FIRST → write_file(filePath, firstChunk, {mode: 'rewrite'})  [≤30 lines]
                    2. THEN → write_file(filePath, secondChunk, {mode: 'append'})   [≤30 lines]
                    3. CONTINUE → write_file(filePath, nextChunk, {mode: 'append'}) [≤30 lines]

                    ALWAYS CHUNK PROACTIVELY - don't wait for performance warnings!

                    WHEN TO CHUNK (always be proactive):
                    1. Any file expected to be longer than 25-30 lines
                    2. When writing multiple files in sequence
                    3. When creating documentation, code files, or configuration files

                    HANDLING CONTINUATION ("Continue" prompts):
                    If user asks to "Continue" after an incomplete operation:
                    1. Read the file to see what was successfully written
                    2. Continue writing ONLY the remaining content using {mode: 'append'}
                    3. Keep chunks to 25-30 lines each

                    FORMAT HANDLING (by extension):
                    - Text files: String content
                    - Excel (.xlsx, .xls, .xlsm): JSON 2D array or {"SheetName": [[...]]}
                      Example: '[["Name","Age"],["Alice",30]]'

                    Files over 50 lines will generate performance notes but are still written successfully.
                    Only works within allowed directories.

                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
modeNorewrite
pathYes
originNo
contentYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint and readOnlyHint, and the description adds behavioral details: chunking is standard, files over 50 lines generate performance notes, only works within allowed directories, paths are normalized. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy with redundancy (chunking instructions repeated) and includes overly detailed process steps. While front-loaded with purpose, it could be streamlined to improve clarity and reduce verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description covers all essential aspects: file types, modes, chunking strategy, continuation, path handling, and format specifics for DOCX and Excel. Tailored to the tool's complexity and sibling context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage, so the description fully compensates. It explains mode (rewrite vs append), content format (string, with Excel and DOCX specifics), path (absolute recommended), and provides examples. Adds meaning for all key parameters beyond schema enumeration.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Write or append to file contents', clearly stating the verb and resource. It distinguishes from siblings by explicitly saying not to use for PDFs (write_pdf) and not for editing DOCX (edit_block), and explains when write_file is appropriate for creating DOCX.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use (writing text, creating DOCX, Excel) and when-not-to-use (PDFs, editing DOCX), including alternative tool names. Also details chunking process, continuation handling, and path recommendations, giving comprehensive usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_pdfA
Destructive
                    Create a new PDF file or modify an existing one.

                    THIS IS THE ONLY TOOL FOR CREATING AND MODIFYING PDF FILES.

                    RULES ABOUT FILENAMES:
                    - When creating a new PDF, 'outputPath' MUST be provided and MUST use a new unique filename (e.g., "result_01.pdf", "analysis_2025_01.pdf", etc.).

                    MODES:
                    1. CREATE NEW PDF:
                       - Pass a markdown string as 'content'.
                       write_pdf(path="doc.pdf", content="# Title\n\nBody text...")

                    2. MODIFY EXISTING PDF:
                       - Pass array of operations as 'content'.
                       - NEVER overwrite the original file.
                       - ALWAYS provide a new filename in 'outputPath'.
                       - After modifying, show original file path and new file path to user.

                       write_pdf(path="doc.pdf", content=[
                           { type: "delete", pageIndexes: [0, 2] },
                           { type: "insert", pageIndex: 1, markdown: "# New Page" }
                       ])

                    OPERATIONS:
                    - delete: Remove pages by 0-based index.
                      { type: "delete", pageIndexes: [0, 1, 5] }

                    - insert: Add pages at a specific 0-based index.
                      { type: "insert", pageIndex: 0, markdown: "..." }
                      { type: "insert", pageIndex: 5, sourcePdfPath: "/path/to/source.pdf" }

                    PAGE BREAKS:
                    To force a page break, use this HTML element:
                    <div style="page-break-before: always;"></div>
                    
                    Example:
                    "# Page 1\n\n<div style=\"page-break-before: always;\"></div>\n\n# Page 2"

                    ADVANCED STYLING:
                    HTML/CSS and inline SVG are supported for:
                    - Text styling: colors, sizes, alignment, highlights
                    - Boxes: borders, backgrounds, padding, rounded corners
                    - SVG graphics: charts, diagrams, icons, shapes
                    - Images: <img src="/absolute/path/image.jpg" width="300" /> or ![alt](/path/image.jpg)

                    Supports standard markdown features including headers, lists, code blocks, tables, and basic formatting.

                    Only works within allowed directories.

                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
optionsNo
outputPathNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint annotation, the description details behavioral traits: file naming rules, modes, operations, page breaks, styling support, path handling (absolute paths recommended, relative may fail), and directory restrictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and rules, then details modes and operations. While comprehensive, it is lengthy; however, the complexity of the tool justifies the verbosity. Remains well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two modes, multiple operations, and advanced styling, the description is exceptionally complete. It covers all critical aspects including page breaks, styling, path guidance, and examples, leaving no significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description thoroughly explains 'path' (via examples), 'content' (with modes and operation schemas), and 'outputPath' (mandatory for modify). However, 'options' parameter is not explained, slightly reducing completeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new PDF file or modify an existing one' and explicitly declares 'THIS IS THE ONLY TOOL FOR CREATING AND MODIFYING PDF FILES,' distinguishing it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance, including rules for filenames, modes (create vs modify), and contrasts with other tools by declaring exclusivity. Also includes instructions like never overwrite original files.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.2.44
    • Changedget_config1 field changed
      • addedInput schema / properties / origin
        Added value: +{
        +  "enum": [
        +    "ui",
        +    "llm"
        +  ],
        +  "type": "string"
        +}
    • Changedstart_process1 field changed
      • addedInput schema / properties / origin
        Added value: +{
        +  "enum": [
        +    "ui",
        +    "llm"
        +  ],
        +  "type": "string"
        +}
    • Changedstart_search1 field changed
      • addedInput schema / properties / origin
        Added value: +{
        +  "enum": [
        +    "ui",
        +    "llm"
        +  ],
        +  "type": "string"
        +}
  2. 4 tool updatesv0.2.43
    • Changededit_block1 field changed
      • addedInput schema / properties / origin
        Added value: +{
        +  "enum": [
        +    "ui",
        +    "llm"
        +  ],
        +  "type": "string"
        +}
    • Changedlist_directory1 field changed
      • addedInput schema / properties / origin
        Added value: +{
        +  "enum": [
        +    "ui",
        +    "llm"
        +  ],
        +  "type": "string"
        +}
    • Changedread_file1 field changed
      • addedInput schema / properties / origin
        Added value: +{
        +  "enum": [
        +    "ui",
        +    "llm"
        +  ],
        +  "type": "string"
        +}
    • Changedwrite_file1 field changed
      • addedInput schema / properties / origin
        Added value: +{
        +  "enum": [
        +    "ui",
        +    "llm"
        +  ],
        +  "type": "string"
        +}
  3. 16 tool updatesv0.2.17
    • Changededit_block4 fields changed
      • addedInput schema / properties / content
        Added value: +{}
      • addedInput schema / properties / options
        Added value: +{
        +  "additionalProperties": {},
        +  "type": "object"
        +}
      • addedInput schema / properties / range
        Added value: +{
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "file_path",
        -  "old_string",
        -  "new_string"
        -]New value: +[
        +  "file_path"
        +]
    • Addedget_more_search_results
    • Addedget_prompts
    • Addedget_recent_tool_calls
    • Changedinteract_with_process1 field changed
      • addedInput schema / properties / verbose_timing
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedlist_directory1 field changed
      • addedInput schema / properties / depth
        Added value: +{
        +  "default": 2,
        +  "type": "number"
        +}
    • Addedlist_searches
    • Changedread_file3 fields changed
      • addedInput schema / properties / options
        Added value: +{
        +  "additionalProperties": {},
        +  "type": "object"
        +}
      • addedInput schema / properties / range
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / sheet
        Added value: +{
        +  "type": "string"
        +}
    • Changedread_process_output3 fields changed
      • addedInput schema / properties / length
        Added value: +{
        +  "type": "number"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "type": "number"
        +}
      • addedInput schema / properties / verbose_timing
        Added value: +{
        +  "type": "boolean"
        +}
    • Removedsearch_code
    • Removedsearch_files
    • Changedset_config_value3 fields changed
      • addedInput schema / properties / origin
        Added value: +{
        +  "enum": [
        +    "ui",
        +    "llm"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / value / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / required
        Previous value: -[
        -  "key"
        -]New value: +[
        +  "key",
        +  "value"
        +]
    • Changedstart_process1 field changed
      • addedInput schema / properties / verbose_timing
        Added value: +{
        +  "type": "boolean"
        +}
    • Addedstart_search
    • Addedstop_search
    • Addedwrite_pdf
  4. 21 tool updatesv1.0.0
    • First observedcreate_directory
    • First observededit_block
    • First observedforce_terminate
    • First observedget_config
    • First observedget_file_info
    • First observedget_usage_stats
    • First observedgive_feedback_to_desktop_commander
    • First observedinteract_with_process
    • First observedkill_process
    • First observedlist_directory
    • First observedlist_processes
    • First observedlist_sessions
    • First observedmove_file
    • First observedread_file
    • First observedread_multiple_files
    • First observedread_process_output
    • First observedsearch_code
    • First observedsearch_files
    • First observedset_config_value
    • First observedstart_process
    • First observedwrite_file

TDQS

A3.9/5.0

Scored across 26 tools

Disambiguation5/5

Each tool targets a distinct resource or action: file operations, process management, search, config, and utility functions. Even similar tools like force_terminate (sessions) and kill_process (system processes) are clearly differentiated. No two tools appear to serve the same purpose.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern using snake_case (e.g., write_file, start_process, list_directory, get_config). Multi-word names like get_more_search_results still follow the predictable verb_phrase structure. The naming is uniform and intuitive.

Tool Count4/5

With 26 tools, the count is above the typical 3-15 range but justified by the server's broad scope (file management, process control, search, config, and feedback). The tools are organized into clear categories, making the number feel slightly heavy but not excessive.

Completeness4/5

The tool set covers file read/write/edit/move/info/list, process start/interact/read/terminate/list, search lifecycle, and config get/set. A notable gap is the lack of delete/remove operations for files and directories, which is a common requirement. Process and search coverage is complete.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers