# Desktop Commander MCP server

> Run terminal commands, manage processes and edit files on your own machine from your AI chat.

- Listing: https://mcp.tc/i/desktop-commander
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: no API key needed
- Category: [Developer Tools](https://mcp.tc/c/developer-tools)
- Vendor: Desktop Commander (wonderwhy-er)
- Homepage: <https://desktopcommander.app>
- Repository: <https://github.com/wonderwhy-er/DesktopCommanderMCP>
- Package: npm `@wonderwhy-er/desktop-commander`

## About

Desktop Commander gives an AI assistant terminal control, file system search and diff-based file editing on your computer. It can run long-running commands with output streaming, interact with running processes such as SSH sessions or dev servers, list and kill processes, and run Python, Node.js or R code in memory. It also reads and writes Excel, PDF and DOCX files.

It runs locally over stdio as an npm package, started with npx and requiring Node.js. No API key is needed. The README says the safety guardrails are not a sandbox, and it describes a Docker install for isolation. A remote MCP option is also mentioned for ChatGPT and Claude web.

## What it can do

- Run terminal commands with streaming output and timeouts
- Start and interact with long-running processes
- List and kill processes
- Read, write, move and list files and directories
- Search files and file contents with ripgrep
- Edit code with targeted text replacements or full rewrites
- Read and edit Excel, PDF and DOCX files
- Change server configuration without restarting

## Example prompts

- "Find every TODO comment in my project folder and list the files."
- "Run the test suite and tell me which tests fail."
- "Replace the old API URL in all config files in this repo."
- "Analyze the sales.csv file on my desktop and summarize it."

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
```

2. Start Claude Code and type `/mcp`. **desktop-commander** should show as connected.

Add `--scope user` to make it available in every project.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

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

2. Save the file and restart Claude Desktop.

Needs Node.js on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=desktop-commander&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkB3b25kZXJ3aHktZXIvZGVza3RvcC1jb21tYW5kZXJAbGF0ZXN0Il19>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

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

Needs Node.js on your computer.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=desktop-commander&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40wonderwhy-er%2Fdesktop-commander%40latest%22%5D%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"desktop-commander","type":"stdio","command":"npx","args":["-y","@wonderwhy-er/desktop-commander@latest"]}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "desktop-commander": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander@latest"
      ]
    }
  }
}
```

Needs Node.js on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

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

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.desktop-commander]
command = "npx"
args = ["-y", "@wonderwhy-er/desktop-commander@latest"]
```

Needs Node.js on your computer.

### Gemini CLI

```bash
gemini mcp add desktop-commander npx -- -y @wonderwhy-er/desktop-commander@latest
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

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

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs Node.js on your computer.

## Details

- Server version: 0.2.52
- Last checked: 2026-10-03
- Listed: 2026-10-03
- Updated: 2026-10-03

---
Source: https://mcp.tc/i/desktop-commander (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
