Does Desktop Commander work with Claude Desktop?

Yes. Desktop Commander passed every step of our test in Claude Desktop on Oct 19, 2026: it installed, connected, its tools were visible, and an agent used it to finish a real task.

Result

ResultPassed
Date testedOct 19, 2026
Plan tested onNot recorded for this run
App versionClaude Desktop 2.37337.1 (Linux beta, Electron 44.7.0)
Server package@wonderwhy-er/desktop-commander 0.3.0
Connect timeconnected in 21s

Steps

  1. install OK
  2. connect OK
  3. tools visible OK
  4. agent task: write read back OKcreate a document with known content, then read it back

Test note: server wrapped in harness/scripts/mcp_tee.py to record JSON-RPC; prompts typed via xdotool; tool Allow pop-ups approved by the operator for test servers only; model = app default

From our own harness run, not the maker’s claims. How we test.

Versions tested

Claude Desktop 2.37337.1 (Linux beta, Electron 44.7.0) · @wonderwhy-er/desktop-commander 0.3.0 · connected in 21s · tested Oct 19, 2026

Server package tested: @wonderwhy-er/desktop-commander 0.3.0 (npm, Node v20.19.2; resolved 2026-10-19)

Direct and key dependencies as resolved: @desktop-commander/telemetry-contract 0.1.1 · @modelcontextprotocol/sdk 1.32.1 · @opendocsg/pdf2md 0.3.4 · @supabase/supabase-js 2.109.0 · @tiptap/core 3.32.0 · @tiptap/extension-image 3.32.0 · @tiptap/extension-table 3.32.0 · @tiptap/extension-table-cell 3.32.0 · @tiptap/extension-table-header 3.32.0 · @tiptap/extension-table-row 3.32.0 · @tiptap/pm 3.32.0 · @tiptap/starter-kit 3.32.0 · @vscode/ripgrep 1.18.0 · cross-fetch 4.1.0 · exceljs 4.4.0 · express 5.3.0 · fastest-levenshtein 1.0.16 · glob 10.5.0 · highlight.js 11.12.0 · isbinaryfile 5.0.7 · markdown-it 14.3.3 · md-to-pdf 5.2.5 · open 10.2.0 · pdf-lib 1.17.1 · pizzip 3.3.0 · proper-lockfile 4.1.2 · puppeteer 24.43.1 · puppeteer-core 24.43.1 · remark 15.0.1 · remark-gfm 4.0.1 · remark-parse 11.0.0 · sharp 0.35.5 · tiptap-markdown 0.9.0 · unified 11.0.5 · unpdf 1.7.0 · ws 8.22.0 · zod 3.25.76 · zod-to-json-schema 3.25.2

All 569 resolved dependencies
@babel/code-frame==7.29.7
@babel/helper-validator-identifier==7.29.7
@desktop-commander/telemetry-contract==0.1.1
@fast-csv/format==4.3.5
@fast-csv/parse==4.3.6
@hono/node-server==2.1.5
@img/colour==1.1.0
@img/sharp-libvips-linux-x64==1.3.4
@img/sharp-linux-x64==0.35.5
@isaacs/cliui==8.0.2
@modelcontextprotocol/sdk==1.32.1
@opendocsg/pdf2md==0.3.4
@pdf-lib/standard-fonts==1.0.0
@pdf-lib/upng==1.0.1
@pkgjs/parseargs==0.11.0
@puppeteer/browsers==2.13.2
@samverschueren/stream-to-observable==0.3.1
@supabase/auth-js==2.109.0
@supabase/functions-js==2.109.0
@supabase/phoenix==0.4.4
@supabase/postgrest-js==2.109.0
@supabase/realtime-js==2.109.0
@supabase/storage-js==2.109.0
@supabase/supabase-js==2.109.0
@tiptap/core==3.32.0
@tiptap/extension-blockquote==3.32.0
@tiptap/extension-bold==3.32.0
@tiptap/extension-bullet-list==3.32.0
@tiptap/extension-code==3.32.0
@tiptap/extension-code-block==3.32.0
@tiptap/extension-document==3.32.0
@tiptap/extension-dropcursor==3.32.0
@tiptap/extension-gapcursor==3.32.0
@tiptap/extension-hard-break==3.32.0
@tiptap/extension-heading==3.32.0
@tiptap/extension-horizontal-rule==3.32.0
@tiptap/extension-image==3.32.0
@tiptap/extension-italic==3.32.0
@tiptap/extension-link==3.32.0
@tiptap/extension-list==3.32.0
@tiptap/extension-list-item==3.32.0
@tiptap/extension-list-keymap==3.32.0
@tiptap/extension-ordered-list==3.32.0
@tiptap/extension-paragraph==3.32.0
@tiptap/extension-strike==3.32.0
@tiptap/extension-table==3.32.0
@tiptap/extension-table-cell==3.32.0
@tiptap/extension-table-header==3.32.0
@tiptap/extension-table-row==3.32.0
@tiptap/extension-text==3.32.0
@tiptap/extension-underline==3.32.0
@tiptap/extensions==3.32.0
@tiptap/pm==3.32.0
@tiptap/starter-kit==3.32.0
@tootallnate/quickjs-emscripten==0.23.0
@types/debug==4.1.13
@types/linkify-it==3.0.5, 5.0.0
@types/markdown-it==13.0.9, 14.2.0
@types/mdast==4.0.4
@types/mdurl==1.0.5, 2.0.0
@types/ms==2.1.0
@types/node==14.18.63
@types/unist==3.0.3
@types/yauzl==2.10.3
@vscode/ripgrep==1.18.0
@vscode/ripgrep-linux-x64==1.18.0
accepts==2.0.0
agent-base==7.1.4
ajv==8.20.0
ajv-formats==3.0.1
ansi-escapes==3.2.0
ansi-regex==2.1.1, 3.0.1, 5.0.1, 6.4.0
ansi-styles==2.2.1, 3.2.1, 4.3.0, 6.2.3
any-observable==0.3.0
anymatch==3.1.3
archiver==5.3.2
archiver-utils==2.1.0, 3.0.4
arg==5.0.2
argparse==1.0.10, 2.0.1
array-buffer-byte-length==1.0.2
arraybuffer.prototype.slice==1.0.4
ast-types==0.13.4
async==3.2.6
async-function==1.0.0
available-typed-arrays==1.0.7
b4a==1.9.0
bail==2.0.2
balanced-match==1.0.2
bare-events==2.9.2
bare-fs==4.8.4
bare-path==3.1.2
bare-stream==2.13.4
bare-url==2.5.5
base64-js==1.5.1
basic-ftp==5.3.1
big-integer==1.6.52
binary==0.3.0
binary-extensions==2.3.0
bl==4.1.0
bluebird==3.4.7
body-parser==2.3.0
brace-expansion==1.1.21, 2.1.7
braces==3.0.3
buffer==5.7.1
buffer-crc32==0.2.13
buffer-indexof-polyfill==1.0.2
buffers==0.1.1
bundle-name==4.1.1
bytes==3.0.0, 3.1.2
caffeinate==1.0.1
call-bind==1.0.9
call-bind-apply-helpers==1.0.2
call-bound==1.0.4
callsites==3.1.0
ccount==2.0.1
chainsaw==0.1.0
chalk==1.1.3, 2.4.2, 4.1.2
character-entities==2.0.2
chokidar==3.6.0
chromium-bidi==14.0.0
cli-cursor==2.1.0
cli-truncate==0.2.1
cliui==8.0.1
code-point-at==1.1.0
color-convert==1.9.3, 2.0.1
color-name==1.1.3, 1.1.4
compress-commons==4.1.2
concat-map==0.0.1
content-disposition==0.5.2, 2.0.1
content-type==1.0.5, 2.1.0
cookie==0.7.2
cookie-signature==1.2.2
core-util-is==1.0.3
cors==2.8.6
cosmiconfig==9.0.2
crc-32==1.2.2
crc32-stream==4.0.3
cross-fetch==4.1.0
cross-spawn==7.0.6
data-uri-to-buffer==6.0.2
data-view-buffer==1.0.2
data-view-byte-length==1.0.2
data-view-byte-offset==1.0.1
date-fns==1.30.1
dayjs==1.11.23
debug==4.4.3
decode-named-character-reference==1.3.0
default-browser==5.5.1
default-browser-id==5.0.1
define-data-property==1.1.4
define-lazy-prop==3.0.0
define-properties==1.2.1
degenerator==5.0.1
depd==2.0.0
dequal==2.0.3
detect-libc==2.1.2
devlop==1.1.0
devtools-protocol==0.0.1608973
dunder-proto==1.0.1
duplexer2==0.1.4
eastasianwidth==0.2.0
ee-first==1.1.1
elegant-spinner==1.0.1
emoji-regex==8.0.0, 9.2.2
encodeurl==2.0.0
end-of-stream==1.4.5
entities==4.5.0
enumify==1.0.4
env-paths==2.2.1
error-ex==1.3.4
es-abstract==1.24.2
es-abstract-get==1.0.0
es-define-property==1.0.1
es-errors==1.3.0
es-object-atoms==1.1.2
es-set-tostringtag==2.1.0
es-to-primitive==1.3.4
escalade==3.2.0
escape-html==1.0.3
escape-string-regexp==1.0.5, 5.0.0
escodegen==2.1.0
esprima==4.0.1
estraverse==5.3.0
esutils==2.0.3
etag==1.8.1
events-universal==1.0.1
eventsource==3.0.7
eventsource-parser==3.1.1
exceljs==4.4.0
express==5.3.0
express-rate-limit==8.7.1
extend==3.0.2
extend-shallow==2.0.1
extract-zip==2.0.1
fast-csv==4.3.6
fast-deep-equal==3.1.3
fast-fifo==1.3.2
fast-uri==3.1.8
fastest-levenshtein==1.0.16
fd-slicer==1.1.0
figures==1.7.0, 2.0.0
fill-range==7.1.1
finalhandler==2.1.1
for-each==0.3.5
foreground-child==3.3.1
forwarded==0.2.0
fresh==2.0.0
fs-constants==1.0.0
fs.realpath==1.0.0
fstream==1.0.12
function-bind==1.1.2
function.prototype.name==1.2.0
functions-have-names==1.2.3
generator-function==2.0.1
get-caller-file==2.0.5
get-intrinsic==1.3.0
get-port==5.1.1
get-proto==1.0.1
get-stdin==8.0.0
get-stream==5.2.0
get-symbol-description==1.1.0
get-uri==6.0.5
glob==10.5.0, 7.2.3
glob-parent==5.1.2
globalthis==1.0.4
gopd==1.2.0
graceful-fs==4.2.11
gray-matter==4.0.3
has-ansi==2.0.0
has-bigints==1.1.0
has-flag==3.0.0, 4.0.0
has-property-descriptors==1.0.2
has-proto==1.2.0
has-symbols==1.1.0
has-tostringtag==1.0.2
hasown==2.0.4
highlight.js==11.12.0
hono==4.13.13
http-errors==2.0.1
http-proxy-agent==7.0.2
https-proxy-agent==7.0.6
iceberg-js==0.8.1
iconv-lite==0.6.3, 0.7.3
ieee754==1.2.1
immediate==3.0.6
import-fresh==3.3.1
indent-string==3.2.0
inflight==1.0.6
inherits==2.0.4
internal-slot==1.1.0
ip-address==10.7.4
ipaddr.js==1.9.1
is-array-buffer==3.0.5
is-arrayish==0.2.1
is-async-function==2.1.1
is-bigint==1.1.0
is-binary-path==2.1.0
is-boolean-object==1.2.2
is-callable==1.2.7
is-data-view==1.0.2
is-date-object==1.1.0
is-docker==3.0.0
is-document.all==1.0.0
is-extendable==0.1.1
is-extglob==2.1.1
is-finalizationregistry==1.1.1
is-fullwidth-code-point==1.0.0, 2.0.0, 3.0.0
is-generator-function==1.1.2
is-glob==4.0.3
is-inside-container==1.0.0
is-map==2.0.3
is-negative-zero==2.0.3
is-number==7.0.0
is-number-object==1.1.1
is-observable==1.1.0
is-plain-obj==4.1.0
is-promise==2.2.2, 4.0.0
is-regex==1.2.1
is-set==2.0.3
is-shared-array-buffer==1.0.4
is-stream==1.1.0
is-string==1.1.1
is-symbol==1.1.1
is-typed-array==1.1.15
is-weakmap==2.0.2
is-weakref==1.1.1
is-weakset==2.0.4
is-wsl==3.1.1
isarray==1.0.0, 2.0.5
isbinaryfile==5.0.7
isexe==2.0.0
jackspeak==3.4.3
jose==6.2.12
js-tokens==4.0.0
js-yaml==3.15.2, 4.3.2
json-parse-even-better-errors==2.3.1
json-schema-traverse==1.0.0
json-schema-typed==8.0.2
jszip==3.10.2
kind-of==6.0.3
lazystream==1.0.1
lie==3.3.0
lines-and-columns==1.2.4
linkify-it==5.0.2
linkifyjs==4.3.3
listenercount==1.0.1
listr==0.14.3
listr-silent-renderer==1.1.1
listr-update-renderer==0.5.0
listr-verbose-renderer==0.5.0
lodash.defaults==4.2.0
lodash.difference==4.5.0
lodash.escaperegexp==4.1.2
lodash.flatten==4.4.0
lodash.groupby==4.6.0
lodash.isboolean==3.0.3
lodash.isequal==4.5.0
lodash.isfunction==3.0.9
lodash.isnil==4.0.0
lodash.isplainobject==4.0.6
lodash.isundefined==3.0.1
lodash.union==4.6.0
lodash.uniq==4.5.0
log-symbols==1.0.2
log-update==2.3.0
longest-streak==3.1.0
lru-cache==10.4.3, 7.18.3
markdown-it==14.3.3
markdown-it-task-lists==2.1.1
markdown-table==3.0.4
marked==4.3.0
math-intrinsics==1.1.0
md-to-pdf==5.2.5
mdast-util-find-and-replace==3.0.3
mdast-util-from-markdown==2.1.0
mdast-util-gfm==3.1.0
mdast-util-gfm-autolink-literal==2.0.1
mdast-util-gfm-footnote==2.1.0
mdast-util-gfm-strikethrough==2.0.1
mdast-util-gfm-table==2.0.0
mdast-util-gfm-task-list-item==2.0.0
mdast-util-phrasing==4.1.0
mdast-util-to-markdown==2.2.0
mdast-util-to-string==4.0.0
mdurl==2.1.0
media-typer==1.1.1
merge-descriptors==2.0.0
micromark==4.0.3
micromark-core-commonmark==2.0.4
micromark-extension-gfm==3.0.0
micromark-extension-gfm-autolink-literal==2.1.0
micromark-extension-gfm-footnote==2.1.0
micromark-extension-gfm-strikethrough==2.1.0
micromark-extension-gfm-table==2.1.2
micromark-extension-gfm-tagfilter==2.0.0
micromark-extension-gfm-task-list-item==2.1.0
micromark-factory-destination==2.0.1
micromark-factory-label==2.0.1
micromark-factory-space==2.1.0
micromark-factory-title==2.0.1
micromark-factory-whitespace==2.0.1
micromark-util-character==2.1.1
micromark-util-chunked==2.0.1
micromark-util-classify-character==2.0.1
micromark-util-combine-extensions==2.0.1
micromark-util-decode-numeric-character-reference==2.0.2
micromark-util-decode-string==2.0.1
micromark-util-edit-map==1.0.0
micromark-util-encode==2.0.1
micromark-util-html-tag-name==2.0.1
micromark-util-normalize-identifier==2.0.1
micromark-util-resolve-all==2.0.1
micromark-util-sanitize-uri==2.0.1
micromark-util-subtokenize==2.1.0
micromark-util-symbol==2.0.1
micromark-util-types==2.0.3
mime-db==1.33.0, 1.54.0
mime-types==2.1.18, 3.0.2
mimic-fn==1.2.0
minimatch==3.1.5, 5.1.9, 9.0.9
minimist==1.2.8
minipass==7.1.3
mitt==3.0.1
mkdirp==0.5.6
ms==2.1.3
negotiator==1.1.0
netmask==2.1.1
node-fetch==2.7.0
normalize-path==3.0.0
number-is-nan==1.0.1
object-assign==4.1.1
object-inspect==1.13.4
object-keys==1.1.1
object.assign==4.1.7
on-finished==2.4.1
once==1.4.0
onetime==2.0.1
open==10.2.0
options-to-args==0.0.1
orderedmap==2.1.1
own-keys==1.0.2
p-map==2.1.0
pac-proxy-agent==7.2.0
pac-resolver==7.0.1
package-json-from-dist==1.0.1
pako==1.0.11, 2.2.0
parent-module==1.0.1
parse-json==5.2.0
parseurl==1.3.3
path-is-absolute==1.0.1
path-is-inside==1.0.2
path-key==3.1.1
path-scurry==1.11.1
path-to-regexp==3.3.0, 8.4.2
pdf-lib==1.17.1
pend==1.2.0
picocolors==1.1.1
picomatch==2.3.2
pizzip==3.3.0
pkce-challenge==5.0.1
possible-typed-array-names==1.1.0
process-nextick-args==2.0.1
progress==2.0.3
proper-lockfile==4.1.2
prosemirror-changeset==2.4.4
prosemirror-commands==1.7.2
prosemirror-dropcursor==1.8.4
prosemirror-gapcursor==1.4.1
prosemirror-history==1.5.1
prosemirror-inputrules==1.5.1
prosemirror-keymap==1.2.3
prosemirror-markdown==1.13.8
prosemirror-model==1.25.12
prosemirror-schema-list==1.5.1
prosemirror-state==1.4.4
prosemirror-tables==1.8.5
prosemirror-transform==1.12.2
prosemirror-view==1.42.6
protostar==0.0.1
proxy-addr==2.0.8
proxy-agent==6.5.0
proxy-from-env==1.1.0
pump==3.0.4
punycode.js==2.3.1
puppeteer==24.43.1
puppeteer-core==24.43.1
qs==6.16.1
range-parser==1.2.0, 1.3.0
raw-body==3.0.2
readable-stream==2.3.8, 3.6.2
readdir-glob==1.1.3
readdirp==3.6.0
reflect.getprototypeof==1.0.10
regexp.prototype.flags==1.5.4
remark==15.0.1
remark-gfm==4.0.1
remark-parse==11.0.0
remark-stringify==11.0.0
require-directory==2.1.1
require-from-string==2.0.2
resolve-from==4.0.0
restore-cursor==2.0.0
retry==0.12.0
rimraf==2.7.1
rope-sequence==1.3.4
router==2.2.0
run-applescript==7.1.0
rxjs==6.6.7
safe-array-concat==1.1.4
safe-buffer==5.1.2, 5.2.1
safe-push-apply==1.0.0
safe-regex-test==1.1.0
safer-buffer==2.1.2
saxes==5.0.1
section-matter==1.0.0
semver==7.8.5
send==1.2.1
serve-handler==6.1.7
serve-static==2.2.1
set-function-length==1.2.2
set-function-name==2.0.2
set-proto==1.0.0
setimmediate==1.0.5
setprototypeof==1.2.0
sharp==0.35.5
shebang-command==2.0.0
shebang-regex==3.0.0
side-channel==1.1.1
side-channel-list==1.0.1
side-channel-map==1.0.1
side-channel-weakmap==1.0.2
signal-exit==3.0.7, 4.1.0
slice-ansi==0.0.4
smart-buffer==4.2.0
socks==2.8.10
socks-proxy-agent==8.0.5
source-map==0.6.1
sprintf-js==1.0.3
statuses==2.0.2
stop-iteration-iterator==1.1.0
streamx==2.28.1
string-width==1.0.2, 2.1.1, 4.2.3, 5.1.2
string-width-cjs==4.2.3
string.prototype.trim==1.2.11
string.prototype.trimend==1.0.10
string.prototype.trimstart==1.0.8
string_decoder==1.1.1, 1.3.0
strip-ansi==3.0.1, 4.0.0, 6.0.1, 7.2.0
strip-ansi-cjs==6.0.1
strip-bom-string==1.0.0
supports-color==2.0.0, 5.5.0, 7.2.0
symbol-observable==1.2.0
tar-fs==3.1.3
tar-stream==2.2.0, 3.2.2
teex==1.0.1
text-decoder==1.2.7
tiptap-markdown==0.9.0
tmp==0.2.7
to-regex-range==5.0.1
toidentifier==1.0.1
tr46==0.0.3
traverse==0.3.10
trough==2.2.0
tslib==1.14.1, 2.8.1
type-is==2.1.0
typed-array-buffer==1.0.3
typed-array-byte-length==1.0.3
typed-array-byte-offset==1.0.5
typed-array-length==1.0.8
typed-query-selector==2.12.3
typedarray.prototype.slice==1.0.6
uc.micro==2.1.0
unbox-primitive==1.1.0
unified==11.0.5
unist-util-is==6.0.1
unist-util-stringify-position==4.0.0
unist-util-visit==5.1.0
unist-util-visit-parents==6.0.2
unpdf==1.7.0
unpipe==1.0.0
unzipper==0.10.14
util-deprecate==1.0.2
uuid==8.3.2
vary==1.1.2
vfile==6.0.3
vfile-message==4.0.3
w3c-keyname==2.2.8
webdriver-bidi-protocol==0.4.1
webidl-conversions==3.0.1
whatwg-url==5.0.0
which==2.0.2
which-boxed-primitive==1.1.1
which-builtin-type==1.2.1
which-collection==1.0.2
which-typed-array==1.1.24
wrap-ansi==3.0.1, 7.0.0, 8.1.0
wrap-ansi-cjs==7.0.0
wrappy==1.0.2
ws==8.22.0
wsl-utils==0.1.0
xmlchars==2.2.0
y18n==5.0.8
yargs==17.7.3
yargs-parser==21.1.1
yauzl==2.10.0
zip-stream==4.1.1
zod==3.25.76
zod-to-json-schema==3.25.2
zwitch==2.0.4

Captured with: npm ls --all --json in the npx env.

What happened in this run

Install config we used

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

Connection check

initialize seen in tee log after app restart

Tools check

tools/list answered (tee log)

Agent task: write read back

  • 4 calls reached the server
  • Agent’s answer (excerpt): TP-198042

Raw details from our harness log for this run. Secrets redacted.

Set it up in Claude Desktop

Copy-paste config for every app is on the Desktop Commander page. Not connecting? Claude Desktop MCP troubleshooting.

Other apps we tested it in: Claude Code (partial) · Cursor (partial) · ChatGPT (Codex) (passed).

All MCP servers tested in Claude Desktop

Sponsors