Skip to main content
Glama
StrawHatAI

Claude Desktop Commander MCP

by StrawHatAI

Claude Desktop Commander MCP

npm downloads

Short version. Two key things. Terminal commands and diff based file editing.

This is server that allows Claude desktop app to 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 .

Features

  • Execute terminal commands with output streaming

  • Command timeout and background execution support

  • Process management (list and kill processes)

  • Session management for long-running commands

  • Full filesystem operations:

    • Read/write files

    • Create/list directories

    • Move files/directories

    • Search files

    • Get file metadata

    • Code editing capabilities:

    • Surgical text replacements for small changes

    • Full file rewrites for major changes

    • Multiple file support

    • Pattern-based replacements

Related MCP server: Local Dev Bridge MCP

Installation

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

Option 1: Installing via Smithery

To install Desktop Commander for Claude Desktop automatically via Smithery:

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

Option 2: Install trough npx

Just run this in terminal

npx @wonderwhy-er/desktop-commander setup

Restart Claude if running

Option 3: Add to claude_desktop_config by hand

Add this entry to your claude_desktop_config.json (on Mac, found at ~/Library/Application\ Support/Claude/claude_desktop_config.json):

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

Restart Claude if running

Option 4: Checkout locally

  1. Clone and build:

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

Usage

The server provides these tool categories:

Terminal Tools

  • execute_command: Run commands with configurable timeout

  • read_output: Get output from long-running commands

  • force_terminate: Stop running command sessions

  • list_sessions: View active command sessions

  • list_processes: View system processes

  • kill_process: Terminate processes by PID

  • block_command/unblock_command: Manage command blacklist

Filesystem Tools

  • read_file/write_file: File operations

  • create_directory/list_directory: Directory management

  • move_file: Move/rename files

  • search_files: Pattern-based file search

  • get_file_info: File metadata

Edit Tools

  • edit_block: Apply surgical text replacements (best for changes <20% of file size)

  • write_file: Complete file rewrites (best for large changes >20% or when edit_block fails)

Search/Replace Block Format:

filepath.ext
<<<<<<< SEARCH
existing code to replace
=======
new code to insert
>>>>>>> REPLACE

Example:

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

Handling Long-Running Commands

For commands that may take a while:

  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

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

Contributing

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

License

MIT

Available Tools

19 tools
block_commandB

Add a command to the blacklist. Once blocked, the command cannot be executed until unblocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes

TDQS

B3.2/5.0
Behavior2/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 the effect ('cannot be executed until unblocked') and mentions persistence ('Once blocked'), but omits critical behavioral details such as permission requirements, whether the change is reversible only via 'unblock_command,' or any rate limits or side effects. This is inadequate for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

The description is two sentences with zero waste: the first states the action and resource, and the second explains the consequence. It is front-loaded and appropriately sized, earning its place efficiently.

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?

Given the complexity of a mutation tool with no annotations, no output schema, and low schema coverage, the description is incomplete. It covers the basic purpose and effect but lacks details on permissions, error handling, return values, or integration with siblings like 'list_blocked_commands,' making it insufficient for safe and effective use.

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

Parameters3/5

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

The input schema has 1 parameter with 0% description coverage, so the description must compensate. It adds meaning by specifying that the parameter is a 'command' to be added to the blacklist, which clarifies the parameter's role beyond the schema's type. However, it doesn't detail the command format, examples, or constraints, leaving gaps in understanding.

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 ('Add a command to the blacklist') and the resource ('command'), making the purpose evident. However, it doesn't explicitly differentiate from its sibling 'unblock_command' beyond the opposite action, missing a direct comparison that would warrant a 5.

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 stating 'Once blocked, the command cannot be executed until unblocked,' which suggests when to use it (to prevent command execution). However, it lacks explicit guidance on when to choose this over alternatives like 'edit_block' or 'list_blocked_commands,' and doesn't mention prerequisites or exclusions.

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

create_directoryA

Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. Only works within allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A3.6/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 full burden. It mentions 'Only works within allowed directories' (a constraint) and 'Can create multiple nested directories' (a capability), but doesn't disclose critical behavioral traits like permissions needed, whether it overwrites existing directories, error handling, or response format. For a mutation tool with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

Three sentences, each adding value: first states purpose, second adds capability (nested directories), third adds constraint (allowed directories). No wasted words, front-loaded with core functionality.

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?

Given complexity (mutation tool creating directories), no annotations, no output schema, and low schema coverage (0%), the description is incomplete. It lacks details on permissions, error cases, return values, or how 'ensure exists' differs from 'create'. Should provide more context for safe usage.

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

Parameters3/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 implies the 'path' parameter is used for creating directories, including nested ones, but doesn't specify format (e.g., absolute/relative paths), constraints, or examples. The description adds some meaning but doesn't fully compensate for the coverage gap.

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 ('create' or 'ensure exists') and resource ('directory'), with specific details about creating nested directories in one operation. It distinguishes from siblings like 'list_directory' (read-only) and 'move_file' (different operation).

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 'Only works within allowed directories', which implies a constraint but doesn't explicitly state when to use alternatives (e.g., no comparison to 'list_allowed_directories' for checking permissions). It lacks explicit exclusions or named alternatives.

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 for small changes (<20% of file size). Multiple blocks can be used for separate changes. Will verify changes after application. Format: filepath, then <<<<<<< SEARCH, content to find, =======, new content, >>>>>>> REPLACE.

ParametersJSON Schema
NameRequiredDescriptionDefault
blockContentYes

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's a mutation tool (implied by 'apply replacements'), includes verification ('will verify changes after application'), and has constraints on change size. However, it doesn't mention error handling, permissions, or rate limits, leaving some gaps.

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

Conciseness5/5

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

The description is front-loaded with the core purpose and efficiently structured into three sentences that each add value: purpose, guidelines, and format. There is no wasted text, making it highly concise and well-organized.

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 complexity of a mutation tool with no annotations or output schema, the description is largely complete: it covers purpose, usage, behavior, and parameter semantics. However, it lacks details on error cases, return values, or edge cases, which could be helpful for full contextual understanding.

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 the single parameter 'blockContent', but the description compensates by explaining the parameter's format and semantics in detail ('Format: filepath, then <<<<<<< SEARCH...'). This adds significant meaning beyond the schema, though it doesn't explicitly name the parameter.

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 ('apply surgical text replacements') and resource ('files'), distinguishing it from siblings like write_file or search_files. It specifies the scope ('small changes <20% of file size') and method ('multiple blocks for separate changes'), making it highly specific.

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 ('best for small changes <20% of file size') and implies alternatives by contrasting with other file operations like write_file. It also specifies the format and structure for usage, offering clear context for application.

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

execute_commandB

Execute a terminal command with timeout. Command will continue running in background if it doesn't complete within timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
timeout_msNo

TDQS

B3/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 adds valuable context about timeout handling and background execution, which aren't obvious from the schema. However, it lacks details on permissions, side effects, error handling, or output format, leaving significant gaps for a tool that executes commands.

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

Conciseness5/5

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

The description is extremely concise—two sentences that directly state the tool's function and a key behavioral trait. Every word serves a purpose, with no redundant information, making it efficiently front-loaded and easy to parse.

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?

Given the tool's complexity (executing terminal commands), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It misses critical details like security implications, error responses, or how results are returned, which are essential for safe and effective use.

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 undocumented parameters. It mentions 'timeout' but doesn't explain the 'timeout_ms' parameter's units or default behavior, and it doesn't clarify the 'command' parameter's scope or restrictions. The description adds minimal semantic value beyond the schema's structure.

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: 'Execute a terminal command with timeout.' It specifies the verb ('execute') and resource ('terminal command'), making the function unambiguous. However, it doesn't differentiate from sibling tools like 'block_command' or 'force_terminate', which prevents a perfect score.

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. It doesn't mention sibling tools like 'block_command' for restricting commands or 'force_terminate' for stopping processes, nor does it specify prerequisites or exclusions. This leaves the agent without contextual usage cues.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pidYes

TDQS

C2.8/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 this is a 'force terminate' action which implies destructive behavior, but doesn't clarify permissions needed, side effects, or what happens to the terminal session. For a destructive tool with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is a single, clear sentence with zero wasted words. It's appropriately sized for a simple tool and gets straight to the point without unnecessary elaboration.

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 tool with no annotations, no output schema, and 0% schema description coverage, the description is inadequate. It doesn't explain what 'force' means operationally, what permissions are required, what happens after termination, or how to identify the correct pid for a terminal session.

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 parameter. The description mentions terminating 'a running terminal session' but doesn't explain what 'pid' represents or how to obtain it. It adds minimal context beyond the schema's structural definition.

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 resource ('a running terminal session'), making the purpose immediately understandable. It doesn't distinguish from sibling tools like 'kill_process' which might serve a similar function, so it doesn't reach the highest score.

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?

No guidance is provided on when to use this tool versus alternatives like 'kill_process' or other process management tools. The description only states what it does, not when it's appropriate or what distinguishes it from siblings.

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, and type. Only works within allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A4.1/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. It discloses the directory restriction ('Only works within allowed directories'), which is useful behavioral context. However, it lacks details on error handling, permissions needed, rate limits, or response format, leaving gaps for a read operation with no output schema.

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

Conciseness5/5

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

The description is front-loaded with the core purpose in the first clause, followed by specific attributes and a constraint. Every sentence earns its place with no redundancy, making it efficient and well-structured for quick understanding.

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 is moderately complete. It covers the purpose, attributes, and a key constraint, but lacks details on return values, error cases, or behavioral nuances. For a tool with 1 parameter and no structured output, it meets minimum viability but has clear gaps.

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 1 parameter with 0% description coverage, so the description must compensate. It implies the 'path' parameter is used to specify the file or directory for metadata retrieval, adding meaning beyond the bare schema. However, it does not detail path format, examples, or constraints like absolute vs. relative paths.

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 ('Retrieve detailed metadata') and resource ('about a file or directory'), listing concrete attributes like size, creation time, and permissions. It distinguishes from siblings like list_directory (which lists contents) or read_file (which reads file content), making the purpose unambiguous.

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 'Only works within allowed directories,' indicating a constraint. However, it does not explicitly state when to use this tool versus alternatives like list_directory (for listing) or search_files (for finding), nor does it mention prerequisites or exclusions beyond the directory restriction.

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.

ParametersJSON Schema
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 effectively conveys that this is a destructive action ('forcefully terminate') and requires caution, which is crucial for a mutation tool. However, it misses details like permission requirements, system impact, or error handling, leaving some behavioral aspects unclear.

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

Conciseness5/5

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

The description is appropriately sized with two sentences that are front-loaded: the first states the purpose, and the second adds crucial caution. Every sentence earns its place by providing essential information without waste, making it efficient and well-structured.

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 complexity (destructive mutation), lack of annotations, no output schema, and low schema coverage, the description is somewhat complete but has gaps. It covers the core action and caution, but misses details like return values, error cases, or prerequisites, making it adequate but not fully comprehensive for safe use.

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

Parameters3/5

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

The schema description coverage is 0%, with 1 parameter (pid) undocumented in the schema. The description adds meaning by specifying that the pid is used to identify the process to terminate, which clarifies the parameter's role. However, it doesn't provide format details (e.g., integer type, valid ranges), so it partially compensates but not fully.

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'), target resource ('a running process'), and method ('by PID'), making the purpose explicit. It distinguishes this tool from siblings like 'force_terminate' by specifying the PID-based approach, 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 with 'Use with caution as this will forcefully terminate the specified process,' indicating when to be careful. However, it lacks explicit guidance on when to use this versus alternatives like 'force_terminate' or other process-related tools, which would improve the score.

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

list_allowed_directoriesB

Returns the list of directories that this server is allowed to access.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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. It states the tool returns a list, implying a read-only operation, but doesn't disclose behavioral traits such as permissions required, rate limits, error conditions, or format of the returned list. For a tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse. Every part of the sentence contributes directly to understanding the tool's function.

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 no parameters and no output schema, the description adequately covers the basic purpose. However, it lacks details on return format, error handling, or server-specific context, which could be important for an agent to use it effectively. With no annotations, it's minimally complete but has room for improvement.

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 doesn't add param info, which is appropriate. Baseline is 4 for zero parameters, as it avoids redundancy and focuses on the tool's purpose.

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 verb ('Returns') and resource ('list of directories'), specifying what the tool does. It distinguishes the scope ('that this server is allowed to access'), which adds clarity. However, it doesn't explicitly differentiate from sibling tools like 'list_directory', which might list directories without access restrictions, so it's not a perfect 5.

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. It doesn't mention sibling tools like 'list_directory' or 'search_files', nor does it specify prerequisites or contexts for usage. This leaves the agent without explicit direction on tool selection.

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

list_blocked_commandsB

List all currently blocked commands.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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. While 'List' implies a read-only operation, it doesn't specify whether this requires special permissions, how results are formatted, if there are rate limits, or what 'currently' means in terms of freshness. For a tool with zero annotation coverage, this is insufficient 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.

Conciseness5/5

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

The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a simple list operation and front-loads the essential information. Every word earns its place in this minimal description.

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 simple list tool with no parameters and no output schema, the description provides the basic purpose but lacks important context. Without annotations or output schema, the description should ideally mention what format the blocked commands are returned in or any limitations. It's minimally adequate but leaves the agent guessing about the response structure.

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 tool has zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters since none exist. The baseline for zero parameters with full schema coverage is 4, as there's no parameter information needed beyond what's already structured.

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 verb ('List') and resource ('blocked commands'), making the purpose immediately understandable. It specifies 'all currently blocked commands' which adds useful scope information. However, it doesn't explicitly differentiate from sibling tools like 'unblock_command' or 'block_command'.

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. There's no mention of when this tool is appropriate versus 'list_allowed_directories' or 'list_sessions', nor any prerequisites or context for usage. The agent must infer usage from the tool name alone.

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. Results distinguish between files and directories with [FILE] and [DIR] prefixes. Only works within allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

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 and does well by disclosing key behavioral traits: it's a read operation (implied by 'Get'), distinguishes file types with prefixes, and has access restrictions ('Only works within allowed directories'). It lacks details on error handling or output format, but covers essential safety and scope aspects.

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

Conciseness5/5

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

The description is front-loaded with the core purpose in the first sentence, followed by additional details in two more sentences, each adding value without waste. It efficiently conveys necessary information in a compact form.

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 (listing files with access restrictions), no annotations, no output schema, and low schema coverage, the description is fairly complete by covering purpose, usage constraints, and behavioral traits. It could improve by detailing output structure or error cases, but it provides enough context for basic use.

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

Parameters3/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 adds meaning by specifying it as 'a specified path' and implying it must be within allowed directories. This compensates partially, but without details on path format or examples, it meets the baseline for minimal parameter info.

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 ('Get a detailed listing') and resources ('files and directories in a specified path'), and distinguishes it from siblings by specifying it lists contents rather than creating, editing, or moving files. The mention of distinguishing between files and directories with prefixes adds further specificity.

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 usage with 'Only works within allowed directories,' which implicitly suggests using list_allowed_directories first. However, it does not explicitly state when not to use this tool or name alternatives like search_files for filtered searches, leaving some guidance gaps.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/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. It discloses that the tool returns process information (PID, command name, CPU usage, memory usage), which is useful behavioral context. However, it doesn't mention potential limitations like refresh rate, system impact, or permission requirements.

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

Conciseness5/5

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

The description is two sentences with zero waste: the first states the action and scope, the second specifies the return format. It's appropriately sized and front-loaded with essential 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 simplicity (0 parameters, no output schema, no annotations), the description is reasonably complete. It explains what the tool does and what information it returns. For a read-only listing tool, this covers the essentials, though adding context about system-specific behavior could improve it.

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 tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the inputs. The description appropriately doesn't add parameter details, maintaining focus on the tool's purpose and output.

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 resource ('all running processes'), specifying what the tool does. It distinguishes from siblings like kill_process or force_terminate by focusing on listing rather than modifying processes.

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 for viewing running processes but doesn't explicitly state when to use this tool versus alternatives like list_sessions or list_directory. No guidance on prerequisites or exclusions is provided.

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

list_sessionsB

List all active terminal sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 it lists 'active' sessions, implying a read-only operation, but doesn't specify what 'active' means, whether it requires permissions, how results are formatted, or if there are rate limits. This leaves significant gaps for a tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, with every word earning its 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?

Given the tool's low complexity (0 parameters, no output schema) and no annotations, the description is minimally adequate. It specifies the resource ('active terminal sessions'), but lacks details on behavior, output format, or usage context, leaving room for improvement 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 tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description adds no parameter information, but with no parameters, the baseline is 4 as it doesn't need to compensate for gaps.

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 verb 'List' and the resource 'active terminal sessions', providing a specific action and target. However, it doesn't differentiate from sibling tools like 'list_processes' or 'list_directory' beyond the resource type, missing explicit sibling distinction.

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 'list_processes' or 'list_directory'. It lacks context about prerequisites, exclusions, or specific scenarios where listing sessions is preferred over other listing tools.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
destinationYes

TDQS

A4.1/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 correctly indicates this is a mutation operation (move/rename) and adds important context about the 'allowed directories' constraint. However, it doesn't disclose other behavioral aspects like error conditions, permission requirements, or whether the operation is atomic/reversible.

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

Conciseness5/5

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

The description is perfectly concise with three focused sentences: first states the core functionality, second elaborates on capabilities, third provides critical constraint. Every sentence adds essential information with zero wasted words.

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 mutation tool with no annotations and no output schema, the description provides adequate basic information about what the tool does and key constraints. However, it lacks details about return values, error conditions, and more specific behavioral expectations that would be helpful 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?

With 0% schema description coverage for the 2 parameters, the description compensates well by explaining what 'source' and 'destination' represent in the context of moving/renaming operations. It clarifies that both parameters are file/directory paths and establishes their relationship (source → destination).

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 ('move or rename') and resources ('files and directories'), distinguishing it from siblings like create_directory (creation only) or write_file (content modification). It explicitly mentions the dual functionality of moving between directories and renaming in one operation.

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 ('move or rename files and directories') and includes an important constraint ('Both source and destination must be within allowed directories'). However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools.

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 complete contents of a file from the file system. Handles various text encodings and provides detailed error messages if the file cannot be read. Only works within allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

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 adds valuable context beyond basic functionality: it handles various text encodings, provides detailed error messages, and has directory restrictions. This covers key behavioral traits like error handling and operational limits, though it could mention performance aspects like file size limits.

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

Conciseness5/5

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

The description is front-loaded with the core purpose in the first sentence, followed by additional behavioral details. Each sentence adds value: the first defines the action, the second covers encoding and errors, and the third states directory restrictions. There is no wasted text, making it efficient and well-structured.

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 (single parameter, no output schema, no annotations), the description is mostly complete. It covers purpose, behavioral traits, and usage constraints. However, without an output schema, it does not describe return values (e.g., file content format), leaving a minor gap in completeness for the 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 1 parameter with 0% description coverage, so the description must compensate. It implies the 'path' parameter is for specifying the file to read, but does not detail format or examples. The description adds meaning by contextualizing the parameter's role in file reading, though more specifics on path syntax would enhance clarity.

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 ('complete contents of a file from the file system'), distinguishing it from siblings like 'get_file_info' (metadata) and 'read_multiple_files' (batch operation). It specifies the scope of reading the complete contents, making the purpose explicit and differentiated.

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 'Only works within allowed directories,' indicating a usage constraint. However, it does not explicitly mention when to use this tool versus alternatives like 'read_multiple_files' for batch operations or 'get_file_info' for metadata, so it lacks explicit sibling differentiation.

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. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYes

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 full burden and does well by disclosing key behavioral traits: partial failure tolerance ('failed reads for individual files won't stop the entire operation'), directory restrictions, and output format ('each file's content is returned with its path'). It doesn't mention error handling details or performance characteristics.

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

Conciseness5/5

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

Three sentences that are front-loaded with core functionality, followed by important behavioral details, and ending with constraints. Every sentence adds value with zero wasted words or redundancy.

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 read operation with no annotations and no output schema, the description provides good coverage of purpose, behavior, and constraints. It could be more complete by specifying error response format or performance expectations, but covers the essentials well given the tool's moderate complexity.

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

Parameters3/5

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

The schema has 0% description coverage for the single 'paths' parameter. The description adds some context by implying these are file paths and mentioning directory restrictions, but doesn't specify path format requirements, maximum array size, or other constraints beyond what's obvious from the parameter name.

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 ('read', 'return') and resource ('multiple files simultaneously'), distinguishing it from sibling 'read_file' which handles single files. It specifies the scope of operation and output format.

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 ('read multiple files simultaneously') and mentions constraints ('only works within allowed directories'), but doesn't explicitly contrast with alternatives like 'read_file' for single files or 'search_files' for finding files.

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

read_outputC

Read new output from a running terminal session.

ParametersJSON Schema
NameRequiredDescriptionDefault
pidYes

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 reads 'new output' but doesn't clarify what 'new' means (e.g., since last read, real-time), whether it's a one-time or continuous operation, or any limitations like rate limits or permissions required. The description is minimal and lacks critical behavioral details for a tool interacting with running processes.

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

Conciseness5/5

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

The description is a single, clear sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to scan. Every word earns its place, achieving maximum efficiency without being overly terse.

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?

Given the complexity of interacting with running terminal sessions, no annotations, no output schema, and low parameter coverage, the description is incomplete. It doesn't explain what the tool returns (e.g., output text, error messages), how to handle multiple reads, or any side effects. For a tool with potential behavioral nuances, this minimal description is inadequate.

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?

The input schema has 1 parameter (pid) with 0% description coverage, meaning the schema provides no semantic information. The description adds no parameter details—it doesn't explain what 'pid' represents (e.g., process ID of the terminal session) or how to obtain it. This fails to compensate for the low schema coverage, leaving the parameter undocumented.

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 ('read') and resource ('new output from a running terminal session'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'read_file' or 'read_multiple_files', which also involve reading operations but from different sources. The description is specific but lacks 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 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. It doesn't mention prerequisites (e.g., that a terminal session must be running), exclusions (e.g., not for reading old output), or comparisons to siblings like 'read_file' for file-based reading. Usage is implied by the name and description but not explicitly stated.

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

search_filesC

Recursively search for files and directories matching a pattern. Searches through all subdirectories from the starting path. Only searches within allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
patternYes

TDQS

C2.9/5.0
Behavior2/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 mentions recursion and allowed directory constraints, but lacks details on permissions, rate limits, error handling, or output format. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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 with three sentences. It's front-loaded with the core purpose, followed by scope and constraints. Each sentence adds value without redundancy, though minor improvements in clarity could enhance structure.

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?

Given the tool's complexity (recursive search), no annotations, no output schema, and low schema coverage, the description is incomplete. It misses critical details like result format, error cases, performance implications, and how it differs from simpler listing tools, making it inadequate for full contextual understanding.

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

Parameters3/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 explains that 'path' is the starting point and 'pattern' is what to match, adding basic semantics. However, it doesn't clarify parameter formats (e.g., regex vs glob for pattern) or examples, leaving room for ambiguity despite covering both parameters.

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: 'Recursively search for files and directories matching a pattern.' It specifies the verb (search), resource (files and directories), and scope (recursively). However, it doesn't explicitly differentiate from sibling tools like 'list_directory' or 'get_file_info', which prevents a perfect score.

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 minimal guidance: 'Only searches within allowed directories.' It implies a constraint but doesn't explain when to use this tool versus alternatives like 'list_directory' or 'read_file'. No explicit when/when-not instructions or sibling tool comparisons are included.

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

unblock_commandB

Remove a command from the blacklist. Once unblocked, the command can be executed normally.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes

TDQS

B3.3/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 action ('Remove') and outcome ('can be executed normally'), but lacks details on permissions required, whether the change is reversible, error handling (e.g., if command not in blacklist), or system effects. For a mutation tool with zero annotation coverage, this is insufficient.

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

Conciseness5/5

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

The description is two sentences that are front-loaded and efficient, with no wasted words. Each sentence adds value: the first states the action, and the second explains the consequence. It is appropriately sized for the tool's complexity.

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?

Given the tool's mutation nature (removing from a blacklist), no annotations, no output schema, and low parameter coverage, the description is incomplete. It lacks critical details like permissions, error cases, or return values, making it inadequate for safe and effective use by an AI agent.

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?

The schema has 1 parameter with 0% description coverage, and the description does not add any information about the 'command' parameter (e.g., format, examples, or what constitutes a valid command). It fails to compensate for the low schema coverage, leaving the parameter's meaning unclear beyond its name.

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 ('Remove a command from the blacklist') and the resource ('a command'), distinguishing it from siblings like 'block_command' (which adds to blacklist) and 'list_blocked_commands' (which only reads). It also explains the outcome ('Once unblocked, the command can be executed normally'), making the purpose explicit and distinct.

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 when a command needs to be removed from a blacklist to allow execution, but it does not explicitly state when to use this tool versus alternatives (e.g., 'edit_block' might modify blacklist entries, or 'block_command' for adding). No exclusions or prerequisites are mentioned, leaving some ambiguity in context.

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

write_fileA

Completely replace file contents. Best for large changes (>20% of file) or when edit_block fails. Use with caution as it will overwrite existing files. Only works within allowed directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes

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 communicates key behavioral traits: the destructive nature ('will overwrite existing files'), caution needed, and directory restrictions. However, it doesn't mention error conditions, response format, or performance characteristics that would be helpful 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.

Conciseness5/5

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

The description is efficiently structured with three sentences that each serve a distinct purpose: stating the core operation, providing usage guidelines, and specifying constraints. There's no wasted language, and the most critical information (the destructive nature) is front-loaded appropriately.

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 destructive file operation tool with no annotations and no output schema, the description does a good job covering the essential context: the overwrite behavior, usage scenarios, and directory restrictions. However, it doesn't mention what happens on success/failure or what the tool returns, which would be valuable for an agent invoking it.

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

Parameters3/5

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

With 0% schema description coverage, the description doesn't provide any parameter-specific information beyond what's implied by the tool name. While it mentions 'path' and 'content' indirectly through context, it doesn't explain format requirements, constraints, or examples for either parameter. The baseline is 3 since the schema covers the parameters structurally.

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 ('Completely replace file contents') and distinguishes it from sibling tools ('when edit_block fails'). It explicitly identifies the resource (files) and the operation (overwrite/replace), making it easy to understand what this tool does differently from other file-related tools.

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 ('Best for large changes (>20% of file) or when edit_block fails') and when to use alternatives (edit_block). It also includes cautionary advice ('Use with caution') and constraints ('Only works within allowed directories'), giving clear context for appropriate usage.

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. Dates show when Glama detected each change.

  1. 19 tool updates
    • First observedblock_command
    • First observedcreate_directory
    • First observededit_block
    • First observedexecute_command
    • First observedforce_terminate
    • First observedget_file_info
    • First observedkill_process
    • First observedlist_allowed_directories
    • First observedlist_blocked_commands
    • First observedlist_directory
    • First observedlist_processes
    • First observedlist_sessions
    • First observedmove_file
    • First observedread_file
    • First observedread_multiple_files
    • First observedread_output
    • First observedsearch_files
    • First observedunblock_command
    • First observedwrite_file

TDQS

A3.7/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose with no significant overlap. For example, read_file and read_multiple_files are clearly differentiated by single vs. batch operations, while edit_block and write_file are distinguished by surgical vs. complete replacement use cases. The command blocking tools (block_command, unblock_command, list_blocked_commands) form a coherent subsystem without confusion.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with perfect consistency throughout. The naming convention is uniformly descriptive and predictable, making it easy to understand each tool's function at a glance. Examples include list_directory, create_directory, move_file, and search_files.

Tool Count4/5

With 19 tools, the count is slightly high but reasonable for a desktop command and file management server. The tools cover multiple domains (file operations, process management, terminal sessions, command blocking), and most tools earn their place. A slight reduction might improve focus, but the scope justifies the current count.

Completeness5/5

The tool surface provides comprehensive coverage for desktop command and file management operations. It includes full CRUD for files (create_directory, read_file, edit_block/write_file, move_file), process lifecycle management (list_processes, kill_process), terminal session control (execute_command, list_sessions, read_output, force_terminate), and command security (block/unblock). No obvious gaps exist for the server's stated purpose.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/StrawHatAI/claude-dev-tools'

If you have feedback or need assistance with the MCP directory API, please join our Discord server