
Desktop Commander MCP Server: Setup for Claude, Cursor and Other Apps
Lets Claude and other assistants run terminal commands, read and edit files, and search your computer.
Desktop Commander gives your assistant the same reach you have in a terminal. It can run commands, keep programs running and talk to them, read and write files including Excel, PDF and Word, and search by name or content.
It runs locally and needs no account. It is a community project, not from Anthropic, and its own security page calls its limits advisory. Anything the assistant can do as you, this can do, so run it in Docker or a virtual machine if the assistant should not reach the rest of your computer.
Good for
- Developers who want Claude to run builds, tests and scripts on their own machine
- Analysts who want help with CSV, JSON and Excel files without leaving the chat
- Power users who can isolate it in Docker or a virtual machine
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install DesktopCommanderMCP MCP
Claude Code
- 1
Copy this prompt.
Add the DesktopCommanderMCP MCP server to Claude Code. Run this command: claude mcp add desktopcommandermcp -- npx -y @wonderwhy-er/desktop-commander@latest Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
The npx route runs with your user permissions. The Docker route follows the README: the container sees only folders you mount, so add -v /your/folder:/mnt/folder arguments for the folders you want it to use. Without mounts it cannot see your files.
Built from the package data we hold. Not yet tested by us.
Tools
Starts a program or terminal command and waits for it to be ready
Runs a command or program on your computer. It notices when the program is ready for input, so the assistant can keep talking to it.
Try: “Start a Python shell and check my pandas version.”
Runs code ·
start_processSends input to a running program
Types into a program that is already running, such as a database shell or an SSH session, and returns what it replies.
Try: “Run SELECT count(*) FROM users in the open psql session.”
Runs code ·
interact_with_processReads new output from a running program
Fetches output from a running process, with offset and length controls so long logs do not flood the chat.
Try: “Show the latest output from the dev server.”
Runs code ·
read_process_outputReads a file, PDF or spreadsheet, or a web address
Reads text files, Excel files, PDFs and URLs, with line or page controls. A negative offset reads from the end, like tail.
Try: “Read the last 100 lines of server.log.”
Files ·
read_fileReads several files at once
Returns the contents of many files in one call.
Try: “Read package.json and tsconfig.json together.”
Files ·
read_multiple_filesLists the files in a folder and its subfolders
Returns a recursive listing, two levels deep by default, with protection against huge folders.
Try: “What is in my Documents folder, two levels down?”
Files ·
list_directoryShows details about a file or folder
Returns metadata such as size and dates, and sheet information for Excel files.
Try: “How big is report.xlsx and what sheets does it have?”
Files ·
get_file_infoSearches files by name or by what is inside them
Starts a streaming search over file names or contents, including inside Excel files. Results come back page by page.
Try: “Find every file under src that mentions API_KEY.”
Files ·
start_searchGets the next page of a running search
Returns more results from a search that is still running, using an offset.
Try: “Show the next 50 search results.”
Read ·
get_more_search_resultsLists searches that are still running
Shows every active search session.
Try: “What searches are still running?”
Read ·
list_searchesStops a running search
Ends an active search cleanly.
Try: “Stop that search.”
Runs code ·
stop_searchCreates or changes a file
Writes a file, replacing it or adding to the end. It also writes Excel files from a 2D array. The default write limit is 50 lines per call.
Try: “Create notes.md with today's meeting summary.”
Write ·
write_fileReplaces a specific piece of text in a file
Makes targeted text replacements in text files, or range-based cell updates in Excel files. Shows the closest match if the text is not found.
Try: “In config.js, change the port from 3000 to 8080.”
Write ·
edit_blockCreates or changes a PDF
Creates a PDF from markdown with HTML and CSS styling, or modifies an existing PDF by inserting or deleting pages.
Try: “Turn this report into a PDF.”
Write ·
write_pdfCreates a folder
Creates a folder, or confirms it already exists.
Try: “Create a folder called exports.”
Write ·
create_directoryMoves or renames a file or folder
Moves or renames files and directories.
Try: “Rename draft.md to final.md.”
Write ·
move_fileLists the programs running on your computer
Returns running processes with details.
Try: “Which processes are using the most memory?”
Read ·
list_processesLists terminal sessions the assistant has open
Shows active terminal sessions started through the server.
Try: “What sessions do you have open?”
Read ·
list_sessionsForce-stops a terminal session
Ends a running terminal session started through the server.
Try: “Stop the dev server session.”
Runs code ·
force_terminateKills a program by its process ID
Terminates a running process by PID. This is the tool to be careful with.
Try: “Kill process 4821.”
Delete ·
kill_processShows the server's settings
Returns the configuration as JSON, including the blocked commands, shell, allowed folders, read and write limits and the telemetry setting.
Try: “Show Desktop Commander's current settings.”
Read ·
get_configChanges a server setting
Sets one setting, such as blocked commands, default shell, allowed folders, line limits or telemetry. An assistant can change these, including the blocklist.
Try: “Add rm to the blocked commands.”
Write ·
set_config_valueShows recent tool calls with their inputs and outputs
Returns the local history of recent calls, useful to recover context. The history is kept on your machine.
Try: “What commands did you run in the last hour?”
Read ·
get_recent_tool_callsShows how much you have used the tool
Returns usage statistics for your own insight.
Try: “Show my Desktop Commander usage stats.”
Read ·
get_usage_statsOpens a feedback form in your browser
Opens the project's feedback form so you can send comments to the team.
Try: “I want to send feedback about Desktop Commander.”
Network ·
give_feedback_to_desktop_commander
Read from the source code
Permissions
high risk · 5 things to watch · 2 advisories
High risk
The assistant can run any terminal command, change or remove your files and stop programs, with no read-only mode. Run it in Docker with only the folders you choose mounted, and approve tool calls instead of auto-approving them.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It runs any command as you
The assistant can start programs, edit files and kill processes with your permissions. Prompt injection from a web page or file could trigger that, so use Docker or a VM for risky work. github.com
The folder and command limits are not a sandbox
Allowed folders and the command blocklist only reduce accidents. Terminal commands can reach other folders and get around the blocklist, as the project says itself. github.com
The assistant can change its own settings
A tool sets the blocked commands and allowed folders. Approve each settings change before it runs. github.com
It sends anonymous usage data unless you opt out
The project says the data is pseudonymous and holds no file contents, paths or command arguments. Turn it off by asking the assistant or setting telemetry to false. github.com
A local history file keeps what the assistant ran
Commands and arguments are saved on your machine, so secrets typed into a command can end up in the history. github.com
Security advisories
2 known advisories, 1 with no fixed version yet.
Technical details
| Talks to | telemetry (opt-out) |
|---|---|
| Sign-in and keys | No credentials. The server runs with your user permissions. |
| Data retention | Tool calls and their arguments are recorded in local history files on your machine. |
Questions
Is Desktop Commander official from Anthropic?
No. It is a community project by wonderwhy-er under the MIT license. The README says it is for Claude, but it works with other apps that support local MCP servers.
Is it safe?
Only as safe as the setup. It can run any command as you. The project says its folder limits and command blocklist are guardrails, not a sandbox, and recommends Docker or a virtual machine for real isolation.
Can I run it in Docker?
Yes. The README gives a Docker setup with the image mcp/desktop-commander and an installer script that asks which folders to mount. Without mounts, the container cannot see your files.
Can I use it with ChatGPT or Claude on the web?
Yes, through its remote mode. You start a device command on your computer, sign in through your browser, then connect your AI at mcp.desktopcommander.app. Commands still run on your computer while that device command is running.
Does it send my data anywhere?
It sends limited, anonymous usage data unless you turn it off. The project says this excludes file contents, paths and command arguments. Local history of your tool calls stays on your machine.
Does it need Node.js?
Yes for the npx route, which needs a current Node.js. The Docker route does not.
Can it delete my files?
Yes. It has no file-delete tool, but it can run shell commands that delete files, and it can stop programs. There is no read-only mode.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
@wonderwhy-er/desktop-commander- Registry
- npm
- Transport
- stdio
- Version
- 0.3.1
- License
- MIT
- Last commit
- Oct 30, 2026
- Open issues
- 204
- Listed in
- Official MCP registry, Docker MCP Catalog
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 3Hide
- github.com · github.com
- github.com · github.com
- github.com · github.com