Desktop Commander provides 20 tools with consistent naming (verb_noun pattern) and reasonable descriptions. However, critical gaps exist: parameter descriptions are sparse or missing entirely (e.g., execute_command lacks timeout_ms guidance), output schemas are undocumented, and error handling lacks recovery guidance. Most tools fall in the 50-70 range. The server handles file operations and process management well but needs schema documentation and richer parameter constraints to guide LLM reasoning effectively.
Add a command to the blacklist. Once blocked, the command cannot be executed until unblocked.
Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. Only works within allowed directories.
Apply surgical text replacements to files. Best for small changes (<20% of file size). Call repeatedly to change multiple blocks. Will verify changes after application. Format: filepath <<<<<<< SEARCH content to find ======= new content >>>>>>> REPLACE
Execute a terminal command with timeout. Command will continue running in background if it doesn't complete within timeout.
Force terminate a running terminal session.
Retrieve detailed metadata about a file or directory including size, creation time, last modified time, permissions, and type. Only works within allowed directories.
Output schemas completely undocumented. No tool declares what fields it returns, forcing LLMs to guess structure and plan downstream calls blindly.
Parameter descriptions missing or generic. 'timeout_ms' in execute_command lacks guidance on units, range, or default. 'pid' lacks explanation of what happens if invalid. LLMs cannot infer constraints.
No error recovery guidance. Tools like kill_process and write_file are destructive but descriptions do not explain what errors are retryable, what require user intervention, or how to undo mistakes.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Terminate a running process by PID. Use with caution as this will forcefully terminate the specified process.
Returns the list of directories that this server is allowed to access.
List all currently blocked commands.
Get a detailed listing of all files and directories in a specified path. Results distinguish between files and directories with [FILE] and [DIR] prefixes. Only works within allowed directories.
List all running processes. Returns process information including PID, command name, CPU usage, and memory usage.
List all active terminal sessions.
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.
Read the complete contents of a file from the file system. Reads UTF-8 text and provides detailed error messages if the file cannot be read. Only works within allowed directories.
Read the contents of multiple files simultaneously. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.
Read new output from a running terminal session.
Search for text/code patterns within file contents using ripgrep. Fast and powerful search similar to VS Code search functionality. Supports regular expressions, file pattern filtering, and context lines. Only searches within allowed directories.
Finds files by name using a case-insensitive substring matching. Searches through all subdirectories from the starting path. Only searches within allowed directories.
Remove a command from the blacklist. Once unblocked, the command can be executed normally.
Completely replace file contents. Best for large changes (>20% of file) or when edit_block fails. Use with caution as it will overwrite existing files. Only works within allowed directories.
No pagination or result limits documented. list_processes, list_directory, search_code could return hundreds of items, blowing context window. No limit parameter or cursor guidance.
Destructive operations lack confirmation or dry-run support. execute_command with 'rm -rf /' and write_file overwriting critical files have no safeguards against agent mistakes.