Skip to main content
Glama
gjenkins20

webmin-mcp-server

by gjenkins20

Webmin MCP Server

License: MIT Python 3.11+ Docker MCP

An MCP (Model Context Protocol) server that provides Claude with tools to manage Linux systems via Webmin's administration interface.

Features

  • Multi-Server Support -- Manage multiple Webmin servers with user-friendly aliases

  • System Monitoring -- System info, memory, disk, network, and process status

  • Service Management -- Start, stop, restart, enable, and disable services

  • User & Group Administration -- Create, modify, and delete system users and groups

  • Scheduled Tasks -- View, create, edit, and delete cron jobs

  • Package Management -- Package info and available updates

  • File Operations -- Read, write, copy, rename, and delete remote files

  • Storage -- SMART disk health monitoring and LVM volume management

  • Security -- Fail2ban jail status and banned IP management

  • Database -- MySQL databases, users, and server status

  • Webmin ACL -- Manage Webmin user accounts and module permissions

  • Disk Quotas -- Monitor and set disk quota limits for users and groups

  • Audit & Backup -- Webmin action logs, SSH config, and configuration backups

  • Safety Framework -- Tiered safety system with safe mode to prevent dangerous operations

Related MCP server: mcp-bridge

Quick Start

  1. Install (choose one):

    From source:

    git clone https://github.com/gjenkins20/webmin-mcp-server.git
    cd webmin-mcp-server
    pip install -e .

    With Docker:

    docker pull gjenkins20/webmin-mcp-server
  2. Configure -- Create a webmin-servers.json (see Configuration):

    {
      "default_server": "my-server",
      "servers": {
        "my-server": {
          "host": "192.168.1.100",
          "port": 10000,
          "username": "admin",
          "password": "your-password",
          "use_https": true,
          "verify_ssl": false,
          "safe_mode": true
        }
      }
    }
  3. Add to Claude Desktop (claude_desktop_config.json):

    From source:

    {
      "mcpServers": {
        "webmin": {
          "command": "python",
          "args": ["-m", "src.server"],
          "cwd": "/path/to/webmin-mcp-server",
          "env": {
            "WEBMIN_CONFIG_FILE": "/path/to/webmin-servers.json"
          }
        }
      }
    }

    With Docker:

    {
      "mcpServers": {
        "webmin": {
          "command": "docker",
          "args": [
            "run", "--rm", "-i",
            "-v", "/path/to/webmin-servers.json:/app/webmin-servers.json:ro",
            "gjenkins20/webmin-mcp-server"
          ]
        }
      }
    }

Requirements

  • Python 3.11+

  • A running Webmin instance (typically on port 10000)

  • Webmin credentials with appropriate permissions

Webmin Server Setup

The MCP server uses Webmin's XML-RPC API. Ensure your Webmin server is configured:

  1. Provision the service account:

    • Webmin 2.650+ (recommended): Create a dedicated RPC/API-only account in Webmin -> Webmin Users. This account type exists specifically for automation like this MCP server -- it blocks browser/module access entirely and is unaffected by the two-factor caveat below.

    • Older Webmin versions: In Webmin -> Webmin Users -> (your user) -> enable "Can accept RPC calls".

    • Two-factor authentication caveat: Webmin 2.640+ rejects RPC Basic-Auth requests for accounts that have 2FA enabled -- the RPC call fails with a generic 401/403. If you enable 2FA on your Webmin users, use a dedicated RPC/API-only account for this MCP server rather than a 2FA-enrolled one.

  2. Install XML::Parser: The Perl XML::Parser module must be installed:

    # Debian/Ubuntu
    sudo apt install libxml-parser-perl
    
    # RHEL/CentOS
    sudo yum install perl-XML-Parser
  3. Module Access: Grant the user access to required modules (System Status, Bootup and Shutdown, Users and Groups, Scheduled Cron Jobs, Network Configuration)

  4. RPC timeout (optional): For tools that read/write large files, Webmin 2.620+ has a config option to raise the default RPC timeout (Webmin Configuration -> Advanced Options). Increase it if you see timeouts on large file operations.

Configuration

Create a webmin-servers.json file to manage multiple Webmin servers. See webmin-servers.example.json for a complete example.

Configuration sources (priority order):

  1. WEBMIN_CONFIG_FILE env var -- path to JSON config file

  2. WEBMIN_SERVERS_JSON env var -- inline JSON string

  3. ./webmin-servers.json -- local file in current directory

  4. ~/.config/webmin-mcp/servers.json -- user config directory

  5. Legacy WEBMIN_* env vars -- single server (creates "default" alias)

Single Server Configuration (Legacy)

For a single server, set environment variables:

export WEBMIN_HOST="your-webmin-server.com"
export WEBMIN_PORT="10000"
export WEBMIN_USERNAME="admin"
export WEBMIN_PASSWORD="your-password"
export WEBMIN_USE_HTTPS="true"
export WEBMIN_VERIFY_SSL="true"  # Set to false for self-signed certs

Or create a .env file (see .env.example).

Using Multiple Servers

With multi-server configuration, all tools accept an optional server parameter:

"Get system info from pi1"           -> Uses pi1 (default)
"Check disk usage on web-server"     -> Uses web-server
"List services on server: nas"       -> Uses nas

Use list_webmin_servers to see all configured servers and their aliases.

Available Tools

All tools accept an optional server parameter to target a specific Webmin server. See the full API reference for detailed parameters and response formats.

Category

Tools

Description

Server

list_webmin_servers, test_server_connection, get_webmin_version

Manage and test server connections

System

get_system_info, get_memory_usage, get_system_time, list_runlevels, list_processes

System monitoring and information

Services

list_services, get_service_status, start_service, stop_service, restart_service, enable_service, disable_service

Service lifecycle management

Users & Groups

list_users, list_groups, create_user, modify_user, delete_user, change_password

User and group administration

Cron

list_cron_jobs, create_cron_job, edit_cron_job, delete_cron_job

Scheduled task management

Network

get_network_info

Interface and routing details

Packages

get_package_info, list_available_updates, get_package_count

Package information and updates

Files

read_file, write_file, delete_file, copy_file, rename_file, create_directory

Remote file operations

Storage

get_disk_usage, list_mounts, list_disks, get_disk_health, list_volume_groups, list_logical_volumes

Disk, mount, SMART, and LVM management

SSH

get_ssh_config

SSH server configuration

Audit

list_webmin_logs, list_backups

Action logs and backups

Security

list_fail2ban_jails, get_fail2ban_status, list_banned_ips

Fail2ban intrusion prevention

Database

list_mysql_databases, list_mysql_users, get_mysql_status

MySQL database management

Webmin ACL

list_webmin_users, get_webmin_user, list_webmin_modules, create_webmin_user, modify_webmin_user, delete_webmin_user

Webmin user and permission management

Disk Quotas

list_quota_filesystems, list_user_quotas, get_user_quota, get_group_quota, set_user_quota

Disk quota monitoring and management

Safety Framework

The server includes a tiered safety system to prevent accidental damage.

Safety Tiers

Tier

Description

Safe Mode

Read

No system changes

Always allowed

Safe

Low-risk changes

Allowed

Moderate

Reversible changes

May block critical services

Dangerous

Destructive operations

Blocked

Safe Mode

Safe mode is enabled by default. When active:

  • Dangerous operations are blocked (user creation/deletion, password changes, cron deletion)

  • Critical services (ssh, webmin, systemd-*, dbus) cannot be stopped

  • File writes/deletes are restricted to /tmp and /var/tmp

  • Critical system users and paths are protected

Configure per-server in webmin-servers.json:

{
  "servers": {
    "production": { "safe_mode": true },
    "development": { "safe_mode": false }
  }
}

Or globally via environment: export WEBMIN_SAFE_MODE=false

Docker

Pull from Docker Hub

docker pull gjenkins20/webmin-mcp-server

Build locally

docker build -t webmin-mcp-server .

Run standalone

# With config file
docker run --rm -i \
  -v /path/to/webmin-servers.json:/app/webmin-servers.json:ro \
  gjenkins20/webmin-mcp-server

# With environment variables
docker run --rm -i \
  -e WEBMIN_HOST=192.168.1.100 \
  -e WEBMIN_USERNAME=admin \
  -e WEBMIN_PASSWORD=your-password \
  gjenkins20/webmin-mcp-server

Tagging strategy

Tag

Description

latest

Latest build from main branch

0.1.0

Specific release version

0.1

Latest patch for minor version

abc1234

Specific commit SHA

Development

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Lint and format
ruff check src tests
ruff format src tests

# Type check
mypy src

See CONTRIBUTING.md for guidelines on contributing to the project.

Project Structure

webmin-mcp-server/
├── src/
│   ├── server.py         # MCP server setup
│   ├── webmin_client.py  # Webmin API client
│   ├── config.py         # Configuration management
│   ├── models.py         # Pydantic models
│   └── tools/            # MCP tool implementations
├── tests/                # Test suite
├── docs/
│   ├── api-reference.md  # Full API documentation
│   └── webmin_api_map.md # Webmin API endpoint mapping
├── .github/workflows/    # CI/CD (Docker build & push)
├── Dockerfile
└── webmin-servers.example.json

License

MIT

Available Tools

61 tools
change_passwordA

Change a user's password. This is a dangerous operation and is blocked in safe mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
usernameYesUsername of the user
new_passwordYesNew password

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the transparency burden. It discloses the operation is dangerous and blocked in safe mode, but lacks details on privilege requirements, irreversibility, or potential side effects. Adequate but minimal.

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?

Two concise sentences, no extraneous words, front-loads the action. Every sentence adds value.

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

Completeness3/5

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

Given no output schema, the description could indicate return behavior or success/failure signals. It only notes the danger, leaving the agent to infer response format. Sufficient for a simple operation but not comprehensive.

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

Parameters3/5

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

The input schema covers 100% of parameters with good descriptions. The tool description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.

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 ('Change') and resource ('a user's password'), clearly distinguishing from sibling tools like create_user or modify_user. The additional note about being dangerous and blocked in safe mode adds clarity.

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 mentions it is blocked in safe mode, providing some context, but does not explicitly guide when to use this tool versus alternatives like modify_user, which might also handle password changes. No when-not-to-use guidance is given.

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

copy_fileB

Copy a file to a new location. In safe mode, destination must be in /tmp or /var/tmp.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
sourceYesAbsolute path to the source file
destinationYesAbsolute path to the destination

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It states the copy action and safe mode restriction, but does not clarify overwrite behavior, permission handling, recursive capability, or return values.

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?

Two sentences with no redundancy. Each sentence adds value: the first defines the action, the second adds a conditional constraint.

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

Completeness2/5

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

Lacks output schema and annotations. The description does not mention return value, error handling, or prerequisites (e.g., source must exist). For a simple copy tool, more details are needed for complete understanding.

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

Parameters3/5

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

Input schema has 100% description coverage, so baseline is 3. The description adds a safe mode constraint on destination, providing some extra context, but does not explain what safe mode is or how it is triggered.

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 'Copy a file to a new location,' providing a specific verb and resource. It distinguishes from sibling tools like rename_file (move vs copy) and read_file/write_file.

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 guidance on when to use this tool versus alternatives (e.g., rename_file, copy vs move). Only a safe mode destination constraint is mentioned, but broader usage context and exclusions are missing.

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

create_cron_jobA

Create a new scheduled cron job. Specify the command to run and the schedule using cron syntax (minutes, hours, days, months, weekdays). Use '' for 'every' (e.g., '/5' for every 5 minutes).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDay of month (1-31, or * for every day)*
userNoUser to run the job asroot
hoursNoHours (0-23, or * for every hour)*
activeNoWhether the job is active
monthsNoMonth (1-12, or * for every month)*
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
commandYesCommand to execute
minutesNoMinutes (0-59, or * for every minute, or */5 for every 5 minutes)*
weekdaysNoDay of week (0-7, 0 and 7 are Sunday, or * for every day)*

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided; description lacks disclosure of behavioral traits such as required permissions, overwrite behavior, or side effects on the system.

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?

Two sentences that are efficient and to the point, with no redundant or verbose language.

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?

No output schema; description does not mention return values or side effects of creating a cron job, leaving some context gaps.

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

Parameters3/5

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

Schema coverage is 100%, so description adds limited value beyond schema. It provides cron syntax examples but does not significantly enhance parameter understanding.

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 'Create a new scheduled cron job' with verb and resource, and distinguishes from siblings like edit_cron_job and delete_cron_job.

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?

Description implies usage for creating new cron jobs but does not explicitly state when to use this tool versus alternatives like edit_cron_job.

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

create_directoryA

Create a new directory. In safe mode, only directories in /tmp or /var/tmp can be created.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoPermission mode (e.g., 755)
pathYesAbsolute path to the directory to create
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It adds the safe mode behavior, which is valuable, but lacks details on failure conditions (e.g., directory already exists), permission requirements, or creation of parent directories.

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

Conciseness5/5

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

The description is two sentences, front-loading the main purpose and then adding a constraint. No redundant words, making it efficient and easy to parse.

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

Completeness2/5

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

With no output schema, the description omits return value details (e.g., success/failure). It also lacks information about edge cases (e.g., parent directory creation, error handling), which are important for a file system mutation tool.

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

Parameters3/5

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

Schema coverage is 100%, and parameter descriptions are present. The description does not add extra meaning beyond the schema's definitions for 'path', 'mode', and 'server'. Baseline 3 is appropriate.

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 ('create a new directory') and specifies a key constraint (safe mode restriction to /tmp and /var/tmp). This distinguishes it from sibling tools that perform file or user operations.

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 includes a safe mode constraint but does not explicitly guide when to use this tool versus alternatives (e.g., copy_file, write_file). There is no mention of prerequisites or typical use cases, leaving some ambiguity.

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

create_userA

Create a new system user. This is a dangerous operation and is blocked in safe mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
gidNoGroup ID (auto-assigned if not specified)
uidNoUser ID (auto-assigned if not specified)
shellNoLogin shell (default: /bin/bash)
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
home_dirNoHome directory (default: /home/username)
passwordYesPassword for the new user
usernameYesUsername (lowercase letters, digits, underscores, hyphens)
real_nameNoFull name or comment

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description discloses the dangerous nature and safe mode restriction, providing useful behavioral context. However, it could detail permissions, side effects, or default behavior.

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

Conciseness4/5

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

Single sentence is concise and front-loaded with the key action. A bit more context about safe mode exclusion would be helpful but not necessary.

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 lack of output schema and annotations, the description provides minimal completeness. It highlights danger but omits return value, prerequisites, and configuration defaults.

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

Parameters3/5

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

Input schema covers all 8 parameters with descriptions (100% coverage). The description adds no extra parameter-level meaning beyond the schema, so baseline 3 is appropriate.

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 it creates a new system user, distinguishing it from siblings like create_webmin_user. The verb+resource combination is specific and 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?

Description warns it is dangerous and blocked in safe mode, but does not explicitly explain when to use this tool versus alternatives like modify_user or create_webmin_user.

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

create_webmin_userA

Create a new Webmin user account. This is a dangerous operation and is blocked in safe mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
modulesNoList of module names to grant access to (e.g., ['useradmin', 'init'])
passwordYesPassword for the new account
usernameYesUsername for the new Webmin account

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It states the operation is dangerous and blocked in safe mode, adding some behavioral context, but does not elaborate on side effects, permissions, or reversibility.

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

Conciseness5/5

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

The description is two sentences with no wasted words, immediately stating the purpose and then the critical danger note.

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

Completeness3/5

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

Given no output schema and moderate complexity (4 params, 2 required), the description covers the core purpose and a key constraint, but lacks details on success/failure behavior or what happens if user exists.

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

Parameters3/5

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

Input schema covers 100% of parameters with descriptions; the description adds no further meaning beyond the schema. Baseline 3 is appropriate.

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 'Create a new Webmin user account' with a specific verb and resource, and distinguishes from sibling tools like modify_webmin_user and delete_webmin_user.

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

Usage Guidelines3/5

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

The description provides a warning ('dangerous operation, blocked in safe mode') but lacks explicit guidance on when to use this vs alternatives like modify_webmin_user, nor does it mention prerequisites or conditions.

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

delete_cron_jobA

Delete a cron job. This is a dangerous operation and is blocked in safe mode. Use list_cron_jobs to find the job index.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYesIndex of the job to delete (from list_cron_jobs)
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses danger and safe mode blocking, but does not mention return values, success/failure behavior, or 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?

Two concise sentences front-load the purpose and key usage guidance, with no unnecessary words. Every sentence is informative.

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

Completeness2/5

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

No output schema provided, and the description does not specify what the tool returns (e.g., success message, errors). For a mutation tool, return behavior is important context missing.

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 coverage is 100%, so parameters are documented. The description adds value by explaining how to obtain the index parameter ('Use list_cron_jobs to find the job index'), enhancing understanding 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 'Delete a cron job' with a specific verb and resource, distinguishing it from sibling tools like create_cron_job and edit_cron_job.

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?

Explicitly warns it is dangerous and blocked in safe mode, and advises using list_cron_jobs first to find the index. Provides clear context, though no explicit alternatives to deletion.

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

delete_fileA

Delete a file or empty directory. This is a dangerous operation. In safe mode, only deletes in /tmp and /var/tmp are allowed. System directories are always protected.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the file or directory to delete
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A4.2/5.0
Behavior4/5

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

Without any annotations, the description effectively discloses the destructive nature, safe mode constraints, and protection of system directories. It does not specify error behavior for non-empty directories or required permissions, but the critical behavioral traits are covered.

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 at three sentences with no redundant information. It front-loads the core action and then adds necessary safety warnings, making it easy for an AI agent 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?

The description covers the tool's purpose and key safety contexts, but does not explain return values (no output schema) or error handling. It is sufficient for a straightforward destructive operation given the schema provides parameter details.

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

Parameters3/5

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

The input schema already provides descriptions for both parameters (server and path) with 100% coverage. The description adds no new semantic meaning beyond restating the tool's purpose, so it does not enhance parameter understanding beyond the schema baseline.

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 deletes a file or empty directory, using a specific verb and resource. It distinguishes itself from sibling tools like read_file, rename_file, and copy_file by indicating a destructive operation, though it does not explicitly differentiate from other deletion tools like delete_user (which target different entities).

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 explicit usage context by warning that the operation is dangerous and specifying safe mode restrictions (only /tmp, /var/tmp) and that system directories are always protected. However, it does not advise when not to use the tool (e.g., for non-empty directories) or mention alternatives, leaving some ambiguity.

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

delete_userA

Delete a system user. This is a dangerous operation and is blocked in safe mode. Critical system users cannot be deleted.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
usernameYesUsername of the user to delete
delete_homeNoWhether to delete the user's home directory

TDQS

A3.7/5.0
Behavior3/5

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

Discloses dangerous nature and safe mode block, but does not detail permissions required, side effects, or irreversibility. Without annotations, more detail is needed.

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?

Two concise sentences with no unnecessary words. Front-loaded with core action and warnings.

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?

Covers danger and restrictions, but omits return value, reversibility, and impact of delete_home parameter. Could be more complete for a destructive operation.

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

Parameters3/5

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

Input schema has 100% coverage, so description adds no extra parameter meaning beyond what schema provides. Baseline 3 is appropriate.

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 the action 'Delete' and specific resource 'system user', distinguishing it from sibling tools like create_user, modify_user, and webmin user tools.

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?

Provides context on when not to use (blocked in safe mode, critical users), but lacks explicit guidance on when to choose this over alternatives like modify_user or disable user.

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

delete_webmin_userA

Delete a Webmin user account. This is a dangerous operation and is blocked in safe mode. The last superuser account cannot be deleted regardless of safe mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
usernameYesWebmin username to delete

TDQS

A4/5.0
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 explicitly warns that the operation is dangerous, blocked in safe mode, and that the last superuser cannot be deleted. These are key behavioral traits beyond the basic delete function.

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

Conciseness5/5

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

Three concise sentences with the main purpose first, followed by critical behavioral warnings. Every sentence adds value 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?

Given the tool's simplicity and clear schema, the description covers the essential behavioral constraints. Although there is no output schema, the description sufficiently informs the agent of critical restrictions.

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

Parameters3/5

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

Schema coverage is 100% and the description adds no additional meaning beyond the schema descriptions. The parameters are already well-described in the schema, so the description meets the baseline.

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 'Delete a Webmin user account', using a specific verb and resource. It distinguishes itself clearly from sibling tools like create_webmin_user or modify_webmin_user.

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 mentions it is dangerous and blocked in safe mode, but does not provide explicit guidance on when to use this tool versus alternatives like disabling a user or modifying the account. Usage context is implied but not fully elaborated.

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

disable_serviceA

Disable a service from starting automatically at system boot. Critical services are blocked to prevent boot failures.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
serviceYesName of the service to disable at boot

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It does not disclose whether the tool stops a running service, requires special permissions, or is reversible. The phrase 'Critical services are blocked' is ambiguous and could mislead about the tool's behavior.

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

Conciseness4/5

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

The description is appropriately short with two sentences, but the second sentence introduces ambiguity. Slightly less concise due to unclear phrasing.

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

Completeness2/5

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

As a system administration tool with no output schema, the description lacks completeness. It does not cover side effects (e.g., immediate vs. boot-time effect), prerequisites, or post-conditions, leaving gaps for safe usage.

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

Parameters3/5

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

Schema coverage is 100% with both parameters described. The description adds no additional meaning beyond the schema, so baseline score of 3 applies.

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 disables automatic startup of a service at boot, which distinguishes it from siblings like stop_service that only stop running services. The verb 'disable' and resource 'service' are specific.

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

Usage Guidelines4/5

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

The description implies usage for preventing services from auto-starting, especially critical ones to avoid boot failures. It provides clear context but does not explicitly mention when not to use or alternative tools like enable_service.

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

edit_cron_jobA

Edit an existing cron job. Use list_cron_jobs to find the job index. Only specify the fields you want to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNew day of month value
userNoNew user to run as
hoursNoNew hours value
indexYesIndex of the job to edit (from list_cron_jobs)
activeNoNew active state
monthsNoNew month value
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
commandNoNew command to execute
minutesNoNew minutes value
weekdaysNoNew day of week value

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. 'Edit' implies modification, and 'Only specify the fields you want to change' suggests partial update. However, lacks details on side effects, error handling, or confirmation. Adequate but minimal.

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?

Two sentences only, front-loaded with purpose then usage hint. No unnecessary words or repetition. Every sentence is justified.

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 10 parameters and no output schema or annotations, the description covers essential usage: edit, prerequisite, partial update. Could mention expected outcome (e.g., confirmation), but overall adequate given 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?

Schema covers all 10 parameters with descriptions (100% coverage). Description adds value by reinforcing partial update semantics ('Only specify the fields you want to change'), which clarifies optional usage beyond the required index.

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?

Clearly states 'Edit an existing cron job' with a specific verb and resource. Mentioning 'Use list_cron_jobs to find the job index' differentiates it from sibling tools like create_cron_job and delete_cron_job.

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?

Provides explicit prerequisite: 'Use list_cron_jobs to find the job index.' Also advises 'Only specify the fields you want to change,' indicating partial update behavior. Does not explicitly state when not to use, but context is clear.

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

enable_serviceA

Enable a service to start automatically at system boot.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
serviceYesName of the service to enable at boot

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description bears full burden. It states the core effect (boot-time enablement) but omits details like permission requirements, impact on running service, or idempotency. Minimal side-effect transparency.

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?

Single sentence, no redundancy. Efficient but overly brief; could include context like 'does not start immediately' without harming conciseness.

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

Completeness3/5

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

Given no output schema and simple parameters, description adequately conveys purpose. However, lacks prerequisites (e.g., root access) and verification steps, leaving gaps for a nuanced system tool.

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

Parameters3/5

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

Schema covers both parameters with descriptions, achieving 100% coverage. Description adds no additional meaning beyond schema. Baseline score of 3 applies as schema suffices.

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 the tool enables a service to start at boot, using specific verb-resource pairing. It distinguishes from siblings like start_service (immediate start) and disable_service (removes boot start).

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. While siblings imply context (e.g., disable_service for removal, start_service for immediate), the description does not provide explicit use conditions or exclusions.

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

get_disk_healthA

Get SMART health status for a specific disk. Returns overall health, temperature, power-on hours, SMART attributes, and any errors or warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceYesDevice path (e.g., '/dev/sda', '/dev/nvme0n1')
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided; the description indicates a read operation ('Get') and lists outputs. It does not disclose permissions, error behavior, or potential side effects, but the 'Get' prefix implies non-destructive.

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?

Two succinct sentences: first states the purpose, second lists key return items. No unnecessary 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?

Given no output schema, the description explains return values. Parameter count small, schema descriptions adequate. The tool is straightforward and the description covers its role.

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

Parameters3/5

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

Schema covers both parameters with descriptions (100% coverage). The description adds no additional meaning beyond 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 clearly states the verb 'Get' and resource 'SMART health status for a specific disk', listing specific return fields (overall health, temperature, etc.). It distinguishes from siblings like get_disk_usage and list_disks.

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 when disk health info is needed ('for a specific disk'), but does not explicitly state when not to use or mention alternatives like get_disk_usage.

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

get_disk_usageA

Get disk usage information for all mounted filesystems. Shows total, used, and free space, plus inode usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.6/5.0
Behavior3/5

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

Description reveals behavior (shows disk usage for all mounts) but lacks details on permissions or impact. With no annotations, minimal further disclosure needed for a read-only 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?

Two concise sentences. Front-loaded with purpose, followed by details. No unnecessary information.

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

Completeness4/5

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

Given no output schema and only one optional parameter, description adequately covers what the tool does. Could mention output format but not essential.

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

Parameters3/5

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

Schema has 100% coverage for the single parameter. Description adds no extra meaning beyond the schema, so baseline score is appropriate.

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?

Clearly states it gets disk usage for all mounted filesystems, listing total, used, free space, and inode usage. Differentiates from siblings like get_disk_health and list_disks.

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. Does not specify prerequisites or situations where it should not be used.

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

get_fail2ban_statusA

Get Fail2ban status for a specific jail or overall. Returns currently banned IPs and ban counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
jailNoJail name for specific status (optional)
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the output (banned IPs and ban counts) but is minimal. No mention of side effects, authentication, or rate limits, which is acceptable for a read 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?

Two sentences: first states purpose, second states output. No redundant information. Front-loaded and 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?

The description does not differentiate from sibling tools list_banned_ips and list_fail2ban_jails, which may confuse an agent. The output description is vague; without an output schema, more detail on the response structure would be helpful.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The tool description does not add further parameter details, but the schema already provides meaning. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'Fail2ban status', and the scope 'for a specific jail or overall'. It distinguishes from sibling tools like list_banned_ips and list_fail2ban_jails by focusing on status including ban counts and IPs.

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 vs alternatives (e.g., list_banned_ips, list_fail2ban_jails). The description implicitly suggests it's for status, but lacks explicit context for choosing.

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

get_group_quotaA

Get quota limits and usage for a specific group on a filesystem.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupYesGroup name to get quota for
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
filesystemYesMount point of the filesystem

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description bears full burden for behavioral disclosure. It only states the action without mentioning side effects, read-only nature, or requirements like group existence. The term 'get' implies read-only, but explicit detail is missing.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose without unnecessary words.

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

Completeness3/5

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

Given no output schema, the description gives a basic idea of returns (quota limits and usage) but lacks details on response format. For a simple query tool among several sibling tools, it is minimally adequate but could be more complete.

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for all parameters. The description adds no extra meaning beyond restating the parameters; it does not explain the format or interpretation of quota limits and 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 verb 'Get', the resource 'quota limits and usage', and the scope 'for a specific group on a filesystem'. It effectively distinguishes from sibling tools like 'get_user_quota' which targets user quotas.

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 retrieving group quotas but does not explicitly mention when to use this tool versus alternatives such as 'get_user_quota' or 'set_user_quota'. No guidance on prerequisites or context is provided.

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

get_memory_usageA

Get memory usage information. Shows total, used, and free memory in KB, MB, and GB, plus buffer and cache usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It adds transparency by describing the metrics and units, but does not explicitly state it is a read-only operation or mention permissions. However, the name and context imply it is safe.

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?

Two concise sentences, front-loaded with the purpose, followed by details. No unnecessary words, every 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?

For a simple monitoring tool with one optional parameter and no output schema, the description covers the return content and units. It could mention the format (e.g., JSON) but is largely complete.

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

Parameters3/5

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

Schema coverage is 100% for the single optional parameter 'server', which is adequately described in the schema. The description does not add further semantics beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'get' and resource 'memory usage', specifies what is shown (total, used, free, buffer, cache) and units (KB, MB, GB). It distinguishes itself from sibling 'get_' tools like get_disk_usage by focusing on memory.

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, no exclusions or conditions. The description only explains what it does, not when it's appropriate.

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

get_mysql_statusA

Get MySQL server status including version, uptime, connections, and query statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.7/5.0
Behavior3/5

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

Description accurately portrays the tool as a read operation but does not explicitly state it is non-destructive or safe. No annotations exist, so the description carries the transparency burden but offers minimal behavioral detail.

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?

Single sentence efficiently conveys purpose and return data. Could be slightly more structured but is adequately concise without verbosity.

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?

Despite no output schema, the description enumerates key fields (version, uptime, connections, query statistics), giving the agent a reasonable understanding of the return format. Simple tool scope makes this sufficient.

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

Parameters3/5

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

Input schema has 100% coverage with a clear description of the optional 'server' parameter. The tool description adds no additional parameter semantics beyond the schema; it only describes the return content.

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 the verb 'Get', the resource 'MySQL server status', and lists specific data fields (version, uptime, connections, query statistics). This distinguishes it from sibling tools like list_mysql_databases and get_service_status.

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?

Description implies usage for retrieving MySQL status but provides no explicit guidance on when to prefer this tool over siblings like test_server_connection or get_service_status. Lacks exclusions or alternative tool mentions.

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

get_network_infoB

Get network configuration including all interfaces (with IP, MAC, speed), routing table, and default gateway.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description must fully convey behavioral traits. It correctly implies a read-only operation but fails to mention key details like whether root permissions are required, if the tool runs remotely via SSH, or what happens if the server parameter points to an unreachable machine. The minimal transparency is acceptable for a simple info tool but leaves gaps.

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 a single, well-structured sentence that quickly conveys the tool's purpose and output components. It is appropriately sized for a straightforward tool, with no redundant or extra information.

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

Completeness3/5

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

Given the low complexity (one optional parameter, no output schema), the description adequately lists what the output includes. However, it omits context about the server parameter’s role and potential errors, which would enhance completeness for an agent executing remotely.

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

Parameters2/5

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

The input schema documents the optional 'server' parameter with a description, but the tool description itself adds no extra meaning about its effect. Schema coverage is 100%, so the parameter is not missing, but the description misses an opportunity to clarify, e.g., that it fetches network info from a different server if specified.

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 retrieves network configuration including specific elements like interfaces (IP, MAC, speed), routing table, and default gateway. It unambiguously defines the resource and output, distinguishing it from sibling system info tools that focus on disk, memory, or users.

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 get_disk_health or get_system_info. It lacks explicit context for choosing this tool, such as when network diagnostics are needed or when other info tools would be more appropriate.

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

get_package_countA

Get the total count of installed packages on the system.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden but only states the basic action. It doesn't disclose potential permissions, remote execution implications, or what happens on empty systems. Adequate for a simple query but lacking depth.

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?

Single concise sentence with no wasted words, directly conveying the tool's 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 is nearly complete for a simple count tool with one optional parameter, but it misses indicating the output format (e.g., raw number) and usage context among many siblings.

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

Parameters3/5

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

Schema description coverage is 100% for the single optional parameter 'server'. The tool description adds no additional meaning beyond the schema, so baseline 3 applies.

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' and resource 'total count of installed packages', clearly distinguishing from siblings like get_package_info and list_available_updates.

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

Usage Guidelines3/5

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

The description implies usage when the total count is needed but lacks explicit guidance on when to prefer it over alternatives or any exclusions.

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

get_package_infoA

Get detailed information about an installed package including version, description, maintainer, and install date.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
package_nameYesName of the package to query

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It indicates a read operation and lists some return fields, but does not disclose potential errors (e.g., package not found), permission requirements, or response format. For a simple info tool, this is adequate but minimal.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads key information. Every word is necessary and no 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?

Despite having no output schema or annotations, the description compensates by enumerating key return fields. It is complete enough for a simple query tool, though it could include edge-case behavior. Usage guidance is the missing piece.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The description adds value by listing expected output fields, but does not enhance parameter meaning beyond the schema. Baseline of 3 is appropriate.

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 retrieves detailed information about an installed package, listing specific fields (version, description, maintainer, install date). This verb-resource combination is specific and distinguishes it from sibling tools like get_package_count.

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 does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites or conditions for use. With numerous sibling tools, explicit usage context is missing.

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

get_service_statusA

Get the status of a specific system service. Returns whether the service is running or stopped.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
serviceYesName of the service (e.g., 'sshd', 'nginx', 'cron')

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states return values (running/stopped) but lacks details on permissions, side effects, or error handling. Adequate but minimal.

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?

Two sentences, front-loaded, no fluff. Efficiently communicates tool's purpose and output.

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 two parameters and no output schema, description is sufficient. Could mention return format explicitly, but not necessary.

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

Parameters3/5

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

Schema coverage is 100%, both parameters are described. Description adds no new information beyond what schema provides: server has default, service is required.

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 verb 'Get' and resource 'status of a specific system service'. It distinguishes from sibling tools by focusing on status retrieval, not modification.

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?

Purpose is clear, but no explicit when-to-use or alternatives mentioned. Sibling names imply usage context, so still clear.

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

get_ssh_configB

Get SSH server (sshd) configuration settings including port, authentication methods, and security options.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist, and the description provides no behavioral details beyond 'Get' (implying read-only). It does not mention permissions, side effects, or return characteristics, leaving significant 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 single, well-structured sentence that conveys the tool's purpose without extraneous words. Every word 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 tool's simplicity (one optional param, no output schema), the description provides adequate information about the type of data returned (port, auth, security). It could mention the output format or scope, but it is sufficient for most use cases.

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

Parameters3/5

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

Schema coverage is 100% and the schema adequately describes the single optional parameter. The description adds no further parameter information, so it meets the baseline for high schema 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 retrieves SSH server configuration, listing examples like port, authentication, and security options. It distinguishes itself from sibling tools since no other tool targets SSH config.

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 this tool versus alternatives is provided. The purpose is implied by the name and description, but there is no 'when to use' or 'when not to use' context.

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

get_system_infoA

Get comprehensive system information including OS, kernel, CPU, memory, disk usage, and update status. This is a good starting point for understanding system state.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must convey safety and side effects. It describes what is returned but does not explicitly state it is read-only, safe, or whether authentication is needed. Partial but adequate for a read 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?

Two sentences, no wasted words. The first conveys the core action and contents, the second adds strategic guidance. Ideal length and front-loaded structure.

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 param, no output schema) and sibling context, the description covers what it offers and provides starting-point guidance. It could mention output format or more details but is sufficient for a high-level diagnostic tool.

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

Parameters3/5

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

Schema coverage is 100% with the single parameter 'server' fully described. The tool description adds no additional information about the parameter, so it meets baseline but does not exceed.

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

Purpose5/5

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

The description clearly states the verb 'get' and resource 'comprehensive system information' listing specific categories (OS, kernel, CPU, memory, disk usage, update status). It distinguishes from siblings like get_memory_usage by emphasizing comprehensiveness.

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

Usage Guidelines4/5

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

The description includes 'good starting point for understanding system state,' implying initial use before more specific tools. It provides context but does not explicitly state when not to use or name alternatives.

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

get_system_timeA

Get the current system time and timezone configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It accurately describes a read-only operation but lacks details on return format or potential side effects.

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?

Single sentence with no unnecessary words; front-loaded with verb and resource.

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 getter with one optional parameter and full schema coverage, description is adequate. Could mention output format but not essential.

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

Parameters3/5

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

Schema coverage is 100%; the description adds no additional meaning beyond the schema's parameter description, meeting the baseline.

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 uses specific verb 'Get' and resource 'system time and timezone configuration', clearly distinguishing from siblings like get_system_info.

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 this tool versus alternatives; usage is implied but no when-not 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.

get_user_quotaB

Get quota limits and usage for a specific user on a filesystem.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
usernameYesUsername to get quota for
filesystemYesMount point of the filesystem

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It states the tool retrieves quota limits and usage, implying a read operation, but does not disclose potential requirements or behaviors (e.g., permission needed, what exactly 'usage' includes).

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

Conciseness5/5

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

The description is a single, concise sentence. It is front-loaded with the essential action and resource, with no wasted words.

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

Completeness3/5

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

Given the tool's simplicity and complete schema, the description is minimally adequate. However, it lacks information about the response format (e.g., what fields are returned) and any prerequisites, which would improve completeness.

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

Parameters3/5

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

The input schema has 100% description coverage, so parameters are well-documented. The description adds no additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.

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 (get) and resource (quota limits and usage for a specific user on a filesystem). It distinguishes itself from sibling tools like 'get_group_quota' and 'set_user_quota' by specifying a single user and read-only nature.

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 such as 'list_user_quotas' or 'get_group_quota'. Without context, an agent may select the wrong tool for listing all quotas or group quotas.

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

get_webmin_userB

Get detailed permissions for a specific Webmin user account. Shows which modules the user can access.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
usernameYesWebmin username to look up

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, and the description only states it shows permissions without disclosing behavioral traits like read-only nature, required privileges, or error handling (e.g., invalid username).

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?

Two concise sentences, front-loaded with key information, no unnecessary words.

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

Completeness3/5

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

Adequate for a simple lookup tool, but lacks description of return format or structure. Could mention what 'permissions' entails (e.g., list of modules).

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

Parameters3/5

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

Schema coverage is 100%, and the description does not add significant meaning beyond what the schema already provides for 'server' and 'username'.

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 'Get detailed permissions for a specific Webmin user account' and specifies it shows module access. This distinguishes it from siblings like list_webmin_users or modify_webmin_user.

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 versus alternatives like list_webmin_users (which lists all users) or how to interpret permissions. No prerequisites or exclusions mentioned.

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

get_webmin_versionA

Get the version of the connected Webmin server. Returns the version string and hostname.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.9/5.0
Behavior3/5

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

Despite no annotations, the description is straightforward and implies a read operation. It does not explicitly state idempotency or lack of side effects, but the verb 'get' is sufficient. With annotations missing, more explicit behavioral context could be added.

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 with two sentences: one for purpose, one for return value. No redundant information.

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 simplicity of the tool (one param, no output schema needed beyond the stated return), the description is complete. It explains what is returned, fulfilling the need for a simple info tool.

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

Parameters3/5

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

The schema already provides full coverage (100%) for the single optional parameter 'server', including its purpose and default behavior. The description does not add new parameter semantics 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 the tool gets the version of the connected Webmin server and lists the return values (version string and hostname). It distinguishes from other get_* tools by specifying the exact resource.

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 when to use (to obtain Webmin version) but provides no explicit guidance on when not to use or alternatives among siblings.

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

list_available_updatesB

List all available package updates including security updates. Shows current and new versions for each package.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description must bear the full burden of behavioral disclosure. It does not mention whether the operation is read-only, requires special permissions, or has side effects. The description implies a safe read operation but does not confirm it.

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

Conciseness5/5

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

The description is two short sentences with no unnecessary words. It is front-loaded and efficiently conveys the tool's purpose and key information.

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

Completeness3/5

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

The tool is simple with one parameter and no output schema. The description explains what it does but lacks details on return format or behavior. Adequate but not complete.

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

Parameters3/5

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

The input schema has 100% description coverage for the single optional parameter 'server'. The description adds that the tool shows current and new versions, but does not add meaning beyond the schema. Baseline 3 is appropriate.

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 available package updates including security updates, and shows current and new versions. It distinguishes itself from sibling tools such as 'get_package_count' and 'get_package_info' which serve different purposes.

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, nor when not to use it. There are no prerequisites or context hints, leaving the agent to infer usage.

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

list_backupsA

List Webmin configuration backups. Shows available backups that can be restored.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.5/5.0
Behavior3/5

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

Description indicates it is a read operation (list, show). No annotations provided, so description carries burden. It doesn't mention any side effects, which is fine. However, it doesn't clarify that backups are per-server or globally, which might be nuanced.

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?

Two sentences, no wasted words. Front-loaded with purpose.

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 is minimal but functional. However, it lacks details about the output format (e.g., what fields are in each backup entry). No output schema exists, so description should compensate. It does not mention whether it lists backups from all servers or just the default. Parameter behavior is left to schema.

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

Parameters3/5

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

Schema description covers the 'server' parameter thoroughly. Tool description adds no new parameter semantics, but baseline is 3 due to high schema 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?

Clearly states verb 'list' and resource 'Webmin configuration backups'. Distinguishes from other list tools by specifying backups.

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 vs other list tools. No exclusions or prerequisites.

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

list_banned_ipsA

List all currently banned IP addresses from Fail2ban.

ParametersJSON Schema
NameRequiredDescriptionDefault
jailNoFilter by jail name (optional)
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It indicates a read operation ('list'), which is safe, but does not disclose potential prerequisites, permissions, or any side effects. The description is minimal but adequate for a simple list 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 a single, concise sentence with no filler words. Every word is necessary and contributes to understanding. Ideal length for a straightforward list tool.

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 defines the tool's core function. However, it does not specify the output format (e.g., plain IP list or with details) or mention behavior when no bans exist. An example output would improve completeness, but it is generally sufficient for a simple list operation.

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

Parameters3/5

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

The input schema already provides clear descriptions for both parameters (server with default, jail optional). The description adds no additional parameter semantics, so baseline 3 is appropriate given 100% schema 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 explicitly states 'List all currently banned IP addresses from Fail2ban,' providing a specific verb and resource. It clearly distinguishes from sibling tools like list_fail2ban_jails (lists jails) and get_fail2ban_status (status info).

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 use for viewing current bans, but does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it.

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

list_cron_jobsA

List all scheduled cron jobs. Shows the schedule, command, user, and whether each job is active.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided. The description states 'list' which implies a read-only operation, but does not explicitly confirm no side effects or mention any permissions or limits. For a simple list tool, this is 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?

Single sentence that is front-loaded with the purpose and details. No redundant information; every word is necessary.

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 one optional parameter and no output schema, the description is sufficient. It covers what the tool lists and the main fields. Minor gap: does not mention behavior when no cron jobs exist, but not critical.

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

Parameters3/5

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

The input schema has one optional parameter 'server' with a clear description. Schema description coverage is 100%, so the baseline is 3. The tool description does not add 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?

Clearly states the action 'List' and resource 'scheduled cron jobs', and specifies the fields shown (schedule, command, user, active). Differentiates from sibling tools like create_cron_job and delete_cron_job.

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

Usage Guidelines3/5

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

The description implies usage when one wants to view cron jobs, but does not provide explicit guidance on when to use versus alternatives like edit or delete. No exclusions or context are given.

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

list_disksA

List all physical disks with SMART capability. Shows device path, model, serial number, capacity, and whether SMART is enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A4/5.0
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 clearly indicates the tool is a read-only list operation, listing specific fields. It does not mention any permissions or side effects but adequately describes the behavior for a listing 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 two sentences with no waste. It front-loads the action and provides key details efficiently.

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

Completeness4/5

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

Given no output schema, the description lists the key output fields. It lacks mention of permissions or edge cases (e.g., no SMART-capable disks), but for a simple list command, it is largely complete.

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

Parameters3/5

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

Schema coverage is 100% with a clear description for the 'server' parameter. The tool description does not add additional meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: listing all physical disks with SMART capability, and lists the specific output fields (device path, model, serial number, capacity, SMART enabled). This distinguishes it from sibling tools like get_disk_health or get_disk_usage.

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 listing disks, but does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. Guidance is implied but not detailed.

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

list_fail2ban_jailsB

List all Fail2ban jails and their status. Shows which jails are enabled and their current ban counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It does not mention that this is a read-only operation, nor does it discuss permissions, rate limits, or side effects. The name implies a listing, but explicit safety info is missing.

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?

Two short sentences that front-load the main purpose and provide additional detail. No extraneous words. Highly efficient.

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

Completeness4/5

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

Given the simplicity of the tool (1 optional param, no output schema), the description adequately conveys what the tool does and what info it shows. It lacks a brief note about output format but is mostly complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add any extra meaning about the server parameter beyond what is in the schema. No improvement or degradation.

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 it lists all Fail2ban jails and their status, including enabled status and ban counts. This is a specific verb-resource pair that distinguishes it from sibling tools like get_fail2ban_status or list_banned_ips.

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 get_fail2ban_status or list_banned_ips. The description does not mention context or exclusions.

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

list_groupsA

List all system groups. Returns both regular groups (GID >= 1000) and system groups separately, with member information.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the separation of groups by GID and inclusion of member info, but does not explicitly state that the operation is read-only or safe.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the primary action and immediately provides key details, 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 list operation with one optional parameter and no output schema, the description fully covers what is returned (groups with member info, separated by GID range), leaving no gaps.

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

Parameters3/5

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

Schema description coverage is 100% for the single optional parameter 'server', and the description does not add any additional meaning beyond what the schema already 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 clearly specifies the tool's action (list all system groups), differentiates between regular and system groups, and mentions member information, providing a specific and complete purpose.

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 when to use this tool (to list groups) but does not provide explicit guidance on when not to use it or alternatives among siblings, which are not directly comparable.

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

list_logical_volumesB

List all LVM logical volumes. Shows name, size, volume group, device path, and mount point for each LV.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
volume_groupNoOptional volume group name to filter by

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behavior. It states the output fields but does not explicitly confirm that the operation is read-only, safe, or free of side effects. This leaves ambiguity for an agent.

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

Conciseness5/5

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

The description is two sentences, front-loading the primary action and then enumerating output fields concisely. Every word is necessary.

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

Completeness3/5

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

For a simple list tool with no output schema and two optional parameters, the description covers the basics but omits filter capabilities and error scenarios. It could be more complete.

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

Parameters3/5

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

Schema coverage is 100%, so the description is not required to repeat parameter details. However, it adds no extra context about the optional 'volume_group' filter or the 'server' parameter, missing an opportunity to enhance clarity.

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

Purpose5/5

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

The description uses a specific verb ('List') and resource ('LVM logical volumes'), clearly distinguishing it from sibling tools like 'list_volume_groups' and 'list_disks'. It also specifies the output fields.

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 (e.g., 'list_disks' or 'list_mounts'). The agent receives no help in selecting this tool over similar siblings.

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

list_mountsA

List all mounted filesystems. Shows mount point, device, filesystem type, and mount options.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It describes a simple read operation with no side effects, but does not mention any access constraints, performance impact, or limitations beyond the listed fields.

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?

Two concise sentences: first states the action and resource, second lists output fields. No redundancy or unnecessary 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?

The description lists the output fields, which is helpful given no output schema. However, it does not mention any safety or performance considerations. For a simple list tool, this is nearly complete, but could be improved by noting it is a read-only operation.

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

Parameters3/5

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

Schema description coverage is 100% for the single optional parameter 'server', which already explains its purpose. The tool description adds no extra meaning beyond what the schema provides, so baseline 3 is appropriate.

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 mounted filesystems and specifies the output fields (mount point, device, filesystem type, mount options). It is a specific verb+resource combination that distinguishes it from related siblings like list_disks or list_logical_volumes.

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 this tool versus alternatives. The context implies it is for monitoring filesystem information, but no when-not-to-use or alternative suggestions are provided.

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

list_mysql_databasesA

List all MySQL databases. Separates user databases from system databases (information_schema, mysql, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A4/5.0
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 explains that it lists all databases and separates user vs system, which is good transparency for a read-only list tool. However, it could mention permissions or output format.

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

Conciseness5/5

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

The description is extremely concise at two sentences, with no wasted words. The key verb and resource are 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 list tool, the description is fairly complete. It names what it lists and highlights a key feature (separation). However, it does not specify the output format or any prerequisites (e.g., MySQL access), but this is acceptable given the tool's simplicity.

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

Parameters3/5

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

The input schema covers the only parameter 'server' with full description (100% coverage). The tool description does not add any extra meaning beyond what the schema provides, so it meets the baseline.

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

Purpose5/5

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

The description clearly states the verb 'List' and resource 'MySQL databases'. It also specifies the separation between user and system databases, which distinguishes it from similar tools like list_mysql_users.

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 state when to use this tool or mention alternatives. The purpose is clear, but there is no guidance on when not to use it or how it fits with other tools.

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

list_mysql_usersA

List all MySQL users and their host permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description adequately implies a read-only operation via the word 'list'. It discloses that the tool retrieves all MySQL users and their host permissions, which is sufficient for a simple listing 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 a single, front-loaded sentence with no unnecessary words. Every word adds value, making it highly concise.

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

Completeness5/5

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

For a simple tool with one optional parameter and no output schema, the description sufficiently covers what the tool does (lists users and host permissions). No additional details are needed.

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

Parameters3/5

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

Since schema description coverage is 100%, baseline is 3. The description adds no extra meaning beyond the schema; it does not elaborate on the 'server' parameter or its 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 the verb 'List' and the resource 'MySQL users and their host permissions', making the purpose unambiguous. It distinguishes itself from siblings like 'list_mysql_databases' and 'get_mysql_status' by specifying users.

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 provide explicit guidance on when to use this tool versus alternatives. While the sibling list suggests distinct purposes, no when-not-to-use or alternative tool references are given.

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

list_processesA

List all running processes on the system. Shows PID, user, CPU usage, memory, and command for each process.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.5/5.0
Behavior2/5

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

The description only states what the tool does, but with no annotations provided, it fails to disclose important behavioral traits such as required permissions, performance impact, or output size. For a system command, these details matter.

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: two sentences that cover purpose and output details without unnecessary words. It is appropriately front-loaded.

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 lack of output schema and annotations, the description provides basic functionality and output fields, but omits details like permission requirements or output format. It is adequate but not complete for a production tool.

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

Parameters3/5

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

Schema coverage is 100% with a well-described 'server' parameter. The tool description does not add any additional meaning beyond the schema, but the schema itself is sufficient. No bonus or penalty.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'List all running processes' and specifies the details shown (PID, user, CPU, memory, command). This distinguishes it from sibling tools like list_services or list_users, which focus on other resources.

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 guidance is provided on when to use this tool versus alternatives. While no direct sibling exists for listing processes, the tool is straightforward, but the description lacks explicit context for when it is appropriate.

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

list_quota_filesystemsA

List filesystems with disk quota support. Shows which filesystems have quotas enabled and their status.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. It describes a read-only list operation, but does not disclose permissions, side effects, or output details beyond 'status'. 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?

Two sentences efficiently convey the tool's purpose and output. No fluff; information 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?

Given the simple tool, the description covers what it does and what information it provides. Minor gap: 'status' is not elaborated, but the tool is otherwise complete.

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

Parameters3/5

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

Input schema has 100% parameter description coverage, providing baseline 3. The tool description adds no additional meaning beyond the schema's description of the 'server' parameter.

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

Purpose5/5

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

The description clearly states the tool lists filesystems with disk quota support and shows their enabled status. It is specific and distinguishes from sibling tools like list_disks or list_user_quotas.

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 when-to-use or when-not-to-use guidance is given. The purpose is clear from the description, but alternatives are not mentioned, leaving the agent to infer context from sibling names.

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

list_runlevelsB

List system runlevels and their descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose behavioral traits such as whether the operation is read-only, permissions required, or any side effects.

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

Conciseness5/5

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

The description is a single, concise sentence with no unnecessary words, making it efficient and 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?

While the description is adequate for a simple list operation, it lacks details about the output format or content, which is not compensated by an output schema.

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

Parameters3/5

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

Schema coverage is 100% with the 'server' parameter already described; the tool description adds no additional meaning beyond the schema, resulting in a baseline 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 clearly states the verb 'List' and the resource 'system runlevels and their descriptions,' making the tool's purpose unambiguous and distinct from sibling tools.

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, nor are there any prerequisites or context for usage.

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

list_servicesA

List all system services (systemd units or init scripts). Returns service names. Use get_service_status to check if a specific service is running.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description must fully disclose behavior. It states it returns service names and lists all system services, implying a read-only operation. It could explicitly mention 'read-only' but the current text is sufficient for safe usage.

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?

Two sentences delivering full purpose and usage guidance with no redundancy. Front-loaded with the key action and result.

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 one parameter and no output schema, the description adequately covers what it does and returns. It references a sibling for further detail, making it complete for the given complexity.

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

Parameters3/5

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

Schema coverage is 100% for the only parameter 'server', and its description is already clear in the schema. The tool description does not add additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'list' and the resource 'system services', specifying it returns service names. It distinguishes from sibling get_service_status by indicating it lists all services rather than checking a specific one.

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

Usage Guidelines5/5

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

Explicitly tells when to use get_service_status instead, providing clear guidance on using this tool for listing and the sibling for checking specific service status.

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

list_user_quotasB

List all user quotas on a specific filesystem. Shows disk usage, soft/hard limits for blocks and files.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
filesystemYesMount point of the filesystem (e.g., '/')

TDQS

B3.3/5.0
Behavior3/5

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

The description indicates a read-only operation showing disk usage and limits, but lacks details on permissions, response format, or potential performance impact. No annotations exist to supplement.

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?

Two concise sentences with no redundant information. Efficient and direct.

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?

Adequate for a simple list tool with two parameters, but could benefit from differentiation from sibling tools like get_user_quota and mention of output structure.

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

Parameters3/5

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

Input schema descriptions are already clear and detailed, covering both parameters. The description adds no extra parameter semantics beyond what the schema provides.

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 lists user quotas on a specific filesystem, specifying disk usage and limits. It distinguishes from related tools like get_user_quota (singular) and list_quota_filesystems, though not explicitly.

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 such as get_user_quota or set_user_quota. Missing usage context like prerequisites or scope.

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

list_usersA

List all system users. Returns both regular users (UID >= 1000) and system users separately, with details like home directory and shell.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A4.1/5.0
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 that the tool lists users and returns details, but does not mention any behavioral traits like authentication requirements, rate limits, or that it is a read-only operation (though implied).

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the purpose, and contains no extraneous information. Every sentence adds value.

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 listing tool with no output schema, the description adequately covers what the tool does and what it returns (regular/system users, home directory, shell). No further details are necessary for effective invocation.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'server', which already has a description. The description adds no further meaning beyond what the schema provides, so baseline score of 3 is appropriate.

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 exactly what the tool does: list all system users. It distinguishes itself from sibling tools like list_groups or list_user_quotas by specifying that it returns both regular and system users with details like home directory and shell.

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 implicitly conveys usage through its clear purpose and context among siblings. However, it does not explicitly state when to use this tool versus alternatives (e.g., list_user_quotas) or provide any exclusions.

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

list_volume_groupsA

List all LVM volume groups. Shows name, total size, free space, physical volume count, and logical volume count for each VG.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the tool lists volume groups and shows attributes, but does not explicitly disclose that it is read-only, whether any permissions are required, or potential side effects. The description is functional but lacks essential behavioral transparency for an agent.

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

Conciseness5/5

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

The description is a single, well-structured sentence (about 20 words) that immediately conveys the tool's action and output. Every word is necessary; no fluff or redundancy. It is model-grade concise.

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 (list with one optional parameter, no output schema), the description adequately covers the return fields and purpose. It lacks mention of error conditions or pagination, but for a straightforward list operation, it is sufficiently complete. The output fields are explicitly listed, compensating for the lack of an output schema.

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

Parameters3/5

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

Schema description coverage is 100% for the single 'server' parameter, which already explains its purpose and default behavior. The description does not add any additional semantic information beyond what the schema provides, so it meets the baseline but does not exceed it.

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 ('List all LVM volume groups') and the specific attributes returned ('name, total size, free space, physical volume count, and logical volume count'). It distinguishes the tool from siblings like 'list_disks' and 'list_logical_volumes' by specifying 'volume groups' and the exact fields.

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 listing volume groups but provides no guidance on when to use this tool versus alternatives (e.g., 'list_logical_volumes' for logical volumes) or any exclusions. It lacks explicit context or prerequisites, resulting in minimal usage direction.

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

list_webmin_logsA

List Webmin action/audit logs. Shows recent actions performed through Webmin including user, module, and action details.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoFilter by username
limitNoMaximum number of log entries to return (default: 100)
moduleNoFilter by module name (e.g., 'useradmin', 'init')
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. It indicates logs are listed (non-destructive) but lacks details on ordering, time range, or pagination. The mention of 'recent actions' is vague, leaving room for 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, consisting of two clear sentences with no redundancy. Every word adds value.

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

Completeness2/5

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

No output schema is provided, yet the description gives only a vague notion of output fields (user, module, action). It omits important details like timestamp, default limit, or ordering. The tool serves a simple purpose but leaves the agent guessing about the return format.

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

Parameters3/5

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

Schema coverage is 100%, and the description does not add meaningful information beyond what the schema already provides. The description mentions user/module/action details as log content, but the schema already describes the filter parameters and their purpose.

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

Purpose5/5

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

The description clearly states it lists Webmin action/audit logs, specifying the content (user, module, action details). It distinguishes itself from sibling tools, as no other tool is described for listing Webmin logs.

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 for retrieving Webmin logs but does not explicitly state when to use this tool over alternatives. Since no sibling tool overlaps in functionality, confusion is minimal, but explicit guidance on exclusions would improve it.

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

list_webmin_modulesB

List all available Webmin modules that can be assigned to users.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

B3.3/5.0
Behavior2/5

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

Without annotations, the description should disclose behavior. It only states the basic function, lacking details on whether it's read-only, conditional behavior for missing server, or response structure.

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

Conciseness5/5

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

The description is a single concise sentence with no extraneous information, effectively front-loading the purpose.

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 low complexity (one optional parameter, no output schema), the description is adequate but could inform the agent about the expected return format (e.g., list of module names).

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'server', which already has a description. The description adds no extra meaning beyond 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 clearly states 'List all available Webmin modules', specifying the verb and resource. It distinguishes itself from sibling tools like 'list_webmin_users' by targeting modules specifically.

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 vs alternatives (e.g., list_webmin_logs, list_webmin_servers) or any prerequisites like required permissions.

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

list_webmin_serversA

List all configured Webmin servers with their aliases and connection info. Shows which server is the default.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It suggests a read-only listing operation but does not confirm side effects, authentication needs, or any constraints beyond what the schema (empty) indicates. It adds basic context but is not thorough.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the tool's purpose and output.

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 parameters, the description is nearly complete. It specifies what is returned (aliases, connection info, default flag). It could optionally mention ordering or error behavior, but that is not required for basic usage.

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 schema coverage is 100%. The rubric gives a baseline of 4 for zero-param tools. The description does not need to add parameter details, and it does not.

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 (list), resource (Webmin servers), and what information is provided (aliases and connection info, default server). This distinguishes it from sibling list tools like list_webmin_users which target different resources.

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 of when to use the tool (to see all configured Webmin servers) but does not explicitly state when not to use or mention alternatives. However, the resource name naturally guides usage compared to siblings.

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

list_webmin_usersA

List all Webmin user accounts (NOT system users). Shows usernames and which modules each user can access.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries burden. States it lists all users with details, but doesn't mention safety (read-only), permissions required, or rate limits. Adequate for a simple list tool but lacks depth.

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?

Two sentences, no fluff. First sentence states purpose, second adds key detail about output. Information density is high.

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

Completeness4/5

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

Given no output schema and one optional parameter, description covers what the tool does and returns. Could mention if it's idempotent, but not necessary for basic context.

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

Parameters3/5

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

Schema covers the single parameter fully (100% coverage). Description adds no extra meaning beyond what schema provides, meeting baseline expectation.

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 action (list), resource (Webmin user accounts), and distinguishes from system users. Mentions output (usernames and module access). Differentiates from siblings like list_users.

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?

Explicitly notes that it lists Webmin accounts, not system users, implying when to use (Webmin users) and when not (system users). Could be more explicit about alternatives, but context is clear.

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

modify_userA

Modify an existing system user. Only specify fields you want to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
gidNoNew group ID
uidNoNew user ID
shellNoNew login shell
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
home_dirNoNew home directory
usernameYesCurrent username of the user to modify
real_nameNoNew full name or comment
new_usernameNoNew username

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as permissions, reversibility, side effects, or error handling, which is insufficient 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.

Conciseness4/5

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

The description is concise (one sentence, 12 words) and front-loaded with the action. However, given the complexity, it could benefit from slightly more context without being wasteful.

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 purpose and partial update behavior but lacks information about return values (no output schema) and prerequisites. It is adequate but not comprehensive.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema, only a usage hint.

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

Purpose5/5

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

The description clearly states the verb 'modify' and the resource 'existing system user', distinguishing it from siblings like create_user, delete_user, and modify_webmin_user.

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?

It instructs to 'only specify fields you want to change', which is a useful guideline for partial updates. However, it does not explicitly exclude alternatives or provide when-not-to-use scenarios.

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

modify_webmin_userA

Modify a Webmin user's permissions or password. This is a dangerous operation and is blocked in safe mode. Cannot demote the last superuser account.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
modulesNoNew list of module names (replaces existing). Use ['*'] for all modules.
passwordNoNew password (optional)
usernameYesWebmin username to modify

TDQS

A4/5.0
Behavior4/5

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

Discloses dangerous operation, safe mode restriction, and last superuser demotion prevention, adding safety context beyond the schema.

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

Conciseness5/5

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

Two concise sentences front-load the action and critical warnings, 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?

Covers essential safety and constraint details but does not explain that the modules list replaces existing modules, though that is in the schema.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are fully described in the schema. The description only loosely maps 'permissions' to modules param without adding new 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 it modifies Webmin user permissions or password, distinguishing it from sibling tools like create_webmin_user, delete_webmin_user, and get_webmin_user.

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

Usage Guidelines3/5

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

The description provides guidance on when not to use (safe mode blocked) but does not explicitly compare to alternative tools like modify_user or change_password.

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

read_fileA

Read the contents of a file from the remote system. Can return content as a string or as an array of lines.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the file to read
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
as_linesNoIf true, return content as array of lines

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only mentions output format options but omits critical details such as error handling, file size limits, encoding, or whether binary files are supported.

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?

Two concise sentences with no superfluous information. The purpose is front-loaded, and the output options are clearly stated in the second sentence.

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 basic file read tool with no output schema, the description adequately covers the return types. However, it lacks details about permissions, error conditions, and file type limitations, which would improve completeness in a server management context.

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

Parameters3/5

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

Schema description coverage is 100%, and the description reinforces the as_lines parameter but adds no additional meaning beyond the schema. The default server behavior is already in the schema description.

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 that the tool reads file contents from the remote system and can return them as a string or array of lines. It effectively distinguishes itself from sibling tools like write_file, copy_file, and delete_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 files but provides no explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions.

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

rename_fileA

Rename or move a file. In safe mode, both source and destination must be in /tmp or /var/tmp.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
sourceYesAbsolute path to the source file
destinationYesAbsolute path to the new location/name

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must fully convey behavioral traits. It mentions safe mode but does not disclose destructive nature (source is removed), overwrite behavior, or permission requirements. 'Safe mode' is not explained.

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 with two sentences: one for purpose and one for an important constraint. Every element earns its place with no redundancy.

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 rename/move tool, the description covers the basic operation and a key constraint. However, it lacks details on behavior when destination exists, required permissions, and safe mode definition. Given its destructive nature, more context would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already describes all parameters. The description adds no additional meaning beyond the safe mode context, which does not directly pertain to parameter semantics. Baseline 3 is appropriate.

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 it renames or moves a file, which is specific and distinguishes it from siblings like copy_file or delete_file. It also adds a constraint about safe mode, 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 a clear condition for safe mode usage but does not explicitly state when to use this tool versus alternatives, such as copy_file for copying or delete_file for removal. The inference is implied but not direct.

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

restart_serviceB

Restart a system service. The service will be stopped and then started again. Some critical services (ssh, webmin) may be blocked in safe mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
serviceYesName of the service to restart (e.g., 'nginx', 'cron')

TDQS

B3.3/5.0
Behavior3/5

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

Discloses the stop-then-start sequence and safe mode restrictions. No annotations provided, so description carries full burden. Still lacks details like permissions required, impact on existing connections, or error handling (e.g., if service doesn't exist).

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

Conciseness5/5

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

Two short sentences with no redundant information. First sentence defines action, second adds important constraint. Front-loaded and 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?

Tool is simple with only two parameters and no output schema. Description covers basic behavior and a safety constraint. Missing notes on what happens in safe mode if blocked, or return values (though no output schema). Adequate but not thorough.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. Description adds no additional meaning beyond what the schema already provides for parameters 'server' and 'service'. No examples or clarifications.

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 clearly states it restarts a system service by stopping then starting it. It also adds a safety note about critical services possibly being blocked in safe mode. However, it does not explicitly distinguish from sibling tools like start_service or stop_service.

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 restart versus stop+start separately or alternatives. The safe mode warning is a constraint but not a usage criterion. Missing when-not-to-use or prerequisites.

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

set_user_quotaA

Set disk quota limits for a user on a filesystem. This is a dangerous operation and is blocked in safe mode. Set limits to 0 for unlimited.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
usernameYesUsername to set quota for
filesystemYesMount point of the filesystem
hard_file_limitNoHard limit for file count (0 = unlimited)
soft_file_limitNoSoft limit for file count (0 = unlimited)
hard_block_limitNoHard limit for disk blocks (0 = unlimited)
soft_block_limitNoSoft limit for disk blocks (0 = unlimited)

TDQS

A4.1/5.0
Behavior4/5

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

Discloses that the operation is dangerous and blocked in safe mode, which is critical behavioral context. No annotations are provided, so the description compensates adequately, though it does not cover authentication requirements or return behavior.

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

Conciseness5/5

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

Three concise sentences: purpose, danger warning, and usage hint. No unnecessary words, front-loaded with key information.

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

Completeness3/5

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

Covers the core operation, danger, and limit semantics. However, with no output schema and no annotations, it lacks information on return values, error handling, or whether the operation is immediate. Adequate but not comprehensive for a dangerous mutation tool.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description repeats the '0 = unlimited' meaning already present in schema descriptions, adding minimal new value.

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 ('Set') and the resource ('disk quota limits for a user on a filesystem'). It is distinct from sibling tools like get_user_quota and list_user_quotas, which are read-only operations.

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?

Explicitly warns that the operation is dangerous and blocked in safe mode, and provides a usage hint ('Set limits to 0 for unlimited'). However, it does not mention alternatives or when not to use it beyond safe mode.

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

start_serviceB

Start a stopped system service. If the service is already running, this is a no-op.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
serviceYesName of the service to start

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the burden for transparency. It discloses the no-op behavior but omits details on required permissions, error handling, side effects, or return values. Insufficient 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?

Single sentence, front-loaded with the action, and includes the important no-op note. No wasted words.

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

Completeness2/5

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

No output schema is provided, and the description fails to explain return values, success/error behavior, or other contextual expectations. The tool's complexity is low, but the omission of outcome details limits completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no extra semantics beyond the schema, meeting the baseline score of 3.

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

Purpose5/5

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

The description clearly states the verb ('Start'), the resource ('stopped system service'), and the no-op condition, effectively distinguishing it from sibling tools like stop_service, restart_service, enable_service, and disable_service.

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 specifies when to use (start a stopped service) but does not explicitly differentiate from enable_service or provide guidance on prerequisites or alternatives. Adequate but lacks exclusions.

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

stop_serviceA

Stop a running system service. Critical services (ssh, webmin, systemd services) are blocked to prevent system lockout.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
serviceYesName of the service to stop

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses that critical services are blocked to prevent lockout, which is a key behavioral trait. However, it doesn't detail error handling, side effects, or permission requirements.

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

Conciseness5/5

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

Two sentences: first clearly states the tool's function, second adds an important constraint. No unnecessary words.

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

Completeness3/5

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

The description is adequate but incomplete. It misses context on what happens when a stop fails, idempotency, or whether the action is immediate. It doesn't differentiate from other service management siblings.

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

Parameters3/5

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

The input schema already provides clear descriptions for both parameters (server and service), covering 100% of schema. The description adds no additional parameter semantics 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 the action (stop) and the resource (running system service). It distinguishes from sibling tools like enable_service, disable_service, restart_service by focusing on stopping a running service.

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 stopping services but does not explicitly guide when to use this tool over alternatives like disable_service (persistent) or restart_service. It lacks context on prerequisites or conditions.

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

test_server_connectionA

Test connectivity to a specific Webmin server. Returns version and hostname if successful.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It explains the successful behavior (returns version and hostname) but does not disclose failure behavior (e.g., timeouts, error messages) or authentication requirements. This is a gap but acceptable for a simple test 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 two sentences with no wasted words. The main action and output are front-loaded, making 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?

The tool is simple with one parameter and no output schema. The description mentions the return values (version and hostname). While it could mention failure conditions, it is generally complete for a connectivity test.

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

Parameters3/5

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

The input schema has 100% description coverage for the single parameter 'server'. The tool description does not add significant meaning beyond what the schema already provides (e.g., 'Server alias' and default behavior). Baseline 3 per rules.

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

Purpose5/5

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

The description clearly states the verb 'Test connectivity' and the resource 'specific Webmin server', and specifies the output (version and hostname). It distinguishes itself from sibling tools, which are about password, file, cron, and user management.

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 for testing connectivity to a specific Webmin server, with an optional server parameter. It is clear when to use it, though it does not explicitly state when not to use it or mention alternatives. However, no alternative exists among siblings, so it is still clear.

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

write_fileA

Write content to a file. This is a dangerous operation. In safe mode, only writes to /tmp and /var/tmp are allowed. System directories (/etc, /bin, /usr, etc.) are always blocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the file to write
serverNoServer alias (e.g., 'pi1', 'web-server'). Uses default server if not specified.
contentYesContent to write to the file

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It reveals safety restrictions (safe mode paths, blocked directories) which are critical. However, it omits details like whether existing files are overwritten, if parent directories are created, or any return value, leaving some behavioral gaps.

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

Conciseness5/5

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

The description is extremely concise: two sentences that front-load the purpose and immediately follow with crucial safety constraints. Every sentence adds value with no redundancy.

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 complexity of a write operation and no output schema, the description adequately covers safety and high-level purpose. However, it lacks specifics on error handling, success indication, or edge cases (e.g., content size, encoding), which would be beneficial for an AI agent.

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

Parameters3/5

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

Input schema coverage is 100% and the schema descriptions are already clear. The description adds no extra information about parameters (e.g., default server behavior, path format, content restrictions), so it neither harms nor significantly improves understanding 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 'Write content to a file' with specificity, and distinguishes from siblings like read_file and copy_file by focusing on writing. The addition of safety restrictions further clarifies the scope.

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 warns that the operation is dangerous and specifies safe mode constraints and blocked system directories. It provides clear context for when to use the tool but doesn't explicitly mention alternatives like using copy_file for duplicating files.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 61 tool updatesv0.1.0
    • First observedchange_password
    • First observedcopy_file
    • First observedcreate_cron_job
    • First observedcreate_directory
    • First observedcreate_user
    • First observedcreate_webmin_user
    • First observeddelete_cron_job
    • First observeddelete_file
    • First observeddelete_user
    • First observeddelete_webmin_user
    • First observeddisable_service
    • First observededit_cron_job
    • First observedenable_service
    • First observedget_disk_health
    • First observedget_disk_usage
    • First observedget_fail2ban_status
    • First observedget_group_quota
    • First observedget_memory_usage
    • First observedget_mysql_status
    • First observedget_network_info
    • First observedget_package_count
    • First observedget_package_info
    • First observedget_service_status
    • First observedget_ssh_config
    • First observedget_system_info
    • First observedget_system_time
    • First observedget_user_quota
    • First observedget_webmin_user
    • First observedget_webmin_version
    • First observedlist_available_updates
    • First observedlist_backups
    • First observedlist_banned_ips
    • First observedlist_cron_jobs
    • First observedlist_disks
    • First observedlist_fail2ban_jails
    • First observedlist_groups
    • First observedlist_logical_volumes
    • First observedlist_mounts
    • First observedlist_mysql_databases
    • First observedlist_mysql_users
    • First observedlist_processes
    • First observedlist_quota_filesystems
    • First observedlist_runlevels
    • First observedlist_services
    • First observedlist_user_quotas
    • First observedlist_users
    • First observedlist_volume_groups
    • First observedlist_webmin_logs
    • First observedlist_webmin_modules
    • First observedlist_webmin_servers
    • First observedlist_webmin_users
    • First observedmodify_user
    • First observedmodify_webmin_user
    • First observedread_file
    • First observedrename_file
    • First observedrestart_service
    • First observedset_user_quota
    • First observedstart_service
    • First observedstop_service
    • First observedtest_server_connection
    • First observedwrite_file

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a specific resource and action, with clear distinctions between system users and Webmin users, file operations, cron jobs, services, etc. No two tools have overlapping purposes; even similar tools like get_disk_usage and list_mounts serve different informational needs.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, using descriptive verbs like create, delete, list, get, modify, etc. The pattern is predictable, with verbs appropriately chosen for the action (e.g., list for collections, get for details).

Tool Count2/5

With 61 tools, the set is overly large for a typical MCP server. Although the scope is broad (full server management via Webmin), the number exceeds what is considered manageable (25+), making the surface feel heavy and potentially overwhelming for agents.

Completeness4/5

The tool set covers most system administration tasks: user/group management, file operations, cron jobs, services, disk/memory/network monitoring, quotas, MySQL, Webmin configuration, etc. Minor gaps exist (e.g., no package install/remove, no firewall management), but core workflows are well-supported.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for the FortiMonitor v2 monitoring API. 241 tools across 33 modules covering server management, outage monitoring, maintenance windows, metrics, notifications, cloud monitoring, SNMP, dashboards, reporting, and more. Unofficial community project, not affiliated with Fortinet. Python, MIT license, Docker and local deployment supported.
    3
    MIT

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/gjenkins20/webmin-mcp-server'

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