Short version. Two key things. Terminal commands and diff based file editing.
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 to provide additional search and replace file editing capabilities .
- 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
First, ensure you've downloaded and installed the Claude Desktop app and you have npm installed.
To install Desktop Commander for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @wonderwhy-er/desktop-commander --client claude
Just run this in terminal
npx @wonderwhy-er/desktop-commander setup
Restart Claude if running
Add this entry to your claude_desktop_config.json (on Mac, found at ~/Library/Application\ Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": [
"-y",
"@wonderwhy-er/desktop-commander"
]
}
}
}
Restart Claude if running
- Clone and build:
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
The server provides these tool categories:
execute_command
: Run commands with configurable timeoutread_output
: Get output from long-running commandsforce_terminate
: Stop running command sessionslist_sessions
: View active command sessionslist_processes
: View system processeskill_process
: Terminate processes by PIDblock_command
/unblock_command
: Manage command blacklist
read_file
/write_file
: File operationscreate_directory
/list_directory
: Directory managementmove_file
: Move/rename filessearch_files
: Pattern-based file searchget_file_info
: File metadata
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
For commands that may take a while:
execute_command
returns after timeout with initial output- Command continues in background
- Use
read_output
with PID to get new output - Use
force_terminate
to stop if needed
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
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
- 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!
MIT