Claude Desktop Commander MCP

# Claude Desktop Commander MCP [![npm downloads](https://img.shields.io/npm/dw/@wonderwhy-er/desktop-commander)](https://www.npmjs.com/package/@wonderwhy-er/desktop-commander) [![smithery badge](https://smithery.ai/badge/@wonderwhy-er/desktop-commander)](https://smithery.ai/server/@wonderwhy-er/desktop-commander) Short version. Two key things. Terminal commands and diff based file editing. <a href="https://glama.ai/mcp/servers/zempur9oh4"> <img width="380" height="200" src="https://glama.ai/mcp/servers/zempur9oh4/badge" alt="Claude Desktop Commander MCP server" /> </a> This is server that allows Claude desktop app to execute long-running terminal commands on your computer and manage processes through Model Context Protocol (MCP) + Built on top of [MCP Filesystem Server](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem) to provide additional search and replace file editing capabilities . ## Features - Execute terminal commands with output streaming - Command timeout and background execution support - Process management (list and kill processes) - Session management for long-running commands - Full filesystem operations: - Read/write files - Create/list directories - Move files/directories - Search files - Get file metadata - Code editing capabilities: - Surgical text replacements for small changes - Full file rewrites for major changes - Multiple file support - Pattern-based replacements ## Installation First, ensure you've downloaded and installed the [Claude Desktop app](https://claude.ai/download) and you have [npm installed](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). ### Option 1: Installing via Smithery To install Desktop Commander for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@wonderwhy-er/desktop-commander): ```bash npx -y @smithery/cli install @wonderwhy-er/desktop-commander --client claude ``` ### Option 2: Install trough npx Just run this in terminal ``` npx @wonderwhy-er/desktop-commander setup ``` Restart Claude if running ### Option 3: Add to claude_desktop_config by hand Add this entry to your claude_desktop_config.json (on Mac, found at ~/Library/Application\ Support/Claude/claude_desktop_config.json): ```json { "mcpServers": { "desktop-commander": { "command": "npx", "args": [ "-y", "@wonderwhy-er/desktop-commander" ] } } } ``` Restart Claude if running ### Option 4: Checkout locally 1. Clone and build: ```bash git clone https://github.com/wonderwhy-er/ClaudeComputerCommander.git cd ClaudeComputerCommander npm run setup ``` Restart Claude if running The setup command will: - Install dependencies - Build the server - Configure Claude's desktop app - Add MCP servers to Claude's config if needed ## Usage The server provides these tool categories: ### Terminal Tools - `execute_command`: Run commands with configurable timeout - `read_output`: Get output from long-running commands - `force_terminate`: Stop running command sessions - `list_sessions`: View active command sessions - `list_processes`: View system processes - `kill_process`: Terminate processes by PID - `block_command`/`unblock_command`: Manage command blacklist ### Filesystem Tools - `read_file`/`write_file`: File operations - `create_directory`/`list_directory`: Directory management - `move_file`: Move/rename files - `search_files`: Pattern-based file search - `get_file_info`: File metadata ### Edit Tools - `edit_block`: Apply surgical text replacements (best for changes <20% of file size) - `write_file`: Complete file rewrites (best for large changes >20% or when edit_block fails) Search/Replace Block Format: ``` filepath.ext <<<<<<< SEARCH existing code to replace ======= new code to insert >>>>>>> REPLACE ``` Example: ``` src/main.js <<<<<<< SEARCH console.log("old message"); ======= console.log("new message"); >>>>>>> REPLACE ``` ## Handling Long-Running Commands For commands that may take a while: 1. `execute_command` returns after timeout with initial output 2. Command continues in background 3. Use `read_output` with PID to get new output 4. Use `force_terminate` to stop if needed ## Model Context Protocol Integration This project extends the MCP Filesystem Server to enable: - Local server support in Claude Desktop - Full system command execution - Process management - File operations - Code editing with search/replace blocks Created as part of exploring Claude MCPs: https://youtube.com/live/TlbjFDbl5Us ## Contributing If you find this project useful, please consider giving it a ⭐ star on GitHub! This helps others discover the project and encourages further development. We welcome contributions from the community! Whether you've found a bug, have a feature request, or want to contribute code, here's how you can help: - **Found a bug?** Open an issue at [github.com/wonderwhy-er/ClaudeComputerCommander/issues](https://github.com/wonderwhy-er/ClaudeComputerCommander/issues) - **Have a feature idea?** Submit a feature request in the issues section - **Want to contribute code?** Fork the repository, create a branch, and submit a pull request - **Questions or discussions?** Start a discussion in the GitHub Discussions tab All contributions, big or small, are greatly appreciated! ## License MIT