Skip to main content
Glama

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.5

  • Disambiguation4/5

    Most tools are clearly distinct, targeting specific resources and actions (file ops, process ops, system info). However, some overlap exists between diagnostic tools like check_high_load and get_cpu_info/get_memory_info, and between execute_command and execute_script, which could cause agents to select the wrong tool in ambiguous situations.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., read_file, list_processes, get_system_overview, manage_service). Even less conventional names like tail_log and grep_file are still recognizable and fit the pattern.

    Tool Count2/5

    With 34 tools, this server significantly exceeds the recommended range for a typical MCP server. While the domain is broad, many tools could be consolidated (e.g., get_cpu_info, get_memory_info, get_disk_info could be subsumed into get_system_overview), and the high count introduces unnecessary complexity for agents.

    Completeness5/5

    The tool set provides comprehensive coverage of SSH operations: connection management, file transfer and editing, process control, system monitoring, log inspection, service management, and diagnostics. No obvious dead ends or missing CRUD operations exist for the stated purpose.

  • Average 4/5 across 34 of 34 tools scored. Lowest: 3.4/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is failing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

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

    No annotations are provided, so the description carries the burden. It discloses the method (SMART data and filesystem errors) and return type (status and errors), but omits details like possible side effects, permissions, or failure behavior. Adequate but not rich.

    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?

    Text is concise and structurally clear with separate Args and Returns blocks. Every sentence adds value, but it is slightly terse and could include a brief example of usage.

    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 simple tool with one optional parameter and an output schema, the description covers the core purpose, parameter, and return value. It does not explain edge cases like unreachable hosts, but this is acceptable given the low complexity.

    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%, but the description's Args section fully explains the only parameter (host_name) including its default behavior. This compensates for the schema gap, though it lacks details on format or examples.

    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?

    Description uses a specific verb 'Check' with resource 'disk health' and elaborates the method ('using SMART data and filesystem errors'). It is clear and distinct from similarly named siblings like get_disk_info, though it does not explicitly name alternatives.

    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?

    Provides no guidance on when to use this tool versus alternatives. No mention of conflict with get_disk_info or other check tools, nor prerequisites like SSH configuration.

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

  • Behavior2/5

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

    No annotations are provided, so the description must carry the burden. It explains arguments and return value but does not disclose whether the file is created if missing, permission requirements, or side effects. It only says 'Returns: Success message or error details' which is minimal.

    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?

    Description is concise and structured with Args and Returns sections. It is not overly verbose, but the Args/Returns formatting adds a few lines; still efficient.

    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 append tool, the description provides core information. However, it omits important edge cases such as file creation behavior, permission requirements, and error conditions beyond generic error details. This is adequate but has clear gaps.

    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?

    Schema has no property descriptions, so the description fully compensates. It explicitly defines path, content, and host_name, including the host_name default behavior. This adds 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?

    Description clearly states 'Append content to a remote file' with a specific verb and resource. This distinguishes it from sibling tools like write_file and read_file, which have different operations.

    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 on when to use this tool versus alternatives. It does not mention that append is for adding to existing files or that write_file overwrites. The implied usage is not explicitly stated.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the burden of behavioral disclosure. It mentions the host_name parameter comes from 'SSH_HOSTS config' implying SSH-based remote execution, and states the return includes 'top resource consumers and system load details.' It does not disclose read-only status, potential side effects, or performance implications, but for a diagnostic read-only tool this is minimally adequate.

    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 very concise and well-structured in two short sections: a one-sentence purpose statement and a minimal Args/Returns overview. Every sentence adds value; there is no fluff or repetition.

    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?

    This is a simple one-parameter diagnostic tool with an output schema present. The description covers the parameter and gives a high-level summary of the return ('Top resource consumers and system load details'). It does not explain output format, but the existence of an output schema relieves the description of that burden. It could mention the SSH connection context more explicitly, but the parenthetical reference to SSH_HOSTS is sufficient.

    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 provides a nullable string with a default of null, but no description. The tool's description compensates by explaining the parameter's meaning: 'Named host from SSH_HOSTS config; uses default host if omitted.' This adds clear semantic value beyond the schema for the single parameter.

    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 function: 'Diagnose high CPU/memory load and identify resource hogs.' This is a specific verb ('diagnose') and resource ('high CPU/memory load') that distinguishes it from sibling tools like get_cpu_info or list_processes, though it does not explicitly name any alternative.

    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 usage context is implied by the phrase 'Diagnose high CPU/memory load' – it should be used when load is suspected. However, there is no explicit guidance on when to use this tool instead of related tools (e.g., get_system_overview, list_processes) or any exclusions.

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

  • Behavior2/5

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

    There are no annotations, so the description must disclose side effects. It mentions host_name behavior and return contents, but does not state that the operation is read-only or that it may open network connections to remote hosts, which are relevant behavioral traits.

    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 structured with Args and Returns, front-loaded with the purpose, and includes only essential details. It is moderately sized and each sentence adds 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 output schema, return values are sufficiently summarized. The tool is simple, and the description covers the key parameters and return behavior, but lacks any safety or error semantics.

    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 has no parameter descriptions (0% coverage), but the description provides meaningful semantics: examples for service names and explanation that host_name defaults to host config. This compensates for schema gaps.

    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?

    Description explicitly states 'Check the status of a systemd service', a specific verb and resource. It clearly differentiates from sibling tools like check_disk_health or manage_service by focusing solely on status retrieval.

    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?

    No explicit guidance on when to use vs alternatives, but the mention of systemd service status implies a clear use case. It does not mention when not to use or point to alternatives such as manage_service.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It states the action and return value but does not mention potential side effects, such as disrupting running commands or affecting other users' sessions, nor does it note irreversibility.

    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, consisting of two short sentences. It front-loads the core purpose and avoids any redundant information, making it efficient for an agent to parse.

    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 zero-parameter operation, the description is mostly adequate, but it lacks context about the scope of 'all connections' (e.g., current user vs. system-wide) and the disruptive nature of closing all sessions. Given no annotations, additional caveats would improve 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 zero parameters and the schema's properties are empty, so schema coverage is 100%. With 0 params, the baseline is 4; the description does not need to add parameter details.

    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 action ('Close all active SSH connections') with a specific verb and resource. The inclusion of 'all' effectively distinguishes it from the sibling tool close_connection, which presumably closes a single connection.

    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?

    No explicit guidance is given on when to use this tool versus alternatives like close_connection. However, the scope ('all active SSH connections') implies a batch operation, and the context is implied rather than stated.

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

  • 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 states what the tool retrieves (disk usage and I/O stats) and the output format, but it does not disclose potential behaviors such as requiring an active SSH connection, error conditions, or performance impact. The read-only nature is implied by 'Get' but not explicitly stated.

    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 concise and front-loaded with the main purpose. The Args and Returns sections are clearly structured. Minor redundancy exists between the first sentence and the Returns line, but overall it is efficient and scannable.

    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 (one optional parameter) and the presence of an output schema, the description covers the essentials: what it does, the parameter, and the return value. However, it lacks usage guidance and deeper behavioral context, making it incomplete for an agent that needs to decide between this and similar disk-related tools.

    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?

    Schema coverage is 0%, so the description must and does compensate. It explains host_name as 'Named host from SSH_HOSTS config; uses default host if omitted', adding meaningful context beyond the schema's simple string/null type. It clarifies the source of valid values and the default behavior.

    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 a specific action ('Get disk usage and I/O statistics') on a specific resource (disk). This distinguishes it from sibling tools like check_disk_health (focused on health) and get_system_overview (system-wide).

    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 explicit guidance on when to use this tool versus alternatives. It only explains the optional host_name parameter, but does not mention contexts, prerequisites, or exclusions relative to sibling tools like check_disk_health or get_system_overview.

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

  • Behavior3/5

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

    With no annotations, the description must carry the behavioral disclosure burden. It discloses the return type and default host behavior, giving some transparency. However, it does not explicitly state that this is a read-only operation, whether it requires an active SSH connection, or any error conditions. It adds a bit of context about host_name but omits broader behavioral traits.

    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 very concise and front-loaded with the main purpose. The Args and Returns sections are clearly structured and contain no filler. Every sentence adds value, making it an efficient and well-organized 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 (one optional parameter), the description covers the purpose and the parameter adequately. An output schema exists, so detailed return structures are not required. It lacks usage guidelines and deeper behavioral notes, but for this simple tool, it is sufficiently complete.

    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 only parameter, host_name, is fully explained in the description: 'Named host from SSH_HOSTS config; uses default host if omitted.' This adds significant meaning beyond the schema, which only declares the field type and default null. The description fully compensates for the 0% schema description coverage.

    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 function with a specific verb ('Get') and resource ('network interface status, connections, and statistics'), and lists return items (interfaces, connections, routing table). It does not explicitly distinguish from sibling tools like check_network_connectivity or get_open_ports, but the resource scope is distinct enough.

    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 does not mention any exclusions, prerequisites, or suggest sibling tools for different scenarios. The only contextual hint is the optional host_name parameter, but no usage scenarios are described.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries full burden for behavioral disclosure. It adds return format ('Matching lines with file names and line numbers') and default behaviors (recursive=false, ignore_case=true, context_lines=2). However, it does not explicitly state that the operation is read-only or non-destructive, nor does it mention limitations like binary file handling or permission requirements. The word 'search' implies safety, but more explicit disclosure would be better.

    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 well-structured docstring with a one-line summary, an Args section, and a Returns section. Each parameter description is concise and informative, with no unnecessary fluff. The format is easy to scan and the summary is front-loaded. All information earns its place.

    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 tool with 6 parameters, no annotations, and no structured output schema, the description is largely complete: it covers all parameters and states the return format. It lacks guidance on when to use the tool and does not mention error handling or edge cases, but given the simplicity of a grep-like operation, it is sufficiently comprehensive. A 4 reflects the minor gaps.

    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, but the description fully compensates by explaining each parameter: 'path: File path or directory to search', 'pattern: Text or regex pattern', 'recursive: Search recursively', 'ignore_case: Case-insensitive', 'context_lines: Lines of context', and 'host_name: Named host from SSH_HOSTS config; uses default host if omitted'. This adds significant meaning beyond the schema's bare titles and defaults, so a 5 is warranted.

    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 'Search for a text pattern in remote files' which is a specific verb and resource. It does not explicitly distinguish from the sibling tool 'search_files' (which likely searches file names), but the verb 'search' plus 'text pattern' implies content search. This meets 'clear' but lacks sibling differentiation, so 4 is appropriate.

    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 search_files, read_file, or tail_log. It only documents parameters and return values, not strategic context or exclusion criteria. There is no mention of specific use cases or when not to use it, so this is a clear gap.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full responsibility for disclosing behavioral traits. It mentions that output includes stdout and stderr, and that on error they are combined. However, it fails to disclose that executing arbitrary shell commands may have side effects, require permissions, or be irreversible. This is a significant gap for a potentially destructive tool.

    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 concise and well-structured, starting with a clear verb sentence, followed by a brief explanation, then an Args section, and finally a Returns section. Every sentence adds value, and the format is easy to parse.

    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 covers the core functionality and parameters, and the presence of an output schema reduces the need to detail return values. However, it omits important context such as whether an SSH connection must be established first, how the host is selected, or warnings about potential destructive consequences. Given the tool's power, this leaves the description incomplete for an agent deciding whether and how to invoke it.

    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 schema properties lack descriptions (0% coverage), but the description compensates fully with an 'Args' section that explains each parameter: command (with examples), timeout (max seconds, default 60), and host_name (named host from config). This provides complete, useful semantics beyond the 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's function: 'Execute a shell command on the remote SSH server' and 'Runs any shell command and returns stdout + stderr.' This is specific and unambiguous. However, it does not explicitly differentiate from sibling tools like execute_script, though the 'any shell command' wording implies a distinction from script-based execution.

    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 usage context: 'Suitable for one-off commands, diagnostics, log tailing, service control, etc.' This helps the agent understand when to use it. It does not explicitly state exclusions or mention alternative tools, but the context is sufficient to infer appropriate use cases.

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

  • Behavior3/5

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

    There are no annotations, so the description must carry the safety burden. The verb 'Get' implies a read-only operation, and the description adds useful details about the return content (per-core usage, top processes) and host connection via SSH_HOSTS config. However, it does not explicitly state that it is non-destructive or disclose any side effects, leaving some ambiguity.

    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 concise and well-structured: a one-line summary followed by a bulleted list of returns and an Args section. Every sentence contributes meaning, with no fluff or redundancy beyond a minor repetition of 'returns' in the Returns header.

    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 simple one-parameter read tool, the description covers purpose, returns, and the host parameter. The existing output schema likely documents the return structure in detail. The main gap is the absence of usage exclusions or error-handling information, but this is not critical given the tool's simplicity.

    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 provides only a title and default for host_name with no description (0% coverage). The description compensates by explaining that host_name is a 'Named host from SSH_HOSTS config' and that it 'uses default host if omitted,' giving the agent an understanding of how to populate 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 opens with a specific verb and resource: 'Get detailed CPU usage and statistics.' It further enumerates concrete outputs (current CPU load, per-core usage, top CPU-consuming processes), making it clearly distinct from sibling tools like get_memory_info or get_disk_info.

    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 such as check_high_load or get_system_overview. The only context is the host parameter, but there are no exclusions, prerequisites, or comparisons to siblings.

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

  • Behavior3/5

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

    With no annotations, the description carries the transparency burden and does offer meaningful behavior details: TERM is graceful, KILL is force, HUP is reload, and host_name falls back to a configured default. However, it does not warn about the destructive nature of KILL, permission requirements, or what the returned result actually contains.

    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 compact and well-structured with Args and Returns sections. There is no filler content, though a few line breaks and the 'Args:' scaffold add minor structural noise.

    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?

    The description covers the tool's purpose, all parameters, and the return value. Given the moderate complexity and presence of an output schema, this is sufficient, though explicit use-case guidance and safety warnings would push it higher.

    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 Args section fully explains all three parameters, including the meaning of pid, the signal values with defaults, and the host_name source from SSH_HOSTS with default-host fallback. This fully compensates for the 0% schema description coverage.

    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 opens with a clear verb and object: 'Send a signal to a process by PID.' This is specific and distinguishes the tool from sibling process tools like list_processes and find_process, which do not send signals.

    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 explicit guidance on when to use kill_process versus alternatives such as manage_service or execute_command. It explains signal semantics and host defaults but does not state when-not-to-use or mention alternative tools.

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

  • Behavior3/5

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

    The description carries the full burden due to lacking annotations. It does disclose useful behavioral context, such as returning directory listing with permissions, size, and modification time, and the host_name default behavior. However, it omits details like whether listing is recursive, includes hidden files, or how errors are handled, so transparency is moderate.

    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 concise and well-structured, with a clear one-line summary followed by Args and Returns sections. Every sentence adds value—no fluff or repetition. It is front-loaded with the core purpose.

    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 simple list tool with no required parameters and an output schema (though not shown), the description adequately covers the return format and parameter usage. It doesn't discuss edge cases or error behavior, but for this low-complexity tool, the provided context is sufficient.

    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 schema description coverage at 0%, the description compensates well. It clarifies that 'path' defaults to '/' and that 'host_name' refers to a named host from SSH_HOSTS config, falling back to the default host when omitted. This adds meaningful context beyond the bare schema definitions.

    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 specific verb+resource: 'List files and directories at a remote path.' This unambiguously distinguishes it from siblings like read_file, search_files, and list_processes, which perform different actions.

    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 explicit when-to-use or when-not-to-use guidance is provided. The description simply states what the tool does and explains its parameters. There is no mention of alternatives or conditions that would make this tool the right choice versus a sibling, leaving the agent to infer usage from the name alone.

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

  • 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 states that the tool performs a ping/reach test and returns ping results and DNS resolution status, which implies a read-only diagnostic operation. However, it does not explicitly state safety (no system modifications), required credentials, or rate-limit considerations. The return value description is helpful but not exhaustive.

    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 compact and well-structured: a one-sentence purpose, followed by an Args section that documents both parameters, and a Returns section. No fluff or redundant content.

    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 simplicity (2 optional params), the description covers the essentials, but it leaves ambiguity around when to use this tool versus siblings (e.g., test_connection), and the lack of annotations means the agent doesn't know if the operation is side-effect-free. A bit more context about typical use cases would make it 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 schema only provides type and default for each parameter (0% coverage), so the description must compensate. It does: 'target' is explained as 'IP or hostname to ping/reach', with default shown; 'host_name' is explained as 'Named host from SSH_HOSTS config'. This adds functional 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 opens with a clear, specific action: 'Test outbound network connectivity from the remote server.' This distinguishes it from sibling tools like get_network_info (likely about local network config) and test_connection (likely about SSH connectivity). The scope is explicit (outbound, remote server).

    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 does not explicitly reference alternatives or state when-not-to-use. It implies usage context via 'from the remote server' but leaves the agent to infer that it is for outbound reachability checks. No exclusion guidance is present.

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

  • Behavior3/5

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

    With no annotations, the burden falls on the description. It discloses the return contents (free, used, cached, swap) and the behavior that a default host is used when omitted. However, it does not explicitly state side-effect-free nature or remote connection implications, leaving some ambiguity.

    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 brief and front-loaded with the main action. It includes only necessary details about the parameter and return value, with no wasted words.

    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 simple read-only memory tool with an output schema, the description adequately covers the single parameter and return contents. It does not mention error handling or edge cases, but given tool simplicity and sibling context, it is sufficiently complete.

    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 schema provides only type/default for host_name with 0% schema description coverage. The description compensates fully by explaining that host_name references a named host from SSH_HOSTS config and that omitting it uses the default host, adding significant meaning.

    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 'Get memory and swap usage details' with a specific verb and resource. It distinguishes itself from sibling tools like get_cpu_info, get_disk_info, and get_network_info by focusing on memory/swap specifics.

    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. The description only explains the host_name parameter (default host if omitted) but does not mention tool selection criteria, prerequisites, or exclusions.

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

  • Behavior3/5

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

    The description adds useful context beyond the name: it specifies the log sources (journald or /var/log/syslog), the config-based host selection (SSH_HOSTS), and the optional unit filter. However, it does not disclose behavior such as error handling, whether it requires an existing SSH connection, or how 'or' between journald and syslog is resolved. With no annotations, this leaves 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 a compact four-sentence docstring with an Args/Returns structure. No filler words; each sentence adds 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?

    For a retrieval tool with optional parameters and an output schema, this description is largely sufficient. It covers source, parameters, and return type. However, it omits prerequisites (e.g., whether a connection must be open) and error behavior, which slightly reduces its completeness.

    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?

    Schema coverage is 0%, so the description carries full responsibility. It explains all three parameters: lines (count, default 100), unit (service name filter), and host_name (SSH_HOSTS named host, default fallback). This exceeds what the schema provides.

    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 opens with a clear verb ('Retrieve') and specific resources ('system logs from journald or /var/log/syslog'). This distinguishes it from siblings like tail_log and analyze_log_errors, which have different scopes.

    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 choose this tool over tail_log, analyze_log_errors, or get_system_overview. The description focuses only on mechanics and does not state use cases or exclusions.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the burden. It discloses the return format (protocol, port number, process name) and explains the host_name parameter. However, it does not explicitly state that the operation is read-only, nor does it address error conditions or permission requirements. For a simple list operation, this is adequate but not fully transparent.

    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 exceptionally concise, with a single clear sentence followed by structured Args and Returns sections. Every piece of information earns its place, and the structure makes it easy to parse.

    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 simple tool with one optional parameter and an output schema, the description covers the purpose, parameter semantics, and return values. It lacks explicit alternative guidance, but this is a minor gap given the tool's simplicity and the clarity of its function.

    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 zero description coverage for the host_name parameter, but the description compensates by explaining it: 'Named host from SSH_HOSTS config; uses default host if omitted.' This adds meaningful context beyond the schema's minimal type/title 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 function: 'List all open listening ports and their associated processes.' This is a specific verb ('List') and resource ('open listening ports') with a clear scope, distinguishing it from siblings like list_processes or check_network_connectivity.

    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?

    While the description implies its use case (listing open ports), it does not explicitly state when to use it versus alternatives or provide exclusions. No alternatives are mentioned, so guidance is implied rather than stated.

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

  • Behavior3/5

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

    With no annotations, the description carries the burden of disclosing behavior. It mentions the data source (SSH_HOSTS_JSON) and that the return is a table of host names and connection details, which is useful. However, it does not explicitly state that the operation is read-only, whether it may reveal sensitive connection details, or if any prerequisites exist, leaving gaps in behavioral disclosure.

    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 and well-structured: a single opening sentence stating the purpose, followed by a short 'Returns' section. Every sentence earns its place; no waste, and the main action is front-loaded.

    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 simple zero-parameter tool with an output schema (not shown but indicated as present), the description is adequately complete. It states what the tool does and what it returns, which is sufficient for an agent to select and invoke it. The lack of explicit read-only or permission details is a minor gap given the inherently read-only nature of listing.

    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?

    There are zero parameters, so per the rubric the baseline is 4. The description adds context about what the tool does (lists configured hosts) but there are no parameter semantics to elaborate on, as the input schema is empty.

    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 lists all SSH hosts configured in SSH_HOSTS_JSON, using a specific verb and resource. It distinguishes from sibling tools like test_connection or execute_command by focusing on configuration listing, not connecting or executing.

    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 this is for viewing configured hosts before connecting, but it does not explicitly state when to use it or contrast it with alternatives. No exclusions or alternative tool references are provided; usage context is only implied by the tool name and sibling list.

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

  • Behavior3/5

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

    With no annotations, the description must disclose behavior. It states the operation is a test and mentions return values, but does not clarify whether a persistent connection is established, side effects, or error behavior. It gives some transparency but not full disclosure.

    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 concise, with two short sentences plus structured Args/Returns sections. It front-loads the primary purpose and every sentence contributes value, with no redundant 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?

    For a simple tool with one optional parameter and an output schema, the description covers the purpose, parameter meaning, and return values. It does not mention prerequisites like needing SSH_HOSTS configured or error handling, but the core is adequately 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?

    Schema description coverage is 0%, but the description compensates by explaining host_name as 'Named host from SSH_HOSTS config; uses default host if omitted.' This adds practical meaning beyond the bare string/null type in the 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 tool's action ('Test SSH connectivity') and resource ('to the target host'), distinct from sibling tools like check_network_connectivity by specifying SSH. It also notes the return of server identity, adding 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?

    Usage is implied through 'Test SSH connectivity' and 'Verifies the connection is alive', but there is no explicit guidance on when to prefer this over alternatives like list_configured_hosts or close_connection. No exclusions or prerequisites are mentioned.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden. It notes the tool searches for specific keywords and returns a summary with counts and examples, and mentions default host behavior. However, it does not disclose prerequisites such as needing an active SSH connection or failure modes for missing files.

    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 well-structured with a one-sentence summary followed by concise Args and Returns sections. Every sentence serves a purpose, and it avoids redundant detail.

    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?

    The tool is moderately complex (remote file analysis, 2 parameters), and the description, combined with the output schema, covers the essential invocation details. It lacks explicit usage guidance, but the purpose is clear enough for an agent to select and call 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?

    Schema description coverage is 0%, but the description thoroughly explains both parameters: 'path' is an absolute path to the log file, and 'host_name' is a named host from SSH_HOSTS config with a default if omitted. This adds clear meaning beyond the 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 a specific verb and resource: 'Analyze a log file for error patterns and summarize findings.' It lists search keywords (ERROR, WARN, CRITICAL, Exception) which defines the scope and distinguishes it from sibling tools like grep_file or tail_log.

    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 the tool is for log error analysis and summarization, but it gives no explicit when-to-use vs alternatives. Sibling tools like tail_log and grep_file are not mentioned, and there are no exclusions or alternative recommendations.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the transparency burden. It discloses the return value (matching processes with PIDs and details) and the host_name fallback behavior. However, it does not mention potential side effects (e.g., read-only nature is implied but not explicit) or details like case sensitivity or regex support.

    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 concise and well-structured with clear Args and Returns sections. Every sentence adds value and there is no redundant wording.

    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 low complexity, an output schema exists, and the description covers both parameters and return values. It is complete for a search tool, though it could be enhanced by explicitly contrasting with list_processes for added contextual guidance.

    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?

    Schema description coverage is 0%, but the description fully explains both parameters. It clarifies that 'name' is a search keyword ('e.g., "nginx", "python"') and that 'host_name' is a named host from SSH_HOSTS config with default host if omitted. 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 uses a specific verb and resource ('Search for processes by name or keyword') and clearly distinguishes it from the sibling list_processes tool, which lists all processes. It also gives concrete examples like 'nginx' and 'python'.

    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 finding a process by name or keyword and mentions host_name behavior (default host when omitted), but it does not explicitly state when to use this tool instead of list_processes or other alternatives. No exclusion criteria or alternative tools are mentioned.

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

  • 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 discloses the mutating nature (start/stop/etc.) and remote host behavior, but does not mention permissions, side effects, reversibility, or failure handling. This is a significant transparency gap for a mutation tool.

    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 well-structured with a title-like first sentence, a concise Args block, and a Returns line. Each sentence contributes meaningful information without 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?

    The description covers the tool's purpose, parameters, and return value, and the presence of an output schema reduces the need to detail return semantics. However, it lacks operational side effects and permission requirements, leaving it slightly incomplete for a mutating tool.

    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 schema has 0% description coverage, but the description's Args section thoroughly explains each parameter: service with examples, action with valid values, and host_name with its default behavior. This compensates 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 first sentence clearly states the tool's function: 'Start, stop, restart, or reload a systemd service.' This is a specific verb+resource that distinguishes it from siblings like check_service_status. The Args section further clarifies enable/disable actions.

    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 through the actions and host_name parameter, but does not explicitly mention alternatives or when not to use this tool. It could benefit from noting that check_service_status is for status checks, but the clear scope is sufficient.

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

  • 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 explains the return format and parameter defaults but does not mention error handling (e.g., missing file, permissions) or any side effects. It provides basic transparency but lacks depth on failure modes.

    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 well-structured with clear Args and Returns sections. Every sentence provides useful information without redundancy, and the formatting makes it easy to scan quickly.

    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 simple file-reading tool with 3 parameters and an output schema, the description is nearly complete. It covers parameters, return value, and the optionality of host_name. It lacks edge-case behavior (e.g., file not found) but is otherwise sufficient for an agent to invoke 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?

    The Args section explains each parameter with examples and defaults, fully compensating for the 0% schema coverage. It clarifies that host_name is optional and defaults to the configured host, and that max_lines=0 means unlimited, adding meaning beyond the schema's raw type definitions.

    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 reads the content of a remote file, using the specific verb 'read' with a clear resource. It distinguishes itself from sibling tools like write_file, delete_file, and tail_log by focusing on full file content reading, including an absolute path requirement.

    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 reading a remote file's content but does not explicitly state when to prefer this over alternatives like tail_log or grep_file. It lacks clear exclusions or alternative guidance, so the usage context is only inferred from the tool's purpose and parameters.

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

  • 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 that search is remote (via host_name from SSH_HOSTS config) and returns a list of paths, but it does not explicitly state whether the operation is read-only, whether it recurses into subdirectories, or error behavior. While 'directory tree' implies recursion, explicit disclosure of non-destructive behavior would strengthen 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 efficiently structured: a one-sentence purpose, a bullet-style Args section, and a Returns line. Every sentence provides useful information with zero filler, making it easy to parse quickly.

    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 tool with four parameters and an output schema, the description covers all parameters and the return type, which is sufficient. It does not explicitly mention search semantics like case sensitivity or recursion depth, but the phrase 'directory tree' implies recursion, and the output schema exists to document return details. Overall, it is complete enough for the agent's needs.

    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?

    Schema description coverage is 0%, but the description compensates by documenting all four parameters with concrete examples ('*.log', 'nginx.conf'), allowed values ('file', 'dir', 'any'), and host configuration details. This adds meaningful semantics beyond the raw schema types and defaults.

    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 function: 'Search for files by name pattern in a remote directory tree.' This is specific and distinguishes it from siblings like grep_file (content search) and list_directory (directory listing). The use of the verb 'search' and resource 'files' makes 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 Guidelines3/5

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

    The description implies usage for finding files by name pattern (e.g., '*.log') but does not explicitly contrast with alternatives or state when not to use it. No mention of grep_file for content search or list_directory for directory browsing, so the agent has no explicit guidance on tool selection beyond the obvious purpose.

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

  • 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 does add useful context: local_path is relative to the MCP server, host_name defaults from SSH_HOSTS config, and the return includes file size or error. However, it fails to disclose critical mutation behaviors such as overwrite semantics, directory creation, permission requirements, or failure handling for missing local files. This is a significant gap for a file-transfer tool.

    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 concise and well-structured: a one-sentence summary, a bulleted Args section, and a Returns line. Every part is informative, with no filler or redundancy. The format is easy to scan and front-loads the core purpose.

    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?

    The description covers the essential information for invocation: what the tool does, all parameters with detailed semantics, and the return format. It also provides useful context about the execution environment and host configuration. The main gap is missing behavioral details like overwrite behavior, but for a simple upload tool, the provided information is sufficient for an agent to select and invoke it correctly. An output schema exists, so return values are further documented.

    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?

    Schema description coverage is 0%, so the description must compensate. It fully compensates with an Args block that explains each parameter in detail: local_path is an absolute path on the MCP server, remote_path is a destination absolute path, and host_name is a named host from SSH_HOSTS config with a default. This adds meaning beyond the bare schema and even clarifies ambiguous aspects like 'absolute' and the default host behavior.

    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 states a specific verb and resource: 'Upload a local file to the remote server via SFTP.' This clearly distinguishes the tool from siblings like download_file (remote to local) and write_file (writing content directly to a remote file). The direction (local->remote) and protocol (SFTP) are explicit, 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 for when to use the tool: when you need to transfer a local file to a remote server. It does not explicitly mention alternatives or exclusions, but the purpose is specific enough that the intended use case is clear. The description also notes host_name behavior, which aids correct selection. Lacks explicit 'when not to use' guidance, so not a 5.

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

  • Behavior3/5

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

    The description discloses what is checked and mentions it returns a 'Security audit report.' However, with no annotations, it does not explicitly state that the tool is read-only, whether it requires elevated permissions, or the impact on the remote host. The listed checks imply a passive audit, but this is not stated.

    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 well-structured with a summary, a bullet list of checks, an args section, and a returns section. It is concise, every sentence adds value, and the formatting makes it easy to scan.

    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 tool with one optional parameter and an output schema (per context), the description sufficiently explains the operation and parameter. The return value is vaguely described as 'Security audit report,' but given the output schema exists, the description does not need to detail the 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 input schema only provides type and default for host_name, with no description. The tool description compensates by explaining it as 'Named host from SSH_HOSTS config; uses default host if omitted.' This adds meaningful semantic context beyond the 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 'Run a basic security audit of the remote server' and enumerates specific checks (failed login attempts, listening ports, SUID files, world-writable directories, recent auth log entries). This makes the tool's purpose specific and distinguishes it from sibling tools like check_disk_health or check_network_connectivity.

    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 establishes a clear usage context: it is a basic security audit covering specific areas. It does not explicitly name alternatives or provide when-not-to-use guidance, but the scope is sufficiently clear for an agent to select this tool over general health or performance checks.

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

  • Behavior3/5

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

    With no annotations, the description must carry the behavioral transparency burden. It discloses useful behaviors like the optional host_name defaulting to the configured host and the requirement for an absolute path. However, it does not explicitly state that the operation is read-only or describe error behaviors such as missing files or inaccessible paths.

    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 compact and well-structured with clear 'Args' and 'Returns' sections. Every sentence adds value, and the key information is front-loaded in the first sentence.

    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 simple two-parameter tool and the presence of an output schema, the description is complete. It concisely covers the purpose, parameter semantics, and return value highlights, leaving no critical gaps for an agent to select and invoke 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?

    The input schema provides only titles with no descriptions (0% schema coverage), so the description fully compensates by explaining both parameters. It clarifies that 'path' must be an absolute remote path and that 'host_name' comes from SSH_HOSTS config and defaults when omitted, adding meaning beyond the 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 uses a specific verb 'Get' plus the resource 'detailed metadata of a remote file or directory,' making the tool's function immediately clear. It distinguishes itself from sibling tools like read_file and list_directory by focusing on metadata rather than content or directory entries.

    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 purpose clearly implies when to use the tool (whenever metadata is needed), but it does not explicitly mention alternatives or when not to use it. No comparison with sibling tools is provided, leaving the agent to infer the use case from the description alone.

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

  • Behavior3/5

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

    With no annotations, the description must convey behavioral traits. It discloses that it collects read-only system information and returns a formatted report, which implies no side effects. However, it does not explicitly state it is non-destructive or note any permissions/connection behaviors, so it is adequate but not rich.

    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 compact and well-structured: a clear opening sentence, a concise list of collected metrics, a usage note, and a clear Args/Returns format. Every line adds value and there is no padding 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 tool with one optional parameter and an output schema, the description covers all essential aspects: purpose, scope, parameter semantics, and return value. It does not mention potential failures or limitations, but these are not critical for such a straightforward read-only overview within a rich sibling context.

    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 zero description coverage, but the description fully explains host_name: it comes from SSH_HOSTS config and defaults to the default host if omitted. This adds meaningful semantic context beyond the schema's raw type definition, earning a strong score.

    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 states a specific verb ('Get') and resource ('comprehensive system overview') and lists the exact data collected (hostname, OS release, etc.), distinguishing it from sibling tools like get_cpu_info or get_memory_info by explicitly positioning it as a holistic overview.

    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 phrase 'Best starting point for system analysis' clearly suggests when to use this tool, implying that for deeper specifics, one would turn to more specialized sibling tools. It gives a clear context but does not explicitly name alternatives or exclusions, so one point is deducted.

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

  • Behavior3/5

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

    With no annotations, the description carries the full transparency burden. It mentions the SFTP protocol and return format, but does not disclose potential overwrite behavior, directory creation, authentication prerequisites, or other side effects. This leaves some ambiguity for a file operation.

    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 well-structured with Args and Returns sections, front-loaded with the core purpose. Every sentence provides necessary information without redundancy or padding.

    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?

    The description covers the tool's purpose, parameters, and return values, making it complete for a straightforward download operation. It does not cover edge cases like overwrite policy or error handling specifics, but these are not critical given the tool's simplicity and the presence of an output schema.

    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 description provides thorough explanations for all three parameters, adding meaning beyond the schema. It clarifies that paths are absolute and that host_name selects from SSH_HOSTS config with a default fallback, which significantly aids correct usage.

    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 downloads a file from remote to local via SFTP, using specific verbs and resources. It is distinct from siblings like upload_file, which performs the reverse 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 the host_name parameter and default behavior, but does not explicitly mention when to use this tool versus alternatives like upload_file. However, the purpose is so specific that usage is implied.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden. It discloses the execution mechanism (uploads via stdin), shell selection, timeout, and returns output or error. However, it does not warn about potentially destructive side effects or permission requirements, only hinting at 'configuration changes.' This is moderately transparent but lacks a safety profile.

    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 well-structured with a brief intro, useful context, an Args breakdown, and a Returns section. Every sentence provides functional value, and the format is easy to scan, making it an ideal length.

    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?

    The description covers all parameters, use cases, and return behavior, and the output schema handles return specifics. It lacks an explicit note on whether an SSH connection must already exist or if it auto-connects, which is relevant given the sibling connection-management tools. Overall, it is quite complete but has a small gap.

    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?

    Schema description coverage is 0%, yet the description includes a detailed 'Args' section explaining every parameter: script, shell, timeout, and host_name, including defaults and examples. This fully compensates for the sparse schema and adds meaning beyond the raw JSON 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 opens with a specific verb and resource: 'Execute a multi-line shell script on the remote SSH server.' It also distinguishes itself from the sibling execute_command by emphasizing multi-line scripts and multi-step automation, making its purpose unmistakable.

    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 states it is 'Useful for multi-step automation, configuration changes, or complex checks,' providing clear context for when to use it. However, it does not explicitly name alternatives or say when not to use it, such as pointing to execute_command for single commands, so it misses a fully explicit guideline.

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

  • Behavior4/5

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

    With no annotations, the description bears the transparency burden. It provides default sorting and limit behavior, explains host_name selection from SSH_HOSTS, and lists the exact return fields (PID, user, CPU%, MEM%, command). It does not mention error behavior or sort order direction, but for a simple listing tool this is reasonably transparent.

    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 concise and well-structured, with a one-sentence purpose, a compact Args section, and a Returns section. Every sentence adds value and there is no fluff or repetition.

    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?

    For a tool with three optional parameters and a provided output schema, the description covers the key behavioral aspects: sorting, limiting, host selection, and return content. It is complete enough for an agent to select and invoke the tool correctly without further clarification.

    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?

    Schema coverage is 0%, and the description fully compensates by explaining all three parameters: sort_by with allowed values and default, limit with default, and host_name with its source and fallback behavior. This is far more helpful than 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 tool lists running processes sorted by resource usage, which is a specific verb+resource combo. It also distinguishes itself from sibling tools like find_process and kill_process by focusing on a general sorted listing rather than searching or terminating.

    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 through its purpose and argument defaults, but it does not explicitly mention when to use this tool versus alternatives like find_process or get_system_overview. It also lacks any exclusionary guidance or prerequisite notes.

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

  • Behavior4/5

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

    No annotations are provided, so the description carries the burden. It discloses the read-only nature via 'Tail' and 'Returns', and clarifies behavior with default lines and host selection, but does not mention potential side effects or permissions (though none are expected).

    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 structured with a clear one-liner summary, Args, and Returns, with no wasted words.

    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?

    For a simple tail tool with an output schema, the description covers all parameters, behavior, and return value; it is self-contained and contextually sufficient.

    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?

    Schema description coverage is 0%, but the description thoroughly documents all three parameters: path with an example, lines with a default, and host_name with a fallback explanation, adding meaning beyond the 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 states a specific verb ('Tail') and resource ('remote log file'), clearly distinguishing it from siblings like read_file or grep_file by focusing on the end of the file.

    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 reading the last N lines of a remote log file, but does not explicitly contrast it with alternatives like read_file or get_system_logs, or state 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.

  • Behavior4/5

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

    With no annotations, the description carries the full burden. It transparently discloses that the tool overwrites existing content, creates parent directories if needed, uses a default host when host_name is omitted, and returns success or error details. This is substantial, though it does not cover permissions or irreversibility beyond the word 'overwrites'.

    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 concise and well-structured: a single front-loaded sentence stating the core purpose, followed by supplemental details in a clear Args/Returns format. Every sentence earns its place without 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?

    The description adequately covers the tool's purpose, parameters, and return value, and it handles host selection. Given the simplicity of the tool and the presence of an output schema, this is nearly complete. Minor omissions like file permissions or encoding edge cases prevent a perfect score.

    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 schema provides only parameter names and types (0% coverage). The description compensates fully with an 'Args' section that explains path must be absolute, content is text, and host_name is a named host from SSH_HOSTS config with default behavior. This adds meaning well beyond the raw 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 tool's function with a specific verb and resource: 'Write content to a remote file (overwrites existing content).' The explicit mention of overwriting distinguishes it from sibling tools like append_file, 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 for when to use the tool—when you want to write or overwrite a file, and it mentions that parent directories are created. However, it does not explicitly state when not to use it or mention alternatives like append_file for preserving existing content.

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

  • Behavior4/5

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

    With no annotations provided, the description must cover behavioral traits. It discloses the notable behavior that the connection auto-reconnects on the next tool call, and clarifies the default host disconnection behavior. It does not reveal potential error conditions, but the core side effects are covered adequately.

    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 concise and well-structured: a one-sentence purpose, a key behavioral note, and labeled Args/Returns sections. Every sentence contributes useful information without redundant elaboration.

    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?

    For a simple one-parameter tool, the description covers purpose, key behavior (auto-reconnect), parameter semantics, and the return type (confirmation message). With an output schema present and simple scope, no further details are necessary for correct invocation.

    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 provides no description for the sole parameter host_name (0% coverage), so the description must compensate. The Args section fully explains the parameter: 'Named host to disconnect; disconnects default host if omitted.' This adds substantial 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 clearly states the tool's specific verb and resource: 'Close the SSH connection to a host.' It distinguishes itself from the sibling 'close_all_connections' by specifying that it targets a single ('a host') connection, with optional host_name for targeting.

    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 explains the context of use by noting that the connection will be re-established automatically on the next tool call, which informs when closing is useful. It also explains the default behavior when host_name is omitted. However, it does not explicitly contrast with alternatives like close_all_connections, missing the 'when not to use' guidance.

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

  • 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 explains the recursive delete behavior with a cautionary note, describes host_name default handling, and mentions return values. It could additionally note irreversibility, but the 'delete' verb and recursive caution cover the core safety 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 efficiently structured with an Args list and a Returns line, using concise bullet-like formatting. Every sentence contributes to understanding the tool's behavior, with no unnecessary verbiage.

    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 simplicity (3 parameters, no annotations, and an output schema), the description fully covers the necessary context: what is deleted, how recursion works, host selection, and the nature of the return value. The output schema covers return format details, so the description need not elaborate further.

    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, so the description must fully compensate. It thoroughly explains each parameter: path as an absolute path, recursive with caution about deleting contents, and host_name with its default behavior. This adds 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 'Delete a file or directory on the remote server', using a specific verb and resource. This clearly distinguishes it from sibling tools like write_file or execute_command, and there is no other delete tool among the siblings.

    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 context is clear: this tool is for deleting files or directories. However, it does not explicitly mention when to prefer this tool over alternatives (e.g., execute_command for complex deletion scenarios) or any exclusions. The purpose is self-evident, so it earns a 4 rather than a 3.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

mcp-ssh MCP server

Copy to your README.md:

Score Badge

mcp-ssh MCP server

Copy to your README.md:

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/zhouxiangjing/mcp-ssh'

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