Desktop Commander MCP

Lets an assistant run terminal commands, manage processes, and search, read and edit files on your computer.

By Eduard Ruzga (individual) TypeScript Local · stdio Files and storageDeveloper tools

105 popularity score ★ 10k ↓ 705k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "desktop-commander": {
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "desktop-commander": {
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "desktop-commander": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.desktop-commander]
command = "npx"
args = ["-y", "@wonderwhy-er/desktop-commander"]
Gemini CLITerminal
gemini mcp add --scope user desktop-commander npx -- -y @wonderwhy-er/desktop-commander

What it does

Desktop Commander gives an assistant a terminal and a file manager on your own computer. It can start programs and keep talking to them (shells, SSH sessions, databases, development servers), stream and page through their output, list and kill processes, and run code in memory in Python, Node.js or R.

For files it reads, writes, moves and searches text, with ripgrep-based content search, recursive directory listing and reading from the end of a file. It makes targeted text replacements for small code edits, and also reads and writes Excel workbooks, PDFs (including creating PDFs from markdown) and Word documents, which makes it usable for quick analysis of CSV, JSON or Excel data.

It runs locally with Node.js: npx @wonderwhy-er/desktop-commander@latest setup configures Claude Desktop, or the package can be added to any client's config. A Docker image (mcp/desktop-commander) runs it in a container with only the folders you mount. Settings such as allowed directories, blocked commands and the default shell are changed through its own config tools. A Remote MCP option lets it be used from ChatGPT, Claude web and other web services.

Tools 25

get_config
Get the complete server configuration as JSON: blocked commands, default shell, allowed directories, read and write line limits, telemetry setting.
set_config_value
Set a configuration value by key, such as blockedCommands, defaultShell, allowedDirectories, fileReadLineLimit, fileWriteLineLimit or telemetryEnabled.
start_process
Start programs with detection of when they are ready for input.
interact_with_process
Send commands to running programs and get responses.
read_process_output
Read output from running processes.
force_terminate
Force terminate a running terminal session.
list_sessions
List all active terminal sessions.
list_processes
List all running processes with detailed information.
kill_process
Terminate a running process by PID.
read_file
Read contents from the local filesystem, URLs, Excel files and PDFs with line- or page-based pagination.
read_multiple_files
Read multiple files simultaneously.
write_file
Write file contents, rewriting or appending; supports Excel files as JSON 2D arrays.
write_pdf
Create PDF files from markdown or modify existing PDFs (insert or delete pages).
create_directory
Create a new directory or ensure it exists.
list_directory
Recursive listing of files and directories, with a depth parameter (default 2).
move_file
Move or rename files and directories.
start_search
Start a streaming search for files by name or content patterns, including Excel content.
get_more_search_results
Get paginated results from an active search.
stop_search
Stop an active search.
list_searches
List all active search sessions.
get_file_info
Retrieve metadata about a file or directory, including sheet info for Excel files.
edit_block
Apply targeted text replacements in text files, or range-based cell updates in Excel files.
get_usage_stats
Get usage statistics.
get_recent_tool_calls
Get recent tool call history with arguments and outputs, for debugging and context recovery.
give_feedback_to_desktop_commander
Open a feedback form in the browser.

Similar servers