CLI (Computer Commander) MCP server

Integrates terminal and filesystem capabilities for executing system commands, managing processes, and performing advanced file operations on the local system.
Back to servers
Setup instructions
Provider
Eduard Ruzga
Release date
Jan 08, 2025
Language
TypeScript
Stats
4.8K stars

Desktop Commander MCP is a powerful tool that enables Claude to search, update, manage files, and run terminal commands on your computer. It integrates with your Claude Desktop app and extends its capabilities to interact with your file system and terminal.

Installation Options

Several installation methods are available depending on your preferences:

Option 1: Install through npx (Recommended)

Simply run this command in your terminal:

npx @wonderwhy-er/desktop-commander@latest setup

For debugging mode:

npx @wonderwhy-er/desktop-commander@latest setup --debug

Command options:

  • --debug: Enable debugging mode
  • --no-onboarding: Disable onboarding prompts

Option 2: Using bash script installer (macOS)

For macOS users, this script checks Node.js requirements and installs if needed:

curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash

Option 3: Installing via Smithery

  1. Visit Smithery's Desktop Commander page
  2. Login to Smithery
  3. Select Claude Desktop on the right side
  4. Install with the provided key
  5. Restart Claude Desktop

Option 4: Add to claude_desktop_config manually

Add this entry to your claude_desktop_config.json file (location varies by OS):

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

Option 5: Checkout locally

Clone and build from source:

git clone https://github.com/wonderwhy-er/DesktopCommanderMCP.git
cd DesktopCommanderMCP
npm run setup

Option 6: Docker Installation

For complete isolation or users without Node.js:

macOS/Linux:

bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)

Windows PowerShell:

iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'))

Uninstalling Desktop Commander

To completely remove Desktop Commander:

npx @wonderwhy-er/desktop-commander@latest remove

Using Desktop Commander

Once installed, restart Claude Desktop to start using Desktop Commander. It provides various tools for interacting with your system:

Available Tools

Configuration Tools

  • get_config: Get the complete server configuration
  • set_config_value: Set specific configuration values

Terminal Tools

  • start_process: Start programs with smart detection
  • interact_with_process: Send commands to running programs
  • 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 running processes with details
  • kill_process: Terminate a process by PID

Filesystem Tools

  • read_file: Read contents from local files or URLs
  • read_multiple_files: Read multiple files simultaneously
  • write_file: Write file contents (rewrite or append)
  • create_directory: Create a new directory
  • list_directory: Get detailed directory listing
  • move_file: Move or rename files and directories
  • start_search: Search for files by name or content
  • get_more_search_results: Get paginated search results
  • stop_search: Stop an active search
  • list_searches: List all active search sessions
  • get_file_info: Get file metadata

Text Editing Tools

  • edit_block: Apply targeted text replacements

Analytics Tools

  • get_usage_stats: Get usage statistics
  • get_recent_tool_calls: View recent tool call history
  • give_feedback_to_desktop_commander: Provide feedback

Example Usage

File Editing

For search and replace operations, use this format:

filepath.ext
<<<<<<< SEARCH
content to find
=======
new content
>>>>>>> REPLACE

Using Different Shells

Specify which shell to use for command execution:

// Using bash specifically
execute_command({ "command": "echo $SHELL", "shell": "/bin/bash" })

Managing Long-Running Commands

For commands that take time:

  1. Command starts with timeout and initial output
  2. Process continues in background
  3. Use read_output with PID to get new output
  4. Use force_terminate to stop if needed

Configuration Management

You can manage server configuration using these tools:

// Get the entire config
get_config({})

// Set a specific config value
set_config_value({ "key": "defaultShell", "value": "/bin/zsh" })

The fileWriteLineLimit setting (default: 50 lines) controls how many lines can be written in a single operation. This encourages efficiency and prevents token waste.

Fuzzy Search and Logging

When exact file matches fail, Desktop Commander performs fuzzy search with detailed feedback and logs for analysis. Logs include similarity scores, execution time, and character differences.

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "desktop-commander" '{"command":"npx","args":["-y","@wonderwhy-er/desktop-commander"]}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

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

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

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

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later