Data as of

Desktop Commander MCP for Claude Desktop: Setup & Config

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

What you can do with Desktop Commander in Claude Desktop

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

  • Analyze local CSV, JSON, or spreadsheet files through interactive processes.
  • Search directories and apply focused edits to documents or code.
  • Run long-lived development commands and inspect output incrementally.

Before you start: Desktop Commander in Claude Desktop

  • 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 Desktop configuration

  1. Choose Claude Desktop configuration scope

    For Desktop Commander MCP, open macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json. Merge under mcpServers via Settings → Developer → Edit Config when available.

  2. Add Desktop Commander MCP to Claude Desktop

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

  3. Check Desktop Commander MCP in Claude Desktop

    Desktop Commander MCP: Fully quit and reopen Claude Desktop; check developer diagnostics.

Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

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

Desktop Commander tools available to Claude Desktop

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

get_config

When Claude Desktop requests get_config from Desktop Commander, review the action before approving it.

Inspect the server's current configuration.

set_config_value

When Claude Desktop requests set_config_value from Desktop Commander, review the action before approving it.

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

read_file

When Claude Desktop requests read_file from Desktop Commander, review the action before approving it.

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

read_multiple_files

When Claude Desktop requests read_multiple_files from Desktop Commander, review the action before approving it.

Read several files and associate each result with its path.

write_file

When Claude Desktop requests write_file from Desktop Commander, review the action before approving it.

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

write_pdf

When Claude Desktop requests write_pdf from Desktop Commander, review the action before approving it.

Create a PDF or modify an existing PDF document.

create_directory

When Claude Desktop requests create_directory from Desktop Commander, review the action before approving it.

Create nested directories within allowed paths.

list_directory

When Claude Desktop requests list_directory from Desktop Commander, review the action before approving it.

Inspect a directory with separate file and directory entries.

move_file

When Claude Desktop requests move_file from Desktop Commander, review the action before approving it.

Move or rename files and directories within permitted locations.

start_search

When Claude Desktop requests start_search from Desktop Commander, review the action before approving it.

Begin a streaming file or content search.

get_more_search_results

When Claude Desktop requests get_more_search_results from Desktop Commander, review the action before approving it.

Retrieve another portion of results from an active search.

stop_search

When Claude Desktop requests stop_search from Desktop Commander, review the action before approving it.

Stop a background search when it is no longer needed.

list_searches

When Claude Desktop requests list_searches from Desktop Commander, review the action before approving it.

Inspect active search IDs, patterns, status, and runtime.

get_file_info

When Claude Desktop requests get_file_info from Desktop Commander, review the action before approving it.

edit_block

When Claude Desktop requests edit_block from Desktop Commander, review the action before approving it.

start_process

When Claude Desktop requests start_process from Desktop Commander, review the action before approving it.

read_process_output

When Claude Desktop requests read_process_output from Desktop Commander, review the action before approving it.

interact_with_process

When Claude Desktop requests interact_with_process from Desktop Commander, review the action before approving it.

force_terminate

When Claude Desktop requests force_terminate from Desktop Commander, review the action before approving it.

list_sessions

When Claude Desktop requests list_sessions from Desktop Commander, review the action before approving it.

list_processes

When Claude Desktop requests list_processes from Desktop Commander, review the action before approving it.

kill_process

When Claude Desktop requests kill_process from Desktop Commander, review the action before approving it.

get_usage_stats

When Claude Desktop requests get_usage_stats from Desktop Commander, review the action before approving it.

get_recent_tool_calls

When Claude Desktop requests get_recent_tool_calls from Desktop Commander, review the action before approving it.

give_feedback_to_desktop_commander

When Claude Desktop requests give_feedback_to_desktop_commander from Desktop Commander, review the action before approving it.

get_prompts

When Claude Desktop requests get_prompts from Desktop Commander, review the action before approving it.

Desktop Commander: full stored tool descriptions

Troubleshooting Desktop Commander in Claude Desktop

  • Fully quit and reopen Claude Desktop for Desktop Commander MCP. If npx @wonderwhy-er/desktop-commander@latest (Node.js/npm) is missing, check the desktop process's PATH, which may differ from your terminal.
  • Desktop Commander MCP uses stdio here: Claude Desktop 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 Desktop troubleshooting lives in the /clients/claude-desktop guide.

Desktop Commander MCP — details. Claude Desktop guide

Frequently asked questions

Claude Desktop loads Desktop Commander MCP from claude_desktop_config.json: ~/Library/Application Support/Claude/ on macOS, or %APPDATA%\Claude\ on Windows. Open it via Settings → Developer → Edit Config when available.

Claude Desktop's DesktopCommanderMCP example uses stdio.

Desktop Commander MCP's Claude Desktop 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 Desktop'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.

The README covers text files, native Excel support, PDFs, and DOCX documents.