← all servers

desktop-commander

v0.2.46 · 26 tools · source

[ tools: 26 ][ checks: 13 ][ latency: 58ms ]
80/100(C)
npx -y @wonderwhy-er/desktop-commander

check breakdown

Tools exposedServer exposed 26 tools.
• get_config
• set_config_value
• read_file
• read_multiple_files
• write_file
• write_pdf
• create_directory
• list_directory
• move_file
• start_search
• get_more_search_results
• stop_search
• list_searches
• get_file_info
• edit_block
• start_process
• read_process_output
• interact_with_process
• force_terminate
• list_sessions
• list_processes
• kill_process
• get_usage_stats
• get_recent_tool_calls
• give_feedback_to_desktop_commander
• get_prompts
Input schemas validAll tools have a valid JSON-Schema input definition.
!Input schema quality77 schema-quality issue(s) across 26 tool(s).
get_config: no "required" array (which params are mandatory?)
get_config.origin: parameter has no description
set_config_value.key: parameter has no description
set_config_value.value: parameter has no description
set_config_value.origin: parameter has no description
read_file.path: parameter has no description
read_file.isUrl: parameter has no description
read_file.offset: parameter has no description
read_file.length: parameter has no description
read_file.sheet: parameter has no description
read_file.range: parameter has no description
read_file.options: parameter has no description
read_file.origin: parameter has no description
read_multiple_files.paths: parameter has no description
write_file.path: parameter has no description
write_file.content: parameter has no description
write_file.mode: parameter has no description
write_file.origin: parameter has no description
write_pdf.path: parameter has no description
write_pdf.content: parameter has no description
write_pdf.outputPath: parameter has no description
write_pdf.options: parameter has no description
create_directory.path: parameter has no description
list_directory.path: parameter has no description
list_directory.depth: parameter has no description
list_directory.origin: parameter has no description
move_file.source: parameter has no description
move_file.destination: parameter has no description
start_search.path: parameter has no description
start_search.pattern: parameter has no description
start_search.searchType: parameter has no description
start_search.filePattern: parameter has no description
start_search.ignoreCase: parameter has no description
start_search.maxResults: parameter has no description
start_search.includeHidden: parameter has no description
start_search.contextLines: parameter has no description
start_search.timeout_ms: parameter has no description
start_search.earlyTermination: parameter has no description
start_search.literalSearch: parameter has no description
start_search.origin: parameter has no description
get_more_search_results.sessionId: parameter has no description
get_more_search_results.offset: parameter has no description
get_more_search_results.length: parameter has no description
stop_search.sessionId: parameter has no description
get_file_info.path: parameter has no description
edit_block.file_path: parameter has no description
edit_block.old_string: parameter has no description
edit_block.new_string: parameter has no description
edit_block.expected_replacements: parameter has no description
edit_block.range: parameter has no description
edit_block.content: parameter has no description
edit_block.content: untyped parameter ({} — no type, $ref, or enum)
edit_block.options: parameter has no description
edit_block.origin: parameter has no description
start_process.command: parameter has no description
start_process.timeout_ms: parameter has no description
start_process.shell: parameter has no description
start_process.verbose_timing: parameter has no description
start_process.origin: parameter has no description
read_process_output.pid: parameter has no description
read_process_output.timeout_ms: parameter has no description
read_process_output.offset: parameter has no description
read_process_output.length: parameter has no description
read_process_output.verbose_timing: parameter has no description
interact_with_process.pid: parameter has no description
interact_with_process.input: parameter has no description
interact_with_process.timeout_ms: parameter has no description
interact_with_process.wait_for_prompt: parameter has no description
interact_with_process.verbose_timing: parameter has no description
force_terminate.pid: parameter has no description
kill_process.pid: parameter has no description
get_recent_tool_calls: no "required" array (which params are mandatory?)
get_recent_tool_calls.maxResults: parameter has no description
get_recent_tool_calls.toolName: parameter has no description
get_recent_tool_calls.since: parameter has no description
get_prompts.action: parameter has no description
get_prompts.promptId: parameter has no description
Declare `required` for every schema that has properties, so agents know which params are mandatory.
Give every property a `description` and a concrete `type` (avoid bare `{}` placeholders).
Set `additionalProperties: false` on the top-level inputSchema so models can't silently pass extra, unvalidated arguments.
!Output schemasNo tools declare an outputSchema.
Optional: declare outputSchema for tools with structured results so agents can validate/parse output reliably.
Duplicate tool namesAll tool names are unique.
Tool namingAll tool names use spec-legal characters.
!Descriptions74 description issue(s) found.
get_config.origin: parameter has no description
set_config_value.key: parameter has no description
set_config_value.value: parameter has no description
set_config_value.origin: parameter has no description
read_file.path: parameter has no description
read_file.isUrl: parameter has no description
read_file.offset: parameter has no description
read_file.length: parameter has no description
read_file.sheet: parameter has no description
read_file.range: parameter has no description
read_file.options: parameter has no description
read_file.origin: parameter has no description
read_multiple_files.paths: parameter has no description
write_file.path: parameter has no description
write_file.content: parameter has no description
write_file.mode: parameter has no description
write_file.origin: parameter has no description
write_pdf.path: parameter has no description
write_pdf.content: parameter has no description
write_pdf.outputPath: parameter has no description
write_pdf.options: parameter has no description
create_directory.path: parameter has no description
list_directory.path: parameter has no description
list_directory.depth: parameter has no description
list_directory.origin: parameter has no description
move_file.source: parameter has no description
move_file.destination: parameter has no description
start_search.path: parameter has no description
start_search.pattern: parameter has no description
start_search.searchType: parameter has no description
start_search.filePattern: parameter has no description
start_search.ignoreCase: parameter has no description
start_search.maxResults: parameter has no description
start_search.includeHidden: parameter has no description
start_search.contextLines: parameter has no description
start_search.timeout_ms: parameter has no description
start_search.earlyTermination: parameter has no description
start_search.literalSearch: parameter has no description
start_search.origin: parameter has no description
get_more_search_results.sessionId: parameter has no description
get_more_search_results.offset: parameter has no description
get_more_search_results.length: parameter has no description
stop_search.sessionId: parameter has no description
get_file_info.path: parameter has no description
edit_block.file_path: parameter has no description
edit_block.old_string: parameter has no description
edit_block.new_string: parameter has no description
edit_block.expected_replacements: parameter has no description
edit_block.range: parameter has no description
edit_block.content: parameter has no description
edit_block.options: parameter has no description
edit_block.origin: parameter has no description
start_process.command: parameter has no description
start_process.timeout_ms: parameter has no description
start_process.shell: parameter has no description
start_process.verbose_timing: parameter has no description
start_process.origin: parameter has no description
read_process_output.pid: parameter has no description
read_process_output.timeout_ms: parameter has no description
read_process_output.offset: parameter has no description
read_process_output.length: parameter has no description
read_process_output.verbose_timing: parameter has no description
interact_with_process.pid: parameter has no description
interact_with_process.input: parameter has no description
interact_with_process.timeout_ms: parameter has no description
interact_with_process.wait_for_prompt: parameter has no description
interact_with_process.verbose_timing: parameter has no description
force_terminate.pid: parameter has no description
kill_process.pid: parameter has no description
get_recent_tool_calls.maxResults: parameter has no description
get_recent_tool_calls.toolName: parameter has no description
get_recent_tool_calls.since: parameter has no description
get_prompts.action: parameter has no description
get_prompts.promptId: parameter has no description
Descriptions are the model's only guide to when/how to call a tool — treat them as prompt engineering.
Describe every tool and every parameter, including units, formats, and constraints.
Each tool's description should say something the name doesn't, and should be unique to that tool.
!Tool annotationsAnnotation coverage 57% (74/130 hint fields set).
Some tools set a few hints but not all of title/readOnlyHint/destructiveHint/idempotentHint/openWorldHint.
Add annotations: title, readOnlyHint, destructiveHint, idempotentHint, openWorldHint.
These let clients gate risky calls and give agents/users a friendly display name — optional but valuable.
Tool titlesAll tools declare a human-readable title.
!Server instructionsNo top-level instructions declared.
Declare instructions to guide agents on when/how to use this server.
Return a non-empty `instructions` string in your InitializeResult — most SDKs let you set this alongside serverInfo.
Handshake + list latencytools/list responded in 58ms.
!PromptsServer declares the prompts capability but exposes 0 prompts.
If you don't actually offer prompts, remove the `prompts` capability from your initialize response.
Otherwise, register at least one prompt via your prompts/list handler.
ResourcesAll 2 resource(s)/template(s) are well-described.

add the badge

Paste into your README:

[![scoremcp](https://scoremcp.dev/badge/desktop-commander)](https://scoremcp.dev/servers/desktop-commander)
[ scoremcp v0.4.0 ] [ 35 servers indexed ] [ static · side-effect-free ]