Data as of

Desktop Commander MCP for Claude Code: Setup & Config

Desktop Commander MCP gives Claude Code local file, document, terminal, and process-management tools.

What you can do with Desktop Commander in Claude Code

Give assistants a unified local workspace for files, documents, interactive terminals, and processes.

  • Run long-lived development commands and inspect output incrementally.
  • Read and create PDFs or work with Excel and Word documents.
  • Manage active terminal sessions and operating-system processes.

Before you start: Desktop Commander in Claude Code

  • Node.js for the npm configuration
  • An MCP-compatible client

This is the README's manual MCP configuration. The setup command npx @wonderwhy-er/desktop-commander@latest setup can configure Claude Desktop instead. Restart the client afterward. Docker is documented as an alternative without local Node.js.

Desktop Commander Claude Code configuration

  1. Choose Claude Code configuration scope

    For Desktop Commander MCP, open Project scope: .mcp.json at the repository root. Project JSON: merge into mcpServers; user scope: use the CLI.

  2. Add Desktop Commander MCP to Claude Code

    Use the DesktopCommanderMCP entry below in mcpServers. Keep Desktop Commander MCP's documented stdio connection fields and your other Claude Code entries.

  3. Check Desktop Commander MCP in Claude Code

    Desktop Commander MCP: Inspect claude mcp list and /mcp status.

Config file · Project scope: .mcp.json at the repository root

JSON
{
  "mcpServers": {
    "DesktopCommanderMCP": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander@latest"
      ],
      "env": {}
    }
  }
}

CLI (POSIX shell)
claude mcp add-json --scope project 'DesktopCommanderMCP' '{"type":"stdio","command":"npx","args":["-y","@wonderwhy-er/desktop-commander@latest"],"env":{}}'

Desktop Commander tools available to Claude Code

Desktop Commander's stored tool list documents 26 tools; compare it with Claude Code's connected tool list, because the stored list is not a live check.

get_config

For Desktop Commander's get_config, review the permission request and arguments in Claude Code before approval.

Inspect the server's current configuration.

set_config_value

For Desktop Commander's set_config_value, review the permission request and arguments in Claude Code before approval.

Change a configuration key; the tool warns to do this separately from file and execution chats.

read_file

For Desktop Commander's read_file, review the permission request and arguments in Claude Code before approval.

Read local files or URLs, including PDF text and image extraction.

read_multiple_files

For Desktop Commander's read_multiple_files, review the permission request and arguments in Claude Code before approval.

Read several files and associate each result with its path.

write_file

For Desktop Commander's write_file, review the permission request and arguments in Claude Code before approval.

Write or append file content; dedicated tools handle PDFs and DOCX edits.

write_pdf

For Desktop Commander's write_pdf, review the permission request and arguments in Claude Code before approval.

Create a PDF or modify an existing PDF document.

create_directory

For Desktop Commander's create_directory, review the permission request and arguments in Claude Code before approval.

Create nested directories within allowed paths.

list_directory

For Desktop Commander's list_directory, review the permission request and arguments in Claude Code before approval.

move_file

For Desktop Commander's move_file, review the permission request and arguments in Claude Code before approval.

start_search

For Desktop Commander's start_search, review the permission request and arguments in Claude Code before approval.

get_more_search_results

For Desktop Commander's get_more_search_results, review the permission request and arguments in Claude Code before approval.

stop_search

For Desktop Commander's stop_search, review the permission request and arguments in Claude Code before approval.

list_searches

For Desktop Commander's list_searches, review the permission request and arguments in Claude Code before approval.

get_file_info

For Desktop Commander's get_file_info, review the permission request and arguments in Claude Code before approval.

edit_block

For Desktop Commander's edit_block, review the permission request and arguments in Claude Code before approval.

start_process

For Desktop Commander's start_process, review the permission request and arguments in Claude Code before approval.

read_process_output

For Desktop Commander's read_process_output, review the permission request and arguments in Claude Code before approval.

interact_with_process

For Desktop Commander's interact_with_process, review the permission request and arguments in Claude Code before approval.

force_terminate

For Desktop Commander's force_terminate, review the permission request and arguments in Claude Code before approval.

list_sessions

For Desktop Commander's list_sessions, review the permission request and arguments in Claude Code before approval.

Inspect active terminal sessions and their process state.

list_processes

For Desktop Commander's list_processes, review the permission request and arguments in Claude Code before approval.

List operating-system processes with CPU and memory information.

kill_process

For Desktop Commander's kill_process, review the permission request and arguments in Claude Code before approval.

Forcefully terminate a process identified by PID.

get_usage_stats

For Desktop Commander's get_usage_stats, review the permission request and arguments in Claude Code before approval.

Read tool usage, success rates, and performance summaries.

get_recent_tool_calls

For Desktop Commander's get_recent_tool_calls, review the permission request and arguments in Claude Code before approval.

Inspect recent session tool calls with arguments and outputs.

give_feedback_to_desktop_commander

For Desktop Commander's give_feedback_to_desktop_commander, review the permission request and arguments in Claude Code before approval.

Open the project's feedback form in a browser for manual completion.

get_prompts

For Desktop Commander's get_prompts, review the permission request and arguments in Claude Code before approval.

Desktop Commander: full stored tool descriptions

Troubleshooting Desktop Commander in Claude Code

  • If Desktop Commander MCP fails to start, check npx @wonderwhy-er/desktop-commander@latest (Node.js/npm), the working directory, and Claude Code's selected scope; inspect claude mcp list and /mcp.
  • Desktop Commander MCP uses stdio here: Claude Code must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
  • Known limitation: The npm installation route requires Node.js.
  • Known limitation: Docker needs explicit folder mounts to access host files.
  • Known limitation: Configuration changes carry a documented warning to separate them from execution and file-work chats.
  • General Claude Code troubleshooting lives in the /clients/claude-code guide.

Desktop Commander MCP — details. Claude Code guide

Frequently asked questions

Register Desktop Commander MCP with the displayed claude mcp add-json --scope project command, or merge the JSON into .mcp.json at the repository root.

Claude Code's DesktopCommanderMCP example uses stdio.

Desktop Commander MCP's Claude Code configuration invokes npx @wonderwhy-er/desktop-commander@latest (Node.js/npm).

Desktop Commander MCP's stored list contains 26 tools, including get_config, set_config_value, read_file. Compare those names with Claude Code's connected tool list; the stored list is not a live check.

Yes. It can start a process, read output incrementally, send input, and manage the resulting session.

No. The README says the MCP server remains usable with Claude Desktop and other compatible clients; the app is a separate beta experience.