Give Claude your terminal and files
A local server that lets Claude run terminal commands, keep long-running processes and SSH sessions open, and search and edit files on your computer, including Excel, PDF and Word files.
Scan checks all of wonderwhy-er/DesktopCommanderMCP on your computer, before anything installs.
Codepit runs on your computer. Open this page there to scan it before installing.
Eduard RuzgaMade by wonderwhy-er- 10kStars on GitHubStars
MITLicense
2 NovLast update
What Claude gets
start_processStart a program and detect when it is ready for input.interact_with_processSend commands to a running program, like a REPL or SSH session, and get the reply.read_process_outputRead output from a running process, a page at a time.read_fileRead local files, URLs, Excel sheets and PDFs, with line or page ranges.edit_blockMake a targeted text replacement, with a fuzzy fallback and a diff when the match is off.start_searchSearch files by name or content, streaming results.set_config_valueChange settings like blocked commands, default shell and allowed folders.
Before you start
Node.js, since the server runs through npx.
Try saying
Claude runs Python on the file in memory, without saving a script, and shows the result.
Worth knowing
Claude can run any command with your user permissions. Allowed folders only limit the file tools, not terminal commands, and the author says the guardrails are not a sandbox. The Docker install is the isolated option.
Telemetry is on by default: pseudonymous usage events such as operation names, file extensions and sizes, base command names and errors, sent to Google Analytics. No file contents, file paths or command arguments. Ask Claude to "disable Desktop Commander telemetry" or set telemetryEnabled to false.
Every tool call and its arguments are written, unredacted, to a local log in ~/.claude-server-commander, plus a recent history that includes short output previews. These files stay on your machine.
The author advises changing settings in a separate chat, because Claude may try to widen its allowed folders when it hits a restriction.
The command uses @latest, so a newer version loads each time the server restarts.