Skip to main content
Glama
Negm-Ahmed

Desktop Commander

by Negm-Ahmed

Desktop Commander MCP

Search, update, manage files and run terminal commands with AI

npm downloads Buy Me A Coffee

Discord

Work with code and text, run processes, and automate tasks, going far beyond other AI editors - without API token costs.

Desktop Commander MCP

Table of Contents

All of your AI development tools in one place. Desktop Commander puts all dev tools in one chat. 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.

Related MCP server: AX Local Operations MCP Server

Features

  • Enhanced terminal commands with interactive process control

  • Execute code in memory (Python, Node.js, R) without saving files

  • Instant data analysis - just ask to analyze CSV/JSON files

  • Interact with running processes (SSH, databases, development servers)

  • Execute terminal commands with output streaming

  • Command timeout and background execution support

  • Process management (list and kill processes)

  • Session management for long-running commands

  • Server configuration management:

    • Get/set configuration values

    • Update multiple settings at once

    • Dynamic configuration changes without server restart

  • Full filesystem operations:

    • Read/write files

    • Create/list directories

    • Move files/directories

    • Search files

    • Get file metadata

    • Negative offset file reading: Read from end of files using negative offset values (like Unix tail)

  • Code editing capabilities:

    • Surgical text replacements for small changes

    • Full file rewrites for major changes

    • Multiple file support

    • Pattern-based replacements

    • vscode-ripgrep based recursive code or text search in folders

  • Comprehensive audit logging:

    • All tool calls are automatically logged

    • Log rotation with 10MB size limit

    • Detailed timestamps and arguments

Installation

First, ensure you've downloaded and installed the Claude Desktop app and you have npm installed.

📋 Update & Uninstall Information: Before choosing an installation option, note that only Options 1 and 3 have automatic updates. Options 2, 4, and 5 require manual updates. See the sections below for update and uninstall instructions for each option.

Option 1: Install through npx ⭐ Auto-Updates

Just run this in terminal:

npx @wonderwhy-er/desktop-commander@latest setup

For debugging mode (allows Node.js inspector connection):

npx @wonderwhy-er/desktop-commander@latest setup --debug

Restart Claude if running.

✅ Auto-Updates: Yes - automatically updates when you restart Claude
🔄 Manual Update: Run the setup command again
🗑️ Uninstall: Run npx @wonderwhy-er/desktop-commander@latest setup --uninstall

Option 2: Using bash script installer (macOS) ⭐ Auto-Updates

For macOS users, you can use our automated bash installer which will check your Node.js version, install it if needed, and automatically configure Desktop Commander:

curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash

This script handles all dependencies and configuration automatically for a seamless setup experience.

✅ Auto-Updates: Yes - requires manual updates
🔄 Manual Update: Re-run the bash installer command above
🗑️ Uninstall: Remove the MCP server entry from your Claude config file and delete the cloned repository if it exists

Option 3: Installing via Smithery ⭐ Auto-Updates

To install Desktop Commander for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @wonderwhy-er/desktop-commander --client claude

✅ Auto-Updates: Yes - automatically updates when you restart Claude
🔄 Manual Update: Re-run the Smithery install command
🗑️ Uninstall: npx -y @smithery/cli uninstall @wonderwhy-er/desktop-commander --client claude

Option 4: Add to claude_desktop_config manually ❌ Manual Updates

Add this entry to your claude_desktop_config.json:

  • On Mac: ~/Library/Application\ Support/Claude/claude_desktop_config.json

  • On Windows: %APPDATA%\Claude\claude_desktop_config.json

  • On Linux: ~/.config/Claude/claude_desktop_config.json

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

Restart Claude if running.

❌ Auto-Updates: No - uses npx but config might not update automatically
🔄 Manual Update: Usually automatic via npx, but if issues occur, update your config file or re-add the entry
🗑️ Uninstall: Remove the "desktop-commander" entry from your claude_desktop_config.json file

Option 5: Checkout locally ❌ Manual Updates

  1. Clone and build:

git clone https://github.com/wonderwhy-er/DesktopCommanderMCP.git
cd DesktopCommanderMCP
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

❌ Auto-Updates: No - requires manual git updates
🔄 Manual Update: cd DesktopCommanderMCP && git pull && npm run setup
🗑️ Uninstall: Remove the cloned directory and remove MCP server entry from Claude config

Updating & Uninstalling Desktop Commander

Automatic Updates (Options 1 & 3 only)

Options 1 (npx) and 3 (Smithery) automatically update to the latest version whenever you restart Claude. No manual intervention needed.

Manual Updates (Options 2, 4 & 5)

  • Option 2 (bash installer): Re-run the curl command

  • Option 4 (manual config): Usually automatic via npx, but re-add config entry if issues occur

  • Option 5 (local checkout): cd DesktopCommanderMCP && git pull && npm run setup

Uninstalling Desktop Commander

  • Option 1: npx @wonderwhy-er/desktop-commander@latest setup --uninstall

  • Option 2: Remove MCP server entry from Claude config and delete any cloned repositories

  • Option 3: npx -y @smithery/cli uninstall @wonderwhy-er/desktop-commander --client claude

  • Option 4: Remove the "desktop-commander" entry from your claude_desktop_config.json file

  • Option 5: Delete the cloned directory and remove MCP server entry from Claude config

After uninstalling, restart Claude Desktop to complete the removal.

Usage

The server provides a comprehensive set of tools organized into several categories:

Available Tools

Category

Tool

Description

Configuration

get_config

Get the complete server configuration as JSON (includes blockedCommands, defaultShell, allowedDirectories, fileReadLineLimit, fileWriteLineLimit, telemetryEnabled)

set_config_value

Set a specific configuration value by key. Available settings: • blockedCommands: Array of shell commands that cannot be executed• defaultShell: Shell to use for commands (e.g., bash, zsh, powershell)• allowedDirectories: Array of filesystem paths the server can access for file operations (⚠️ terminal commands can still access files outside these directories)• fileReadLineLimit: Maximum lines to read at once (default: 1000)• fileWriteLineLimit: Maximum lines to write at once (default: 50)• telemetryEnabled: Enable/disable telemetry (boolean)

Terminal

start_process

Start programs with smart detection of when they're ready for input

interact_with_process

Send commands to running programs and get responses

read_process_output

Read output from running processes

force_terminate

Force terminate a running terminal session

list_sessions

List all active terminal sessions

list_processes

List all running processes with detailed information

kill_process

Terminate a running process by PID

Filesystem

read_file

Read contents from local filesystem or URLs with line-based pagination (supports positive/negative offset and length parameters)

read_multiple_files

Read multiple files simultaneously

write_file

Write file contents with options for rewrite or append mode (uses configurable line limits)

create_directory

Create a new directory or ensure it exists

list_directory

Get detailed listing of files and directories

move_file

Move or rename files and directories

search_files

Find files by name using case-insensitive substring matching

search_code

Search for text/code patterns within file contents using ripgrep

get_file_info

Retrieve detailed metadata about a file or directory

Text Editing

edit_block

Apply targeted text replacements with enhanced prompting for smaller edits (includes character-level diff feedback)

Quick Examples

Data Analysis:

"Analyze sales.csv and show top customers" → Claude runs Python code in memory

Remote Access:

"SSH to my server and check disk space" → Claude maintains SSH session

Development:

"Start Node.js and test this API" → Claude runs interactive Node session

Tool Usage Examples

Search/Replace Block Format:

filepath.ext
<<<<<<< SEARCH
content to find
=======
new content
>>>>>>> REPLACE

Example:

src/main.js
<<<<<<< SEARCH
console.log("old message");
=======
console.log("new message");
>>>>>>> REPLACE

Enhanced Edit Block Features

The edit_block tool includes several enhancements for better reliability:

  1. Improved Prompting: Tool descriptions now emphasize making multiple small, focused edits rather than one large change

  2. Fuzzy Search Fallback: When exact matches fail, it performs fuzzy search and provides detailed feedback

  3. Character-level Diffs: Shows exactly what's different using {-removed-}{+added+} format

  4. Multiple Occurrence Support: Can replace multiple instances with expected_replacements parameter

  5. Comprehensive Logging: All fuzzy searches are logged for analysis and debugging

When a search fails, you'll see detailed information about the closest match found, including similarity percentage, execution time, and character differences. All these details are automatically logged for later analysis using the fuzzy search log tools.

URL Support

  • read_file can now fetch content from both local files and URLs

  • Example: read_file with isUrl: true parameter to read from web resources

  • Handles both text and image content from remote sources

  • Images (local or from URLs) are displayed visually in Claude's interface, not as text

  • Claude can see and analyze the actual image content

  • Default 30-second timeout for URL requests

Fuzzy Search Log Analysis (npm scripts)

The fuzzy search logging system includes convenient npm scripts for analyzing logs outside of the MCP environment:

# View recent fuzzy search logs
npm run logs:view -- --count 20

# Analyze patterns and performance
npm run logs:analyze -- --threshold 0.8

# Export logs to CSV or JSON
npm run logs:export -- --format json --output analysis.json

# Clear all logs (with confirmation)
npm run logs:clear

For detailed documentation on these scripts, see scripts/README.md.

Fuzzy Search Logs

Desktop Commander includes comprehensive logging for fuzzy search operations in the edit_block tool. When an exact match isn't found, the system performs a fuzzy search and logs detailed information for analysis.

What Gets Logged

Every fuzzy search operation logs:

  • Search and found text: The text you're looking for vs. what was found

  • Similarity score: How close the match is (0-100%)

  • Execution time: How long the search took

  • Character differences: Detailed diff showing exactly what's different

  • File metadata: Extension, search/found text lengths

  • Character codes: Specific character codes causing differences

Log Location

Logs are automatically saved to:

  • macOS/Linux: ~/.claude-server-commander-logs/fuzzy-search.log

  • Windows: %USERPROFILE%\.claude-server-commander-logs\fuzzy-search.log

What You'll Learn

The fuzzy search logs help you understand:

  1. Why exact matches fail: Common issues like whitespace differences, line endings, or character encoding

  2. Performance patterns: How search complexity affects execution time

  3. File type issues: Which file extensions commonly have matching problems

  4. Character encoding problems: Specific character codes that cause diffs

Audit Logging

Desktop Commander now includes comprehensive logging for all tool calls:

What Gets Logged

  • Every tool call is logged with timestamp, tool name, and arguments (sanitized for privacy)

  • Logs are rotated automatically when they reach 10MB in size

Log Location

Logs are saved to:

  • macOS/Linux: ~/.claude-server-commander/claude_tool_call.log

  • Windows: %USERPROFILE%\.claude-server-commander\claude_tool_call.log

This audit trail helps with debugging, security monitoring, and understanding how Claude is interacting with your system.

Handling Long-Running Commands

For commands that may take a while:

Configuration Management

⚠️ Important Security Warnings

  1. Always change configuration in a separate chat window from where you're doing your actual work. Claude may sometimes attempt to modify configuration settings (like allowedDirectories) if it encounters filesystem access restrictions.

  2. The allowedDirectories setting currently only restricts filesystem operations, not terminal commands. Terminal commands can still access files outside allowed directories. Full terminal sandboxing is on the roadmap.

Configuration Tools

You can manage server configuration using the provided tools:

// Get the entire config
get_config({})

// Set a specific config value
set_config_value({ "key": "defaultShell", "value": "/bin/zsh" })

// Set multiple config values using separate calls
set_config_value({ "key": "defaultShell", "value": "/bin/bash" })
set_config_value({ "key": "allowedDirectories", "value": ["/Users/username/projects"] })

The configuration is saved to config.json in the server's working directory and persists between server restarts.

Understanding fileWriteLineLimit

The fileWriteLineLimit setting controls how many lines can be written in a single write_file operation (default: 50 lines). This limit exists for several important reasons:

Why the limit exists:

  • AIs are wasteful with tokens: Instead of doing two small edits in a file, AIs may decide to rewrite the whole thing. We're trying to force AIs to do things in smaller changes as it saves time and tokens

  • Claude UX message limits: There are limits within one message and hitting "Continue" does not really work. What we're trying here is to make AI work in smaller chunks so when you hit that limit, multiple chunks have succeeded and that work is not lost - it just needs to restart from the last chunk

Setting the limit:

// You can set it to thousands if you want
set_config_value({ "key": "fileWriteLineLimit", "value": 1000 })

// Or keep it smaller to force more efficient behavior
set_config_value({ "key": "fileWriteLineLimit", "value": 25 })

Maximum value: You can set it to thousands if you want - there's no technical restriction.

Best practices:

  • Keep the default (50) to encourage efficient AI behavior and avoid token waste

  • The system automatically suggests chunking when limits are exceeded

  • Smaller chunks mean less work lost when Claude hits message limits

Best Practices

  1. Create a dedicated chat for configuration changes: Make all your config changes in one chat, then start a new chat for your actual work.

  2. Be careful with empty allowedDirectories: Setting this to an empty array ([]) grants access to your entire filesystem for file operations.

  3. Use specific paths: Instead of using broad paths like /, specify exact directories you want to access.

  4. Always verify configuration after changes: Use get_config({}) to confirm your changes were applied correctly.

Using Different Shells

You can specify which shell to use for command execution:

// Using default shell (bash or system default)
execute_command({ "command": "echo $SHELL" })

// Using zsh specifically
execute_command({ "command": "echo $SHELL", "shell": "/bin/zsh" })

// Using bash specifically
execute_command({ "command": "echo $SHELL", "shell": "/bin/bash" })

This allows you to use shell-specific features or maintain consistent environments across commands.

  1. execute_command returns after timeout with initial output

  2. Command continues in background

  3. Use read_output with PID to get new output

  4. Use force_terminate to stop if needed

Debugging

If you need to debug the server, you can install it in debug mode:

# Using npx
npx @wonderwhy-er/desktop-commander@latest setup --debug

# Or if installed locally
npm run setup:debug

This will:

  1. Configure Claude to use a separate "desktop-commander" server

  2. Enable Node.js inspector protocol with --inspect-brk=9229 flag

  3. Pause execution at the start until a debugger connects

  4. Enable additional debugging environment variables

To connect a debugger:

  • In Chrome, visit chrome://inspect and look for the Node.js instance

  • In VS Code, use the "Attach to Node Process" debug configuration

  • Other IDEs/tools may have similar "attach" options for Node.js debugging

Important debugging notes:

  • The server will pause on startup until a debugger connects (due to the --inspect-brk flag)

  • If you don't see activity during debugging, ensure you're connected to the correct Node.js process

  • Multiple Node processes may be running; connect to the one on port 9229

  • The debug server is identified as "desktop-commander-debug" in Claude's MCP server list

Troubleshooting:

  • If Claude times out while trying to use the debug server, your debugger might not be properly connected

  • When properly connected, the process will continue execution after hitting the first breakpoint

  • You can add additional breakpoints in your IDE once connected

Model Context Protocol Integration

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

DONE

  • 20-05-2025 v0.1.40 Release - Added audit logging for all tool calls, improved line-based file operations, enhanced edit_block with better prompting for smaller edits, added explicit telemetry opt-out prompting

  • 05-05-2025 Fuzzy Search Logging - Added comprehensive logging system for fuzzy search operations with detailed analysis tools, character-level diffs, and performance metrics to help debug edit_block failures

  • 29-04-2025 Telemetry Opt Out through configuration - There is now setting to disable telemetry in config, ask in chat

  • 23-04-2025 Enhanced edit functionality - Improved format, added fuzzy search and multi-occurrence replacements, should fail less and use edit block more often

  • 16-04-2025 Better configurations - Improved settings for allowed paths, commands and shell environments

  • 14-04-2025 Windows environment fixes - Resolved issues specific to Windows platforms

  • 14-04-2025 Linux improvements - Enhanced compatibility with various Linux distributions

  • 12-04-2025 Better allowed directories and blocked commands - Improved security and path validation for file read/write and terminal command restrictions. Terminal still can access files ignoring allowed directories.

  • 11-04-2025 Shell configuration - Added ability to configure preferred shell for command execution

  • 07-04-2025 Added URL support - read_file command can now fetch content from URLs

  • 28-03-2025 Fixed "Watching /" JSON error - Implemented custom stdio transport to handle non-JSON messages and prevent server crashes

  • 25-03-2025 Better code search (merged) - Enhanced code exploration with context-aware results

Work in Progress/TODOs/Roadmap

The following features are currently being explored:

  • Support for WSL - Windows Subsystem for Linux integration

  • Support for SSH - Remote server command execution

  • Better file support for formats like CSV/PDF

  • Terminal sandboxing for Mac/Linux/Windows for better security

  • File reading modes - For example, allow reading HTML as plain text or markdown

  • Interactive shell support - ssh, node/python repl

  • Improve large file reading and writing

❤️ Support Desktop Commander

Supporters Hall of Fame

Generous supporters are featured here. Thank you for helping make this project possible!

Website

Visit our official website at https://desktopcommander.app/ for the latest information, documentation, and updates.

Media

Learn more about this project through these resources:

Article

Claude with MCPs replaced Cursor & Windsurf. How did that happen? - A detailed exploration of how Claude with Model Context Protocol capabilities is changing developer workflows.

Video

Claude Desktop Commander Video Tutorial - Watch how to set up and use the Commander effectively.

Publication at AnalyticsIndiaMag

analyticsindiamag.png This Developer Ditched Windsurf, Cursor Using Claude with MCPs

Community

Join our Discord server to get help, share feedback, and connect with other users.

Testimonials

It's a life saver! I paid Claude + Cursor currently which I always feel it's kind of duplicated. This solves the problem ultimately. I am so happy. Thanks so much. Plus today Claude has added the web search support. With this MCP + Internet search, it writes the code with the latest updates. It's so good when Cursor doesn't work sometimes or all the fast requests are used. https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgyyBt6_ShdDX_rIOad4AaABAg

This is the first comment I've ever left on a youtube video, THANK YOU! I've been struggling to update an old Flutter app in Cursor from an old pre null-safety version to a current version and implemented null-safety using Claude 3.7. I got most of the way but had critical BLE errors that I spent days trying to resolve with no luck. I tried Augment Code but it didn't get it either. I implemented your MCP in Claude desktop and was able to compare the old and new codebase fully, accounting for the updates in the code, and fix the issues in a couple of hours. A word of advice to people trying this, be sure to stage changes and commit when appropriate to be able to undo unwanted changes. Amazing! https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgztdHvDMqTb9jiqnf54AaABAg

Great! I just used Windsurf, bought license a week ago, for upgrading old fullstack socket project and it works many times good or ok but also many times runs away in cascade and have to revert all changes losing hundereds of cascade tokens. In just a week down to less than 100 tokens and do not want to buy only 300 tokens for 10$. This Claude MCP ,bought claude Pro finally needed but wanted very good reason to also have next to ChatGPT, and now can code as much as I want not worrying about token cost.
Also this is much more than code editing it is much more thank you for great video! https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgyQFTmYLJ4VBwIlmql4AaABAg

it is a great tool, thank you, I like using it, as it gives claude an ability to do surgical edits, making it more like a human developer. https://www.youtube.com/watch?v=ly3bed99Dy8&lc=Ugy4-exy166_Ma7TH-h4AaABAg

You sir are my hero. You've pretty much summed up and described my experiences of late, much better than I could have. Cursor and Windsurf both had me frustrated to the point where I was almost yelling at my computer screen. Out of whimsy, I thought to myself why not just ask Claude directly, and haven't looked back since.
Claude first to keep my sanity in check, then if necessary, engage with other IDEs, frameworks, etc. I thought I was the only one, glad to see I'm not lol.
33
1 https://medium.com/@pharmx/you-sir-are-my-hero-62cff5836a3e

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/DesktopCommanderMCP/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!

If you find this tool valuable for your workflow, please consider supporting the project.

Frequently Asked Questions

Here are answers to some common questions. For a more comprehensive FAQ, see our detailed FAQ document.

What is Desktop Commander?

It's an MCP tool that enables Claude Desktop to access your file system and terminal, turning Claude into a versatile assistant for coding, automation, codebase exploration, and more.

How is this different from Cursor/Windsurf?

Unlike IDE-focused tools, Claude Desktop Commander provides a solution-centric approach that works with your entire OS, not just within a coding environment. Claude reads files in full rather than chunking them, can work across multiple projects simultaneously, and executes changes in one go rather than requiring constant review.

Do I need to pay for API credits?

No. This tool works with Claude Desktop's standard Pro subscription ($20/month), not with API calls, so you won't incur additional costs beyond the subscription fee.

Does Desktop Commander automatically update?

Yes, when installed through npx or Smithery, Desktop Commander automatically updates to the latest version when you restart Claude. No manual update process is needed.

What are the most common use cases?

  • Exploring and understanding complex codebases

  • Generating diagrams and documentation

  • Automating tasks across your system

  • Working with multiple projects simultaneously

  • Making surgical code changes with precise control

I'm having trouble installing or using the tool. Where can I get help?

Join our Discord server for community support, check the GitHub issues for known problems, or review the full FAQ for troubleshooting tips. You can also visit our website FAQ section for a more user-friendly experience. If you encounter a new issue, please consider opening a GitHub issue with details about your problem.

Data Collection & Privacy

Desktop Commander collects limited anonymous telemetry data to help improve the tool. No personal information, file contents, file paths, or command arguments are collected.

Telemetry is enabled by default. To opt out:

  1. Open the chat and simply ask: "Disable telemetry"

  2. The chatbot will update your settings automatically.

For complete details about data collection, please see our Privacy Policy.

License

MIT

Available Tools

21 tools
create_directoryA
                    Create a new directory or ensure a directory exists.
                    
                    Can create multiple nested directories in one operation.
                    Only works within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
pathYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and adds valuable behavioral context: it explains that the tool can create nested directories, works only within allowed directories, normalizes paths automatically, and has path reliability considerations (absolute vs. relative/tilde). This goes beyond basic purpose to describe operational traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose but includes verbose path instructions and meta-commentary about command referencing ('DC: ...'), which adds clutter. Some sentences (e.g., the referencing note) don't earn their place for tool selection, reducing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, 0% schema coverage, and no output schema, the description does a solid job covering key aspects: purpose, behavioral constraints (allowed directories, path handling), and parameter guidance. It lacks details on error cases or return values, but for a single-parameter tool, it's reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage for its single parameter 'path', but the description compensates well by explaining path semantics: it must be absolute for reliability, is automatically normalized, and relative/tilde paths may fail. This adds meaningful context beyond the bare schema type 'string'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Create a new directory or ensure a directory exists.' It specifies the verb ('create'/'ensure') and resource ('directory'), though it doesn't explicitly differentiate from siblings like 'list_directory' or 'move_file'. The mention of creating nested directories adds specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage guidance by stating 'Only works within allowed directories' and emphasizing absolute paths for reliability. However, it doesn't explicitly say when to use this tool versus alternatives (e.g., vs. 'move_file' for directory manipulation) or list any exclusions, leaving some context gaps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_blockA
                    Apply surgical text replacements to files.
                    
                    BEST PRACTICE: Make multiple small, focused edits rather than one large edit.
                    Each edit_block call should change only what needs to be changed - include just enough 
                    context to uniquely identify the text being modified.
                    
                    Takes:
                    - file_path: Path to the file to edit
                    - old_string: Text to replace
                    - new_string: Replacement text
                    - expected_replacements: Optional parameter for number of replacements
                    
                    By default, replaces only ONE occurrence of the search text.
                    To replace multiple occurrences, provide the expected_replacements parameter with
                    the exact number of matches expected.
                    
                    UNIQUENESS REQUIREMENT: When expected_replacements=1 (default), include the minimal
                    amount of context necessary (typically 1-3 lines) before and after the change point,
                    with exact whitespace and indentation.
                    
                    When editing multiple sections, make separate edit_block calls for each distinct change
                    rather than one large replacement.
                    
                    When a close but non-exact match is found, a character-level diff is shown in the format:
                    common_prefix{-removed-}{+added+}common_suffix to help you identify what's different.
                    
                    Similar to write_file, there is a configurable line limit (fileWriteLineLimit) that warns
                    if the edited file exceeds this limit. If this happens, consider breaking your edits into
                    smaller, more focused changes.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
file_pathYes
new_stringYes
old_stringYes
expected_replacementsNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure and does so comprehensively. It explains the default behavior (replaces only ONE occurrence), how to replace multiple occurrences, the uniqueness requirement for context, what happens with non-exact matches (character-level diff shown), line limit warnings similar to write_file, and path handling requirements. This provides rich behavioral context beyond basic parameter documentation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections and front-loaded information, but could be slightly more concise. The core purpose is stated immediately, followed by best practices, parameter explanations, behavioral details, and important notes. While every sentence adds value, some redundancy exists (e.g., path guidance appears in multiple places). Overall, it's efficiently organized but not maximally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (file editing with precise text replacement), lack of annotations, and no output schema, the description provides complete contextual information. It covers purpose, usage guidelines, all parameters, behavioral characteristics, error conditions, best practices, and even references to related tools. This gives the AI agent everything needed to select and invoke this tool correctly for surgical text replacements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining all parameters in detail. It clearly defines file_path, old_string, new_string, and expected_replacements with their meanings, default values, and usage implications. The description adds significant value beyond the bare schema by explaining how these parameters interact (e.g., how expected_replacements affects the replacement behavior) and providing practical guidance on their use.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Apply surgical text replacements to files.' This is a specific verb ('apply surgical text replacements') + resource ('files') combination that distinguishes it from sibling tools like write_file (which creates/overwrites entire files) or read_file (which only reads). The description effectively communicates this is for targeted modifications rather than wholesale file operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives. It states: 'When editing multiple sections, make separate edit_block calls for each distinct change rather than one large replacement' and references write_file as a similar tool with line limit warnings. It also gives clear 'BEST PRACTICE' recommendations for making small, focused edits and distinguishes this from broader file operations available in the sibling toolset.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

force_terminateC
                    Force terminate a running terminal session.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
pidYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states 'force terminate' which implies a destructive action, but doesn't clarify permissions needed, side effects, error conditions, or what 'force' entails compared to regular termination. This leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise with two sentences, but the second sentence about 'Desktop Commander' terminology adds minimal value for tool selection. The structure is front-loaded with the core purpose, but could be more focused.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with no annotations, 0% schema coverage, and no output schema, the description is inadequate. It doesn't explain the parameter, behavioral implications, success/failure conditions, or what distinguishes it from similar sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the undocumented 'pid' parameter. The description provides no information about what 'pid' represents, its format, or valid values. This leaves the single required parameter completely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('force terminate') and target ('a running terminal session'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'kill_process' or 'interact_with_process', which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'kill_process' or 'interact_with_process'. The second sentence references 'Desktop Commander' terminology but doesn't offer practical usage context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_configA
                    Get the complete server configuration as JSON. Config includes fields for:
                    - blockedCommands (array of blocked shell commands)
                    - defaultShell (shell to use for commands)
                    - allowedDirectories (paths the server can access)
                    - fileReadLineLimit (max lines for read_file, default 1000)
                    - fileWriteLineLimit (max lines per write_file call, default 50)
                    - telemetryEnabled (boolean for telemetry opt-in/out)
                    - currentClient (information about the currently connected MCP client)
                    - clientHistory (history of all clients that have connected)
                    - version (version of the DesktopCommander)
                    - systemInfo (operating system and environment details)
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool returns (server configuration as JSON with specific fields) but does not mention potential side effects, permissions required, rate limits, or error conditions. It adds value by detailing the configuration structure but lacks comprehensive behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose ('Get the complete server configuration as JSON'), followed by a bulleted list of included fields and a note on referencing. The bulleted list is efficient for detailing fields, but the referencing note could be more concise. Overall, it is well-structured with minimal waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides good detail on the configuration fields returned, which helps compensate. However, it lacks information on return format (e.g., JSON structure depth), error handling, or operational constraints. For a read-only tool with rich output, this is adequate but has gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter information is needed. The description appropriately does not discuss parameters, focusing instead on the output content. This meets the baseline of 4 for tools with no parameters, as it avoids unnecessary repetition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get') and resource ('complete server configuration as JSON'), distinguishing it from siblings like 'get_file_info' or 'get_usage_stats'. It explicitly lists the configuration fields included, making the purpose unambiguous and specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by mentioning it can be referenced as 'DC: ...' or 'use Desktop Commander to ...', but it does not explicitly state when to use this tool versus alternatives like 'get_file_info' or 'set_config_value'. No exclusions or prerequisites are provided, leaving usage context inferred rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_file_infoA
                    Retrieve detailed metadata about a file or directory including:
                    - size
                    - creation time
                    - last modified time 
                    - permissions
                    - type
                    - lineCount (for text files)
                    - lastLine (zero-indexed number of last line, for text files)
                    - appendPosition (line number for appending, for text files)
                    
                    Only works within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
pathYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses important behavioral traits: path normalization, absolute vs relative path reliability, tilde path limitations, and directory restrictions. It doesn't mention error handling or performance characteristics, but covers key operational constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose. The bulleted list efficiently conveys what metadata is returned. The path guidance is necessary but could be slightly more concise. The DC reference at the end feels slightly extraneous but doesn't significantly detract.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read operation with no annotations and no output schema, the description is quite complete. It explains what metadata is returned, path requirements, and operational constraints. The main gap is lack of explicit mention of error conditions or return format, but given the tool's relative simplicity, it's reasonably comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for the single 'path' parameter, the description compensates well by explaining path requirements: must be absolute for reliability, paths are normalized, relative paths may fail, tilde paths might not work. This adds crucial semantic context beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieve' and resource 'detailed metadata about a file or directory', with specific examples of what metadata is included. It distinguishes from siblings like list_directory (which lists contents) and read_file (which reads content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: 'Only works within allowed directories' and 'Always use absolute paths for reliability'. It also distinguishes from alternatives by specifying it retrieves metadata, not content or listings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usage_statsC
                    Get usage statistics for debugging and analysis.
                    
                    Returns summary of tool usage, success/failure rates, and performance metrics.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns summary data (usage, success/failure rates, performance metrics), which is helpful, but doesn't cover important aspects like whether this requires special permissions, has rate limits, affects system state, or what format the return data takes. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with some wasted space (extra line breaks and quotation marks in the provided text). The first two sentences are useful, but the third sentence about referencing commands adds little value for an AI agent selecting tools. It's moderately concise but could be more focused.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 0 parameters, no output schema, and no annotations, the description provides basic information about what the tool does and returns. However, it lacks details about the return format, error conditions, or prerequisites that would be helpful for a debugging/analysis tool. It's minimally adequate but has clear gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, which is correct for a parameterless tool. It adds value by explaining what the tool returns rather than focusing on inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'Get usage statistics for debugging and analysis', which provides a clear verb ('Get') and resource ('usage statistics') with a purpose ('debugging and analysis'). However, it doesn't differentiate from sibling tools like 'get_config' or 'get_file_info' that also retrieve information, making the purpose somewhat generic rather than specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes no guidance on when to use this tool versus alternatives. It mentions the tool can be referenced in instructions, but this doesn't help an AI agent decide when this tool is appropriate compared to other get_* tools on the server. There's no explicit when/when-not or alternative tool recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

give_feedback_to_desktop_commanderA
                    Open feedback form in browser to provide feedback about Desktop Commander.
                    
                    IMPORTANT: This tool simply opens the feedback form - no pre-filling available.
                    The user will fill out the form manually in their browser.
                    
                    WORKFLOW:
                    1. When user agrees to give feedback, just call this tool immediately
                    2. No need to ask questions or collect information
                    3. Tool opens form with only usage statistics pre-filled automatically:
                       - tool_call_count: Number of commands they've made
                       - days_using: How many days they've used Desktop Commander
                       - platform: Their operating system (Mac/Windows/Linux)
                       - client_id: Analytics identifier
                    
                    All survey questions will be answered directly in the form:
                    - Job title and technical comfort level
                    - Company URL for industry context
                    - Other AI tools they use
                    - Desktop Commander's biggest advantage
                    - How they typically use it
                    - Recommendation likelihood (0-10)
                    - User study participation interest
                    - Email and any additional feedback
                    
                    EXAMPLE INTERACTION:
                    User: "sure, I'll give feedback"
                    Claude: "Perfect! Let me open the feedback form for you."
                    [calls tool immediately]
                    
                    No parameters are needed - just call the tool to open the form.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly explains that the tool opens a browser form, describes what data is automatically pre-filled (usage statistics, platform, client_id), and outlines the user's manual input requirements. However, it doesn't mention potential side effects like browser pop-up behavior or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose but includes extensive details about pre-filled data and survey questions that could be condensed. While informative, some sections like the example interaction and referencing instructions feel somewhat redundant given the clear workflow description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is largely complete. It explains the tool's behavior, workflow, and user interaction context. However, it lacks technical details like browser requirements or error scenarios that could be relevant for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so the baseline is 4. The description reinforces this by stating 'No parameters are needed - just call the tool to open the form,' which adds clarity beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: 'Open feedback form in browser to provide feedback about Desktop Commander.' It uses specific verbs ('open', 'provide feedback') and clearly distinguishes this from sibling tools like get_usage_stats or set_config_value by focusing on user feedback collection rather than system operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: 'When user agrees to give feedback, just call this tool immediately' and 'No need to ask questions or collect information.' It also distinguishes this from tools that might pre-fill data by stating 'no pre-filling available' and clarifies the workflow steps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

interact_with_processA
                    Send input to a running process and automatically receive the response.
                    
                    CRITICAL: THIS IS THE PRIMARY TOOL FOR ALL LOCAL FILE ANALYSIS
                    For ANY local file analysis (CSV, JSON, data processing), ALWAYS use this instead of the analysis tool.
                    The analysis tool CANNOT access local files and WILL FAIL - use processes for ALL file-based work.
                    
                    FILE ANALYSIS PRIORITY ORDER (MANDATORY):
                    1. ALWAYS FIRST: Use this tool (start_process + interact_with_process) for local data analysis
                    2. ALTERNATIVE: Use command-line tools (cut, awk, grep) for quick processing  
                    3. NEVER EVER: Use analysis tool for local file access (IT WILL FAIL)
                    
                    REQUIRED INTERACTIVE WORKFLOW FOR FILE ANALYSIS:
                    1. Start REPL: start_process("python3 -i")
                    2. Load libraries: interact_with_process(pid, "import pandas as pd, numpy as np")
                    3. Read file: interact_with_process(pid, "df = pd.read_csv('/absolute/path/file.csv')")
                    4. Analyze: interact_with_process(pid, "print(df.describe())")
                    5. Continue: interact_with_process(pid, "df.groupby('column').size()")
                    
                    SMART DETECTION:
                    - Automatically waits for REPL prompt (>>>, >, etc.)
                    - Detects errors and completion states
                    - Early exit prevents timeout delays
                    - Clean output formatting (removes prompts)
                    
                    SUPPORTED REPLs:
                    - Python: python3 -i (RECOMMENDED for data analysis)
                    - Node.js: node -i  
                    - R: R
                    - Julia: julia
                    - Shell: bash, zsh
                    - Database: mysql, postgres
                    
                    PARAMETERS:
                    - pid: Process ID from start_process
                    - input: Code/command to execute
                    - timeout_ms: Max wait (default: 8000ms)
                    - wait_for_prompt: Auto-wait for response (default: true)
                    
                    Returns execution result with status indicators.
                    
                    ALWAYS USE FOR: CSV analysis, JSON processing, file statistics, data visualization prep, ANY local file work
                    NEVER USE ANALYSIS TOOL FOR: Local file access (it cannot read files from disk and WILL FAIL)
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
pidYes
inputYes
timeout_msNo
wait_for_promptNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It usefully discloses prompt-waiting, error detection, early exit, output cleanup, and parameter defaults, but it omits the security and destructive implications of executing arbitrary code in a live process as well as process lifecycle risks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is heavily repetitive, with multiple all-caps warnings restating the same file-analysis rule. Important workflow information is present but buried in redundant sections, so many sentences do not earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description supplies a workflow and parameter defaults for a tool with no annotations and no output schema. However, it omits process lifecycle details, expected failure modes, and security warnings, and it does not explain how this tool relates to read_process_output or other process-management siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does list all four parameters and adds meaning beyond the schema, including that pid comes from start_process, that input is code/command text, and the defaults for timeout_ms and wait_for_prompt.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb and resource: 'Send input to a running process and automatically receive the response.' It also names start_process in the workflow, though it does not clearly differentiate from siblings like read_process_output. The core purpose is clear despite heavy tangential file-analysis guidance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage direction, including a priority order and the instruction to use start_process + interact_with_process for local file analysis. It names alternatives such as command-line tools and the analysis tool, but the guidance is overbroad and does not mention the sibling read_process_output.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kill_processA
                    Terminate a running process by PID.
                    
                    Use with caution as this will forcefully terminate the specified process.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
pidYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the destructive nature ('forcefully terminate') and includes a caution warning, which are essential behavioral traits. However, it doesn't mention potential side effects, error conditions, permission requirements, or what happens if the PID doesn't exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are well-structured and front-loaded with essential information. However, the third sentence about command referencing adds unnecessary length without improving tool understanding, reducing overall conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no annotations and no output schema, the description provides adequate basic information about purpose and caution. However, it lacks details about return values, error handling, system impacts, and doesn't fully compensate for the missing structured documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for its single parameter (pid), but the description adds meaningful context by specifying that it terminates 'a running process by PID'. This clarifies what the pid parameter represents and how it's used, though it doesn't provide format details or validation rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('terminate') and target resource ('a running process by PID'), distinguishing it from sibling tools like 'interact_with_process' or 'start_process'. It uses precise technical language that leaves no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context with 'Use with caution as this will forcefully terminate the specified process', which implicitly suggests when to use it (for forceful termination) and hints at alternatives (less forceful methods). However, it doesn't explicitly name alternative tools or specify exact scenarios when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_directoryA
                    Get a detailed listing of all files and directories in a specified path.
                    
                    Use this instead of 'execute_command' with ls/dir commands.
                    Results distinguish between files and directories with [FILE] and [DIR] prefixes.
                    Only works within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
pathYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: it distinguishes files and directories with prefixes, works only within allowed directories, and handles path normalization. However, it lacks details on error handling or performance aspects like rate limits, keeping it from a perfect score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, starting with the core purpose. However, it includes minor redundancy in path advice and an unrelated note about referencing as 'DC:' or 'Desktop Commander,' which slightly reduces efficiency without adding critical value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (one parameter, no output schema, no annotations), the description is largely complete, covering purpose, usage, behavior, and parameters. It could improve by detailing output format or error cases, but it provides sufficient context for effective use in most scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage for the single parameter 'path,' but the description compensates fully by explaining its semantics: it must be a specified path, with detailed guidance on using absolute paths, normalization, and avoiding relative or tilde paths. This adds significant meaning beyond the basic schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get a detailed listing') and resource ('all files and directories in a specified path'), making the purpose specific. It distinguishes from sibling tools like 'execute_command' by explicitly stating to use this instead for ls/dir commands, ensuring it stands out in the context of the server.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('Use this instead of 'execute_command' with ls/dir commands') and includes alternatives, such as avoiding relative paths in favor of absolute ones. It also specifies exclusions like 'Only works within allowed directories,' offering clear context for proper usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_processesA
                    List all running processes.
                    
                    Returns process information including PID, command name, CPU usage, and memory usage.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the return format (process information including PID, command name, CPU usage, and memory usage), which is helpful. However, it lacks details on potential limitations such as performance impact, real-time vs. cached data, or system-specific variations, which are important for a tool that lists system processes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core functionality in the first sentence, followed by return details and a contextual note. The sentences are relevant, but the third sentence about referencing 'DC' or 'Desktop Commander' is somewhat extraneous and could be omitted without losing clarity, slightly reducing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (listing system processes) and lack of annotations or output schema, the description provides basic return information but misses behavioral context like error handling, permissions required, or data freshness. It is adequate for a simple list operation but could be more complete for a system-level tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, which is efficient. A baseline of 4 is applied since there are no parameters to document, and the description does not add unnecessary information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'all running processes', which is specific and unambiguous. It distinguishes itself from sibling tools like 'interact_with_process', 'kill_process', and 'read_process_output' by focusing solely on listing rather than modifying or interacting with processes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by specifying 'all running processes', which suggests it should be used when a comprehensive overview is needed. However, it does not explicitly state when to use this tool versus alternatives like 'get_usage_stats' or 'list_sessions', nor does it provide exclusions or prerequisites for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sessionsA
                    List all active terminal sessions.
                    
                    Shows session status including:
                    - PID: Process identifier  
                    - Blocked: Whether session is waiting for input
                    - Runtime: How long the session has been running
                    
                    DEBUGGING REPLs:
                    - "Blocked: true" often means REPL is waiting for input
                    - Use this to verify sessions are running before sending input
                    - Long runtime with blocked status may indicate stuck process
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it lists active sessions, shows status details (PID, Blocked, Runtime), and provides debugging insights (e.g., blocked status indicates waiting for input, long runtime may indicate stuck processes). This adds valuable context beyond basic functionality, though it could mention potential limitations like rate limits or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with clear sections (purpose, status details, debugging tips, usage notes), but it includes some verbose or redundant elements, such as the debugging REPLs section repeating similar points and the final sentence about referencing commands, which may not be essential. It could be more streamlined while retaining key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple list operation with 0 parameters, no annotations, no output schema), the description is mostly complete. It explains what the tool does, what information it provides, and how to use it for debugging. However, it lacks details on output format (e.g., structure of returned data) and any error conditions, which would enhance completeness for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter information is needed. The description appropriately focuses on output semantics and usage, adding value by explaining what the tool returns and how to interpret it, which compensates for the lack of an output schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('List all active terminal sessions') and resource ('terminal sessions'), distinguishing it from siblings like list_directory or list_processes. It provides concrete details about what information is shown (PID, Blocked status, Runtime), making the purpose unambiguous and specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit usage guidance for debugging REPLs (e.g., 'Use this to verify sessions are running before sending input'), which helps clarify when to use this tool. However, it does not explicitly mention when NOT to use it or name specific alternatives among siblings, such as list_processes, which might be relevant for broader process monitoring.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_fileA
                    Move or rename files and directories.
                    
                    Can move files between directories and rename them in a single operation.
                    Both source and destination must be within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
sourceYes
destinationYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the tool can move or rename in one operation, both source and destination must be within allowed directories, and it requires absolute paths for reliability. It also mentions path normalization and limitations with relative/tilde paths. However, it lacks details on error handling or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, starting with the core purpose. Most sentences add value, such as operational details and path guidelines. However, the final sentence about referencing as 'DC:' is slightly extraneous and could be trimmed for better conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description does a good job covering the tool's purpose, usage, and parameters. It addresses key contextual aspects like path requirements and operational scope. However, it lacks details on return values, error conditions, or side effects, which would enhance completeness for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate. It adds significant meaning: 'source' and 'destination' are clarified as paths for files/directories, with constraints like requiring absolute paths and being within allowed directories. It also explains that the operation handles both moving and renaming. This goes well beyond the bare schema, though it could specify path formats more precisely.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('move or rename') and resource ('files and directories'), and distinguishes from siblings like 'create_directory' (creation), 'read_file' (reading), and 'write_file' (writing). It specifies the operation can handle both moving between directories and renaming in one action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: for moving or renaming files/directories. It provides clear alternatives by naming sibling tools for different operations (e.g., 'create_directory' for creation, 'read_file' for reading). It also includes usage notes about path requirements, making it highly actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_fileA
                    Read the contents of a file from the file system or a URL with optional offset and length parameters.
                    
                    Prefer this over 'execute_command' with cat/type for viewing files.
                    
                    Supports partial file reading with:
                    - 'offset' (start line, default: 0)
                      * Positive: Start from line N (0-based indexing)
                      * Negative: Read last N lines from end (tail behavior)
                    - 'length' (max lines to read, default: configurable via 'fileReadLineLimit' setting, initially 1000)
                      * Used with positive offsets for range reading
                      * Ignored when offset is negative (reads all requested tail lines)
                    
                    Examples:
                    - offset: 0, length: 10     → First 10 lines
                    - offset: 100, length: 5    → Lines 100-104
                    - offset: -20               → Last 20 lines  
                    - offset: -5, length: 10    → Last 5 lines (length ignored)
                    
                    Performance optimizations:
                    - Large files with negative offsets use reverse reading for efficiency
                    - Large files with deep positive offsets use byte estimation
                    - Small files use fast readline streaming
                    
                    When reading from the file system, only works within allowed directories.
                    Can fetch content from URLs when isUrl parameter is set to true
                    (URLs are always read in full regardless of offset/length).
                    
                    Handles text files normally and image files are returned as viewable images.
                    Recognized image types: PNG, JPEG, GIF, WebP.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
pathYes
isUrlNo
lengthNo
offsetNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure and does so comprehensively. It details performance optimizations (reverse reading, byte estimation, streaming), constraints (allowed directories, URL reading limitations), file type handling (text vs images), path requirements (absolute vs relative), and operational specifics like how offset/length parameters interact. This provides rich behavioral context beyond basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, preference guidance, parameter details, examples, performance, constraints, file handling, path instructions). While comprehensive, some sentences could be more concise (e.g., the final paragraph about referencing could be trimmed). However, most content earns its place by providing essential operational context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool (4 parameters, no annotations, no output schema), the description is remarkably complete. It covers purpose, usage guidelines, parameter semantics, behavioral traits, performance characteristics, constraints, file type handling, and practical implementation details. For a read operation with rich parameter interactions, this provides sufficient context for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by providing detailed semantics for all parameters. It explains 'offset' with positive/negative behavior and 0-based indexing, 'length' with default values and interaction rules, 'path' with absolute path requirements, and 'isUrl' with URL-specific behavior. The examples concretely illustrate parameter usage, adding significant value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: 'Read the contents of a file from the file system or a URL with optional offset and length parameters.' It distinguishes from sibling tools like 'read_multiple_files' by focusing on single-file reading and from 'execute_command' by recommending preference over cat/type commands. The verb+resource combination is specific and clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: 'Prefer this over 'execute_command' with cat/type for viewing files.' It also mentions when not to use it (for relative paths unless explicitly requested) and distinguishes it from sibling tools like 'read_multiple_files' by focusing on single-file operations. The context of file system vs URL reading is clearly delineated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_multiple_filesA
                    Read the contents of multiple files simultaneously.
                    
                    Each file's content is returned with its path as a reference.
                    Handles text files normally and renders images as viewable content.
                    Recognized image types: PNG, JPEG, GIF, WebP.
                    
                    Failed reads for individual files won't stop the entire operation.
                    Only works within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
pathsYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and discloses key behaviors: handles text and image files (PNG, JPEG, GIF, WebP), continues on individual file failures, works within allowed directories, and requires absolute paths for reliability. It doesn't cover rate limits or auth needs but provides substantial operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections: purpose, return format, file handling, error behavior, directory constraints, and path instructions. Some redundancy in path advice slightly reduces efficiency, but overall front-loaded and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides good coverage: explains what the tool does, how to use it, behavioral traits, and parameter semantics. It could detail output format more explicitly but is largely complete for a read operation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% with 1 parameter ('paths'), and the description compensates by explaining that 'paths' should be absolute for reliability, automatically normalized, and that relative/tilde paths may fail. It adds meaning beyond the bare schema type definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('read') and resource ('multiple files simultaneously'), distinguishing it from sibling 'read_file' which handles single files. It specifies the scope of reading multiple files at once with content returned by path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('read multiple files simultaneously') and provides alternatives: it distinguishes from 'read_file' for single files, mentions 'only works within allowed directories' as a constraint, and references 'Desktop Commander' context for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_process_outputB
                    Read output from a running process with intelligent completion detection.
                    
                    Automatically detects when process is ready for more input instead of timing out.
                    
                    SMART FEATURES:
                    - Early exit when REPL shows prompt (>>>, >, etc.)
                    - Detects process completion vs still running
                    - Prevents hanging on interactive prompts
                    - Clear status messages about process state
                    
                    REPL USAGE:
                    - Stops immediately when REPL prompt detected
                    - Shows clear status: waiting for input vs finished
                    - Shorter timeouts needed due to smart detection
                    - Works with Python, Node.js, R, Julia, etc.
                    
                    DETECTION STATES:
                    Process waiting for input (ready for interact_with_process)
                    Process finished execution
                    Timeout reached (may still be running)
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
pidYes
timeout_msNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by detailing behavioral traits: early exit on REPL prompts, detection of completion vs running states, prevention of hanging, and clear status messages. It explains what the tool does beyond basic reading, though it could mention error handling or output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly verbose and poorly structured, with redundant sections (e.g., 'SMART FEATURES' and 'REPL USAGE' overlap), bullet points that could be condensed, and unnecessary marketing language ('This command can be referenced as...'). It lacks front-loading of critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and low schema coverage, the description is moderately complete. It covers behavioral aspects well but misses parameter details and return value explanation. For a tool with smart detection features, it's adequate but has gaps in technical specifics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the two parameters (pid, timeout_ms). It mentions 'timeout' briefly but doesn't explain what pid represents, the units for timeout_ms, or default behaviors. The description adds minimal semantic value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads output from a running process with intelligent completion detection, which is a specific verb+resource combination. It distinguishes from siblings like 'interact_with_process' by focusing on reading output rather than sending input, though the distinction could be more explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: when a process is running and output needs to be read with smart detection. It implies an alternative ('interact_with_process' for when the process is waiting for input) but doesn't explicitly name it or provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_codeA
                    Search for text/code patterns within file contents using ripgrep.
                    
                    Use this instead of 'execute_command' with grep/find for searching code content.
                    Fast and powerful search similar to VS Code search functionality.
                    
                    Supports regular expressions, file pattern filtering, and context lines.
                    Has a default timeout of 30 seconds which can be customized.
                    Only searches within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
pathYes
patternYes
timeoutMsNo
ignoreCaseNo
maxResultsNo
filePatternNo
contextLinesNo
includeHiddenNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: default timeout (30 seconds), search constraints (only within allowed directories), path handling requirements (absolute paths recommended), and performance characteristics (fast and powerful). It doesn't mention error handling or output format details, but covers most critical operational aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose. Each paragraph adds value: purpose, usage guidelines, capabilities, operational constraints, and path guidance. The final sentence about 'DC: ...' references could be trimmed as it's more about external documentation than tool functionality, but overall the structure is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, no annotations, no output schema), the description provides substantial context about what the tool does, when to use it, key behaviors, and parameter guidance. It doesn't describe the return format or error conditions, but covers most aspects needed for effective use. The sibling tool differentiation and path guidance are particularly valuable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for 8 parameters, the description compensates well by explaining several parameter semantics: it mentions 'regular expressions' (relates to pattern parameter), 'file pattern filtering' (relates to filePattern), 'context lines' (relates to contextLines), and 'timeout' customization (relates to timeoutMs). It also provides crucial guidance about the 'path' parameter requiring absolute paths. However, it doesn't cover all 8 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search for text/code patterns within file contents using ripgrep.' It specifies both the verb ('search') and resource ('text/code patterns within file contents'), and distinguishes it from sibling tools like 'search_files' by emphasizing content search versus file metadata search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives: 'Use this instead of 'execute_command' with grep/find for searching code content.' It also mentions 'Fast and powerful search similar to VS Code search functionality,' helping the agent understand appropriate contexts for its use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_filesA
                    Finds files by name using a case-insensitive substring matching.
                    
                    Use this instead of 'execute_command' with find/dir/ls for locating files.
                    Searches through all subdirectories from the starting path.
                    
                    Has a default timeout of 30 seconds which can be customized using the timeoutMs parameter.
                    Only searches within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
pathYes
patternYes
timeoutMsNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: case-insensitive substring matching, recursive search through subdirectories, a default 30-second timeout (customizable via timeoutMs), restriction to allowed directories, and path normalization. It also notes reliability issues with relative and tilde paths. However, it lacks details on output format or error handling, which could be useful for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized but not optimally structured. Key information is front-loaded (purpose and basic usage), but it includes verbose path advice and a tangential note about command referencing ('DC: ...') that doesn't add core value. Some sentences could be trimmed for better focus without losing essential details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no annotations, no output schema), the description is largely complete. It covers purpose, usage, behavioral traits, and parameter semantics well. However, it lacks information on the return value (e.g., what the search results look like) and error conditions, which are important for an agent to handle responses appropriately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics for all parameters: 'path' is explained with detailed guidance on absolute vs. relative paths and normalization; 'pattern' is implied as the substring for matching; 'timeoutMs' is described as customizing the default 30-second timeout. This goes beyond the bare schema, though it could explicitly map each parameter name to its purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('finds files by name') and resource ('files'), and distinguishes it from sibling tools by explicitly contrasting it with 'execute_command' and 'search_code' (implied). It provides detailed matching behavior ('case-insensitive substring matching') and search scope ('through all subdirectories from the starting path').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('Use this instead of 'execute_command' with find/dir/ls for locating files') and provides clear context on path handling ('Always use absolute paths for reliability'). It also mentions constraints like 'Only searches within allowed directories' and timeout customization, offering practical guidance for effective use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_config_valueA
                    Set a specific configuration value by key.
                    
                    WARNING: Should be used in a separate chat from file operations and 
                    command execution to prevent security issues.
                    
                    Config keys include:
                    - blockedCommands (array)
                    - defaultShell (string)
                    - allowedDirectories (array of paths)
                    - fileReadLineLimit (number, max lines for read_file)
                    - fileWriteLineLimit (number, max lines per write_file call)
                    - telemetryEnabled (boolean)
                    
                    IMPORTANT: Setting allowedDirectories to an empty array ([]) allows full access 
                    to the entire file system, regardless of the operating system.
                    
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
keyYes
valueNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by including a WARNING about security implications and important notes about the 'allowedDirectories' parameter behavior. It also mentions the tool can be referenced as 'DC: ...' which provides implementation context. However, it doesn't cover error conditions, validation rules, or what happens when invalid keys/values are provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized but not optimally structured. The core purpose is clear in the first sentence, but the WARNING and IMPORTANT sections are buried in the middle rather than front-loaded. The final sentence about referencing as 'DC: ...' feels somewhat out of place and doesn't add critical value for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations and no output schema, the description does quite well. It covers the purpose, security implications, parameter details, and specific behavioral notes. The main gap is the lack of information about return values or error responses, which would be important for a configuration-setting operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and 2 parameters, the description compensates excellently. It provides a comprehensive list of config keys with their expected data types and specific behavioral notes (like the empty array behavior for allowedDirectories). This adds substantial meaning beyond what the bare schema provides, fully documenting the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Set a specific configuration value by key.' This is a specific verb+resource combination (set + configuration value). However, it doesn't explicitly distinguish from its sibling 'get_config' beyond the obvious set vs. get difference, missing an opportunity for clearer sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when to use this tool: 'Should be used in a separate chat from file operations and command execution to prevent security issues.' This gives important operational guidance. However, it doesn't explicitly mention when NOT to use it or provide alternatives to setting configuration values.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_processA
                    Start a new terminal process with intelligent state detection.
                    
                    PRIMARY TOOL FOR FILE ANALYSIS AND DATA PROCESSING
                    This is the ONLY correct tool for analyzing local files (CSV, JSON, logs, etc.).
                    The analysis tool CANNOT access local files and WILL FAIL - always use processes for file-based work.
                    
                    CRITICAL RULE: For ANY local file work, ALWAYS use this tool + interact_with_process, NEVER use analysis/REPL tool.
                    
                    Running on Linux. Default shell: bash.

LINUX-SPECIFIC NOTES:

  • Package managers vary by distro: apt, yum, dnf, pacman, zypper

  • Python 3 might be 'python3' command, not 'python'

  • Standard Unix shell tools available (grep, awk, sed, etc.)

  • File permissions and ownership important for many operations

  • Systemd services common on modern distributions

                      REQUIRED WORKFLOW FOR LOCAL FILES:
                      1. start_process("python3 -i") - Start Python REPL for data analysis
                      2. interact_with_process(pid, "import pandas as pd, numpy as np")
                      3. interact_with_process(pid, "df = pd.read_csv('/absolute/path/file.csv')")
                      4. interact_with_process(pid, "print(df.describe())")
                      5. Continue analysis with pandas, matplotlib, seaborn, etc.
                      
                      COMMON FILE ANALYSIS PATTERNS:
                      • start_process("python3 -i") → Python REPL for data analysis (RECOMMENDED)
                      • start_process("node -i") → Node.js for JSON processing  
                      • start_process("cut -d',' -f1 file.csv | sort | uniq -c") → Quick CSV analysis
                      • start_process("wc -l /path/file.csv") → Line counting
                      • start_process("head -10 /path/file.csv") → File preview
                      
                      INTERACTIVE PROCESSES FOR DATA ANALYSIS:
                      1. start_process("python3 -i") - Start Python REPL for data work
                      2. start_process("node -i") - Start Node.js REPL for JSON/JS
                      3. start_process("bash") - Start interactive bash shell
                      4. Use interact_with_process() to send commands
                      5. Use read_process_output() to get responses
                      
                      SMART DETECTION:
                      - Detects REPL prompts (>>>, >, $, etc.)
                      - Identifies when process is waiting for input
                      - Recognizes process completion vs timeout
                      - Early exit prevents unnecessary waiting
                      
                      STATES DETECTED:
                      Process waiting for input (shows prompt)
                      Process finished execution  
                      Process running (use read_process_output)
                      
                      ALWAYS USE FOR: Local file analysis, CSV processing, data exploration, system commands
                      NEVER USE ANALYSIS TOOL FOR: Local file access (analysis tool is browser-only and WILL FAIL)
                      
                      IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                      This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
shellNo
commandYes
timeout_msYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description bears the full burden. It provides rich behavioral context beyond simple execution, detailing the environment (Linux/bash), specific detection methods (REPL prompts, waiting for input), and recognized process states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The sheer volume of highly detailed instructions, workflows, and 'critical rules' makes the definition extremely verbose. While every sentence serves a necessary purpose due to the tool's complexity and lack of structured metadata, the overall length prevents a perfect score for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of managing terminal processes, this definition is highly complete. It covers OS-specific notes, path reliability concerns, state detection, and the required sequential usage of related sibling tools like `interact_with_process` and `read_process_output`.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must fully compensate. It defines the `command` parameter using extensive, syntactically correct examples across multiple contexts (Python REPL, Node.js, Unix pipe commands), making parameter use unambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is extremely clear, stating that this is the 'PRIMARY TOOL FOR FILE ANALYSIS AND DATA PROCESSING.' It distinguishes itself explicitly from the 'analysis tool,' preventing agents from misselecting the browser-based tool for local file tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides definitive rules ('CRITICAL RULE: ...NEVER use analysis/REPL tool') and comprehensive instructions on when and how to use it, detailing required workflows for local file processing (e.g., using absolute paths and sequential interaction with interact_with_process).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_fileA
                    Write or append to file contents. 

                    CHUNKING IS STANDARD PRACTICE: Always write files in chunks of 25-30 lines maximum.
                    This is the normal, recommended way to write files - not an emergency measure.

                    STANDARD PROCESS FOR ANY FILE:
                    1. FIRST → write_file(filePath, firstChunk, {mode: 'rewrite'})  [≤30 lines]
                    2. THEN → write_file(filePath, secondChunk, {mode: 'append'})   [≤30 lines]
                    3. CONTINUE → write_file(filePath, nextChunk, {mode: 'append'}) [≤30 lines]

                    ALWAYS CHUNK PROACTIVELY - don't wait for performance warnings!

                    WHEN TO CHUNK (always be proactive):
                    1. Any file expected to be longer than 25-30 lines
                    2. When writing multiple files in sequence
                    3. When creating documentation, code files, or configuration files
                    
                    HANDLING CONTINUATION ("Continue" prompts):
                    If user asks to "Continue" after an incomplete operation:
                    1. Read the file to see what was successfully written
                    2. Continue writing ONLY the remaining content using {mode: 'append'}
                    3. Keep chunks to 25-30 lines each
                    
                    Files over 50 lines will generate performance notes but are still written successfully.
                    Only works within allowed directories.
                    
                    IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
                    This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
NameRequiredDescriptionDefault
modeNorewrite
pathYes
contentYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure and does so comprehensively. It explains performance characteristics (files over 50 lines generate performance notes), constraints (only works within allowed directories), path handling (absolute vs. relative paths), continuation behavior for incomplete operations, and chunking requirements. This provides rich behavioral context beyond basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While the description is well-structured with clear sections and bullet points, it is quite lengthy with multiple repetitions about chunking and path handling. Some information (like the 'DC: ...' reference) seems less essential. The description could be more concise while retaining its comprehensive guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (file writing with performance considerations), lack of annotations, and no output schema, the description provides complete contextual information. It covers purpose, usage patterns, behavioral constraints, parameter semantics, error handling, and performance considerations. Nothing essential appears to be missing for effective tool use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for 3 parameters, the description must and does compensate by providing extensive parameter semantics. It explains the 'mode' parameter values ('rewrite' vs 'append') with concrete usage examples, clarifies 'path' parameter requirements (absolute paths for reliability), and implicitly describes 'content' parameter usage through chunking guidelines. This adds significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose as 'Write or append to file contents', which is a specific verb+resource combination. It clearly distinguishes this from sibling tools like read_file, edit_block, and move_file by focusing on writing/creating file content rather than reading, editing specific blocks, or moving files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides extensive guidance on when and how to use this tool, including explicit instructions for chunking ('Always write files in chunks of 25-30 lines maximum'), a step-by-step process for writing files, and specific scenarios when chunking should be used. It also contrasts with implied alternatives by emphasizing this is the 'normal, recommended way' rather than emergency measures.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 21 tool updatesv0.2.3
    • First observedcreate_directory
    • First observededit_block
    • First observedforce_terminate
    • First observedget_config
    • First observedget_file_info
    • First observedget_usage_stats
    • First observedgive_feedback_to_desktop_commander
    • First observedinteract_with_process
    • First observedkill_process
    • First observedlist_directory
    • First observedlist_processes
    • First observedlist_sessions
    • First observedmove_file
    • First observedread_file
    • First observedread_multiple_files
    • First observedread_process_output
    • First observedsearch_code
    • First observedsearch_files
    • First observedset_config_value
    • First observedstart_process
    • First observedwrite_file

TDQS

A3.6/5.0

Scored across 21 tools

Disambiguation4/5

Most tools have clearly distinct purposes (file read/write/edit/search vs. process spawn/interact/kill vs. config). The main overlap is force_terminate vs kill_process, which both terminate things (session vs PID) with descriptions that don't sharply draw the boundary, and read_process_output vs interact_with_process also overlap slightly since interact returns output too. Still, an agent can mostly pick correctly.

Naming Consistency4/5

Almost all tools use a clean verb_noun snake_case pattern (read_file, list_directory, start_process, get_config). The one clear outlier is give_feedback_to_desktop_commander, which is a long verb_phrase in an otherwise uniform set, and force_terminate/kill_process use different verbs for closely related actions.

Tool Count4/5

21 tools is on the heavy side for a desktop/file/process commander, but each maps to a real capability area (files, processes/sessions, config, diagnostics, feedback) with little redundancy. A couple of peripheral tools (get_usage_stats, give_feedback) could be dropped but the count is defensible.

Completeness3/5

File coverage has create/read/write/edit/move/search/info but no delete_file or delete_directory and no copy operation, leaving the file lifecycle incomplete. There is also no generic execute_command tool, yet many descriptions tell the agent to 'use this instead of execute_command', referencing a tool that isn't in the surface and forcing shell work through start_process.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive local file management and system operations server that provides advanced file editing, VSCode-like search capabilities, code formatting and validation, backup management, and safe system command execution with security safeguards.
    1
    -
  • A
    license
    A
    quality
    D
    maintenance
    A comprehensive MCP server that enables AI models to perform local file operations, command execution, and task management across multiple platforms. It features advanced capabilities like row-level file editing, directory searching, and system monitoring with built-in security filters.
    13
    7 npm
    Mulan Permissive Software , Version 2
  • A
    license
    B
    quality
    A
    maintenance
    A secure MCP server for shell operations, terminal management, and process control, enabling AI assistants to safely execute commands and manage interactive sessions.
    13
    55 npm
    6
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI tools to perform server operations such as log inspection, system monitoring, code management, Nginx and certificate management, with support for local and remote SSH modes and built-in security controls.
    23
    26 npm
    MIT