Skip to main content
Glama
EpicLabs23

ecp-mcp-server

by EpicLabs23

ecp-mcp-server

An MCP server for ECP (Epic Control Panel) — manage a hosting account's apps, domains, databases, files, PHP, SSL, and more conversationally through Claude Code, Claude Desktop, or any other MCP-compatible client.

It talks to ECP's own API (the same one ECP's web UI uses) as the hosting account you configure it with — nothing about this project modifies EHM or ECP themselves.

What it can do

~190 tools across:

  • Apps — deploy, create from git/upload, manage domains, tail logs, custom commands

  • Domains / DNS / Nginx — add/remove domains and subdomains, DNS records, raw nginx config, redirects

  • Files — browse, read/write, move/copy/rename/delete, compress/extract

  • Databases — MySQL, MongoDB, MSSQL, and PostgreSQL: create/delete DBs and users, privileges, browse/edit rows or documents, backups

  • PHP / SSL / System — PHP versions and php.ini, Let's Encrypt/self-signed certificates, disk usage, account settings

  • Supervisor / Crontab — manage long-running processes and scheduled jobs

  • asdf — language runtime version management

  • Git integrations — connect GitHub/GitLab/Bitbucket, browse repos, manage per-app deploy webhooks

  • One-click installers — WordPress and other blueprint scaffolding

  • Resource monitoring / notifications

  • storage.bd — backup config and job status

What it deliberately does not do: run arbitrary shell commands. ECP's own command-execution primitives are either broken for non-interactive callers (they silently drop output) or don't fit a single request/response tool call (an interactive terminal). Rather than build something unsafe or blind, this server tells the connecting AI to send you to ECP's own browser terminal for anything that genuinely needs a shell.

Related MCP server: cPanel MCP Server

Requirements

  • Node.js 18+

  • An ECP hosting account (username + password)

Install

npx ecp-mcp-server

or install globally:

npm install -g ecp-mcp-server

You don't need to do either manually if you're adding it to an MCP client below — the client runs it for you.

Configure

This server is configured entirely through environment variables — no config file needed. See .env.sample for the full list. The essentials:

Variable

Required

Description

ECP_API_BASE_URL

yes

Your ECP instance's own API base URL, e.g. https://yourdomain.com:2324/apinot EHM's API.

ECP_ACCOUNT_USERNAME

yes

The hosting account to log in as. One server instance manages one account.

ECP_ACCOUNT_PASSWORD

yes

That account's password.

ECP_REMEMBER

no

true for a 30-day session instead of 24h.

ECP_TLS_INSECURE

no

Dev-only escape hatch for a self-signed ECP instance. Never set this for a real account — see the comment in .env.sample.

Use it

Claude Code

claude mcp add ecp-mcp-server \
  --scope user \
  -e ECP_API_BASE_URL=https://yourdomain.com:2324/api \
  -e ECP_ACCOUNT_USERNAME=youraccount \
  -e ECP_ACCOUNT_PASSWORD=yourpassword \
  -- npx ecp-mcp-server

Restart Claude Code (MCP servers load at session start), then just ask — "list my apps," "check disk usage," "show me the last few notifications."

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "ecp": {
      "command": "npx",
      "args": ["ecp-mcp-server"],
      "env": {
        "ECP_API_BASE_URL": "https://yourdomain.com:2324/api",
        "ECP_ACCOUNT_USERNAME": "youraccount",
        "ECP_ACCOUNT_PASSWORD": "yourpassword"
      }
    }
  }
}

Other MCP clients

This is a standard stdio MCP server (@modelcontextprotocol/sdk) — any compliant client can spawn npx ecp-mcp-server with the env vars above and use it.

Security notes

Worth understanding before you point this at an account you care about:

  • Scope: one server instance = one hosting account, authenticated exactly as that account (same permissions, same rate limits as logging into ECP's web UI yourself). It cannot reach any other account.

  • Destructive/security-sensitive actions require confirm: true as an explicit tool argument (dropping a table, deleting a file, granting privileges, etc.) — this makes the intent unambiguous in both your MCP client's approval prompt and the audit log below. Don't run this with your client's "auto-approve all tools" setting on.

  • Local audit log: every tool call is appended to a local file (ECP_MCP_AUDIT_LOG_PATH, defaults to audit.log next to the installed package) with secrets redacted — since ECP itself doesn't currently keep a durable record of actions taken this way.

  • Credentials live only in the environment variables you provide and in-process memory — never written to disk beyond what you configure.

  • No shell command execution — see "What it deliberately does not do" above.

Development

git clone https://github.com/EpicLabs23/ecp-mcp-server.git
cd ecp-mcp-server
npm install
cp .env.sample .env   # fill in your own values
npm run build
npm run inspect        # opens the MCP Inspector to test tools manually

License

MIT

Available Tools

194 tools
ecp_apps_create_from_gitA

Create an app by cloning a git repo. Either set provider+repo_full_name (clone via a connected git account, see ecp_git_* tools) or repo_url (+ optional repo_username/repo_password for a private repo). Note: the clone runs in the background - this tool returns once the clone STARTS, not once it finishes. For a large repo, check ecp_apps_directory_tree afterward before assuming the files are all there.

ParametersJSON Schema
NameRequiredDescriptionDefault
branchNo
app_dirYes
app_nameYes
providerNo
repo_urlNo
deploy_typeNo
repo_passwordNo
repo_usernameNo
repo_full_nameNo

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 carries the full burden of behavioral disclosure. It explicitly warns that the clone runs in the background and that the tool returns when the clone starts, not when it finishes, and advises checking ecp_apps_directory_tree afterward. This is important, non-obvious behavior that an agent needs to know.

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

Conciseness5/5

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

Three sentences, each earning its place: purpose, authentication options, and the critical async behavior. The most important caveat is placed at the end but is clearly highlighted, and there is no filler or repetition of schema property names.

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

Completeness3/5

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

The description covers the key authentication modes and the background-clone behavior, but given the tool's complexity—9 parameters, no output schema, and no annotations—it still omits explanations for app_name, app_dir, branch, and deploy_type. It is adequate for a basic call but not fully complete for all valid 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 description coverage is 0%, so the description must compensate for the schema's silence. It explains provider, repo_full_name, repo_url, repo_username, and repo_password, but leaves required parameters like app_name and app_dir, plus branch and deploy_type, unexplained. The added meaning is useful but incomplete for a 9-parameter tool.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Create an app by cloning a git repo.' This clearly distinguishes the tool from siblings like ecp_apps_create_from_upload and the broader ecp_apps_* family, so an agent can identify its purpose without opening the schema.

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

Usage Guidelines4/5

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

The description gives clear guidance on the two authentication modes: use provider+repo_full_name with a connected git account, or repo_url with optional credentials for private repos. It does not explicitly state when to prefer this tool over ecp_apps_create_from_upload, but the git-cloning framing makes the primary use case clear.

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

ecp_apps_create_from_uploadC

Register an app whose files were already uploaded to app_dir.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNo
app_dirYes
app_nameYes
deploy_typeNo

TDQS

C2.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does not state whether this operation mutates state, whether it triggers deployment, what side effects occur, or what the response contains. 'Register' suggests a write operation, but the consequences are undisclosed.

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

Conciseness3/5

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

The description is a single short sentence, which is concise, but it is under-specified rather than efficiently informative. It front-loads the key prerequisite but omits essential context that would justify its length.

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

Completeness2/5

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

For a 4-parameter tool with no annotations and no output schema, this description is incomplete. It does not explain the registration workflow, the meaning of deploy_type, or what happens after registration, leaving an agent to guess at critical invocation details.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only mentions app_dir. It does not explain app_name, domain, or deploy_type, nor how they relate to the registration process. The required parameters are not all described.

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

Purpose2/5

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

The description 'Register an app whose files were already uploaded to app_dir.' states a verb and resource, but it is vague about what 'register' means in this system and how it differs from ecp_apps_create_from_git or ecp_apps_deploy_step. It does not clearly distinguish this tool from the many app-related siblings.

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 implies a prerequisite (files already uploaded to app_dir) but gives no explicit guidance on when to choose this tool over ecp_apps_create_from_git, ecp_apps_deploy_step, or ecp_apps_update_domain. No exclusions or alternative routing are provided.

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

ecp_apps_deleteA

Delete an app: stops its supervisor process (if any) and removes its files. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
confirmYes

TDQS

A3.6/5.0
Behavior4/5

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

Without any annotations, the description takes on the full burden. It discloses important side effects: the supervisor process is stopped and the app's files are removed, plus the 'Irreversible' warning. This transparently conveys the destructive nature of the operation. It does not, however, mention any potential cascade effects or failures (e.g., if the app doesn't exist or files are in use), but for the given granularity this is sufficient.

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

Conciseness5/5

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

The description is very concise and front-loaded. The main action ('Delete an app') appears first, followed by a single clause detailing what happens and a clear warning. It's appropriately sized for the operation and adds no filler.

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 simple operation, the description covers the essential behavior (stopping the process and removing files, irreversibility). However, it lacks explicit clarification on the parameters and any expectations about return values or errors. There is no output schema, so a brief note about what the tool returns (e.g., success confirmation) would improve completeness. The description satisfies the core need but leaves minor gaps.

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 description does not explain the 'id' parameter or explicitly state that 'confirm' must be true to proceed. Although the schema shows a required 'confirm' boolean with const:true, the description provides no contextual meaning (e.g., 'You must pass confirm: true to authorize deletion'). The destructive nature of the operation makes this gap more impactful, as the agent may not understand why the confirm field is needed.

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 ('Delete an app'), the specific resource affected ('an app'), and the scope of destruction ('stops its supervisor process (if any) and removes its files'). It directly tells the agent what this tool does without ambiguity, and the sibling list shows distinct operations like ecp_apps_tail_logs and ecp_supervisor_stop_process, so there's no confusion about purpose.

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 usage guidance about when to use this tool versus alternative tools, nor does it mention prerequisites or warnings beyond the bare statement 'Irreversible.' There is no reference to related operations such as ecp_apps_deploy or ecp_supervisor_* tools, leaving the agent to infer appropriate usage from the operation name alone.

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

ecp_apps_deploy_stepB

Run one step of an app's deploy lifecycle. action='start'|'stop'|'restart'|'remove' manage the app's supervisor process and return a real result. action='install'|'build' run a command in the background via app_root_directory (install_command/build_command) but this tool CANNOT show you their output - check ecp_apps_tail_logs or the app's own state afterward. action='configure' pins an asdf runtime version (stack_version) for the app and also returns no output.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
app_idNo
app_nameYes
deploy_typeNo
build_commandNo
env_file_pathNo
stack_versionNo
start_commandNo
install_commandNo
app_root_directoryYes

TDQS

B3.3/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 discloses that install/build run in the background and cannot show output, that configure returns no output, and that start/stop/restart/remove return a real result. This is meaningful behavioral context beyond the schema, though it omits details like side effects or error handling.

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

Conciseness4/5

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

The description is organized by action groups and front-loads the critical distinction between synchronous supervisor actions and background commands. Each sentence adds information, with no fluff. It's slightly long but structured effectively.

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

Completeness2/5

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

Given 0% schema coverage, no output schema, and 10 parameters, the description is incomplete. It neither explains all parameters nor describes expected return values for start/stop/restart/remove (only 'real result'), nor error behavior. The guidance to check tail logs is useful but insufficient for a tool with this 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 0%, so the description must compensate. It explains the meaning of action, app_root_directory, install_command, build_command, and stack_version, but leaves app_id, app_name, deploy_type, env_file_path, and start_command undocumented. The partial coverage is helpful but does not fully resolve the 10-parameter tool's semantics.

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

Purpose4/5

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

The description clearly states the tool runs one step of an app's deploy lifecycle and enumerates the action values with their specific behavior (start/stop/restart/remove manage supervisor process; install/build run background commands; configure pins asdf version). This distinguishes it from sibling tools like ecp_supervisor_* by framing them as lifecycle steps, though it never explicitly names alternatives.

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

Usage Guidelines2/5

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

The description gives some contextual guidance for install/build (cannot see output, use tail logs) and notes configure returns no output, but it does not explicitly state when to use this tool versus alternatives like ecp_supervisor_start_process for start/stop/restart/remove. No condition or exclusion logic is provided to guide tool selection, so the agent is left to infer.

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

ecp_apps_directory_treeB

Browse the account's directory tree (used to pick a location for a new app, or to sanity-check where a git clone landed).

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNo

TDQS

B3.4/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. 'Browse' safely implies a read-only operation, and the parenthetical clarifies intent, but it does not explain what happens with the optional 'directory' argument, what is returned, or any special behavior. It is adequate but not rich.

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

Conciseness5/5

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

The entire description is a single, efficient sentence. It front-loads the action and immediately reinforces it with two practical use cases, with no redundant 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?

For a tool with one undocumented, optional' and no output schema, the description needed to at least explain the shape of the 'directory' parameter and the tree output. It walks away, leaving the agent to guess how to call it correctly. The use cases are helpful, but the core semantics are incomplete.

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

Parameters2/5

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

The schema provides only the name and type for 'directory' (string, optional) with no description. The description never explicitly says what to pass for 'directory' or how it affects the tree, leaving the agent to infer based on the parameter name. It offers some context but does not compensate for the 0% schema description coverage.

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

Purpose4/5

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

The description states a clear verb ('Browse') and resource ('the account's directory tree') and gives two concrete use cases. It does not explicitly differentiate itself from the sibling ecp_files_directory_tree, but the purpose is not vague.

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 clearly indicates when to use the tool: to pick a location for a new app or to check where a git clone landed. It does not mention exclusions or alternatives, but the provided context is enough to orient usage.

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

ecp_apps_flush_logsB

Clear an app's supervisor-managed process log.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must carry the behavioral burden. 'Clear' communicates that the operation is destructive, but it does not disclose whether the log is truncated or deleted, whether the action is reversible, what impact it has on the running process, or whether special permissions are 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?

The description is a single, front-loaded sentence with no filler. It efficiently conveys the verb, target, and scope without 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 one-parameter destructive action, the description names the target and the effect, which is minimally sufficient for invocation. However, the absence of annotations and any mention of consequences, return behavior, or process impact leaves meaningful gaps 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?

The schema only declares app_name as a string with 0% description coverage, and the description does not explicitly document the parameter. However, the phrase 'an app's ... log' implies that app_name identifies the target app, providing minimal semantic context beyond the bare schema.

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

Purpose5/5

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

The description states a specific verb ('Clear') and a specific resource ('an app's supervisor-managed process log'), which clearly distinguishes this from siblings like ecp_apps_tail_logs or file-based log tools. It also scopes the action to supervisor-managed logs, removing ambiguity.

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 gives no guidance on when to use this tool versus alternatives such as ecp_apps_tail_logs or ecp_supervisor_restart_process. It does not mention exclusions, prerequisites, or which situations call for flushing logs.

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

ecp_apps_getA

Get one app's details by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It implies a read-only lookup via 'get', but it does not describe what 'details' include, what happens if the id is invalid, whether authentication is required, or that this operation has no 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?

One short, front-loaded sentence with no filler. Every word contributes to meaning and it is far more economical than the schema alone.

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 one-parameter getter, the description is minimally sufficient, but with no annotations and no output schema it leaves the response shape, error behavior, and return content completely unspecified.

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

Parameters3/5

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

With 0% schema description coverage, the description must compensate for the single 'id' parameter. The phrase 'by id' clarifies that the parameter is the app's identifier, but it does not specify the id format, its source, or how it relates to results from ecp_apps_list.

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

Purpose5/5

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

The description states a specific verb ('get'), a specific resource ('one app'), and the lookup key ('by id'). It clearly distinguishes this from ecp_apps_list, which targets multiple apps, and from the create/delete/update siblings.

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 clearly implies the tool is for fetching a single app's details, but it does not explicitly say when to prefer it over ecp_apps_list or mention any conditions or exclusions. The usage context is clear but not fully specified.

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

ecp_apps_listB

List all apps on this hosting account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'List all apps,' giving no detail about what fields are returned, whether the response includes metadata, or any other behavioral traits. The description carries the full disclosure burden and does not meet 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?

A single clear sentence with no filler. It front-loads the action and resource effectively for a zero-parameter 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?

Given the tool's simplicity and zero parameters, the description is sufficient for an agent to know how to invoke it. The lack of output-format detail is a minor gap, and the absence of sibling differentiation is somewhat compensated by the clear scope of 'all apps.'

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

Parameters4/5

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

The tool has zero parameters, so the schema leaves no ambiguity. The description does not need to add parameter details; the baseline of 4 applies.

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 uses a specific verb and resource: 'List all apps on this hosting account.' It clearly communicates the tool's scope, though it does not explicitly contrast itself with app-related siblings like ecp_apps_get or ecp_oneclick_blueprint_apps.

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?

There is no guidance on when to use this tool versus alternatives such as ecp_apps_get, ecp_apps_directory_tree, or ecp_oneclick_blueprint_apps. The agent is left to infer selection from the name and one-line description.

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

ecp_apps_save_custom_commandB

Save a named custom command for an app (does not run it - see the blocked command-execution phase in the plan for why 'run' isn't exposed yet).

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
commandsYes

TDQS

B3.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 clearly states the tool does not run the command, which is a key behavioral trait. However, it doesn't disclose whether saving overwrites existing commands, whether commands are validated, or what the response contains. The 'does not run it' clarification is valuable but incomplete.

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 sentence that front-loads the primary action and includes a parenthetical clarification about execution. It is concise and every word earns its place, though the parenthetical could be seen as slightly verbose.

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 save operation with two parameters and no output schema, the description covers the core purpose and the critical non-execution behavior. However, it lacks details about overwrite semantics, validation, or response format, which an agent might need to call it correctly. It is adequate but not complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the two parameters. It mentions 'named custom command' and 'for an app', which loosely maps to 'commands' and 'app_id', but it doesn't explain the structure of the commands array, the meaning of 'title' vs 'command', or any constraints. The description adds minimal semantic value beyond the schema's property names.

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 states a specific verb ('Save') and resource ('named custom command for an app'), and clarifies that it does not run the command. It distinguishes itself from a hypothetical 'run' operation, though it doesn't explicitly name a sibling tool. The purpose is clear and actionable.

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: when you want to persist a custom command without executing it. It references a 'blocked command-execution phase' in the plan, which provides context but no explicit alternatives or exclusions. It doesn't say when not to use it or point to a sibling for running commands, so guidance is partial.

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

ecp_apps_tail_logsC

Tail an app's supervisor-managed process log (only meaningful after a 'start' deploy step).

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes
byte_countNo

TDQS

C2.8/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It states the action ('tail') and a precondition, but does not explain output format (e.g., streaming vs. last N lines), whether it blocks, pagination, or potential failure modes. For a log-tailing tool, this is a significant gap.

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, concise sentence with no filler. The core action is front-loaded, and the contextual qualifier ('only meaningful after...') is appended naturally. It is appropriately sized for the tool's simplicity, though slightly under-specified.

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

Completeness2/5

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

Given no output schema, no annotations, and minimal parameter explanation, the description leaves the agent without key details needed for correct invocation: what byte_count does, what the output will be, and any error conditions. For a tool that might stream logs, this is notably incomplete.

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

Parameters1/5

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

The input schema has two parameters (app_name, byte_count) with 0% coverage in the description. The description does not explain what byte_count means or how it affects the tail operation, and even app_name's semantics are implied only by the name. Since schema lacks descriptions, the description should compensate, but it doesn't.

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 uses the specific verb 'tail' with a clear resource ('app's supervisor-managed process log'), which distinguishes it from generic listing tools. It also adds a key precondition ('only meaningful after a 'start' deploy step'), which helps clarify an important timing aspect. However, it doesn't explicitly differentiate from sibling tools like ecp_apps_flush_logs or ecp_supervisor_list_processes, so it's not a full 5.

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

Usage Guidelines3/5

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

The description provides a usage condition ('only meaningful after a 'start' deploy step'), which gives some context on when to call it. But it does not mention alternatives or scenarios where another tool (e.g., ecp_apps_flush_logs or ecp_supervisor_start_process) would be more appropriate, so the guidance is incomplete.

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

ecp_apps_update_domainC

Point an app at a domain: creates the nginx server block and updates the app's domain record.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
domainYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description carries the behavioral disclosure burden. It does name a concrete side effect (creating the nginx server block), but it does not say whether an existing block is overwritten, whether this is reversible, or what permissions are 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 one short front-loaded sentence with no filler, repetition, or boilerplate. It names the action and the main side effect efficiently.

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 two-parameter tool, the description covers the core goal and one key side effect, making it minimally usable. However, it lacks context about overwrite behavior, domain format expectations, and the sibling static-domain tool, which weakens its completeness.

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

Parameters2/5

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

Schema coverage is 0%, and the description only indirectly maps id to an app and domain to the target domain. No format, constraints, or interaction between id and domain is given, so the agent has to infer the parameter details.

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?

States a concrete action and resource: point an app at a domain, create the nginx server block, and update the app's domain record. It does not explicitly distinguish itself from the sibling ecp_apps_update_static_domain, so it is not a perfect 5.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance is provided. There is no mention of prerequisites, such as the app existing, or how this relates to alternatives like ecp_apps_update_static_domain.

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

ecp_apps_update_static_domainB

Point a static-site app at a domain: creates the nginx static block and updates the app's domain record.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
domainYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the operation creates an nginx block and updates a domain record, but does not mention side effects (e.g., whether existing nginx config is overwritten), reversibility, permission requirements, or failure behavior. For a mutation tool, this is insufficient transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence with no filler. It front-loads the primary action ('Point a static-site app at a domain') and immediately follows with the concrete implementation steps. Every word earns its place, and the structure is ideal for quick parsing.

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?

The tool has moderate complexity, no output schema, and no annotations. The description omits essential context: return value, error scenarios, prerequisites (e.g., app must exist and be static-site), and the format of 'id'. An agent cannot confidently invoke this tool correctly without additional information, making it incomplete for its context.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the 'id' parameter at all. It mentions 'domain' in the text, which hints at its meaning, but 'id' remains ambiguous (e.g., is it the app ID?). The description adds minimal value beyond the schema, which already lists 'id' and 'domain' but provides no descriptions. The agent is left guessing about parameter formats and constraints.

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 ('Point a static-site app at a domain') and the resource ('static-site app'), and specifies the two concrete actions performed ('creates the nginx static block' and 'updates the app's domain record'). This distinguishes it from sibling tools like ecp_apps_update_domain, which is likely for non-static apps, and ecp_nginx_set_conf, which handles nginx config generically.

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 static-site apps, but does not explicitly state when to choose this over the sibling ecp_apps_update_domain or other domain-related tools. There is no mention of exclusions or prerequisites (e.g., app must be static-site type). The guidance is implicit but not actionable for an agent deciding between this and alternatives.

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

ecp_asdf_installA

Install a plugin version (takes time). This tool cannot show install output - check ecp_asdf_list_installed_versions afterward to confirm it succeeded.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
confirmYes
versionYes

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 discloses that the operation takes time, cannot show install output, and requires external verification via a sibling tool. It does not mention side effects, failure modes, or the confirm parameter's role. This is useful but not comprehensive 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?

Two sentences, front-loaded with the purpose and immediately followed by the critical behavioral caveat. No wasted words; every sentence provides essential information for correct invocation.

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 install command, the description covers the main workflow but omits parameter semantics and doesn't explain how to discover valid versions (e.g., via ecp_asdf_list_all_versions). Without annotations or output schema, this is incomplete for an agent to call correctly with confidence.

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

Parameters1/5

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

Schema description coverage is 0%, and the description says nothing about the parameters (name, version, confirm). The agent must infer that 'name' refers to the plugin, 'version' to the specific version, and 'confirm' is a safety flag (since it is const true). No guidance is given on how to obtain these values or formats, leaving significant ambiguity.

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 ('Install a plugin version') and the resource. Distinguishes from sibling asdf tools like list and uninstall by specifying the install action and the follow-up verification step. The phrase 'takes time' adds practical context.

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 guidance on the post-install workflow ('check ecp_asdf_list_installed_versions afterward'), which implies when to use this tool versus alternatives. However, it doesn't explicitly mention when not to use it (e.g., if the version is already installed) or alternative tools for checking availability, so not a full 5.

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

ecp_asdf_list_all_versionsC

List all available versions for a plugin (e.g. nodejs).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.9/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 discloses the read-only nature implicitly ('List') but doesn't clarify whether 'available' means remote registry versions, whether it requires network access, whether the plugin must already be installed/added, or what the response format looks like. For a list operation this is a moderate gap.

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?

One short sentence with an example. It is front-loaded with the verb and resource, and the example adds clarity without bloat. It could be slightly more informative, but it earns its place.

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

Completeness2/5

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

For a simple one-parameter list tool, the description is close to adequate, but with no annotations, no output schema, and 0% parameter coverage, it leaves ambiguity about what 'name' means and what 'available versions' includes. An agent could confuse this with listing installed versions or plugin names, so more context is needed.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only says 'for a plugin (e.g. nodejs)'. It gives an example value but doesn't explain what 'name' refers to (plugin name vs version name), whether it must match an already-added plugin, or any format constraints. The example helps but doesn't fully compensate for the undocumented parameter.

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

Purpose4/5

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

The description states a specific verb ('List') and resource ('all available versions for a plugin'), with an example ('nodejs'). It clearly distinguishes from siblings like ecp_asdf_list_installed_versions (installed vs available) and ecp_asdf_plugin_list (plugins vs versions), though it doesn't explicitly name those siblings.

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 context: it lists available versions for a plugin, which is useful before installing. However, it doesn't explicitly state when to use this vs ecp_asdf_list_installed_versions or ecp_asdf_install, nor does it mention prerequisites like whether the plugin must already be added.

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

ecp_asdf_list_installed_versionsC

List installed versions for a plugin.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.7/5.0
Behavior3/5

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

The verb 'List' clearly implies a read-only operation, so the basic behavior is transparent. However, with no annotations, the description doesn't state what happens on invalid or unknown names, and it doesn't explicitly rule out side effects, leaving the burden on the tool name.

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 extremely concise, a single three-word phrase that is immediately scannable. It contains no fluff or repetition, but the brevity comes at the cost of semantic completeness, which is penalized elsewhere.

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 one required parameter and no explanation of what it refers to, plus no mention of output or relation to sibling tools, the description is not self-sufficient. An agent would need to rely on the tool name and sibling context to use this correctly.

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 parameter schema provides no description, and the tool description does not compensate. 'name' is left undefined — there is no statement that it is a plugin/language name or an example of valid values, so an agent cannot reliably infer how to fill it.

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

Purpose3/5

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

The description names a clear action (List) and an object (installed versions), but 'installed versions' is ambiguous without specifying of what. The tool name implies asdf, but the description doesn't state that `name` identifies a language/plugin, nor does it distinguish this from the sibling ecp_asdf_list_all_versions.

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 given on when to choose this tool over siblings like ecp_asdf_list_all_versions or ecp_asdf_plugin_list. The description does not mention the required `name` parameter, prerequisites, or typical usage context.

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

ecp_asdf_plugin_listA

List asdf plugins currently installed on this account's container.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 the full burden. It does convey that the operation is scoped to 'this account's container' and implies a read-only list operation, but it does not explicitly state that it is non-destructive, nor does it describe any output format or potential limitations. Basic transparency is present, but richer behavioral context (e.g., return structure, pagination) 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?

A single, front-loaded sentence with no redundant words. It begins with the verb and clearly communicates the action and scope, achieving maximum efficiency.

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

Completeness3/5

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

There is no output schema, so the description should at least hint at the return value. It says 'List ... plugins' but does not specify whether the output is a list of plugin names, versions, or additional metadata. It also does not mention that the operation is read-only, though that is implied. For a simple listing tool, this is adequate but not fully complete.

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

Parameters4/5

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

The tool has zero parameters, so the description does not need to elaborate on parameter meanings. The baseline for zero parameters is 4, and the description does not introduce any confusion; it simply lists what the tool returns, which is sufficient.

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') and the resource ('asdf plugins currently installed on this account's container'), including a scope qualifier that distinguishes it from potential siblings like ecp_asdf_plugin_list_all. It 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 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 ecp_asdf_plugin_list_all or ecp_asdf_list_installed_versions. The description does not mention any conditions, exclusions, or alternative tools, leaving the agent to infer usage from the name alone.

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

ecp_asdf_plugin_list_allB

List all asdf plugins available to install (e.g. nodejs, python, ruby).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It states a read-like action (list) but does not disclose whether it requires any setup, the scope of the list (e.g., all sources), or potential errors. It adds minimal behavioral context beyond the verb 'list', though the read-only nature is implied.

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?

One concise sentence with useful examples (nodejs, python, ruby) that clarify what asdf plugins look like. No wasted words, and the purpose is 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?

For a zero-parameter list tool, it is reasonably complete. The examples aid understanding. However, it doesn't clarify that the list is only of available (not installed) plugins, which might be inferred but not explicit enough for full contextual completeness with no annotations or output schema.

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

Parameters4/5

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

The tool has zero parameters and schema coverage is 100%, so there is nothing for the description to add. Given no parameters, a baseline of 4 is appropriate; the description correctly focuses on the tool's purpose.

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

Purpose4/5

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

The description clearly states the action (list) and the resource (asdf plugins available to install), with examples. It is distinct enough from sibling tools like ecp_asdf_plugin_list and ecp_asdf_list_all_versions due to the explicit mention of 'available to install'.

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?

There is no explicit guidance on when to use this tool versus alternatives like ecp_asdf_plugin_list (which likely lists installed plugins) or ecp_asdf_list_all_versions. The phrase 'available to install' implies a use case, but no clear when-to-use/when-not-to-use context is provided.

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

ecp_asdf_set_globalC

Set the global default version for a plugin.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
versionYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations at all, the description carries the full burden of behavioral disclosure, but it only states the basic effect. It does not say whether the plugin/version must already be installed, what system state changes, whether the operation is reversible, or what the tool returns.

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 filler. Every word adds meaning, and it is readily scannable for an agent.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is too thin to be complete: it omits preconditions, side effects, and result behavior. The low parameter count keeps it from being lower, but an agent still lacks enough context to invoke it safely and correctly.

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 provides no descriptions for 'name' or 'version', so the description must compensate. It does clarify that 'name' refers to a plugin and 'version' is the version to make globally default, but it leaves unspecified what version values are valid or whether the version must be installed.

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 uses a specific verb, 'Set', and a specific resource, 'global default version for a plugin', making the operation identifiable without opening the schema. It is clearly distinct from sibling asdf operations like install, uninstall, or listing versions, though it does not explicitly name or contrast them.

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 gives no guidance about when to call this tool, what to do first (e.g., list installed versions or install a version), or when to prefer a sibling asdf tool instead. Usage must be inferred from the tool name and domain.

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

ecp_asdf_uninstallA

Uninstall a plugin version. Breaks anything still configured to use it. This tool cannot show output - check ecp_asdf_list_installed_versions afterward.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
confirmYes
versionYes

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations at all, the description carries the full burden of behavioral disclosure. It explicitly reveals the destructive impact ('Breaks anything still configured to use it') and the lack of output, which is important for a mutation tool without an output schema.

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

Conciseness5/5

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

Three short sentences deliver purpose, warnings, and the post-check workflow with no waste. The most important behavioral caveats are 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?

The description is situationally sufficient for a destructive action and even routes the agent to a verification sibling, but it lacks parameter guidance and does not explain the required confirm flag. Since there are no annotations and no output schema, the remaining gaps are material.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only says 'a plugin version' and never explains the meaning of name, version, or confirm. The confirm parameter in particular is entirely undocumented, which is a gap for a destructive tool that requires explicit confirmation.

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

Purpose4/5

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

The description clearly states the action and resource: 'Uninstall a plugin version.' This makes the tool distinct from related siblings like ecp_asdf_install and ecp_asdf_set_global, though it does not explicitly contrast itself with those alternatives.

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 gives useful operational context by warning that the operation breaks anything still configured to use that version and tells the agent to verify with ecp_asdf_list_installed_versions afterward. However, it does not state explicit when-to-use or when-not-to-use conditions versus similar uninstall/removal tools.

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

ecp_backup_list_snapshotsA

List local restic snapshots of this account's host paths (separate from storage.bd's own backups).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

There are no annotations, so the description carries the full burden. 'List' communicates a read-only operation, and the description clarifies exactly which snapshots are included and which are not. It does not specify output format, but for a zero-parameter list tool that is a minor gap.

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. It states the action and object first, then adds the key scoping distinction in a parenthetical. No filler or redundancy.

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?

This is a simple zero-parameter list operation with no output schema or annotations. The description adequately explains what will be listed and explicitly disambiguates it from storage.bd backups. Nothing necessary for correct invocation is 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?

The tool has zero parameters and 100% schema coverage, so there is no parameter burden for the description to carry. Baseline 4 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 and resource: 'List local restic snapshots of this account's host paths.' It also distinguishes itself from storage.bd's own backups, which prevents confusion with the many storage_bd backup siblings.

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

Usage Guidelines4/5

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

The parenthetical 'separate from storage.bd's own backups' gives clear contextual guidance about scope. It does not explicitly name an alternative tool or list exclusions, but the boundary is clear enough for an agent to route between this and the storage_bd backup family.

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

ecp_crontab_addA

Schedule a cron job. cron_expression is a standard 5-field schedule (e.g. '0 3 * * *'). The command runs unattended, repeatedly, as this account's own system user - review carefully before confirming.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
confirmYes
cron_expressionYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states that the command runs 'unattended, repeatedly, as this account's own system user' and warns to 'review carefully before confirming.' This reveals the security and persistence implications of scheduling a job, which is valuable context beyond the schema. It does not cover all possible behaviors (e.g., error handling, output), but the core safety-relevant behavior is disclosed.

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-loaded with the purpose and then providing a concise behavioral caution. Every word earns its place; there is no filler or redundancy. The structure efficiently conveys the essential information.

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

Completeness4/5

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

Given the tool's simplicity (3 parameters, no output schema, no annotations), the description covers the core purpose, the cron expression format, the execution context (unattended, as user), and a safety warning. It does not explain return values or error scenarios, but for a scheduling tool these are less critical. The description is sufficiently complete for an agent to correctly invoke it, though it could add a note on what the response contains.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate for parameter documentation. It explains the cron_expression format with an example ('0 3 * * *'), which adds value. It does not describe the 'command' parameter (though its purpose is obvious) or the 'confirm' parameter, though the caution 'review carefully before confirming' implicitly references it. The description partially covers parameters but not fully.

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

Purpose5/5

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

The description states a clear verb and resource: 'Schedule a cron job.' It directly addresses the tool's function and is easily distinguishable from sibling tools like ecp_crontab_list and ecp_crontab_remove by naming the action explicitly. There is no ambiguity about what the tool does.

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

Usage 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 versus alternatives or provide exclusions. However, the purpose is self-evident from the name and the context of sibling tools (crontab list/remove). The caution 'review carefully before confirming' implies a decision-making step but does not guide on alternative selection. This is adequate but not explicit.

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

ecp_crontab_listB

List this account's scheduled cron jobs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool lists scheduled cron jobs, but it doesn't mention whether the list is sorted, whether it includes disabled jobs, what fields are returned, or whether any side effects occur. For a read-only listing tool, this is a moderate gap.

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 action and resource. Every word earns its place, and there is no redundant or filler content.

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

Completeness3/5

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

For a zero-parameter listing tool, the description is minimally adequate. However, it lacks context about the output format, whether the list is limited to the current account, and how it relates to cron management siblings. Given the absence of annotations and output schema, a bit more detail would improve completeness.

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

Parameters4/5

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

The tool has zero parameters, so there is no schema burden to compensate for. The description accurately indicates the scope ('this account's scheduled cron jobs'), which is sufficient for an agent to invoke the tool without needing parameter details.

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 states a specific verb ('List') and resource ('this account's scheduled cron jobs'), which clearly identifies the tool's function. It doesn't explicitly differentiate from sibling tools like ecp_crontab_add or ecp_crontab_remove, but the read-only listing intent is unambiguous.

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 about when to use this tool versus alternatives. The description implies a simple listing use case, but there is no mention of exclusions, prerequisites, or related tools such as ecp_crontab_add/ecp_crontab_remove for managing jobs.

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

ecp_crontab_removeA

Remove a scheduled cron job. Must match an existing entry's cron_expression and command exactly (see ecp_crontab_list).

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
confirmYes
cron_expressionYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It does disclose exact-match semantics and implies no wildcarding, but it does not explicitly state irreversibility, what happens on no match, or the role of the confirm flag.

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, focused sentences with no filler. The exact-match constraint and the list reference are front-loaded and directly support correct use.

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 three-parameter removal tool, the description gives the missing operational essentials: match an existing entry exactly and use ecp_crontab_list to get the values. It is adequate for selecting and invoking the tool, though error/no-match behavior is not covered.

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 description adds meaning to cron_expression and command by defining them as an exact-match pair against an existing entry, which is genuinely useful beyond the schema. But it gives no additional meaning to confirm, and schema coverage is 0%, so compensation is partial.

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

Purpose5/5

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

The description states a specific verb ("Remove") and resource ("scheduled cron job"), and it points to ecp_crontab_list as the companion lookup tool, making it clearly distinct from ecp_crontab_add and ecp_crontab_list.

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 explicitly instructs the caller to match an existing entry's cron_expression and command exactly and references ecp_crontab_list, giving clear preconditions. It does not explicitly contrast with ecp_crontab_add or state when not to use the tool, so it stops short of a full when/when-not map.

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

ecp_db_connection_infoA

Get the static host/port connection info for each database engine, for apps running in this account's own container.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. 'Get' and 'static' clearly signal a non-mutating, read-only operation with no side effects. It does not detail return formatting or whether credentials are included, but for a zero-parameter info retrieval tool, the safety profile is sufficiently transparent.

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

Conciseness5/5

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

A single, well-structured sentence that front-loads the verb and resource, then adds the crucial scope qualifier. Every word earns its place with no redundancy or filler.

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 zero-parameter read-only tool, the description is complete: it states what is returned (static host/port connection info), for what scope (each database engine, this account's own container), and the absence of parameters means no invocation ambiguity. No output schema is needed for an agent to correctly select and call this tool.

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

Parameters4/5

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

The input schema defines zero parameters, so the baseline is 4. There are no parameter semantics to explain, and the description appropriately says nothing about parameters.

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

Purpose5/5

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

The description names a specific verb ('Get'), resource ('static host/port connection info'), and scope ('for each database engine, for apps running in this account's own container'). This clearly differentiates it from the many sibling DB tools by focusing on connection metadata rather than database operations or 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?

The scope qualifier 'for apps running in this account's own container' provides some contextual guidance, implying it is for retrieving connection details in this environment. However, it does not explicitly name alternatives (e.g., ecp_db_services_status or network port map tools), nor does it state when not to use this tool.

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

ecp_db_services_statusA

Check whether Postgres/MSSQL/Mongo are enabled/configured/reachable for this account (MySQL is always available - it's EHM's own DB engine, not an optional one).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/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, and it does convey that this is a non-mutating status check across specific DB engines plus the MySQL caveat. It doesn't specify the return format or error behavior, but for a zero-parameter status probe that is a minor gap.

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?

A single sentence covers the action, target engines, scope, and the MySQL exception without redundancies. It is compact, front-loaded, and every clause adds relevant 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?

For a parameterless status check with no output schema, the description is complete enough to select and invoke correctly. It identifies the engines, the status dimensions, account scope, and why MySQL is excluded, leaving no critical ambiguity.

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

Parameters4/5

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

The tool has zero parameters, and schema coverage is 100%, so no parameter documentation is needed. The description adds useful contextual meaning by explaining which engines are relevant and which is always available, which is more than the empty schema supplies.

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 checks whether Postgres, MSSQL, and Mongo are enabled/configured/status for the account, so the agent knows exactly what resource is being checked. The MySQL parenthetical distinguishes this tool from MySQL-related DB tools by explaining MySQL is always available and not part of the optional DB check.

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 gives clear context for when to call this tool: when the status of optional database engines is needed. It also provides an exclusion by noting MySQL is always available and not an optional engine, though it does not name a specific alternative tool.

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

ecp_dns_add_recordC

Add a DNS record to a domain's zone.

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNo
nameYes
typeYes
valueNo
domainYes
commentNo
contentNo
proxiedNo
priorityNo

TDQS

C2.7/5.0
Behavior2/5

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

Annotations are absent, so the description must carry the behavioral burden. It says 'add' and thereby implies a write, but it discloses nothing about conflicts, overwrite behavior, propagation, required permissions, idempotency, or what happens when a record already exists – a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is a single sentence with no filler, exactly no wasted words. It is suitably front-loaded, stating the operation and target immediately, and in concise terms earns its place in the definition.

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 9 parameters, 3 required ones, no output schema, and no annotations, the one-line description is materially incomplete. It does not explain how values map to DNS concepts, the permitted values for `type`, the meaning of `content` versus `value`, whether `proxied` is supported, or what success/error responses look like – so an agent cannot reliably make valid calls.

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

Parameters1/5

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

Schema description coverage is 0% for all 9 parameters, and the description contributes no parameter meaning beyond the existence of 'DNS record.' It leaves required parameters (`domain`, `name`, `type`), optional fields (`ttl`, `value`, `content`, `proxied`, etc.), and their mutual relationships completely undocumented; this fails the low-coverage requirement that the description compensate.

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 says 'Add a DNS record to a domain's zone,' which gives a specific verb ('add'), a concrete resource ('DNS record'), and a target location. This distinguishes it from DNS siblings like ecp_dns_list_records and ecp_dns_delete_record, though it stops short of explicitly contrasting with them.

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 given on when to use this tool instead of ecp_dns_list_records, ecp_dns_delete_record, or domain-management verbs like ecp_domains_add_subdomain. There is no mention of preconditions, typical workflows, or cases where an alternative should be preferred.

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

ecp_dns_delete_recordA

Delete a DNS record from a domain's zone. record must match the existing record (name/type/content) closely enough for the DNS provider to identify it.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
recordYes
confirmYes

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 behavioral burden. It clearly discloses that the operation is destructive and adds a key nuance: the record match is fuzzy — 'closely enough for the DNS provider to identify it — which is not inferable from the schema alone. It could also mention permanence or confirmation expectations, but the core behavioral trait is conveyed.

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 compact sentences with no filler. The action is stated first, and the crucial matching constraint is added in the second sentence without redundancy. Every word earns its place.

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

Completeness4/5

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

For a destructive DNS delete with a nested record object and required confirmation, the description covers the central matching behavior that could trip up an agent. There is no output schema and no explicit return-value information, but the action is simple enough that the missing details are unlikely to block correct 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 description coverage is 0%, so the description must compensate for parameter understanding. It adds meaningful guidance by highlighting that name, type, and content are the matching fields on the record object. However, it does not explain the domain parameter or the confirm flag beyond what their names imply, leaving some semantic burden on 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 names a specific verb and resource: "Delete a DNS record from a domain's zone. It is immediately distinguishable from sibling tools like ecp_dns_list_records and ecp_dns_add_record because the action and target are explicit. No ambiguity remains about what this tool does.

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

Usage Guidelines3/5

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

The description gives a useful prerequisite: the record must match an already-existing record closely enough for the provider to identify it. However, it never explicitly directs the agent to ecp_dns_list_records to fetch that record, nor does it state when not to use this tool. Usage context is implied by the tool name rather than explicitly routed.

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

ecp_dns_list_recordsC

List DNS records for a domain's zone.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

C2.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 carries the full burden of behavioral disclosure. It only says 'List DNS records,' which implies a read operation, but it doesn't disclose whether the list is paginated, sorted, filtered, or what happens if the domain doesn't exist. For a read tool, this is a moderate gap but not a contradiction.

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 short sentence that is front-loaded with the action and resource. It is concise and easy to parse, though it could add a bit more useful context without becoming verbose.

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

Completeness2/5

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

Given the tool has one required parameter, no output schema, and no annotations, the description is too thin. It doesn't explain the return format, error behavior, or any domain validation rules. An agent would need to guess or call the tool to learn basic behavior.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only mentions 'a domain's zone' without explaining the format or semantics of the 'domain' parameter. It doesn't clarify whether the domain should include 'www', a trailing dot, or a subdomain. The description adds minimal value beyond the schema's bare parameter name.

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 states a specific verb and resource: 'List DNS records for a domain's zone.' This clearly identifies the operation. However, it doesn't explicitly distinguish itself from sibling tools like ecp_dns_add_record or ecp_dns_delete_record, though the verb 'list' makes the distinction fairly obvious.

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 about when to use this tool versus alternatives. There is no mention of prerequisites, such as whether the domain must exist or be managed by the system, nor any exclusions. The context signals show many DNS-related siblings, but the description doesn't help an agent choose among them.

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

ecp_domains_add_domainC

Add an additional (addon) domain to this account.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
dns_serverNo

TDQS

C2.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 carries the full burden. It discloses the mutation (adding a domain) but doesn't mention potential side effects, DNS implications, ownership requirements, or whether the operation is reversible. The description is too thin to inform an agent about behavioral consequences.

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, efficient sentence that front-loads the core action. It is appropriately sized for a simple tool, though it could add a bit more context without becoming bloated.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It doesn't explain the role of dns_server, what happens after adding a domain, or how to verify success. An agent would need to guess at important details.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only explains the 'domain' parameter implicitly ('additional domain') but says nothing about 'dns_server', which is a nullable string with unclear purpose. The description adds minimal meaning beyond the schema's bare parameter names.

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 states a specific verb ('Add') and resource ('additional (addon) domain to this account'), which clearly identifies the operation. It distinguishes from siblings like ecp_domains_add_subdomain and ecp_domains_list_additional, though it doesn't explicitly name them.

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 like ecp_domains_add_subdomain or ecp_domains_list_all. The description implies usage for adding an addon domain but provides no context about prerequisites, validation, or 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.

ecp_domains_add_subdomainB

Add a subdomain of a domain this account already owns.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
subdomainYes

TDQS

B3.3/5.0
Behavior2/5

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

With zero annotations, the description carries full responsibility for behavioral disclosure, but 'Add' reveals only that this is a mutation. It does not state whether re-adding an existing subdomain fails or overwrites, what side effects occur (auto DNS, web config, TLS), or any error/reversibility details, so the agent is left guessing about consequences.

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?

Eleven words, action front-loaded, and no filler or repetition. To ensure score faithfulness, every word earns its place and the same meaning-points cannot be further compacted without losing the ownership constraint.

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 two-string-parameter tool with no output schema or annotations, the description covers the essential intent and the key precondition. However it leaves post-conditions unexplained (whether the subdomain is immediately served, needs DNS records, or needs a certificate) and provides no error/failure context, so the agent must probe to be confident.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate; it does map both parameters by naming 'domain' as the owned parent and 'subdomain' as the child being created. But it omits the required subdomain format (e.g., bare label 'www' vs. full 'www.example.com') and the exact relationship the schema expects, so compensation is partial.

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 provides a specific verb 'add' and a clear resource: a subdomain of an already-owned domain. The phrase 'a domain this account already owns' meaningfully distinguishes it from siblings like ecp_domains_add_domain and ecp_domains_delete, though it never names those siblings explicitly.

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 ownership precondition is implied by 'a domain this account already owns,' suggesting the parent domain must exist first (via ecp_domains_add_domain). However, there is no explicit when/when-not guidance, no naming of alternatives, and no direction about whether to reach for ecp_dns_add_record instead when only a DNS name is needed.

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

ecp_domains_deleteA

Delete a domain from this account. Cannot delete the primary domain. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
confirmYes

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 carries the behavioral burden and explicitly states 'Irreversible,' which is critical for a destructive tool. It also discloses the primary-domain restriction. It does not describe downstream effects on subdomains or DNS records, but the core safety-relevant behaviors 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?

Three short sentences convey the action, a key restriction, and irreversibility with no wasted words. The most important operational facts are 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?

The tool is simple, and the description covers the action, a major constraint, and durability of the operation. However, it lacks guidance on what happens if the primary domain is attempted, what confirm must be set to, and whether related DNS or subdomain records are affected, leaving some context gaps given no annotations or output schema.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameter meaning, but it only implicitly references 'domain' and says nothing about the required 'confirm' parameter or the domain format. The 'confirm: true' constraint is left entirely to the schema.

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

Purpose5/5

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

The description states a specific verb and resource: 'Delete a domain from this account.' It also adds a key differentiating constraint, 'Cannot delete the primary domain,' and the verb 'delete' clearly separates it from sibling tools like ecp_domains_add_domain and ecp_domains_set_redirect.

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

Usage Guidelines3/5

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

The usage context is implied by the verb and resource—use this when you need to remove a domain. It provides one when-not condition ('Cannot delete the primary domain') but does not mention alternatives or any prerequisite step such as listing domains first.

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

ecp_domains_list_additionalA

List additional (addon) domains only, excluding the primary domain.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the burden, and it clearly conveys a read-only listing operation scoped to addon domains. It does not mention response format or error behavior, but for a zero-parameter list operation these are less critical.

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?

A single sentence with no filler. The key distinction ('additional (addon) domains only') is front-loaded, and every word earns its place.

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

Completeness4/5

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

For a zero-parameter list tool with no output schema, the description is sufficient to select and invoke it correctly. It could add a note about the return shape, but the core information is present.

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

Parameters4/5

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

The tool has no parameters, and the schema documents this completely with empty properties and 100% coverage. There is nothing for the description to add about parameters; baseline 4 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?

States a specific verb ('List'), the resource ('additional (addon) domains'), and an explicit exclusion ('excluding the primary domain'). This clearly differentiates it from ecp_domains_list_all and other domain-related tools.

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

Usage Guidelines4/5

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

The words 'only' and 'excluding the primary domain' tell the agent when this tool is appropriate: when addon domains are needed and the primary domain is not. It does not explicitly name ecp_domains_list_all as the alternative for full domain lists, but the context is clear.

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

ecp_domains_list_allA

List every domain (primary + additional) on this account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. The verb 'List' clearly indicates a read-only, non-destructive operation. It states the exact data returned (every domain), which is sufficient for a simple list tool. No side effects or special behaviors are implied, and the description doesn't omit anything relevant for a tool with zero parameters.

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 zero waste. It immediately states the action and scope, and the qualification '(primary + additional)' is essential and placed right where it matters. Everything present earns its place.

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 parameter-less list tool with no output schema, the description provides all necessary context: it lists every domain, specifies that both primary and additional are included, and ties to the account. There are no missing details that would prevent an agent from calling it correctly, given the simple nature of the operation.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description adds no parameter-specific information because none exists; the schema already covers the empty parameter set completely. The description correctly focuses on what the tool returns rather than on parameters.

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

Purpose5/5

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

The verb 'List' and resource 'every domain (primary + additional) on this account' clearly define the tool's function. It explicitly distinguishes from the sibling ecp_domains_list_additional by covering both primary and additional domains, leaving no ambiguity about 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 implies this is the comprehensive domain list, contrasting with the sibling that only lists additional domains. While it doesn't explicitly name the alternative, the phrase '(primary + additional)' signals that this is the full-list tool, and no exclusions are needed. This provides clear context without explicit when-not guidance.

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

ecp_domains_remove_redirectB

Remove a domain's redirect.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only says 'Remove a domain's redirect.' It does not disclose whether this is destructive to the redirect configuration, whether it affects the domain itself, whether it requires the domain to currently have a redirect, or what the response/return value looks like. For a mutation operation with zero annotation coverage, this is a significant gap.

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, concise sentence with no wasted words. It is front-loaded with the verb 'Remove' and the resource. It could arguably include more context, but for what it says, it is efficient and clear.

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

Completeness2/5

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

Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is minimal but leaves out important context: what happens to the domain after redirect removal, whether the operation is idempotent, and what the expected result is. The sibling ecp_domains_set_redirect exists, so an agent would benefit from knowing the relationship. The description is not complete enough for an agent to confidently invoke this tool without additional assumptions.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate for the undocumented 'domain' parameter. The description mentions 'a domain's redirect', which implies the 'domain' parameter identifies the domain whose redirect should be removed. However, it does not specify the expected format (e.g., domain name with or without protocol, subdomain handling, etc.). The description adds minimal meaning beyond the schema's bare parameter name.

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 'Remove a domain's redirect.' clearly states the verb (remove) and resource (a domain's redirect). It distinguishes itself from the sibling ecp_domains_set_redirect, which is the inverse operation, and from ecp_domains_delete, which removes a domain entirely. However, it does not explicitly name these siblings or elaborate on what 'redirect' means in this context.

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: call this when you want to remove a redirect that was previously set on a domain. It does not explicitly state when to use this versus ecp_domains_set_redirect or ecp_domains_delete, nor does it mention any prerequisites (e.g., domain must exist, redirect must exist). The context is clear enough for a simple operation, but no explicit guidance is provided.

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

ecp_domains_set_redirectC

Redirect a domain to another URL (e.g. www -> apex).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
redirect_typeYes
redirect_targetYes

TDQS

C2.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 carry the full burden of behavioral disclosure. It does not mention what happens to existing redirects, whether the operation overwrites, side effects, or success/failure behavior. For a mutation tool with zero annotation coverage, this is a significant gap.

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

Conciseness3/5

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

The description is a single concise sentence, which is appropriately short. However, its brevity comes at the cost of missing important details. It is not bloated, but it is also not fully developed to explain key aspects like parameter meanings or side effects.

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

Completeness2/5

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

Given the tool is a mutation with zero annotations and no output schema, the description is incomplete. An agent needs to know what a successful redirect entails, whether it replaces existing redirects, and any constraints (e.g., domain format). The current one-liner is insufficient for safe and correct invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain the parameters. It only implies that 'redirect_target' is 'another URL' and mentions the example, but it does not clarify the meaning of 'permanent' vs 'temporary' for redirect_type, nor specify the format expected for the domain. The description adds minimal semantic value beyond the schema's raw names.

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

Purpose4/5

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

The description clearly states the action ('Redirect') and the resource ('a domain to another URL'), with a clarifying example ('www -> apex'). It is specific enough to understand the tool's function, but it does not explicitly contrast with sibling tools like ecp_domains_remove_redirect, so it misses the chance to fully differentiate.

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 (e.g., when to remove a redirect or when to use a subdomain tool). It simply states what it does, leaving the agent to infer appropriate contexts without exclusions.

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

ecp_files_add_fileC

Create a new empty file.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_nameYes
destinationYes

TDQS

C2.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 carries the full burden. It states the tool creates an empty file, which implies a write operation, but doesn't disclose whether it overwrites existing files, what happens if the destination doesn't exist, whether parent directories are created, or what the response looks like. For a mutation tool with zero annotation coverage, this is a significant gap.

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, efficient sentence with no waste. It's front-loaded with the core action. However, it's so brief that it sacrifices valuable context that could be added without much length.

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

Completeness2/5

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

For a 2-parameter mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain path semantics, overwrite behavior, or return values. The sibling list shows many file operations, but this description doesn't help the agent understand how this tool fits into the file management workflow.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It doesn't explain what 'destination' means (full path? directory?) or what 'file_name' should look like (extension? format?). The description adds no meaning beyond the parameter names themselves, leaving the agent to guess the semantics of both required parameters.

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

Purpose4/5

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

The description 'Create a new empty file.' clearly states the verb (create) and resource (a new empty file). It distinguishes from siblings like ecp_files_add_folder (folder vs file) and ecp_files_write (which writes content vs creating empty). However, it doesn't explicitly mention the destination path or file_name parameters, which are the core of the operation.

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 vs alternatives. It doesn't mention that ecp_files_write might be better for creating a file with content, or that ecp_files_add_folder is for directories. The context of 'empty file' is implied but no explicit when/when-not guidance is given.

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

ecp_files_add_folderC

Create a new folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
destinationYes
folder_nameYes

TDQS

C2.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 carries the full burden of behavioral disclosure. It only restates the core creation action and omits important behaviors such as whether an existing folder causes an error, whether parent directories are created, and what permissions are involved.

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 extremely short and contains no filler words, with the core action front-loaded. However, the brevity is achieved by omitting useful guidance, so it is not a fully appropriate size.

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

Completeness2/5

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

For a mutating tool with no annotations, no output schema, and no parameter descriptions, the description is too thin. An agent cannot determine expected path semantics, failure behavior, or return behavior.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not mention destination or folder_name. The parameter names are somewhat self-explanatory, but the description adds no meaning beyond the schema, and destination in particular is ambiguous without further context.

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 a specific verb and resource: 'Create a new folder.' It is distinguishable from sibling tools like ecp_files_add_file and ecp_files_directory_tree, though it does not add any contextual detail about where or how the folder is created.

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?

There is no guidance about when to use this tool versus alternatives such as ecp_files_add_file, ecp_files_write, or ecp_files_rename. No prerequisites, conditions, or exclusions are mentioned, leaving the agent to infer usage from the name alone.

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

ecp_files_change_permissionC

chmod a file (e.g. new_permission: '644').

ParametersJSON Schema
NameRequiredDescriptionDefault
file_nameYes
new_permissionYes
current_directoryYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state whether the operation is reversible, what errors might occur (e.g., file not found, invalid permission), whether it affects directories or symlinks, or what the response looks like. The 'chmod' verb implies mutation, but no impact details are disclosed.

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, short sentence with an inline example, which is efficient. The example is front-loaded. However, it omits critical details that could be added concisely, such as path resolution or format constraints, slightly reducing efficiency.

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

Completeness2/5

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

Given the low schema coverage (0%), no output schema, and three required parameters with no enums, the description is incomplete. It fails to explain the relationship between the three parameters, the expected permission format beyond a single example, or the operational context (e.g., whether the file is in a remote system). An agent would be uncertain about how to handle edge 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 description coverage is 0%, so the description must compensate. The example 'new_permission: '644'' adds context for the permission format, which is helpful. However, 'current_directory' and 'file_name' are not explained beyond their names; the description does not clarify whether paths are absolute, if current_directory prefixes file_name, or how permissions should be formatted (e.g., leading zeros, symbolic).

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 states a clear verb ('chmod') and resource ('a file'), with an example of the format ('new_permission: '644''). It distinguishes itself from sibling file operations (e.g., write, delete, rename) by specifying it changes permissions specifically. However, it does not explicitly contrast with other permission-related operations, though none exist among siblings.

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 gives no guidance on when to use this tool versus alternatives. It does not mention that this is the only tool for permissions, nor does it clarify scenarios like user/group ownership, recursive changes, or symbolic vs. octal modes. It only implies usage for changing permissions without any explicit context or exclusions.

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

ecp_files_compressC

Compress one or more files/folders into an archive.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathsYes
output_filenameYes
current_directoryYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description bears the full burden of behavioral disclosure, but it only states the action. It does not reveal important behavior such as the archive format (zip/tar/gz), what current_directory is used for, whether existing output files are overwritten, or how paths are resolved. The description confirms the tool creates an archive but leaves significant side effects and constraints undisclosed.

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 efficient sentence with no filler words. It front-loads the action and resource, which is appropriate for a straightforward tool. It is concise, though arguably too sparse, which is a completeness issue rather than a structure issue.

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

Completeness2/5

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

For a tool that creates an archive, has no annotations, no output schema, and 0% schema coverage, the description is under-specified. It omits archive format, path resolution semantics, overwrite behavior, return values, and the role of current_directory. An agent would not have enough information to safely invoke this tool with confidence.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate for parameter meaning. 'Files/folders' loosely maps to file_paths and 'archive' maps to output_filename, giving some hint, but current_directory is entirely unexplained. The description does not clarify whether paths are relative to current_directory, whether it must be absolute, or how the parameters relate to each other.

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 states a specific verb ('Compress') and resource ('files/folders into an archive'), making the tool's core purpose clear. It does not explicitly distinguish this from the sibling ecp_files_extract, but the action is unambiguous enough that an agent can tell it is the compression counterpart.

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 gives no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. While it implies 'use when you need to create an archive,' it does not mention the sibling extract tool or any conditions that would make compression inappropriate.

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

ecp_files_copyC

Copy one file/folder to a destination.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
destinationYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations present, the description carries the full burden of behavioral disclosure. It conveys that the operation is a copy (source preserved, destination created) but omits critical behavior such as overwrite semantics, whether the destination is a directory path or a full file path, handling of existing destinations, and whether intermediate directories are created. For a file-operation tool this is a significant gap.

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 short sentence that conveys the core action immediately. It is concise and front-loaded, though it achieves this by omitting behavioral details. For conciseness itself, it scores well.

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?

There is no output schema and no annotations, so the description is the only context. It fails to mention overwrite behavior, directory creation, destination interpretation, error handling, or how this differs from move/copy_multiple. The description is too minimal to support correct invocation in edge cases, though the basic copy operation is understandable.

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 provides only parameter names (file_path, destination) with no descriptions or formats interested. The description names the parameters implicitly ('Copy one file/folder to a destination') but adds no detail about path syntax, directory-vs-file semantics, or naming behavior. Some meaning can be inferred from parameter names, but the description does not clarify critical details such as whether destination is a directory or a full target path.

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

Purpose3/5

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

The description states a clear verb ('Copy') and a clear object ('one file/folder to a destination'), so an agent can tell this is a copy operation. However, it does not distinguish itself from closely related siblings like ecp_files_copy_multiple, ecp_files_move, or ecp_files_rename beyond the word 'one'. The purpose is minimally clear but lacks any differentiation from alternative 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?

The description gives no guidance on when to use this tool versus ecp_files_copy_multiple, ecp_files_move, or ecp_files_add_file. There are no conditions, prerequisites, or examples indicating appropriate use. An agent must infer usage entirely from the tool name and sibling names.

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

ecp_files_copy_multipleC

Copy multiple files/folders to a destination.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathsYes
destinationYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral context. It hints at a copy operation but doesn't confirm non-destructiveness, error handling, or whether the source can be a folder. The term 'copy' implies non-destructive, but this is not explicit, and no additional context is provided.

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, concise sentence that is easy to read and front-loads the action. It is not overly verbose, but its brevity contributes to the lack of detail.

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

Completeness2/5

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

Given the tool's complexity (copying multiple files/folders) and lack of annotations or output schema, the description is insufficient. It doesn't explain crucial aspects like whether copying a folder is recursive, how conflicts are handled, or what the return value is. More detail is needed for an agent to use it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain the parameters. It mentions 'file_paths' and 'destination' in the name context but doesn't clarify formats (e.g., absolute paths, handling of multiple items, whether destination can be a directory). The description is too brief to compensate for the missing schema details.

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

Purpose3/5

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

The description states the action ('Copy multiple files/folders') and the target ('to a destination') clearly. However, it doesn't distinguish from sibling tools like ecp_files_copy, ecp_files_move_multiple, or ecp_files_move, which could be ambiguous to an agent.

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 ecp_files_copy for single items or ecp_files_move_multiple for moving. It doesn't mention that 'copy' is non-destructive, nor does it specify any constraints on source/destination paths.

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

ecp_files_deleteA

Delete a single file or folder. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
file_pathYes

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 of behavioral disclosure. It does state the critical fact that deletion is 'Irreversible,' which is essential for a destructive operation. However, it does not mention the required confirmation flag, whether folder deletion is recursive, or any permissions 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 short sentences with no filler. The core action is front-loaded, and the critical warning 'Irreversible' is placed immediately after. Every word earns its place.

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

Completeness3/5

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

The tool is simple and the schema is minimal, but with no annotations and no output schema, the description could do more. It omits the confirmation requirement and expected outcomes or errors, leaving some important context for an agent deciding whether to invoke it.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds almost no parameter-level meaning. It implies file_path by saying 'file or folder' but does not explain the confirm parameter or its true-required semantics, which is a meaningful gap for a destructive operation.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Delete a single file or folder.' It clearly scopes the operation to a single item, which differentiates it from the sibling ecp_files_delete_multiple and related file operations like rename or move. The purpose is immediately understandable.

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

Usage Guidelines4/5

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

The phrase 'single file or folder' provides clear context for when this tool applies, but it does not explicitly name alternatives such as ecp_files_delete_multiple for batch deletions. It implies the boundary without stating when-not-to-use or exclusions explicitly.

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

ecp_files_delete_multipleC

Delete multiple files/folders. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
file_pathsYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It warns of deletion but doesn't state that the operation is irreversible, whether confirmation is required beyond the confirm parameter, whether it's recursive for folders, or whether there are any safeguards, error behaviors, or implications for the filesystem. This is a destructive operation with a `confirm` parameter, so those details are critical.

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?

A single sentence, front-loaded with the action and object. It earns its place with no padding. Extremely concise.

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

Completeness2/5

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

For a destructive batch operation with two parameters (confirm constraint, string array) and zero schema descriptions, this is thin. It doesn't state that confirm must be exactly true, whether the array accepts full paths vs relative paths, whether items are deleted recursively, or what the confirmation pattern is. The high-consequence nature of the operation demands more.

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

Parameters2/5

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

Schema coverage is 0% and the description adds minimal parameter meaning. It clarifies that file_paths refers to 'multiple files/folders', which is some value, but it doesn't explain the confirm-requires-true contract, path format expectations, or deletion semantics. The description partially compensates for the schema gap but not enough to achieve a 3.

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 states 'Delete multiple files/folders' with a specific verb (delete) and resource (files/folders), which clearly conveys the tool's core action. It distinguishes reasonably from the sibling ecp_files_delete (singular) by implying batch operation, though it doesn't explicitly contrast them.

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 like ecp_files_delete, ecp_files_move, or ecp_files_rename. There's no context about batching use cases, prerequisites, or when the singular delete is preferable. The agent gets no selection help beyond the name.

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

ecp_files_directory_treeA

Get the directory tree including files (for browsing/editing, unlike ecp_apps_directory_tree which is folders only).

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNo
hidden_filesNo

TDQS

A3.5/5.0
Behavior2/5

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

With zero annotations, the description carries the full burden, but it only reveals that it includes files. It does not say whether it is read-only, whether it recurses, what the output shape is, or what `hidden_files` does. Even a read tool should state it is non-mutating and whether the tree is recursive.

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?

One tight sentence with the core purpose upfront and the sibling distinction in a parenthetical. Every word earns its place; no filler.

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, no annotations, and undocumented parameters, the description provides only a high-level purpose and a sibling comparison. It leaves an agent guessing about path format, recursion, output contents, and the meaning of `hidden_files`.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate for the two undocumented parameters (`directory`, `hidden_files`). It says absolutely nothing about what these parameters mean, what format directory takes, or what the default behavior is for hidden files. This is a critical gap.

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

Purpose5/5

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

The description states a specific verb and resource ('Get the directory tree including files') and explicitly distinguishes itself from the sibling ecp_apps_directory_tree ('which is folders only'). An agent can tell this apart from the main alternative without looking at schemas.

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

Usage Guidelines5/5

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

The description explicitly names the alternative tool (ecp_apps_directory_tree) and states the condition that selects this one: when you need files included, unlike that sibling which is folders only. 'Mobile' is not needed but it gives clear context for the correct situation.

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

ecp_files_extractB

Extract an archive into a destination directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
destinationYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It mentions the core extraction action but does not disclose whether the destination directory must already exist, whether files are overwritten, what archive formats are supported, or what happens on failure.

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?

A single, front-loaded sentence with no filler. Every word contributes to understanding the tool's purpose.

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

Completeness2/5

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

Given the lack of annotations, output schema, and parameter descriptions, this definition is too sparse. An agent cannot determine preconditions like whether the destination must exist, or postconditions like what files are written, making correct invocation and sequencing uncertain.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It adds some meaning by labeling file_path as an archive and destination as a directory, but it omits useful constraints such as supported archive formats, path conventions, or directory creation behavior.

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

Purpose5/5

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

The description states a specific verb ('Extract') and resource ('archive into a destination directory'), making the tool's function immediately clear. It also distinguishes itself from sibling operations like ecp_files_compress or ecp_files_copy.

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

Usage Guidelines3/5

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

Usage is implied by the description: it should be used when an archive needs to be extracted to a directory. However, there is no explicit guidance on when to choose this tool over alternatives or 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.

ecp_files_is_directory_existsB

Check whether a directory exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryYes

TDQS

B3.4/5.0
Behavior3/5

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

The description conveys the core behavior—checking existence—and implies a read-only operation, but it does not explicitly state whether it returns a boolean, raises errors for missing paths, or requires permissions. With no annotations to fill this gap, the behavioral picture 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 front-loaded sentence that states the operation with no wasted words. It is appropriately sized for a simple predicate tool.

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 one-parameter existence check, the description is minimally viable. However, with no output schema and no annotations, it leaves the return format and path semantics unstated, so the agent must rely on inference and naming conventions.

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 only parameter, 'directory', is self-describing by name, but the description adds no guidance on expected format (absolute vs. relative path), symlink behavior, or whether the directory must be accessible. At 0% schema description coverage, the description needed to compensate and did 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 uses a specific verb ('Check') and a specific resource ('a directory'), and the tool name narrows it to existence testing. This clearly sets it apart from sibling file tools like ecp_files_list, ecp_files_directory_tree, and ecp_files_read.

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 before creating or accessing a directory. It names no exclusions, preconditions, or sibling tools that might be more appropriate for related tasks.

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

ecp_files_listC

List files/folders in a directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNo
hidden_filesNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description must carry the behavioral disclosure burden. It conveys that this is a non-mutating list operation, but it does not disclose whether hidden files are included by default, whether it recurses into subdirectories, or what shape the returned list takes.

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, front-loaded sentence with no filler or redundant wording. It loses a point only because its extreme brevity leaves important parameter and behavioral context unaddressed, though the concision itself is effective.

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

Completeness2/5

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

Given no annotations, no output schema, and no parameter descriptions, the description is not complete enough for confident invocation. Missing details include the optional/required nature of directory, hidden_files semantics, default behavior, and the format of the returned listing.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain either 'directory' or 'hidden_files.' The agent is left to guess whether directory is a path or identifier, whether it has a default, and exactly what the hidden_files boolean controls.

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 names a specific verb and resource: 'List files/folders in a directory.' This is clear enough for an agent to understand the basic operation, but it does not distinguish this tool from closely related siblings such as ecp_files_directory_tree, ecp_files_read, or ecp_files_is_directory_exists.

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 ecp_files_directory_tree or when a different file-listing approach would be preferable. There is no mention of context, exclusions, or sibling selection criteria.

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

ecp_files_moveC

Move one file/folder to a destination.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
destinationYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does not mention whether the move overwrites existing files, whether it works across filesystems, whether the destination must be a directory, or what happens on failure. The description only states the action without any behavioral context.

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

Conciseness4/5

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

The description is a single short sentence with no wasted words. It is front-loaded with the verb and resource. However, it is so terse that it sacrifices useful detail, though conciseness itself is appropriate.

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

Completeness2/5

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

For a file operation with no annotations, no output schema, and 0% parameter coverage, the description is incomplete. An agent needs to know whether destination is a directory or full path, whether overwrite is allowed, and what the return value indicates. The sibling set includes move_multiple, copy, and rename, so more context is needed to select and invoke this tool correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the two parameters. It does not explain what file_path and destination mean beyond their names, nor does it clarify whether destination is a directory or a new full path. The description adds no parameter-level meaning.

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 states a clear verb ('Move') and resource ('one file/folder') with a destination. It distinguishes itself from siblings like ecp_files_copy and ecp_files_move_multiple by specifying 'one' file/folder, though it doesn't explicitly name those alternatives.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus ecp_files_move_multiple or ecp_files_copy. The description implies a single-item move but doesn't state exclusions or alternatives, leaving the agent to infer the distinction from sibling names.

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

ecp_files_move_multipleC

Move multiple files/folders to a destination.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathsYes
destinationYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states 'move' which implies a destructive operation on the source files, but doesn't disclose what happens on partial failure, whether the destination must already exist, or whether overwrites are allowed. The schema is similarly bare, so the agent gets no behavioral guidance at all.

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

Conciseness3/5

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

One short sentence that communicates the core action. It doesn't waste words, but it also doesn't add any detail beyond the name and schema. As a descriptive sentence it is minimal but functional.

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

Completeness2/5

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

For a multi-file move operation, the description lacks critical context: destination semantics (directory vs exact path), behavior on collisions, whether overwriting occurs, permission/authorization requirements, and any limitations on the number of files. The sibling set includes ecp_files_copy_multiple and ecp_files_move (single), but nothing distinguishes this from ecp_files_move other than pluralization. The description doesn't mention return values or errors either.

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 two parameters (file_paths and destination) are completely undocumented in the description. Schema coverage of semantics is near zero: we only know types and that both are required. The description's phrase 'move files to a destination' strongly implies the parameters but adds no detail about acceptable path formats, whether source file paths must exist, overwrite behavior, or handling of folders. With minimal schema infoفق, the description should compensate but doesn't.

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, 'Move files', clearly states the verb (move) and resource (files), and the name 'ecp_files_move_multiple' implies batch semantics. However, it does not explicitly distinguish itself from sibling `ecp_files_copy_multiple` or `ecp_files_move` (which doesn't exist in the sibling list but 'ecp_files_copy_multiple' does), so there's minor ambiguity about whether multiple means batch versus single.

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 gives no explicit guidance on when to use this tool versus alternatives like ecp_files_copy_multiple or ecp_files_move (if it exists). The context is fuzzy – it says 'move multiple files' but doesn't clarify when an agent should choose this over single-file move or copy operations.

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

ecp_files_readC

Read a text file's content.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It only says 'read... content' but does not mention side-effect-free behavior, file size or encoding limitations, permission requirements, or what happens if the file is missing or not a text file. The disclosure is minimal and lacks the behavioral detail needed when annotations are absent.

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 sentence with no fluff and is front-loaded with the action and object. It is appropriately compact for such a simple tool, though it is terse enough that it approaches under-specification rather than true conciseness.

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 annotations and no output schema, the description should fill in what an agent needs to know. It doesn't explain the return value format or path constraints, and while the operation is simple, the lack of any behavioral or output details leaves important gaps for confident invocation.

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

Parameters1/5

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

The schema has 0% description coverage, and the description adds no detail about the file_path parameter. It doesn't explain whether paths are absolute or relative, what path scope is allowed, or what format the parameter should take. This leaves the agent to guess the path semantics, a significant gap.

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

Purpose5/5

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

The description clearly states a specific action ('read') and a specific resource ('a text file's content'). It distinguishes itself from sibling file tools such as ecp_files_write, ecp_files_list, and ecp_files_directory_tree by saying exactly what is returned. An agent can immediately tell this tool is for retrieving file contents.

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 gives no guidance on when to use this tool over alternatives. There are no references to companion tools like ecp_files_list or ecp_files_directory_tree, no exclusions, and no prerequisites. The agent must infer usage from the tool name and one-sentence purpose.

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

ecp_files_renameC

Rename a file or folder within a directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_nameYes
file_nameYes
current_directoryYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations exist, so the description carries the full burden of behavioral disclosure. It states the mutation but omits important details such as overwrite behavior, path restrictions, error conditions, or whether new_name may include a different directory.

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?

One short sentence with no filler; the core operation is front-loaded and every word earns its place. It is a model of concise description, even though it sacrifices depth.

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

Completeness2/5

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

For a mutation tool with no annotations, no output schema, and underexplained parameters, the description is too thin. It leaves meaningful ambiguity around overwrite behavior, path semantics, and how it relates to move/copy sibling tools.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no parameter-level details. The parameter names and the phrase 'within a directory' hint at basic meaning, but path format and whether new_name can move the item are left unexplained.

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

Purpose4/5

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

The description uses a specific verb ('rename') and resource ('file or folder within a directory'), so the operation is clear. It does not explicitly contrast it against sibling tools like ecp_files_move or ecp_files_copy, but the rename action is reasonably distinguishable.

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 about when to use this tool instead of alternatives. There is no mention of prerequisites, exclusions, or when a move/copy operation 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.

ecp_files_writeB

Overwrite a text file's content (creates it if it doesn't exist). Can break a running app if it's a config/env/source file - review the current content first.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
file_pathYes
file_contentYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations present, the description carries the full behavioral disclosure burden and does disclose the overwrite/create semantics and the risky effect on a running app. However, it fails to mention the mandatory `confirm` gate, whether the overwrite is irreversible, or what happens on errors or path issues.

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 tightly worded, front-loaded sentences. The core action is stated first and the risk/recommendation follows immediately, with no distracting detail or redundancy.

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

Completeness2/5

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

For a three-parameter mutation tool with 0% schema description coverage and no annotations or output schema, the description is underdeveloped. It leaves the `confirm` flag, error behavior, file-path semantics, and safety details unspecified, so an agent cannot confidently invoke the tool correctly from this definition alone.

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

Parameters2/5

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

The input schema has 0% description coverage and the description does not effectively compensate. It only hints that file_content is text, but does not clarify file_path format, that confirm must be true, or the relationship between parameters and the described behavior.

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

Purpose4/5

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

The opening line states a specific operation (overwrite) on a specific resource (a text file's content) and adds that creates file if it doesn't exist, distinguishing it from read, list, and most delete/rename tools. The description does not name a specific sibling alternative, but the action semantics are clear enough to separate it from the many other file 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?

The description supplies context relevant to choosing this tool: it's for replacing file content, with a caution about breaking running apps when the file is a config/env/source file and a suggestion to review it first. It does not name sibling tools or state when to prefer this over alternatives, leaving 'when to use' mostly implicit.

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

ecp_git_authorize_urlA

Get the OAuth authorize URL to connect a git provider. Open it in a browser to complete the connection - this tool can't complete OAuth itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerYes

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 the full behavioral burden. It discloses a key limitation: the tool only returns a URL and cannot complete OAuth itself, which is valuable. However, it does not mention any side effects, prerequisites (e.g., whether the provider must already be configured), or error conditions. The description gives the essential behavior but not a comprehensive picture.

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 concise sentences with no redundancy. It front-loads the primary action ('Get the OAuth authorize URL') and then adds the essential caveat about opening it in a browser. Every word earns its place.

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

Completeness4/5

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

For a simple tool with a single parameter and no output schema, the description covers the core purpose and the critical caveat about browser completion. It does not mention whether the URL is one-time or whether the user should first check existing connections (via ecp_git_list_connections), but given the tool's simplicity, this is not a significant gap. The description is adequate for an agent to use the tool correctly.

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

Parameters3/5

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

The description does not elaborate on the 'provider' parameter, but the enum in the schema (github, gitlab, bitbucket) makes the valid values clear. Since the tool is specifically for git providers and the parameter is self-explanatory, the description adds no extra meaning. With 0% schema description coverage, it would benefit from a note like 'Specify the provider you want to connect,' but the enum suffices for correct invocation.

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

Purpose5/5

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

The description clearly states the tool's function: retrieving an OAuth authorize URL for connecting a git provider. It uses a specific verb ('Get') and a precise resource ('OAuth authorize URL'), and distinguishes itself from sibling tools like ecp_git_list_providers or ecp_git_list_connections by focusing on the authorization step. No ambiguity.

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 explicitly instructs to open the URL in a browser and notes that the tool cannot complete OAuth itself, giving clear guidance on the immediate next step. It implies this is the initial step in connecting a provider, but does not explicitly mention alternatives or when not to use it. The context is sufficient for an agent to know when to invoke it.

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

ecp_git_disconnect_providerC

Disconnect a connected git provider.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
providerYes

TDQS

C2.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, but it only states the disconnect action without disclosing consequences such as whether connected repositories, webhooks, or OAuth tokens are affected. The confirm:true parameter hints at destructiveness, but the description does not explain it.

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, front-loaded sentence with no filler. It is appropriately short, though it slightly repeats the connect root in 'disconnect/connected'.

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

Completeness2/5

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

For a potentially destructive action with no annotations and no output schema, the description should explain preconditions, side effects, and success behavior. It only offers a terse statement of the action, leaving important context unanswered.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no parameter-level meaning. The provider enum and the confirm const:true are only visible in the schema, with no explanation of what they mean or why confirmation is required.

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 uses a clear action verb ('Disconnect') and a specific resource ('connected git provider'). It distinguishes the tool from related git management siblings like ecp_git_list_connections and ecp_git_authorize_url, though it does not explicitly name them.

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?

There is no guidance about when to use this tool versus alternatives, nor any mention of prerequisites such as requiring an existing connection. The intended use is only implied by the tool name and brief description.

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

ecp_git_list_connectionsA

List this account's connected git accounts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 carry behavioral disclosure. It merely says 'List', which implies a read-only operation, but does not explicitly state that it has no side effects, nor does it mention authentication, rate limits, or any other behavioral traits. The description adds no insight beyond the tool name.

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

Conciseness5/5

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

The description is a single, clear sentence with no fluff. It is front-loaded with the action and object, making it immediately understandable. Every word earns its place.

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

Completeness4/5

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

For a simple list operation with no parameters and no output schema, the description is complete enough. It clearly states what it lists. It does not explain the return format, but that is largely self-evident for a list operation. No critical information is missing for an agent to use it correctly.

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

Parameters4/5

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

The tool has zero parameters, so the schema trivially covers 100% of them. The description adds no parameter information because there are none. Per the baseline rule for zero-parameter tools, a score of 4 is appropriate since there is nothing to document beyond the schema.

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

Purpose5/5

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

The description clearly states a specific verb ('List') and resource ('this account's connected git accounts'), which unambiguously distinguishes it from siblings like ecp_git_list_providers (available providers) and ecp_git_list_repos (repositories). No ambiguity in purpose.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. While the name implies it is for listing connections, it does not mention sibling tools or conditions for selection, leaving the agent to infer the appropriate context.

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

ecp_git_list_providersA

List git providers (GitHub/GitLab/Bitbucket) enabled for this install.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must carry the load. It does reveal a read-only, scope-limited behavior ('enabled for this install'), but it does not mention permissions, return format, or any edge cases like unknown providers.

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 filler. The parenthetical list of provider names is compact and adds meaning without bloating the text.

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 zero-parameter, no-output-schema list operation, the description adequately conveys the operation, scope, and result subject. It is enough for an agent to invoke the tool correctly, though a bit more detail about the return shape would fully close the gap.

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

Parameters4/5

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

The tool has zero parameters and 100% schema coverage, so there is nothing to document. The description adds useful domain context by enumerating the provider types (GitHub/GitLab/Bitbucket), making the baseline of 4 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'), the resource ('git providers'), and narrows it to GitHub/GitLab/Bitbucket enabled for the install. This is distinguishable from siblings like ecp_git_list_connections and ecp_git_list_repos.

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 is given about when to use this tool versus related git tools such as ecp_git_list_connections or ecp_git_authorize_url. The intended use case must be inferred from the name and description.

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

ecp_git_list_reposA

Browse repos available via a connected git provider (for picking one to deploy from).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
searchNo
providerYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden, and it does signal that this is a read-oriented browsing operation that depends on an existing provider connection. It doesn't disclose behavior like pagination, result ordering, or the absence of filtering, but for a simple browse 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?

A single sentence with no filler; the key scoping information and purpose are front-loaded. Every word contributes meaning, making it an efficiently structured description.

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

Completeness3/5

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

For a list/browse tool with three parameters and no output schema, the description is minimally sufficient but leaves gaps: it doesn't explain that provider must correspond to an already-connected provider or how page/search affect results. An agent can call the tool correctly using the schema, but not with full confidence about behavior.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to compensate by explaining provider, page, and search, but it does not address any of them. The only indirect hint is 'connected git provider', which loosely relates to the provider parameter; page and search are left entirely to inference from their names.

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 names a specific verb ('Browse') and resource ('repos available via a connected git provider'), and adds the purpose 'for picking one to deploy from'. It is clearly distinct from sibling git tools like list_providers and list_connections, though it does not explicitly call them out.

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 parenthetical 'for picking one to deploy from' provides a clear use case for when this tool should be selected. It does not, however, explicitly exclude alternatives or explain when list_connections/list_providers 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.

ecp_git_webhook_capabilitiesC

Get what webhook features the app's git provider supports.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must carry the full behavioral disclosure burden. 'Get' implies a read-only operation, but it does not explicitly state that it makes no modifications, nor does it mention potential failure conditions (e.g., app has no git provider) 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.

Conciseness3/5

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

The description is a single concise sentence with no filler, but it is too terse to convey necessary context. It is front-loaded with the verb, but omits essential details that could be included without much bloat.

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

Completeness2/5

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

Given no output schema, no annotations, and a single parameter, the description is incomplete. It does not explain what the response will contain (e.g., a list of supported events, boolean flags), nor how it relates to the other git webhook tools. An agent cannot confidently infer the tool's full behavior from this description.

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

Parameters1/5

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

The only parameter, app_id, is completely undocumented. The schema has 0% description coverage and the tool description does not explain what app_id refers to or how it is used. The agent is left to infer from the name alone.

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 states a specific verb 'Get' and a resource: 'webhook features the app's git provider supports.' This distinguishes it from siblings that create/update/delete webhooks or list providers/repos. However, 'webhook features' is vague – it doesn't specify what kinds of features (e.g., events, secret rotation) are queried.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like ecp_git_webhook_create or ecp_git_webhook_get. The natural use case (checking capabilities before creating a webhook) is only implied, not stated.

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

ecp_git_webhook_createA

Create a deploy webhook for an app: runs commands automatically whenever a matching push arrives. Review each command carefully before confirming.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
confirmYes
commandsNo
providerYes
branch_filterNo

TDQS

A3.5/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 does disclose the primary behavioral effect: 'runs `commands` automatically whenever a matching push arrives' and includes a safety warning to review commands before confirming. However, it does not mention potential side effects such as overwriting existing webhooks, required permissions, or irreversibility, leaving gaps in transparency.

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

Conciseness5/5

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

The description is extremely concise: two sentences with no fluff. The primary purpose is front-loaded, and the warning about reviewing commands is relevant and placed after the core action. Every sentence contributes meaning, and nothing is repetitive.

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?

This is a creation tool with 5 parameters, no output schema, and no annotations. The description is sparse and does not explain key parameters or the interaction between them (e.g., how provider and branch_filter affect the webhook). It also omits any mention of what the response will contain or any side effects beyond running commands. An agent would struggle to construct a correct request without additional information.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameter documentation. It only hints at two parameters: `commands` (runs commands) and `confirm` (review before confirming). It does not explain `app_id`, `provider`, or `branch_filter`, which are critical for correct invocation. The description adds minimal value beyond the schema and fails to cover all 5 parameters.

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

Purpose5/5

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

The description clearly states the action: 'Create a deploy webhook for an app.' It specifies the resource (webhook) and the verb (create), and distinguishes itself from sibling tools like get/update/delete by the explicit creation intent. It also elaborates on the purpose by explaining the webhook runs commands on matching pushes.

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 (when you want to create a new deploy webhook) but does not explicitly differentiate it from alternatives like ecp_git_webhook_update or delete. No exclusions or conditions are provided, so the guidance is only implied rather than explicit.

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

ecp_git_webhook_deleteB

Delete an app's deploy webhook. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
confirmYes

TDQS

B3.4/5.0
Behavior3/5

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

The description discloses that the operation is 'Irreversible', a key behavioral trait. However, with no annotations provided, it carries the full burden of behavioral disclosure but does not mention other aspects like required confirmation (though the schema implies it) or any side effects beyond permanence.

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, using two short sentences to convey purpose and a critical caveat. It is front-loaded with the action and resource, and every word earns its place.

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

Completeness3/5

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

For a simple delete operation with only two parameters and no output schema, the description is fairly complete. It states the action and irreversibility, but it could have mentioned the confirmation requirement or the impact on the app's deployment workflow. Given the simplicity, it is adequate but not rich.

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 description provides no explanation of the parameters app_id and confirm. Schema coverage is 0%, so the description should compensate but does not. The confirm parameter's const true requirement is only visible in the schema, and the description does not clarify that confirmation is mandatory.

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 'Delete' and the resource 'an app's deploy webhook', making the operation unambiguous. It also distinguishes from sibling webhook tools like get, create, update, and rotate_secret by specifying the destructive action.

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?

There is no guidance on when to use this tool versus alternatives. It does not mention conditions, prerequisites, or any exclusions. The agent is left to infer that deletion is appropriate only when a webhook should be removed permanently.

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

ecp_git_webhook_deliveriesA

List an app's webhook delivery history (for debugging why a push didn't deploy).

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes

TDQS

A4.2/5.0
Behavior3/5

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

There are no annotations, so the description carries the behavioral burden. The verb 'List' clearly signals a read-only operation, and the debugging purpose implies the response includes delivery attempt details. However, it does not mention any other behavioral traits (pagination, sorting, failure details, or if it's merely a summary). For a list operation this is acceptable but not fully transparent.

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

Conciseness5/5

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

A single sentence with no unnecessary words. The primary action and resource are front-loaded, and the scope of purpose is added in a short parenthetical. No filler or repetition exists.

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

Completeness4/5

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

For a simple one-parameter read operation, the description covers the essential points: what it lists, whose history, and why. There is no output schema, so the description should ideally hint at what fields are returned, but the debugging purpose implies the relevant data will be present. This is complete enough for an agent to call and interpret: use it, inspect the returned delivery records.

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

Parameters4/5

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

The description's phrase 'app's webhook delivery history' directly ties the sole parameter app_id to the app whose deliveries should be listed. Since the schema provides no description for app_id, the tool description compensates well by giving the parameter clear 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 uses a specific verb ('List') and a specific resource ('app's webhook delivery history'). It also states the intended use case ('for debugging why a push didn't deploy'), which distinguishes it from the sibling webhook management tools that configure webhooks rather than inspect their delivery attempts.

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 parenthetical provides clear diagnostic context: use this when investigating a failed deployment. It does not explicitly name alternatives or state when not to use it, but the use case is specific enough that only a minor echo of 'when not' would bring it to 5.

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

ecp_git_webhook_getB

Get an app's git deploy-webhook config and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get' conveys a read-only, non-mutating operation, which is the key behavioral trait, but the description adds no further context such as side-effect absence, response behavior, or error conditions. This is minimal but not misleading.

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 filler words. Every part contributes meaning, and 'Get' immediately signals the operation type. This is appropriately concise for a simple getter tool.

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: one parameter, no output schema, no annotations. The description identifies the resource and the return concept ('config and status), which is adequate for a minimal getter. However, the lack of parameter semantics and absence of any return format or usage-against-siblings guidance leaves some gaps for an agent trying to invoke the tool correctly.

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

Parameters2/5

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

The schema has 0% description coverage and the description does not mention the `app_id` parameter at all. The parameter name is self-explanatory as an app identifier, and the schema gives its type, but the description adds no additional meaning such as where the app_id comes from or how it should be formatted. With no compensation for the low coverage, this is a clear gap.

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 uses a specific verb ('Get') and names a specific resource ('an app's git deploy-webhook config and status'), which makes the core purpose clear. It is readily distinguishable from the webhook create/update/delete siblings, though 'status' could be more clearly separated from related tools like ecp_git_webhook_deliveries or ecp_git_webhook_capabilities.

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

Usage Guidelines3/5

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

Usage context is implied: the agent should call this when it needs the current git deploy-webhook configuration/status and not when it wants to create, update, or delete a webhook. However, the description does not explicitly state when not to use it or name alternative tools, so an agent must infer the boundary from the verb and sibling names.

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

ecp_git_webhook_rotate_secretC

Rotate an app's deploy-webhook secret (invalidates the old one).

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
confirmYes

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It does state a key side effect ('invalidates the old value'), which is helpful. However, it does not mention the need for an explicit confirmation, the fact that a new secret will be generated (and how that new secret is surfaced to the agent/user), or any other possible operational consequences.

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 sentence that front-loads the main action and the primary behavioral effect. It does not waste words, though it could be expanded slightly to hint at the confirm requirement without hurting conciseness.

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

Completeness2/5

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

Given the lack of annotations, no output schema, and a bare parameter schema, the description leaves important gaps: the purpose of 'confirm', what the tool returns (e.g., the new secret), and what happens if the app has no webhook. An agent cannot fully understand the tool's contract from the provided description and schema alone.

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 description only hints at 'app_id' by referring to 'an app', but does not clarify its nature or format. The 'confirm' parameter — a boolean const true — is completely unexplained, leaving unstated that the user must explicitly confirm this destructive operation. Since schema coverage is 0%, the description partially compensates for app_id but fails on confirm.

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 uses a specific verb ('Rotate') and names a precise resource ('app's deploy-webhook secret') with a clear effect ('invalidates the old one'). This distinguishes it from sibling tools like ecp_git_webhook_create, ecp_git_webhook_update, and ecp_git_webhook_delete, although it does not explicitly contrast with them.

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 tells what the tool does but provides no guidance on when to choose rotation over updating or deleting a webhook, or any situational triggers. There are no explicit use-case conditions or exclusions, so the agent must infer the selection from the name and prior knowledge.

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

ecp_git_webhook_updateC

Update an app's deploy-webhook branch filter and/or commands. Review each command carefully before confirming.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
confirmYes
commandsNo
providerYes
branch_filterNo

TDQS

C2.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 carries the full behavioral burden. 'Review each command carefully before confirming' hints that this mutates persistent deploy-webhook state and warrants caution, which is some added context. However, it does not disclose whether changes are reversible, what exactly gets overwritten, whether authorization/permissions are required, or what happens to fields not specified. For a mutation tool with zero annotation coverage, this is a significant gap.

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?

Two sentences with no filler; the primary action is front-loaded and the safety reminder is appended. Every clause earns its place. It loses a point only because it is so brief that it omits substantive detail it might otherwise convey — but as written, it is well-structured and economical.

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

Completeness2/5

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

Given 5 parameters, 0% schema description coverage, no annotations, and no output schema, this description is incomplete. An agent cannot determine the expected format of app_id (string/number ambiguity), the role of provider as a gate on available providers, the semantics of the commands objects, or what the call returns. For a mutation tool of this complexity, the description should do considerably more.

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?

With schema description coverage at 0%, the description must compensate, and it only partially does. It names two of five parameters ('branch filter' and 'commands') but leaves app_id, provider, and confirm unexplained. It also does not clarify the structure of the commands array items (title vs. command) despite the schema defining nested objects with a required command field. Meaning beyond the schema is thin for most parameters.

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

Purpose4/5

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

The description states a specific verb ('Update'), a resource ('an app's deploy-webhook'), and the targeted fields ('branch filter and/or commands'). This clearly distinguishes it from sibling webhook tools (create, get, delete, rotate_secret) by its modifying nature. It earns a 4 rather than a 5 because it does not explicitly name or contrast itself against webhook_create or webhook_get, leaving some differentiation implicit.

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?

There is no guidance on when to use this tool versus alternatives. It does not say 'use this when a webhook already exists' nor name webhook_create as the alternative for new webhooks. The only usage-adjacent advice is 'Review each command carefully before confirming,' which is a safety instruction rather than selection guidance. An agent has no explicit exclusions or conditions to route on.

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

ecp_mongo_assign_user_to_databaseA

Grant a MongoDB user readWrite access to a database (both must already belong to this account). MongoDB only supports whole-database readWrite here - no read-only or per-collection grants like MySQL/Postgres. Security-sensitive - review carefully before confirming.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
db_usernameYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the operation is security-sensitive and requires careful review, and it states the limitation that only whole-database readWrite is supported. It also mentions the prerequisite that both resources must exist. However, it does not describe the response format, idempotency, or potential failure modes, which would add further behavioral transparency.

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

Conciseness5/5

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

The description is concise and well-structured, with two sentences. The core action is front-loaded, followed by the limitation and security warning. There is no redundant wording, and the security-sensitive note is placed at the end as an important caveat.

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 grant operation with three parameters, the description covers the purpose, prerequisites, limitations, and security caution. It lacks details on what happens on success or if the user already has access, but these are not critical for correctly invoking the tool. The main elements needed to avoid mistakes are present.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning to db_name and db_username by stating they must already belong to the account, and it implicitly explains the confirm parameter as a confirmation step ('review carefully before confirming'). It does not provide additional format, syntax, or validation details beyond the schema, so the compensation is partial.

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

Purpose5/5

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

The description states a specific action ('Grant a MongoDB user readWrite access to a database') with a clear verb and resource. It also differentiates from MySQL/Postgres by noting that only whole-database grants are supported, which helps an agent distinguish this from other database privilege tools. The scope is unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context: it states that both user and database must already belong to the account, establishing a prerequisite. It also notes the limitation that only whole-database readWrite is supported (no read-only or per-collection grants), but it does not explicitly name an alternative tool for those other privilege types, leaving some inference needed. This is clear context without explicit exclusions.

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

ecp_mongo_backup_to_storage_bdB

Back up a MongoDB database to the account's storage.bd tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must carry the behavioral disclosure burden. It identifies the operation and destination, but does not mention whether the backup is synchronous or asynchronous, whether it creates a snapshot/job, whether it overwrites existing backups, what permissions are required, or what the response indicates.

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 sentence with no filler, front-loads the core action and resource, and is immediately scannable. Every word contributes to understanding what the tool does.

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?

The tool is simple, but with no annotations and no output schema, the description should explain what happens after invocation and how results are observed. It fails to mention storage.bd configuration prerequisites, job/status tracking, or return behavior, leaving an agent with incomplete context for a backup 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 schema has 0% description coverage, but there is only one parameter, db_name, whose purpose is fairly obvious. The description adds that the database is MongoDB, giving some semantic context, but it does not explicitly state that db_name is the name of the database to back up or mention any constraints like existence requirements.

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

Purpose5/5

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

The description states a specific action ('Back up'), a specific resource ('a MongoDB database'), and a clear destination ('the account's storage.bd tenant'). This distinguishes it from sibling backup tools for MySQL, MSSQL, and PostgreSQL by naming MongoDB 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 is provided about when to use this tool versus alternatives such as ecp_mongo_restore_from_storage_bd, ecp_storage_bd_job_status, or ecp_backup_list_snapshots. The intended use is only implied by the name and one-line description, with no exclusions or alternative routing.

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

ecp_mongo_browse_documentsC

Browse documents in a collection. Connects as the given db_username/password, which must be a user this account owns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
filterNo
db_nameYes
passwordYes
page_sizeNo
sort_fieldNo
db_usernameYes
sort_directionNo
collection_nameYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses the authentication requirement (db_username/password must be a user this account owns), which is useful. However, it doesn't disclose pagination behavior, default page size, sort behavior, what the response looks like, or whether this is a read-only operation. For a browse tool with 9 parameters, this is a significant gap.

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 two sentences and front-loads the core purpose ('Browse documents in a collection') before the credential note. Every sentence earns its place, and there's no fluff. It's concise, though it could add more behavioral detail without becoming bloated.

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

Completeness2/5

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

Given 9 parameters, 0% schema coverage, no output schema, and no annotations, the description is incomplete. An agent needs to know how filter, sort, and pagination work, what the response format is, and whether any side effects occur. The credential requirement is a good start, but the overall context is insufficient for correct invocation, especially for the filter object.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. The description only mentions db_username/password and collection browsing, but doesn't explain the meaning of page, page_size, filter, sort_field, sort_direction, db_name, or collection_name beyond what the schema names imply. The filter object is a nested object with no explanation of its structure (e.g., MongoDB query syntax). This is a substantial gap given 9 parameters and 0% 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 states a clear verb and resource: 'Browse documents in a collection.' It distinguishes this from other Mongo tools by focusing on browsing/reading documents, and the sibling list includes insert/update/delete document tools, so the read intent is clear. However, it doesn't explicitly name a sibling alternative or contrast with other browse tools (e.g., ecp_mssql_browse_rows, ecp_postgres_browse_rows), so it's clear but not fully differentiated.

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 context: it's for browsing documents in a Mongo collection, and the credential requirement ('Connects as the given db_username/password, which must be a user this account owns') gives a prerequisite. However, it doesn't explicitly state when to use this vs. alternatives like ecp_mongo_list_collections or ecp_mongo_insert_document, nor does it mention exclusions or when not to use it. The usage context is implied but not explicit.

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

ecp_mongo_create_collectionC

Create a collection in a database.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
collection_nameYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It merely repeats the operation ('create') and provides no detail on side effects, permissions, idempotency, failure modes, or behavior when the collection already exists. This is barely more informative than the tool name itself.

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

Conciseness3/5

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

The description is one short sentence with no filler and is front-loaded. However, it is under-specified rather than efficiently complete; its brevity comes at the cost of nearly all useful context.

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

Completeness2/5

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

For a two-parameter creation tool with no annotations and no output schema, the description omits important context: prerequisites, what happens on duplicate creation, return behavior, and which sibling operations are relevant. The large sibling list of Mongo tools increases ambiguity, making this description incomplete.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to db_name or collection_name beyond the schema's plain string types. There are no format hints, constraints, examples, or clarification about what values are valid. The description fails to compensate for the undocumented parameters.

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

Purpose4/5

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

The description states a clear verb+object: 'Create a collection in a database.' It unambiguously identifies the operation and resource. However, it does not distinguish itself from closely related Mongo tools like ecp_mongo_drop_collection, ecp_mongo_list_collections, or ecp_mongo_create_database, so it misses the top score.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives. It does not mention whether the database must already exist, how it relates to ecp_mongo_create_database, or contrast with list/drop collection operations. An agent is left to infer usage entirely from the tool name.

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

ecp_mongo_create_databaseA

Create a MongoDB database. db_name gets the account's own prefix applied automatically. db_username must already exist (see ecp_mongo_create_user).

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
db_usernameYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations present, the description carries the full burden of behavioral transparency. It discloses that the prefix is applied automatically and that the username must exist, both non-obvious and important behaviors. However, it does not mention side effects like what happens if the database already exists, or what is returned on success, though it does not need to be exhaustive for a tool with no annotations.

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 zero fluff. The first line gives the action, and the second packs two critical behavioral facts (automatic prefixing and the existing-user prerequisite). The description is front-loaded and every word pulls its weight.

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 create tool with two required parameters and no output schema, the description covers all key context: both parameters, a precondition, and a pointer to a related tool. It does not describe the result of the operation, but that is often standard for this style of tool, so the description is sufficient for an agent to call it correctly.

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

Parameters4/5

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

Schema description coverage is 0% for both parameters, so the description must compensate. It does: it clarifies db_name as the user-supplied base name that receives an automatic prefix, and db_username as an existing user. This adds meaningful semantics beyond the bare string type.

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 operation: 'Create a MongoDB database.' This specifies a generic verb and resource, but the inclusion of 'MongoDB' differentiates it from sibling database creation tools (mysql, mssql, postgres). It further adds a distinctive behavior: 'db_name gets the account's own prefix applied automatically.' This makes the tool's 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 does not explicitly contrast with alternative database creation tools, but it does provide essential context: the db_username must already exist and references ecp_mongo_create_user for creating one. This gives clear guidance on a prerequisite step, but stops short of explicitly saying 'use this versus creating a MySQL/MSSQL/PostgreSQL database' or 'do not use if the username is not created yet'.

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

ecp_mongo_create_userA

Create a MongoDB user. db_username gets the account's own prefix applied automatically. Grants readWrite on this account's default database - MongoDB here has no read-only role option, unlike MySQL/Postgres's granular privilege grants.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYes
db_usernameYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses three important behaviors: the automatic prefix applied to db_username, the grant of readWrite on the account's default database, and the absence of a read-only role option in MongoDB (contrasting with MySQL/Postgres). These are non-obvious and help an agent predict outcomes. It does not mention failure modes (e.g., if the user already exists) or exact success response, but for a create operation it covers the key 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.

Conciseness4/5

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

The description is concise—two sentences with no filler. It front-loads the main purpose and then adds critical behavioral details. The second sentence is a bit long but still efficient, using a dash to clarify the contextual difference from other DBs. It does not repeat what the name already implies and earns every word.

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 two-parameter create tool with no output schema and no annotations, the description covers the essential operational facts: the action, the auto-prefix, the privilege scope, and the platform-specific limitation. It does not mention required permissions or error handling, but given the simplicity and the sibling tools that handle other database assignments (e.g., ecp_mongo_assign_user_to_database), an agent has enough to call it correctly. Minor gaps exist (e.g., password format), but overall it is 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 0%, so the description must compensate. It provides meaningful context for db_username by explaining the auto-prefix behavior, which is essential for correct input. However, it gives no information about the password parameter (e.g., constraints, length, or that it is required), nor does it explain any interaction between the two parameters. Since only one of two params is explained, and the other is left to the schema (which is empty), the description only partially compensates.

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 and resource: 'Create a MongoDB user.' It distinguishes this tool from close siblings like ecp_mongo_assign_user_to_database and ecp_mongo_update_user_password by specifying the immediate creation action and its readWrite grant. It also differentiates from MySQL/Postgres user creation by noting the lack of a read-only role option, so an agent can tell exactly what this tool does.

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

Usage Guidelines3/5

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

The description implies usage context—it grants readWrite on the default database and highlights the lack of a read-only role option, suggesting this is for creating a standard user with write access. However, it does not explicitly state when to use this tool versus alternatives like ecp_mongo_assign_user_to_database or when not to use it (e.g., for read-only access). No direct references to sibling tools or exclusions are given, so an agent must infer the boundary.

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

ecp_mongo_database_sizesA

Get size of each MongoDB database.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Get size' effectively indicates a read-only operation over all MongoDB databases, which is useful, but it does not mention output format, units, or behavior when no databases exist. For such a simple zero-parameter tool this is acceptable but not richly transparent.

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

Conciseness5/5

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

The description is a single sentence that immediately states the action and target. There is no filler, repeated information, or unnecessary detail, making it appropriately concise and 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 tool's low complexity, zero parameters, and no output schema, the description is mostly complete for invocation purposes. It tells the agent what will be retrieved, though it does not describe the return shape or any edge cases. The missing output details are minor for this simple read-only tool.

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

Parameters4/5

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

The tool has zero parameters and an empty input schema, so the baseline of 4 applies. The description does not need to explain parameters that do not exist, and no parameter documentation gap exists.

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

Purpose4/5

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

The description clearly states the verb 'Get' and the resource 'size of each MongoDB database', so an agent knows exactly what the tool does. It is not a tautology and is semantically distinct from sibling tools like ecp_mongo_list_databases and the MySQL/MSSQL/PostgreSQL variants, though it does not explicitly name an alternative.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when you need size information for MongoDB databases. However, it provides no explicit guidance about alternatives, such as using ecp_mongo_list_databases for database names/status or counterpart tools for other database engines. The usage context is clear enough but not directly stated.

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

ecp_mongo_delete_databaseB

Delete a MongoDB database. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes

TDQS

B3.1/5.0
Behavior3/5

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

The description explicitly notes 'Irreversible,' which is a key behavioral trait that goes beyond the name. However, with no annotations, the description carries the full burden. It does not disclose side effects like impact on associated users, collections, or data recovery options. The irreversibility is mentioned, but other destructive implications are omitted.

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 fluff. It front-loads the essential information (action and irreversibility). For a tool with two parameters, this is appropriately brief, though it sacrifices detail for conciseness.

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

Completeness2/5

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

For a destructive operation with no annotations and no param descriptions, the description is inadequate. It does not explain the confirmation flow, the effect on the database, or any prerequisites. A minimal description should at least note that confirm=true is required and that the operation cannot be undone. The current text is too sparse for safe usage.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must explain parameters. It does not mention db_name or confirm at all. The confirm parameter's requirement (must be true) is only in the schema, not in the description. This is a complete failure to clarify parameter 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 states the exact action ('Delete') and resource ('MongoDB database'), and adds critical information about irreversibility. This clearly differentiates it from other delete-database tools (mysql, mssql, postgres) based on the MongoDB context.

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. There is no mention of safety conditions, prerequisites, or when not to use it. A destructive operation like this should at least hint at confirmation requirements, but the description only states the action.

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

ecp_mongo_delete_documentB

Delete a document, identified by id. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
confirmYes
db_nameYes
passwordYes
db_usernameYes
collection_nameYes

TDQS

B3.4/5.0
Behavior3/5

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

There are no annotations, so the description carries the behavioral burden. 'Irreversible' is a meaningful warning that deletion is permanent, which is valuable. However, it does not mention credentials/permissions, whether related data is affected, or any response/confirmation behavior beyond the irreversible warning.

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: one clear action sentence plus a one-word warning. Every word adds value and the most important safety information ('Irreversible') is included without bloat.

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 a destructive Mongo delete with six required parameters and no output schema. The description is minimally viable: it names the operation, target, identifier, and irreversibility. Still missing are clarifications such as whether 'id' means Mongo's _id or another field, and what response or error behavior to expect.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for six undocumented parameters. It only clarifies that the document is identified by 'id'; it does not explain confirm, db_username, password, collection_name, or db_name. The schema names are somewhat self-explanatory, but the description itself adds very little parameter meaning beyond the single id reference.

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

Purpose5/5

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

The description states a specific action and resource: 'Delete a document, identified by id.' It clearly distinguishes this from sibling tools that delete databases, users, rows, or collections by naming the document as the target. No ambiguity about what operation this tool performs.

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 gives no guidance on when to use this tool versus alternatives, and it names no exclusions or conditions. While the name and 'document' imply Mongo usage, there is no explicit routing compared to sibling delete tools across other database types.

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

ecp_mongo_delete_userB

Delete a MongoDB user. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_usernameYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does add the key warning 'Irreversible,' which is valuable beyond the literal meaning of 'delete.' However, it does not explain consequences like loss of access, impact on existing sessions, or whether a confirmation flag is required.

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: one action sentence and one high-value warning. Every word contributes, and the core purpose is front-loaded. No redundant or filler language is present.

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

Completeness2/5

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

For a destructive operation with no annotations and no output schema, the description is underspecified. It does not clarify the confirm parameter, preconditions, effects on associated databases or roles, or what happens after deletion. The irreversibility warning is important, but it is not enough to make the definition contextually complete.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the meaning or role of the two parameters. The parameter names and the confirm constraint provide some clues, but the description adds nothing about db_username identifying the target user or confirm being a safety confirmation.

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

Purpose5/5

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

The description clearly states a specific action on a specific resource: 'Delete a MongoDB user.' The verb and resource are unambiguous, and it distinguishes the tool from siblings like ecp_mongo_update_user_password, ecp_mongo_assign_user_to_database, and delete-user tools for other database types.

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 gives no guidance about when to use this tool versus alternatives, such as ecp_postgres_delete_user or ecp_mssql_delete_user, nor does it mention any prerequisites or exclusions. The only additional context is the warning that deletion is irreversible, which is a risk cue, not usage guidance.

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

ecp_mongo_drop_collectionA

Drop (delete) a collection entirely. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
collection_nameYes

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states the operation is destructive and 'Irreversible,' which is critical for an agent deciding whether to invoke it. It does not add detail about confirmation requirements or side effects, but the core risk is clearly disclosed.

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 filler. 'Drop (delete) a collection entirely' front-loads the action, and 'Irreversible' adds the most important behavioral warning concisely.

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 plus the explicit confirm=true schema constraint gives an agent the minimum needed to call the tool safely. However, it omits any discussion of when to use it versus alternatives, and with no output schema or annotations, slightly more context about expected effects would make it more complete.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no parameter-level explanation. It does not clarify that confirm must be true, nor does it define db_name or collection_name beyond their self-evident names. For a low-coverage schema, the description should compensate but 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 states a specific verb ('Drop'), the resource ('a collection'), and the full scope ('entirely'). This clearly distinguishes it from siblings like ecp_mongo_delete_document or ecp_mongo_create_collection, so an agent can recognize exactly what it does.

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 gives no explicit guidance on when to use this tool versus alternatives such as dropping a single document or truncating a collection. It does not mention exclusions, prerequisites, or safer alternatives; the intended usage is only implied by the name and description.

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

ecp_mongo_insert_documentC

Insert a document into a collection.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
documentYes
passwordYes
db_usernameYes
collection_nameYes

TDQS

C2.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 behavioral disclosure burden. It conveys that this is a write operation by saying 'insert,' but it does not disclose that the call requires explicit confirmation (confirm=true), database credentials, or that it mutates MongoDB state.

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 efficient sentence with no filler, front-loading the verb and core object. It is concise, but the conciseness comes at the cost of informative detail.

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

Completeness2/5

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

For a tool with six required parameters, including credentials and a confirmation gate, the description is too sparse to support correct invocation. With no annotations, no output schema, and zero parameter documentation, the agent must rely on guessing for critical aspects like how the confirm field works and how credentials are used.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning beyond what parameter names already imply. Six parameters are required, but db_name, collection_name, db_username, password, document, and confirm are all left semantically unexplained.

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

Purpose4/5

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

The description states a clear action—'Insert a document'—and identifies the target resource, 'a collection.' This is enough to distinguish it from sibling Mongo operations like update_document, delete_document, and browse_documents, though it does not explicitly compare itself to them.

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 given about when to use this tool versus alternatives, when not to use it, or any prerequisites. There is no mention of the required confirm flag, credential requirements, or relationship to ecp_mongo_update_document.

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

ecp_mongo_list_collectionsA

List collections in a database (metadata only, no document data).

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes

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 must carry the behavioral burden. It discloses that the operation returns metadata only and no document data, which signals a read-only, non-destructive behavior. However, it does not clarify what 'metadata' includes (collection names, options, indexes?) or mention permissions, pagination, or output shape.

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 one short sentence, front-loads the core action, and uses the parenthetical to add an important qualifier. Every word earns its place with no unnecessary detail.

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

Completeness4/5

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

For a simple single-parameter, no-output-schema tool, the description covers the essential purpose and the key limitation (no document data). The main gap is the ambiguity of 'metadata' and the absence of any mention of what exactly is returned, but overall it is adequate for this low-complexity 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 0%, so the description should compensate. It mentions 'a database' but does not explicitly explain that db_name is the target database. The parameter name is fairly self-explanatory, but the description adds minimal semantic value beyond the schema.

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

Purpose5/5

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

The description states a specific verb and resource: 'List collections in a database'. The parenthetical 'metadata only, no document data' distinguishes it from data-retrieval siblings like browse_documents, making the tool's scope clear without needing to inspect the schema.

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 that this tool is not for retrieving document data, but it never names alternatives or states when to prefer this tool over sibling tools like list_databases or browse_documents. No explicit exclusions or routing guidance are provided.

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

ecp_mongo_list_databasesA

List this account's MongoDB databases.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It says 'List' which implies a read-only operation, but it does not explicitly state that it is non-destructive, has no side effects, or any permission requirements. For a simple list operation this might be acceptable, but the description does not explicitly cover these aspects.

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

Conciseness5/5

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

The description is a single sentence with no filler. It is front-loaded with the action and resource, and every word contributes to the meaning.

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 parameterless list operation with no output schema, the description is sufficient to inform an agent of the action and scope. It does not explain the return format, but the tool's name and nature imply a list of database names. Given the simplicity, nothing critical is 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?

The tool has zero parameters, and the schema is fully covered by being empty. The description does not need to add parameter information because there are none. Baseline for 0 params is 4, and no additional context is needed.

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', the resource 'MongoDB databases', and the scope 'this account's', which distinguishes it from sibling tools like ecp_mysql_list_databases and ecp_postgres_list_databases. No ambiguity remains about what the tool does.

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

Usage Guidelines3/5

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

The description implies its use by naming MongoDB specifically, but it does not explicitly mention alternatives or when to choose this over other database list tools. There is no 'when not to use' guidance, but the context makes the intended usage reasonably clear.

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

ecp_mongo_list_usersB

List additional MongoDB users on this account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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 implies a read-only 'list' operation but says nothing about what 'additional' means, whether output is paginated, or any authentication/permission requirements. The behavioral scope remains unclear.

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, front-loaded sentence with no filler. It could be slightly improved with a clarifying phrase about 'additional' users, so it does not receive a 5.

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

Completeness3/5

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

For a zero-parameter list operation, the description is minimal but adequate. However, the unexplained qualifier 'additional' leaves the user wondering what subset is being listed, and the absence of any output format or return-value indication creates a minor gap.

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

Parameters4/5

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

The tool accepts zero parameters, and the schema coverage is at 100% (since there are no properties). The description correctly does not attempt to explain nonexistent parameters. Baseline of 4 for parameterless tools is appropriate.

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 names a specific verb ('List') and resource ('MongoDB users on this account'), which clearly distinguishes it from MySQL, PostgreSQL, or MSSQL user-listing siblings. However, the word 'additional' is undefined and slightly ambiguous, preventing a perfect 5.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus other user-list tools (e.g., ecp_mysql_list_db_users, ecp_mssql_list_db_users) or Mongo-specific user tools like ecp_mongo_create_user. The intended context is implied only by the name, not explicitly stated.

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

ecp_mongo_restore_from_storage_bdA

Restore a MongoDB database from a storage.bd snapshot, overwriting its current content. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
snapshot_idYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations present, the description alone discloses that the operation is destructive and irreversible by saying it 'overwrites its current content' and is 'irreversible.' This is strong behavioral transparency for the most critical risk, though it omits other context such as permissions or validation 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?

The description is two short, front-loaded sentences. Every phrase adds value: the action comes first, then the overwrite consequence, then the irreversible warning. There is no filler.

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

Completeness3/5

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

The description covers the core action and risk, but for a destructive call with no output schema and no annotations, an agent could use more context: how to obtain valid snapshot IDs, whether the database must already exist, and that confirm must be true. Sibling tools like ecp_backup_list_snapshots would have been worth referencing.

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 description adds semantic meaning to db_name and snapshot_id by referring to the MongoDB database and storage.bd snapshot, and 'irreversible' explains the intent behind the confirm flag. However, it does not explicitly map these roles to the schema parameters, and with 0% schema description coverage, the agent still has to infer some parameter relationships.

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

Purpose5/5

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

The description opens with the specific verb 'Restore' and names the exact resource: a MongoDB database from a storage.bd snapshot. It also mentions the overwrite effect, which clearly distinguishes this restore operation from backup tools like ecp_mongo_backup_to_storage_bd and from restore tools for other database engines.

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 use case is implied: restore a MongoDB database from an existing storage.bd snapshot. However, it does not explicitly state when to use this versus alternate workflows, mention the backup-list snapshot tool, or describe prerequisites for the snapshot ID.

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

ecp_mongo_update_documentC

Update a document, identified by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
valuesYes
confirmYes
db_nameYes
passwordYes
db_usernameYes
collection_nameYes

TDQS

C2.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 of behavioral disclosure. It only states the action and does not mention that confirmation is required, whether the update replaces the whole document or merges fields, what authentication is needed, or what side effects occur.

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

Conciseness3/5

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

The description is one short sentence with no fluff, which is concise and front-loaded. However, it is under-specified for a 7-parameter mutation tool and omits important behavioral and parameter context, so the brevity is not fully justified.

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?

The tool has no annotations, no output schema, seven required parameters, and zero parameter descriptions. The description only conveys the basic operation and identifier, leaving crucial details like confirmation semantics, update behavior, and authentication unexplained. This is not complete enough for an agent to invoke the tool reliably.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the 7 required parameters. It clarifies that 'id' identifies the document, but it does not explain 'values', the 'confirm' flag, database/collection naming, or credentials. The description adds minimal semantic value beyond the schema field names.

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 uses a specific verb ('Update') and resource ('a document') and states the selector ('identified by id'). This separates it from sibling operations like insert, browse, or delete document, though it does not explicitly mention the database or collection scope, which is left to the schema.

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?

There is no guidance about when to use this tool versus alternatives such as insert, delete, or browse. No conditions, exclusions, or prerequisites are stated, so the agent must infer usage entirely from the tool name and context.

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

ecp_mongo_update_user_passwordC

Change a MongoDB user's password.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYes
db_usernameYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'change' without revealing side effects (e.g., whether existing sessions are invalidated, password complexity requirements, or if the operation is irreversible). This is a significant gap for a mutation tool.

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

Conciseness3/5

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

The description is a single concise sentence with no redundancy, but it is under-specified. It is short enough to be efficient, yet it fails to convey essential information, so the brevity is not an asset.

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

Completeness2/5

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

For a 2-parameter tool with no annotations and no output schema, the description is insufficient. It does not explain the database context, password requirements, or expected outcomes. An agent could guess from parameter names but lacks confirmation.

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

Parameters1/5

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

Schema description coverage is 0%, and the description mentions no parameter details. The schema lists only names (db_username, password) with no descriptions. The description does not clarify what values are expected, format, or constraints, leaving the agent to infer from parameter names alone.

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 states a specific action: 'Change a MongoDB user's password.' It clearly identifies the verb (change), the resource (MongoDB user's password), and is distinct from sibling tools like create_user, delete_user, and assign_user_to_database. However, it lacks additional scoping details (e.g., which database or user context) that would make it more precise.

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?

There is no guidance on when to use this tool versus alternatives. It does not mention conditions for password changes, prerequisites, or exclusions (e.g., 'use create_user for new users'). The agent must infer the use case solely from the action described.

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

ecp_mssql_backup_to_storage_bdC

Back up a MSSQL database to the account's storage.bd tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes

TDQS

C2.6/5.0
Behavior2/5

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

The description simply states the operation without disclosing side effects or prerequisites. A backup tool may lock the database, overwrite existing backups, or require the target database to exist, none of which are mentioned. With no annotations to cover safety or idempotency, the description leaves the agent to guess at the operation'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.

Conciseness3/5

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

The description is a single, grammatically simple sentence that is easy to parse and front-loads the core action. However, it omits any secondary structure like prerequisites or notes, which are unnecessary for such a short description, so it is appropriately concise for its simplicity. It earns a 3 because while concise, it leaves out contextual details that would make it more useful.

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?

This is a backup operation with no annotations and no output schema, so the description must explain destination behavior, overwrite semantics, and what the resulting backup looks like (e.g., filename, location). The description provides none of these. It also doesn't distinguish the 'storage.bd' destination from other storage options or clarify whether a backup name is auto-generated. For a destructive-adjacent operation (backups can overwrite), this is insufficient.

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?

There is a single parameter (db_name) with zero schema documentation. The description implies the parameter identifies which database to back up, but it does not confirm the parameter name or clarify whether it must be an existing database name only (not a path or identifier). For a backup operation, the parameter semantics are straightforward from the description, but the description doesn't add any detail the schema lacks (e.g., naming constraints). Coverage is 0%, so the description must carry more weight, and it mostly does, but it remains thin.

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 uses a specific verb and object: 'Back up a MSSQL database' to a clear destination ('the account's storage.bd tenant'). This distinguishes it from other MSSQL tools (create, truncate, browse, restore) and the destination is explicit. It loses a point for not clarifying what 'storage.bd' is or what the backup artifact will be used for, but the core action is unambiguous.

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 given on when this tool should be used versus alternatives like ecp_mssql_restore_from_storage_bd or the other database backup tools (mysql/postgres). There is no mention of prerequisites (e.g., database must exist, storage.bd tenant must be configured) or whether this is the recommended step before destructive operations like truncate/drop. The description is purely a verb phrase with no usage context.

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

ecp_mssql_browse_rowsC

Browse rows in a table. Connects as the given db_username/password, which must be a user this account owns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
db_nameYes
filtersNo
passwordYes
page_sizeNo
table_nameYes
db_usernameYes
sort_columnNo
sort_directionNo

TDQS

C2.4/5.0
Behavior2/5

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

Since no annotations are provided, the description carries the full burden of behavioral disclosure. It mentions that the tool connects with a specific db_username/password and that the user must be owned by the account, which is a useful auth requirement. However, it does not state that the operation is read-only, does not describe pagination behavior, filtering syntax, sorting defaults, or any side effects. This is minimal disclosure for a browsing 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 extremely concise: two sentences, no redundant text. The purpose is front-loaded in the first sentence, and the auth note is in the second. It avoids fluff and is easy to scan. However, the extreme brevity may border on under-specification, but as a standalone text it is efficient and well-structured.

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

Completeness1/5

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

With 9 parameters, nested objects (filters), no output schema, and no annotations, this tool is moderately complex. The description barely scratches the surface—only a bare purpose and an auth requirement. It lacks essential context like how to construct filters, what pagination defaults are, whether sorting is allowed, what the response format looks like, or any limitations. This is severely incomplete for an agent to use the tool correctly.

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

Parameters1/5

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

The schema description coverage is 0%, so the description must compensate by explaining the parameters, but it does not. It only references db_username and password implicitly, without detailing their requirements beyond the ownership note. The other parameters (db_name, table_name, page, page_size, filters, sort_column, sort_direction) are entirely undocumented in the description, leaving the agent to guess their semantics and relationships.

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 states the action clearly: 'Browse rows in a table.' This specifies a verb and resource, and the tool name 'ecp_mssql_browse_rows' further indicates the MSSQL context, distinguishing it from non-DB tools and write operations. However, it does not explicitly differentiate from sibling browse tools like ecp_mysql_browse_rows or ecp_postgres_browse_rows, though the name provides that distinction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of conditions (e.g., database type, row size, read-only scenarios) that would lead an agent to select this over other browse tools or other operations. The only contextual note is about the required user ownership, which is a dependency, not a usage guideline.

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

ecp_mssql_change_database_ownerC

Change a database's owning user (both must already belong to this account).

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
db_usernameYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It is a mutation ('Change') but does not disclose side effects, permissions required, reversibility, or what happens if the database or user does not exist. The only behavioral detail is the account membership constraint, which is insufficient for an agent to anticipate outcomes.

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

Conciseness3/5

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

The description is a single, concise sentence with no extraneous words, but it lacks structure such as prerequisite lists or usage scenarios. It is under-specified, which reduces its value despite its brevity.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is notably incomplete. It does not mention expected input validation, consequences of changing ownership, or any related steps. The account-membership constraint is useful but leaves many gaps an agent would need to resolve via trial or other tools.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It implies that db_name refers to the database and db_username to the user, but it does not clarify formats, whether the username is an owner or target, or any relationships. The description adds minimal meaning beyond the parameter names themselves.

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 states a clear verb ('Change') and a specific resource ('a database's owning user'), which is unambiguous. However, it does not explicitly differentiate from the sibling ecp_postgres_change_database_owner, relying on the tool name to signal the database engine. This is still strong enough to be considered clear.

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 mentions a precondition ('both must already belong to this account') but does not specify when to use this tool versus alternatives, such as the Postgres equivalent, nor does it suggest related tools like listing users or privileges. There is no guidance on when this operation is appropriate or what to check beforehand.

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

ecp_mssql_create_databaseA

Create a MSSQL database. db_name gets the account's own prefix applied automatically. Creates the login together with the database.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
passwordYes
db_usernameYes

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 full burden of behavioral disclosure. It does disclose two key behaviors: the database name gets an account-specific prefix automatically, and the login is created together with the database. However, it does not mention failure modes (e.g., if the DB already exists), permission requirements, or whether the operation is idempotent, leaving gaps 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?

Three short, informative sentences with the primary purpose first. No redundant words, and the key distinguishing details (prefix and login creation) are included economically. This is well-structured for an agent to scan.

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 annotations, an output schema, and any parameter descriptions, the description is relatively complete for a create operation but leaves important context unaddressed: the return value on success, error behavior (e.g., duplicate database), and prerequisites (e.g., whether the account has permission to create databases). It covers the core action but not the full operational context an agent might need.

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 0%, so the description must explain the parameters. It does add meaning by noting that db_name gets a prefix automatically and implying (through 'Creates the login together with the database') that db_username and password are for the login. However, it does not definitively map each parameter to its role (e.g., which is the login name, any constraints on password) or confirm the relationship clearly.

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?

States a specific verb and resource ('Create a MSSQL database') and adds the important detail that it also creates the login, which distinguishes it from database-only creations and from separate user-management tools like ecp_mssql_create_database_user. The action is unambiguous and clearly scoped to a resource type.

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 some context by mentioning the automatic prefix and the simultaneous login creation, but does not explicitly state when to use this tool versus alternatives (e.g., ecp_mssql_create_database_user) or when not to use it. No exclusions or comparative guidance are given.

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

ecp_mssql_create_database_userB

Create an additional MSSQL user. db_username gets the account's own prefix applied automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYes
db_usernameYes

TDQS

B3.3/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 disclosure burden. It adds one useful behavior beyond the obvious—db_username is automatically prefixed with the account's prefix—but it does not disclose failure behavior, permissions, idempotency, side effects, or response 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?

Two short sentences with the primary action front-loaded and the important prefix behavior immediately after. There is no filler, repeated schema information, or unnecessary detail.

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 two-parameter tool, this is close to adequate, but the absence of annotations and output schema raises the burden on the description. It does not mention the next logical step of granting privileges or any prerequisites, leaving a moderate contextual gap for an agent navigating the large sibling cluster of MSSQL user/database tools.

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

Parameters3/5

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

With 0% schema description coverage, the description must compensate for the parameters, and it does partially: it clarifies that db_username should not include the prefix because it is applied automatically. However, it says nothing about password requirements or constraints, leaving the password parameter without meaningful semantic guidance.

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 states a clear verb ('Create') and resource ('an additional MSSQL user'), and the word 'additional' helps distinguish it from database-creation siblings. It does not explicitly name an alternative tool, so it stops short of full sibling differentiation.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance. The description does not mention that privileges must be granted separately (e.g., via ecp_mssql_grant_privileges), nor any prerequisites or exclusions, which leaves an agent to infer usage from the tool name alone.

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

ecp_mssql_database_sizesA

Get size of each MSSQL database.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 full burden of behavioral disclosure. 'Get' implies a read-only operation with no side effects, which is a useful signal, but the description says nothing about the return format, whether all databases (including system ones) are included, or any permissions needed. It is not misleading, just terse.

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 entire description is a single 7-word sentence. Every word carries meaning, no filler or repetition.

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

Completeness4/5

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

For a zero-parameter, read-only listing tool without an output schema, this description is nearly sufficient. It states a minimal but useful expectation: you will get the sizes of all MSSQL databases. It does not detail fallback, units, or exact output, but at this level of complexity those are optional.

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

Parameters4/5

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

The tool has zero parameters and the schema is fully described (there is nothing to define). Baseline 4 is appropriate because there is no parameter ambiguity for the description to resolve.

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 uses a specific verb and resource: 'get size' of 'each MSSQL database'. It clearly indicates the tool returns database sizes, but it doesn't explicitly distinguish itself from siblings like ecp_mssql_table_sizes or ecp_mssql_list_databases beyond the immediate sense of the name.

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 explain when to use this tool over alternatives or mention the near-identical ecp_mysql_database_sizes / ecp_postgres_database_sizes / ecp_mongo_database_sizes siblings. The only usage guidance is implied by the wording 'get size of each MSSQL database'.

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

ecp_mssql_delete_databaseB

Delete a MSSQL database. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes

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 carries the burden of behavioral disclosure. It does state that the deletion is irreversible, which is the most important safety trait. However, it does not explain how far the destruction extends, whether confirmation is intentionally guarded, or what permissions are 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?

The description is two short sentences, front-loaded with the action and immediately followed by the important irreversible warning. No word is wasted and the structure is easy to scan.

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

Completeness2/5

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

For a destructive, irreversible operation with no annotations, no output schema, and no parameter descriptions, this description is too thin. An agent is not told about the confirm requirement, the full scope of data loss, or any prerequisite backup/restore steps, making the tool riskily underspecified.

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

Parameters2/5

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

The schema has 0% description coverage, so the description must compensate. It only weakly implies that db_name is the database being deleted, and 'Irreversible' hints at why confirm must be true, but it never actually explains either parameter. This is minimal added 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 identifies a specific action and resource: deleting an MSSQL database. This cleanly distinguishes it from related siblings like ecp_mssql_drop_table and ecp_mssql_truncate_table, even without explicitly naming them. The additional 'Irreversible' clarifies the destructive scope.

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 gives no when-to-use or when-not-to-use guidance, and does not route the agent to safer alternatives such as truncate_table, drop_table, or taking a backup first. Using the tool must be inferred entirely from the name and schema.

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

ecp_mssql_delete_rowC

Delete a row from a table, identified by primary_key. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
passwordYes
table_nameYes
db_usernameYes
primary_keyYes

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description bears the full burden of behavioral disclosure. It does disclose the most important behavior by stating 'Irreversible,' which is valuable for a destructive operation. However, it does not mention side effects, foreign-key behavior, permission requirements, or whether the confirmation parameter is mandatory in practice.

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 short and front-loaded, with both sentences earning their place: one states the action, the other the key risk. It is appropriately terse but borders on under-specification for a destructive, six-parameter operation.

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

Completeness2/5

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

Given no annotations, no output schema, zero parameter documentation, and a nested primary_key parameter, the description is not complete enough. An agent would be uncertain about the exact structure of primary_key, the semantics of confirm, and preconditions such as permissions or table constraints before invoking this destructive tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only clarifies the role of primary_key. The meaning of confirm as a mandatory true sentinel is left entirely to schema inference, and the nested primary_key object format is not described. The other parameters are identifiable by name but receive no semantic detail.

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 uses a specific verb and resource: 'Delete a row from a table, identified by primary_key.' This clearly conveys row-level deletion and distinguishes it from table-level siblings like drop_table or truncate_table. It does not explicitly name an alternative, so it stops short of full sibling differentiation.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as update_row, truncate_table, drop_table, or the equivalent delete_row tools for other database engines. The description implies the obvious use case but provides no exclusions, preconditions, or decision criteria.

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

ecp_mssql_delete_userB

Delete a MSSQL user. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_usernameYes

TDQS

B3.2/5.0
Behavior5/5

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

The description explicitly states 'Irreversible', which is a critical behavioral trait. Since no annotations are provided, the description carries the full burden of disclosure, and it does this well by highlighting the permanence of the action. It also implies that the 'confirm' parameter is necessary for the action to proceed, which is important for an agent to know. This is exactly the kind of disclosure that helps an agent avoid a costly mistake.

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?

Extremely concise with no wasted words. Two short sentences: the first states the action, the second states the key caveat. The 'Irreversible' warning is front-loaded after the purpose, which is ideal for a destructive tool. This is efficient and scannable.

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

Completeness2/5

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

Given that this is a destructive operation with no annotations and no output schema, the description is too thin. It does not mention preconditions (e.g., user not owning schemas, needing to revoke privileges first), the impact on dependent objects, or how to verify success. The 'confirm' flag is present in the schema but its purpose is not explained in the description. For a tool of this severity, more context is needed.

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

Parameters1/5

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

The schema has 0% description coverage, and the description does not compensate at all. It doesn't explain what 'db_username' should be (e.g., the exact name, format) or that 'confirm' must be set to true, though the schema's const does that. There is no mention of what happens if the user doesn't exist. The description adds zero value for parameter understanding beyond the schema property names.

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

Purpose4/5

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

The description clearly states the verb ('Delete') and the resource ('a MSSQL user'), and the tool name reinforces the same. It doesn't explicitly differentiate from siblings like 'ecp_mssql_create_database_user' or 'ecp_mssql_list_db_users', but the action is unambiguous. It would benefit from mentioning the sibling that creates users as a contrast, but the core purpose is clear.

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?

There is no guidance on when to use this tool versus alternatives, such as when to revoke privileges instead (ecp_mssql_revoke_privileges) or when a user may still own objects. The description only says 'Delete', without any prerequisite checks. It doesn't mention that this is a destructive action requiring confirmation, aside from the schema's 'confirm' parameter, which is not explained in the description.

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

ecp_mssql_drop_tableC

Drop (delete) a table entirely. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
table_nameYes

TDQS

C2.8/5.0
Behavior3/5

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

With no annotations provided, the description must carry the burden of behavioral disclosure. It does state 'Irreversible,' which is a critical destructive behavior. However, it omits other important aspects: the required 'confirm' parameter that forces an explicit boolean true, the fact that the operation cannot be undone even if the table contains data, and potential error conditions (e.g., non-existent table). The single warning is useful but insufficient for a destructive operation.

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

Conciseness3/5

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

The description is very short (one sentence) and front-loads the core action and irreversibility, which is efficient. However, it is under-specified: it omits critical parameter semantics and usage context. It is concise but not appropriately sized—it sacrifices necessary information for brevity. A well-structured description would still be concise while covering key parameters and safety requirements.

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

Completeness1/5

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

Given the tool's destructive nature, the presence of a confirm parameter, and the complete absence of annotations and output schema, the description is grossly incomplete. It does not explain the confirm requirement, what happens to dependent objects (if any), or what the return value might be. The description is inadequate for an agent to invoke the tool safely and correctly; it only provides the basic intent.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention any of the three parameters (db_name, table_name, confirm) at all. The schema only provides names and types, with confirm constrained to true, but there is no explanation of what db_name or table_name should be, nor that confirm is a safety switch. An agent cannot correctly construct the call without external knowledge. The description fails to compensate for the missing schema descriptions.

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: 'Drop (delete) a table entirely. Irreversible.' It specifies the resource (a table) and the operation (drop/delete), and the irreversibility is highlighted. This distinguishes it from sibling tools like truncate (which removes rows but keeps the table) and delete_database. The purpose is unambiguous and appropriately scoped.

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 offers no guidance on when to use this tool versus alternatives such as ecp_mssql_truncate_table (which removes data but preserves schema) or ecp_mssql_delete_database. It does not mention prerequisites (e.g., table must exist), nor does it caution against accidental use beyond stating 'Irreversible.' No alternative tools are referenced, so an agent has to infer the appropriate context from the name alone.

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

ecp_mssql_grant_privilegesA

Grant privileges to a user on a database. Note: MSSQL's privilege model here is coarser than MySQL/Postgres - only these 5 DML permissions, applied schema-wide (SCHEMA::dbo), not per-table. Security-sensitive - review carefully before confirming.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
privilegesYes
db_usernameYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the security sensitivity ('Security-sensitive - review carefully before confirming'), the scope limitation (schema-wide, not per-table), and the exact set of permissions. It also implies a confirmation parameter is required. It doesn't mention reversibility or idempotency, but the security warning and scope details are valuable behavioral 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?

Three sentences with no filler. The core action is front-loaded, the critical scoping caveat follows immediately, and the security warning is placed at the end. Every sentence adds distinct 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 security-sensitive mutation tool with no annotations and no output schema, the description covers the key operational facts: what privileges are granted, at what scope, and that confirmation is required. It doesn't describe the return value or error cases, but the schema's confirm const and the security warning cover the main risk. A mention of whether the operation is idempotent or reversible would push this to 5.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains the privileges enum values (5 DML permissions) and the scope (SCHEMA::dbo), which adds meaning to the 'privileges' parameter. However, it doesn't explain db_name, db_username, or confirm beyond what the schema already shows. The confirm parameter's purpose is implied by the security warning but not explicitly tied to the parameter.

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

Purpose5/5

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

The description states a specific verb ('Grant'), a resource ('privileges to a user on a database'), and immediately distinguishes the MSSQL behavior from MySQL/Postgres by noting the coarser privilege model. It clearly identifies the tool's scope (5 DML permissions, schema-wide on SCHEMA::dbo) and differentiates it from sibling tools like ecp_mssql_revoke_privileges and ecp_mysql_grant_privileges.

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

Usage Guidelines4/5

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

The description gives clear context for when to use this tool: when granting privileges in MSSQL, and it explicitly contrasts with MySQL/Postgres privilege models. It doesn't explicitly name alternative tools or state when NOT to use it, but the context is strong enough that an agent can infer the appropriate use case. A small gap: it doesn't mention prerequisites like the user existing or the database existing.

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

ecp_mssql_insert_rowC

Insert a row into a table.

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYes
confirmYes
db_nameYes
passwordYes
table_nameYes
db_usernameYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It only states the basic mutation and does not mention that confirm=true is required, that database credentials are needed, what happens on constraint violations, or whether the operation is transactional. It is not misleading, but it is severely under-disclosing.

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, front-loaded sentence with no filler. It is genuinely concise, though the brevity contributes to under-specification in other dimensions.

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?

This is a credentialed write operation with a nested values object, a required confirm flag, and no output schema or annotations. The description does not cover confirmation semantics, values shape, or prerequisites, so it is not complete enough for an agent to invoke reliably.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no parameter meaning. It does not explain the structure of the values object, why confirm must be true, or how db_name, table_name, db_username, and password are used. The description fails to compensate for the undocumented parameters.

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

Purpose4/5

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

The description states a clear action and object: 'Insert a row into a table.' However, it does not distinguish this tool from siblings like ecp_mysql_insert_row or ecp_postgres_insert_row, leaving engine and operation differentiation entirely to the tool name.

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?

There is no guidance on when to use this tool versus alternatives such as update_row, delete_row, or browse_rows. It also omits prerequisites like table existence or the mandatory confirmation flag, so an agent receives no contextual decision help.

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

ecp_mssql_list_columnsA

List a table's columns (metadata only, no row data).

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
table_nameYes

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 behavioral disclosure burden. 'Metadata only, no row data' adds a useful constraint beyond the tool name, and 'list' implies a read-only operation. However, it does not mention permissions or lack of side effects explicitly.

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?

One compact sentence with no filler; the key scoping detail is included in the parenthetical. Every word earns its place.

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

Completeness4/5

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

For a simple two-parameter metadata query with no output schema, the description is largely sufficient: it states the operation and the return scope. It does not detail the exact shape of the returned column metadata, but that is not essential for selecting and invoking the tool correctly.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain db_name or table_name beyond what their names already suggest. It fails to compensate for the missing schema documentation, such as whether table names can be schema-qualified or what format the database name should take.

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

Purpose5/5

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

The description states a specific verb ('List') and resource ('a table's columns'), and the parenthetical 'metadata only, no row data' distinguishes it from data-retrieval tools like ecp_mssql_browse_rows. The MSSQL prefix also separates it from the MySQL and Postgres list_columns siblings.

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 phrase 'metadata only, no row data' implies the tool is for schema inspection rather than row retrieval, but it does not explicitly name alternatives or state when not to use it. The usage context is inferable rather than explicit.

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

ecp_mssql_list_databasesB

List this account's MSSQL databases.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/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 of behavioral disclosure. It states 'List' which implies read-only, but it does not mention any permissions required, whether the operation is safe/non-destructive, or any potential rate limits or pagination. The description is too minimal to convey necessary behavioral context beyond the verb itself.

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 is front-loaded with the key action and resource. It has zero fluff and is appropriately sized for such a simple operation.

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 operation with no parameters, the description is somewhat complete, but it fails to differentiate from sibling tools like ecp_mssql_database_sizes or ecp_mssql_list_db_users. An agent might not know if this returns only database names or includes sizes or users. Since there is no output schema, the description should clarify the output scope, which it does not.

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 the schema has nothing to document. The baseline of 4 applies because there is no need for the description to add meaning to parameters that do not exist. The description correctly reflects that no inputs are needed.

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 a specific verb ('List') and resource ('this account's MSSQL databases'). It distinguishes from sibling tools by naming the database engine (MSSQL) and the operation (list). However, it does not explicitly mention whether it returns just names or additional metadata, and it could be more explicit about the scope ('this account' is a bit ambiguous but acceptable).

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention when to choose this over ecp_mssql_database_sizes, ecp_mssql_list_db_users, or similar list tools for other engines. There are no exclusions or contextual cues, 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.

ecp_mssql_list_db_usersB

List additional MSSQL users on this account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. 'List' signals a read-only operation, but nothing is disclosed about whether default/admin users are included, what properties are returned, or what 'additional' specifically means. The description is minimal and not misleading, but it leaves behavioral details unspecified.

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: 'List additional MSSQL users on this account.' The verb and scope are front-loaded, and there is no superfluous content. Every word earns its place, though 'additional' could have been clarified.

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

Completeness3/5

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

For a zero-parameter listing tool, the description is mostly sufficient for invocation. However, there is no output schema and the description does not describe the return shape or clarify the 'additional' qualifier. The tool is simple enough that this is a minor gap, but it is not fully complete.

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

Parameters4/5

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

The input schema contains zero parameters, so there are no parameter semantics to explain. Schema coverage is 100%, and the no-argument nature is already fully specified. Per the baseline for a zero-parameter tool, the description does not need to add parameter detail.

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 uses a specific verb ('List') and names the resource ('MSSQL users') and scope ('on this account'), making it distinct from database-level tools like ecp_mssql_list_databases. However, the qualifier 'additional' is unexplained and could confuse an agent about which users are included.

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 given about when to call this tool instead of alternative user-related tools such as ecp_mssql_list_privileges, ecp_mssql_create_database_user, or the MySQL/Postgres equivalents. The only implied trigger is needing a list of MSSQL users, but no explicit when/when-not context is provided.

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

ecp_mssql_list_privilegesA

List a MSSQL user's privileges on a database. Note: MSSQL's privilege model here is coarser than MySQL/Postgres - only these 5 DML permissions, applied schema-wide (SCHEMA::dbo), not per-table.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
db_usernameYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description has the full burden of disclosing tool behavior. It states the scope of what is listed (the 5 DML permissions applied via SCHEMA::dbo) and that the model is coarser than other systems. However, it does not explicitly state that listing is read-only, or how it behaves if the user or database does not 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, front-loaded sentences. The first sentence states the purpose, and the second provides the critical nuance about the coarse permission model. 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?

The tool has no output schema and no annotation, so the description should include enough to prepare the agent for the result. It mentions the 5 DML permissions and the schema-wide scope, but does not describe the exact return shape, possible errors, or failure conditions. It covers the essential context but leaves out detail that could be captured by a slightly richer description.

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

Parameters2/5

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

The schema has 0% coverage for parameters, and the description does not compensate. It refers to 'a MSSQL user' and 'a database', but doesn't elaborate on db_username or db_name — e.g., whether the username should be a login or database user, whether the database must exist, or the format of the values. The description adds no real meaning beyond the parameter names.

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 'List a MSSQL user's privileges on a database' — a specific verb and resource. It also explicitly calls out that the model is coarser than MySQL/Postgres, which differentiates it from siblings such as ecp_mysql_list_privileges and ecp_postgres_list_privileges.

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 that this tool is for MSSQL users and the note about coarse, schema-wide permissions hints at how it compares to MySQL/Postgres alternatives, but it never explicitly says 'use this for MSSQL' or 'for fine-grained per-table privileges, etc.' It does not name alternative tools. Use is more inferred than directly guided.

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

ecp_mssql_restore_from_storage_bdA

Restore a MSSQL database from a storage.bd snapshot, overwriting its current content. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
snapshot_idYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the operation is destructive: overwriting current content and irreversible. It could add more about permissions or impact on active connections, but the most important destructive trait is explicitly disclosed.

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 filler. The main action and the critical irreversible consequence are front-loaded and clearly separated.

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

Completeness3/5

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

For a destructive tool with no annotations and no output schema, the description covers the core operation and the irreversibility warning. However, it leaves some operational context unstated, such as whether the database must exist, how to obtain a valid snapshot_id, and whether restore runs synchronously or asynchronously.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must add semantic meaning. It does identify db_name as the MSSQL database and snapshot_id as the snapshot source, but it does not explain what values each parameter should take, how to obtain a snapshot_id, or what the confirm parameter requires beyond the schema's const:true.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Restore a MSSQL database from a storage.bd snapshot, overwriting its current content.' This clearly distinguishes it from backup tools, list-snapshot tools, and restore tools for other database engines.

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 it: to replace a database's current content from a snapshot. However, it does not explicitly state prerequisites, when not to use it, or how it relates to the backup/snapshot workflow, such as listing snapshots first or verifying the snapshot ID.

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

ecp_mssql_revoke_privilegesA

Revoke privileges from a user on a database. Note: MSSQL's privilege model here is coarser than MySQL/Postgres - only these 5 DML permissions, applied schema-wide (SCHEMA::dbo), not per-table.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
privilegesYes
db_usernameYes

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 behavioral weight. It helpfully discloses that the operation is schema-wide (SCHEMA::dbo) and limited to 5 DML permissions, but it does not detail failure modes, whether the operation is idempotent, or whether the user/database must already exist. This is partial transparency: an agent knows more than the tool name, but still lacks some operational cues.

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 filler. The main action is stated first, and the second sentence adds a highly relevant limitation about privilege granularity. Everything present earns its place.

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

Completeness3/5

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

The description addresses the most important non-obvious fact about MSSQL so good to see, but it does not cover what happens when the user or does not exist, whether revocation is silent or errors, or whether there are prerequisites beyond the confirm flag. The missing output schema and absence of annotations make these gaps more noticeable, though the schema makes the confirm boolean and enum values clear.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the schema's bare property names. It only provides a general 'user on database' framing and a note about schema-wide scope. It does not individually clarify db_name, db_username, privileges, or the confirm parameter beyond what the schema already provides via enum and const, leaving the agent to infer most parameter behavior.

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

Purpose5/5

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

The description states a specific verb ('Revoke'), a specific resource ('privileges from a user on a database'), and clearly scopes it to MSSQL. It also adds a distinguisher by explaining that MSSQL's model is coarse/schema-wide, which separates this from MySQL/PostgreSQL revoke tools and from sibling grant/list tools.

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

Usage Guidelines4/5

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

The description gives strong context about when this tool is appropriate: for MSSQL databases and for revoking one of the listed 5 DML privileges. The note about being 'not per-table' provides an explicit exclusion, though it does not name sibling alternatives such as ecp_mssql_grant_privileges or ecp_mssql_list_privileges.

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

ecp_mssql_table_sizesC

Get size of each table in a MSSQL database.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It conveys a read-like intent with 'Get', but it does not describe output format, units, ordering, whether table names are included, or any side effects/safety guarantees.

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 compact sentence with no filler or repetition. The core action and scope are front-loaded and immediately readable.

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 minimally viable for a simple one-parameter tool, but it lacks output details such as units, ordering, or whether each table's name accompanies its size. With no output schema or annotations, those omissions leave the agent with only partial context.

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 only defines db_name as a string with no description, and the description does not elaborate on this parameter. The agent can infer that db_name refers to the target MSSQL database, but no additional guidance is given about valid values, required database existence, or format.

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 uses a specific verb and resource: getting the size of each table in a MSSQL database. It is clearly distinguishable from related siblings like ecp_mssql_database_sizes by the 'each table' qualifier, though it does not explicitly name that alternative.

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?

There is no guidance on when to use this tool versus alternatives such as ecp_mssql_database_sizes or the equivalent table-size tools for other database engines. The intended usage is only implied by the tool name and description, with no conditions, exclusions, or alternatives mentioned.

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

ecp_mssql_truncate_tableB

Delete all rows from a table. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
table_nameYes

TDQS

B3.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden of safety disclosure. 'Irreversible' is a strong and explicit warning, and 'Delete all rows from a table' clearly states the destructive scope. It does not cover secondary details like identity resets or foreign-key restrictions, but the core behavioral risk is well disclosed.

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 zero filler. The action is front-loaded and the 'Irreversible' warning is given its own sentence for emphasis. Every word earns its place.

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

Completeness3/5

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

For a simple three-parameter destructive tool, the description is minimally adequate: it conveys the action and irreversibility. However, given the absence of annotations and output schema, it leaves usage context, confirmation behavior, and parameter intent to inference from the schema.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it does not explain db_name, table_name, or confirm. The parameter names are somewhat self-explanatory, but the critical confirm gate and what db_name refers to are left entirely to the schema.

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

Purpose4/5

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

The description states a specific action ('Delete all rows') on a clear resource ('a table'), and 'all rows' implicitly distinguishes it from row-level delete and drop-table siblings. It does not explicitly name alternatives or state that the table structure is preserved, so it falls just short of full marks.

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?

There is no guidance on when to use this tool versus alternatives like ecp_mssql_drop_table, ecp_mssql_delete_row, or taking a backup first. The description only warns that the operation is irreversible, but offers no 'use this when...' or 'not when...' context.

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

ecp_mssql_update_rowC

Update a row in a table, identified by primary_key.

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYes
confirmYes
db_nameYes
passwordYes
table_nameYes
db_usernameYes
primary_keyYes

TDQS

C2.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 of disclosing that this is a mutating operation. It only says 'update,' without mentioning that changes are applied to specified values, that a confirm=true flag is required, or what happens if the primary key does not match an existing row. This is insufficient for a destructive database operation.

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 sentence with no filler, front-loading the action and the identifying mechanism. It is concise and scannable, though the brevity comes at the cost of missing essential detail captured in other dimensions.

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

Completeness1/5

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

For a mutating tool with 7 required parameters, no output schema, no annotations, and nested objects, this description is far too thin. It fails to mention the mandatory confirm flag, how values should be structured as column-value pairs, authentication parameters, or any error/return behavior. An agent cannot reliably invoke this tool correctly from the description alone.

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

Parameters2/5

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

Schema description coverage is 0%, and there are 7 required parameters including nested objects for primary_key and values. The description clarifies only the role of primary_key, leaving values, confirm, db_name, table_name, db_username, and password unexplained. It does not compensate for the lack of schema descriptions.

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

Purpose4/5

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

The description clearly states the action ('Update') and the resource ('a row in a table'), and adds the key mechanism 'identified by primary_key.' This is specific enough to distinguish the operation from insert, delete, and browse row tools among the sibling set, though it does not explicitly contrast them.

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 gives no explicit guidance on when to choose this tool over insert_row, delete_row, or browse_rows, and no mention of alternatives or exclusions. The only usage hint is indirect: the row is found by primary_key. It does not address prerequisites like confirmation or object shape.

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

ecp_mysql_backup_to_storage_bdB

Back up a MySQL database to the account's storage.bd tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description must carry the full behavioral disclosure burden. It does convey the key behavioral trait that the backup target is the account's remote storage.bd tenant rather than a local file. However, it omits what happens to any existing backup, whether the operation is destructive or idempotent, the backup naming convention, and whether a job is created asynchronously (as implied by ecp_storage_bd_job_status existing). This is a minimal, not misleading disclosure.

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-formatted sentence that directly states the action and destination with no filler. It is front-loaded with the key verb 'back up' and the resource 'MySQL database.' While it is short, the efficiency of writing is excellent; there is no wasted language, even though more behavioral detail could have been added without hurting clarity.

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?

This is a single‑parameter tool with no output schema and no annotations, so the description is the sole source of context. It is adequate for a minimal call: the agent knows the db_name and the destination. But given the sibling list includes ecp_storage_delen_get_config and ecp_storage_bd_job_status, an agent selecting this tool would benefit from knowing that a storage tenant must be configured, that the operation is likely asynchronous, and how to monitor its status. Those gaps make the context only partially 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 0%, so the schema provides no field documentation. The description implies that db_name refers to the MySQL database to back up, which adds basic semantic value. However, it does not explain the format of db_name (case sensitivity, whether it must exist in the account, or whether special characters are allowed) or how the backup is named/stored. The description covers the central parameter adequately but leaves edge cases completely open.

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 states a specific verb and resource: "Back up a MySQL database to the account's storage.bd tenant." This clearly identifies the action and destination, and the MySQL engine distinguishes it from similar backup tools for MSSQL and Postgres visible in the sibling list. It does not explicitly mention the restore sibling, but the purpose is unambiguous.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives like ecp_mysql_export_database, ecp_mysql_import_database, or ecp_mysql_restore_from_storage_bd. There are no prerequisites (e.g., storage.bd tenant must be configured) and no mention of when a backup is preferable to an export. The agent must infer usage entirely from tool naming conventions.

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

ecp_mysql_browse_rowsB

Browse rows in a table. Connects as the given MySQL user (db_username/password), which must be a user this account owns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
db_nameYes
filtersNo
passwordYes
page_sizeNo
table_nameYes
db_usernameYes
sort_columnNo
sort_directionNo

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior on its own. 'Browse' implies a read-only operation, and the authentication note clarifies that the tool connects using the provided db_username/password, which is relevant to access behavior. Still, it does not explicitly say it makes no modifications, nor does it explain what the operation returns, leaving an agent with some uncertainty.

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 2 sentences and both carry weight: the first states the action, the second gives a relevant credential constraint. There is no filler, repeated information, or schema paraphrasing. The structure is front-loaded and usable.

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?

The tool has 9 parameters, a nested filters object, and no output schema, so contextual completeness is a real need. The description does not explain how filters, pagination, or sorting behave, nor what a successful browse returns. An agent would likely have to experiment or guess with optional parameters despite the clear core purpose.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate for the 9 parameters, but it adds meaning only to db_username/password by saying they identify an owned MySQL user. The meaning and format of filters, pagination (page/page_size), and sorting (sort_column/sort_direction) are left entirely to the schema, which has no descriptions. This falls short of the needed compensation for a large parameter surface.

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 states a clear operation ('Browse rows in a table') and identifies the resource domain ('MySQL user'), which is enough for an agent to recognize what the tool does. It does not explicitly differentiate this from the sibling mssql/postgres browse-row tools, but the tool name already carries that distinction. The second sentence adds a specific auth requirement, so purpose is clear.

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: use this when you need to browse MySQL table rows. It does not explicitly say when not to use it or call out alternatives, even though the sibling list includes mssql_browse_rows and postgres_browse_rows. The credential constraint ('must be a user this account owns') gives some practical usage guidance, but not enough for a fully routed choice.

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

ecp_mysql_change_db_userA

Reassign a database to be owned by a different MySQL user (both must already belong to this account).

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
db_usernameYes

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 does disclose a key constraint: both database and user must already exist within the account, which prevents an agent from using this tool to create cross-account or new objects. However, it does not describe side effects such as whether previous privileges are removed, whether the old owner loses access, or what happens if the target user already owns the database.

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 sentence with no filler. The core action is stated first, and the essential precondition is given in a parenthetical. Every word contributes to understanding what the tool does and when it can be used.

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 two-parameter ownership-transfer tool, the description provides the action, the parameter roles, and the key prerequisite. With no output schema and no annotations, it doesn't explain return values or side effects, but the core invocation context is sufficiently complete for an agent to select and call the tool correctly.

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

Parameters4/5

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

The input schema provides no descriptions for db_name or db_username, so the description must compensate. It does this by mapping the action to the parameters: db_name is the database being reassigned and db_username is the target owner. It also adds the account-scoping constraint, which is meaningful semantic information not present in the schema.

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

Purpose5/5

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

The description uses a specific verb and resource: it says the tool will 'reassign a database to be owned by a different MySQL user.' This clearly distinguishes it from sibling tools that create, delete, list, or grant privileges on MySQL databases and users. It also disambiguates the ambiguous tool name by clarifying this is about ownership, not changing a user's credentials.

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

Usage Guidelines4/5

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

The description gives clear context for use: it is for reassigning MySQL database ownership, and it adds a strong precondition that both the database and the user must already belong to the account. It doesn't explicitly name alternative tools for creating users or managing privileges, but the engine-specific wording and the 'must already belong' constraint provide enough directional guidance for an agent.

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

ecp_mysql_create_databaseA

Create a MySQL database. db_name gets the account's own prefix applied automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
db_usernameNo

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 one important behavior: the db_name gets the account's own prefix applied automatically. This is useful because it tells the agent the final database name will differ from the input. However, it doesn't mention whether the operation is destructive, requires specific permissions, or what happens if the database already exists. For a create operation, the mutation is implied, but the prefix behavior is a valuable addition.

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 core action is stated first, and the critical prefix behavior is front-loaded in the second sentence. Every word earns its place.

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

Completeness3/5

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

For a simple create tool with 2 parameters and no output schema, the description covers the main action and one parameter's key behavior. However, it doesn't explain what db_username does, whether it's optional, or what the return value is. Given the tool's simplicity, this is 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?

Schema description coverage is 0%, so the description must compensate. It explains db_name semantics (prefix applied automatically) but says nothing about db_username. The description adds meaning for one parameter but leaves the other undocumented. Since there are only 2 parameters and one is explained, this is partial compensation.

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

Purpose4/5

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

The description clearly states the action ('Create a MySQL database') and the resource. It distinguishes itself from sibling tools like ecp_mssql_create_database and ecp_postgres_create_database by naming MySQL specifically. However, it doesn't explicitly contrast with those siblings, so it's clear but not fully differentiated.

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 it: when the user wants to create a MySQL database. It doesn't explicitly state when not to use it or mention alternatives like ecp_mssql_create_database or ecp_postgres_create_database. The context is clear enough for an agent to select it for MySQL database creation, but no exclusions or alternatives are given.

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

ecp_mysql_create_db_userB

Create an additional MySQL user. db_username gets the account's own prefix applied automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYes
db_usernameYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It does disclose a valuable non-obvious behavior: db_username gets the account prefix auto-built. However, it does not disclose default privileges, reversibility, failure conditions, or what side effects creating this user has on the MySQL instance.

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, single-purpose sentences. The core action is first, and the only non-obvious parameter detail is placed immediately afterward. No fluff or restated schema.

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 create call with two flat params the essential contract is present. But no annotations and no output schema place the entire burden on this description, which omits what privileges if any the user receives, what happens if the user already exists, and whether the operation is easily reversible via a sibling 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 description coverage is 0%, leaving the description to add meaning. It does for db_username, telling the agent that a prefix is auto-applied, which affects how the parameter should be provided. The password property receives no semantic add–but password type is simple and largely inferable from the create-user intent.

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 states the action clearly: 'Create an additional MySQL user.' It names the resource and DB type, distinguishing it from MSSQL/Postgres user siblings. It does not explicitly contrast with user-management siblings like mysql_change_db_user, but the create action itself makes the purpose unambiguous.

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

Usage Guidelines2/5

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

No guidance is given about when to choose this tool over alternatives, no prerequisites, and no exclusions. The only hint is 'additional', which is too thin to help an agent decide among mysql_create_db_user and related user-management tools.

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

ecp_mysql_database_sizesA

Get size (in bytes) of each MySQL database.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description must carry the behavioral disclosure burden. 'Get' indicates a read-only operation and 'in bytes' adds output detail, but the description does not mention return format, error behavior, or whether any access requirements exist. Still, for a simple no-parameter read tool, the core behavior is reasonably clear.

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 filler. Every word contributes meaningful information: the action, the target, and the unit of measure.

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 zero-parameter read-only tool with no output schema, the description provides the essential context: it returns sizes in bytes for each MySQL database. It could further describe the exact return shape, but the low complexity of the tool keeps this from being a major gap.

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

Parameters4/5

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

The input schema is empty and the parameter count is 0, so there are no parameters to document. Per the baseline for zero-parameter tools, this is adequate; the description reinforces that no filtering is offered by saying 'each MySQL database.'

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

Purpose5/5

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

The description states a specific verb ('Get'), resource ('each MySQL database'), and unit ('bytes'), which clearly defines what the tool does. It is immediately distinguishable from sibling tools like ecp_mysql_table_sizes and ecp_mysql_list_databases by scope and output.

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 the tool: whenever you need the size of each MySQL database. However, it does not explicitly contrast it with alternatives such as ecp_mysql_table_sizes or note when not to use it, so usage context is only implied rather than explicit.

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

ecp_mysql_delete_databaseA

Delete a MySQL database. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes

TDQS

A3.6/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 discloses the most critical behavioral trait: the operation is irreversible. It does not mention confirmation requirements or side effects on dependent objects, but for a simple delete-database operation, the irreversibility warning is substantive and honest.

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 filler. 'Delete a MySQL database' states the core action and resource, and 'Irreversible' adds the critical consequence in one word. Every element earns its place.

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

Completeness3/5

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

For a destructive two-parameter tool with no annotations and no output schema, the description is adequate but thin. It identifies the resource and the irreversible consequence, but it does not state that confirm must be true, what happens on success/failure, or any prerequisites. The schema fills the confirmation gap, but the overall context is minimal.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to compensate, but it does not explain either db_name or confirm. The confirm parameter's const true is present in the schema, which helps, but the description itself adds no parameter-level meaning beyond the tool name.

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

Purpose5/5

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

The description clearly states the action ('Delete') and the resource ('a MySQL database'), and includes 'Irreversible' as a scope-defining consequence. This distinguishes it from sibling tools like create_database, list_databases, drop_table, and truncate_table without needing to open the schema.

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 given about when to use this tool versus alternatives such as backup/export, truncate, or dropping individual tables. The intended use is only implied by the name and the verb 'Delete'; there are no explicit conditions, prerequisites, or exclusions.

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

ecp_mysql_delete_db_userB

Delete an additional MySQL user. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_usernameYes

TDQS

B3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states 'Irreversible,' which is a critical destructive trait, but it does not mention any other consequences, permissions, or 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.

Conciseness4/5

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

The description is extremely short and front-loaded, with every word contributing. It could be improved by adding a note about the confirm parameter, but as written it is appropriately terse.

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

Completeness2/5

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

The tool is destructive and has a required confirm parameter, but the description does not explain what 'additional' means or what confirmation is needed. The lack of output schema and annotations makes this minimal description insufficient for safe and correct invocation.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate for the two parameters. It does not explain db_username or the confirm parameter at all, and the confirm boolean's purpose is left entirely to 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 names the exact operation: deleting a MySQL user. It is clearly distinguishable from sibling tools like ecp_mysql_delete_database or ecp_mssql_delete_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?

There is no guidance about when to use this tool versus alternatives such as ecp_mysql_list_db_users, ecp_mysql_change_db_user, or ecp_mysql_revoke_privileges. The tool name implies the operation, but the description does not provide any usage context.

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

ecp_mysql_delete_rowA

Delete a row from a table, identified by primary_key. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
passwordYes
table_nameYes
db_usernameYes
primary_keyYes

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 the burden. It discloses a critical behavioral trait: 'Irreversible.' It also clarifies the selection criterion (primary_key). However, it does not disclose whether the tool requires elevated permissions, what happens if the primary key is not found, or any confirmation requirement beyond the schema's const constraint.

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 zero filler. The action is front-loaded, and the irreversible warning is valuable. Every word earns its place.

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

Completeness3/5

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

Given 6 required parameters, 0% schema coverage, no annotations, and no output schema, the description is somewhat thin. It clarifies the primary_key semantics and the irreversible hazard, but the agent is left guessing about confirm's role, connection details required, and return behavior.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It explains primary_key ('identified by primary_key'), but the other five parameters (db_name, table_name, db_username, password, confirm) are left undefined. The description adds some meaning but not nearly enough for 6 undocumented parameters.

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

Purpose5/5

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

The description states a specific verb ('Delete'), a resource ('a row from a table'), and an identification method ('by primary_key'). This distinguishes it from siblings like truncate_table, drop_table, and insert_row.

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 gives no guidance on when to use this tool versus alternatives like ecp_mysql_truncate_table or ecp_mysql_drop_table. It does warn that the operation is irreversible, which hints at caution, but there are no explicit exclusions or alternatives.

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

ecp_mysql_drop_tableB

Drop (delete) a table entirely. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
table_nameYes

TDQS

B3/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 behavioral burden. It does disclose the single most critical trait — 'Irreversible' — which is genuine, valuable context for a destructive operation. However, it omits other important behavioral details: cascade effects on dependent objects (views, triggers, foreign keys), failure behavior if the table doesn't exist, and the confirm=true safety gate semantics. The key risk is disclosed but the picture is incomplete.

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, fully front-loaded with the action, and zero filler. 'Irreversible' is a single-word sentence that earns its place by flagging the primary risk. This is a model of efficient writing.

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

Completeness2/5

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

For a destructive, irreversible operation with no annotations, no output schema, and a 0%-coverage schema, the description is too thin. An agent needs to know the relationship to ecp_mysql_truncate_table (the closest sibling and most likely source of error), the role of the confirm parameter, and the scope of destruction. Only the core action and irreversibility are conveyed, leaving the agent under-equipped for safe invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it mentions no parameters at all. db_name and table_name are self-evident from their names, but the confirm parameter — a boolean constrained to true that functions as a safety confirmation — is entirely unexplained. The agent must guess the relationship between 'confirm' and the drop operation, which is a meaningful gap at 0% 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 uses a specific verb ('Drop') and resource ('a table entirely'), clearly stating the operation. The qualifier 'entirely' helps signal this removes the whole table rather than just its contents, which weakly differentiates it from ecp_mysql_truncate_table. However, it doesn't explicitly name that sibling, so it falls short of a 5.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. The sibling list includes ecp_mysql_truncate_table (clears data, keeps structure), ecp_mysql_delete_database, and ecp_postgres_drop_table/ecp_mssql_drop_table, but the description never explains which operation fits which situation. An agent must infer the decision boundary entirely from tool names.

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

ecp_mysql_export_databaseA

Export a MySQL database as a .sql dump (returned as text - large databases will produce a large result, consider ecp_mysql_backup_to_storage_bd instead for anything beyond a quick look).

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the output is returned as text and warns that large databases produce large results, which is a meaningful behavioral caveat. It does not mention permissions or side effects, but 'export' and the stated text-return behavior cover the main operational expectations.

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 sentence that front-loads the core action and return format, then immediately adds the large-result warning and alternative tool. Every clause earns its place with no redundant filler.

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 one-parameter tool with no output schema, this is complete enough: it states the action, the return format, the operational caveat about size, and the appropriate fallback. An agent can decide whether to call it or use the storage backup sibling without needing additional context.

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

Parameters2/5

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

The schema describes db_name only as a string with no explanation, and the description adds no parameter-level detail beyond the general 'MySQL database' phrase. With 0% schema description coverage, the description should compensate by explaining what db_name expects, but 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 states a specific verb and resource: 'Export a MySQL database as a .sql dump'. It also names the key differentiator from the sibling backup tool by noting the dump is 'returned as text', making it easy to distinguish from ecp_mysql_backup_to_storage_bd.

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

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance: use this tool for a quick look, but consider ecp_mysql_backup_to_storage_bd for anything beyond that. This clearly routes the agent to the correct sibling based on size and intent.

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

ecp_mysql_grant_privilegesA

Grant privileges (e.g. ['SELECT','INSERT']) to a MySQL user on a database. Security-sensitive - review carefully before confirming.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
privilegesYes
db_usernameYes

TDQS

A3.6/5.0
Behavior3/5

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

There are no annotations, so the description carries the transparency burden. It adds the warning "Security-sensitive - review carefully before confirming," which alerts the agent to treat the operation carefully. This is useful but it does not disclose what happens on execution, whether it is idempotent, or the permission/authentication implications beyond that warning.

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 filler. The primary action is front-loaded immediately, and the security warning is placed as a separate, meaningful final note. Every sentence earns its place, and the example is compact and illustrative.

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?

This is a security-sensitive mutation tool with no output schema, no annotations, and 0% schema description coverage. The description covers the basic intention but leaves out important execution context such as whether the target user/database must already exist, how the operation interacts with existing privileges, and what the actual output or result is. Given the stakes, the description should provide more 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 0%, so the description must compensate. It clarifies the target by saying "to a MySQL user on a database," implicitly mapping db_username and db_name, and gives an example value for privileges. However, it does not explain the confirm parameter's semantic role except indirectly through the phrase "before confirming," and it does not describe each parameter in depth.

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

Purpose5/5

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

The description states a specific verb and resource: "Grant privileges" to "a MySQL user on a database." It gives a concrete example of the privileges input and leaves no doubt that this is the MySQL grant tool, distinct from mssql_grant_privileges and postgres_grant_privileges siblings.

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

Usage Guidelines3/5

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

The purpose "Grant privileges..." implies the tool is for adding permissions, and the sibling name ecp_mysql_revoke_privileges implies the reverse action. However, the description gives no explicit guidance on prerequisites (e.g., the user and database must already exist) or conditions for choosing this over list_privileges/revoke_privileges, leaving some selection inference to the agent.

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

ecp_mysql_import_databaseA

Import a .sql dump into an existing MySQL database, overwriting its content. Irreversible - pass the full SQL as text.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
sql_contentYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description correctly emphasizes the destructive and irreversible nature of the operation ('Irreversible - overwriting its content'). It also indicates that the SQL is passed as text, which is a key behavioral detail. It does not mention potential data loss for other databases or rollback options, but the core warning is present.

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 brief and front-loads the essential action and destructive warning in the first sentence. The second sentence reinforces the input method. It is concise without waste, though it could be slightly more structured by separating the operational note from the safety warning.

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 that the tool is a destructive import with three parameters and no output schema, the description covers the critical aspects: what it does, that it overwrites, and that it is irreversible. It lacks details on success/failure feedback (since no output schema) and does not explicitly confirm the confirm parameter's role, but for a simple import operation, the description is largely sufficient.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate for parameter meaning. The description clearly explains that sql_content is the full SQL dump text and implies that db_name identifies the target database. It also hints at the confirm parameter's purpose by warning about irreversibility, though it doesn't explicitly state that confirm must be true. Given the 0% coverage, the description adds significant 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 verb (Import), the resource (.sql dump into an existing MySQL database), and the effect (overwriting content). It is concise and distinct from sibling tools like ecp_mysql_export_database, which is the reverse operation, and ecp_mysql_restore_from_storage_bd, which restores from storage rather than raw SQL text.

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

Usage Guidelines3/5

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

The description implies usage by mentioning 'existing MySQL database' and passing SQL as text, but does not explicitly state when to use this tool over alternatives like restore-from-storage or provide exclusions. It does not mention prerequisites such as the database must exist or that the user must have permission. Adequate but not fully explicit.

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

ecp_mysql_insert_rowC

Insert a row into a table.

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYes
confirmYes
db_nameYes
passwordYes
table_nameYes
db_usernameYes

TDQS

C2.1/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 disclose behavioral traits. It does not mention that this is a write operation that modies the database, nor does it mention any side effects, such as the need for confirmation. The required `confirm` parameter and `password` parameter suggest safeguards, but the description does not explain them. The description fails to disclose the mutating nature beyond the verb 'Insert'.

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

Conciseness3/5

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

The description is a single short sentence, which is concise and front-loaded. It is appropriately sized for minimal information, but it lacks substance that would be needed for a complex tool. Every word is useful, but the brevity is under-specification rather than elegance.

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

Completeness1/5

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

Given the complexity (6 required parameters, nested objects, 0% schema coverage, no output schema, and no annotations), the description is severely inadequate. It does not explain the meaning of `values`, the role of `confirm` (safety confirmation), or the authentication requirements. The description fails to cover essential details that the schema and annotations do not provide.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention any parameters. The schema only lists parameter names and types, but with 6 required parameters and nested objects, it does not explain the format of `values` (column-value mappings) or the meaning of `confirm`. The description adds no semantic value; the agent is left to infer how to structure the invocation.

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

Purpose3/5

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

The description 'Insert a row into a table' states a clear verb and resource (insert into a MySQL table), which distinguishes it from tools that update, delete, or browse rows. However, it does not specify that this is for MySQL specifically, though the tool name includes 'mysql'. The purpose is clear but minimal.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There is no mention of when to use `ecp_mysql_insert_row` instead of `ecp_mysql_update_row` or `ecp_mysql_browse_rows`. It also doesn't mention any prerequisites or constraints, such as the need for the table to exist or the authentication requirements.

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

ecp_mysql_list_columnsA

List a table's columns (metadata only, no row data).

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
table_nameYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It discloses that the tool returns only metadata and not row data, which is a key behavioral trait. However, it does not mention the exact return format (e.g., column names, types), whether the operation is read-only, or error conditions. For a simple metadata read, this is adequate but not rich.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the purpose and the key differentiator ('no row data'). No unnecessary words or repetition.

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?

The tool has no output schema and no annotations, so the description is the sole source of information. It does not specify what information about columns is returned (e.g., names, types, nullability), nor does it mention prerequisites or error behavior. Given the large number of sibling tools and the lack of output schema, the description is too minimal for an agent to fully understand the tool's behavior.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the parameters. It does not mention db_name or table_name at all. The parameter names are self-explanatory, but the description adds no additional meaning, constraints, or format hints. This is a significant gap given the 0% 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 states a specific verb and resource: 'List a table's columns'. It also explicitly says 'metadata only, no row data', which differentiates it from ecp_mysql_browse_rows and other row-returning tools. The name includes 'mysql' and 'columns', making it distinct from ecp_mssql_list_columns and ecp_postgres_list_columns. Purpose is unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context: it lists column metadata, not row data. This implicitly tells the agent not to use this tool when row data is needed, pointing toward ecp_mysql_browse_rows. However, it does not explicitly mention when to use this over other list tools (e.g., ecp_mysql_table_sizes) or name alternatives. It is clear enough for a simple metadata operation.

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

ecp_mysql_list_databasesA

List this account's MySQL databases.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 full behavioral burden. It implies a read-only enumeration by using 'List', but it does not disclose details such as whether it returns database names, placeholder handling, potential throttling, or any hidden side effects. This is minimal but adequate for a simple listing action.

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, unambiguous sentence with no filler or redundancy. It is front-loaded with the verb and object, and every word earns its place.

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

Completeness3/5

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

For a zero-param list action, the description is mostly complete knowledge of the tool's purpose. However, with no output schema, it leaves an agent to guess whether the result is a simple name list, includes metadata/sizes, or appears in a particular format. These are modest but concrete contextual gaps.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description adds conceptual scope by mentioning 'this account's MySQL databases', which helps an agent understand the exact resource being listed even though no input schema is needed.

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+resource combination: 'List this account's MySQL databases.' It clearly communicates the tool's function and the account-level scope, which differentiates it from sibling tools for Mongo, MSSQL, Postgres, and related MySQL actions.

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

Usage Guidelines2/5

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

No guidance is given about when to choose this tool over alternatives, what prerequisites exist (e.g., requiring a database server/remote to be available), or when not to use it. An agent must infer usage purely from the name and the simple description.

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

ecp_mysql_list_db_usersA

List additional MySQL users on this account (beyond the account's own default user).

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 present, the description carries the behavioral burden. The verb 'List' communicates a read-only, non-destructive operation, but the description doesn't mention the output structure or which default user is excluded. These are minor gaps for a simple enumeration 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?

One sentence, no filler, action-first phrasing, and a parenthetical that adds needed disambiguation about scope. Every element earns its place.

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

Completeness4/5

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

For a zero-parameter, no-output-schema tool, the description provides enough to invoke it correctly and distinguish it from sibling tools. It could say a bit more about what the returned list contains, but nothing essential is missing for correct use.

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

Parameters4/5

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

The tool has zero parameters, so the description has no parameter documentation burden. The schema is trivially complete and the baseline of 4 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 states a concrete operation ('List'), a specific resource ('MySQL users'), and a clear boundary ('additional... beyond the account's own default user'). This differentiates it from similar Postgres/MSSQL user-listing tools and from the account's default 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?

The description makes the use case clear: use it to enumerate non-default MySQL users on the account. It doesn't explicitly name alternatives, but for a zero-parameter read-only list tool, the context is sufficient and no exclusions are needed.

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

ecp_mysql_list_privilegesA

List a MySQL user's privileges on a database.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
db_usernameYes

TDQS

A3.5/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 of behavioral disclosure. The verb 'List' reasonably implies a read-only operation, but the description does not clarify return format, what happens if the user or database does not exist, or whether any special privileges are required to view the list.

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 focused sentence with no wasted words. It front-loads the action and resource, making it immediately scannable.

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

Completeness3/5

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

The tool is simple with only two required parameters, so the description conveys the core invocation clearly. However, without an output schema or annotations, it leaves the return value, error cases, and any permission-related caveats unspecified.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does map the two parameters to concepts ('user' and 'database'), and the parameter names are self-explanatory, but it adds no detail about expected formats, existence requirements, or the meaning of the returned privileges.

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 a precise resource ('a MySQL user's privileges on a database'). It clearly distinguishes this tool from related siblings like ecp_mysql_grant_privileges, ecp_mysql_revoke_privileges, and the equivalent PostgreSQL/MSSQL privilege listers.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention that this is a read-only counterpart to grant/revoke, nor does it distinguish when to choose MySQL over MSSQL or PostgreSQL variants.

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

ecp_mysql_restore_from_storage_bdA

Restore a MySQL database from a storage.bd snapshot, overwriting its current content. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
snapshot_idYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It correctly highlights the destructive and irreversible nature of the operation, which is critical. However, it does not mention other potential behaviors such as whether the database must exist, whether the operation is asynchronous, or any permission requirements. The two statements it makes are accurate and important, but coverage is thin.

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

Conciseness5/5

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

The description is exceptionally concise: two short sentences with no filler. The primary action is front-loaded, and the irreversibility warning follows immediately. Every word earns its place.

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

Completeness3/5

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

For a destructive restore operation, the description covers the key warning (overwrite, irreversible) and the basic purpose. However, it does not mention the confirm parameter requirement (though visible in schema), nor does it explain how to obtain a snapshot_id or what happens if the target database does not exist. Given the operation's severity and the absence of annotations, a bit more context would be beneficial, but the core information is present.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameter meaning. The description only hints at db_name and snapshot_id via the phrase 'MySQL database' and 'storage.bd snapshot', but it does not explicitly explain the parameters or the mandatory confirm flag. The parameter names are self-explanatory, but the description adds minimal value beyond what the names already convey.

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

Purpose5/5

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

The description states a specific verb ('Restore'), a resource ('MySQL database'), a source ('storage.bd snapshot'), and the effect ('overwriting its current content'). This clearly distinguishes it from the sibling backup tool and from import operations, making its purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage by describing the exact scenario (restore from a storage.bd snapshot) but does not explicitly mention when not to use it or compare with alternatives like import_database. The intended use is clear from context, but there is no explicit guidance on alternatives or exclusions.

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

ecp_mysql_revoke_privilegesC

Revoke privileges from a MySQL user on a database.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
privilegesYes
db_usernameYes

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It fails to mention that this is a destructive/irreversible action, that the confirm parameter must be true, or that privilege removal can break application access. The description adds almost nothing beyond the function name.

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 short sentence with no fluff or redundancy. It is appropriately concise, though it sacrifices completeness.

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

Completeness1/5

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

The description lacks critical context: it doesn't mention the confirm parameter, the required user, the list of revocable privileges, or the irreversible effect. With no annotations, the tool is under-specified for safe usage.

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

Parameters1/5

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

Schema coverage is 0% and the description does not mention any parameters. The agent cannot learn what db_username, db_name, privileges, or confirm mean from the description alone.

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

Purpose3/5

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

The verb 'revoke' clearly indicates the actionhol, and the resource

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It doesn't mention that it is the inverse of grant_privileges, or that it should be used to remove specific MySQL privileges from a user. No preconditions (e.g., user must exist, must have been granted privileges first) are stated.

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

ecp_mysql_table_sizesB

Get size of each table in a MySQL database.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes

TDQS

B3.1/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 only says it gets sizes, with no mention of read-only nature, auth requirements, or any side effects. It doesn't disclose whether it returns bytes vs. formatted sizes or whether it includes system tables/indexes. Minimal transparency 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?

The description is a single concise sentence that clearly states the function. It is front-loaded and free of filler. No unnecessary 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 annotations, no output schema, no mention of units, no mention of whether it includes system databases, no guidance on permissions. The description is too sparse to be fully complete for an agent deciding between this and ecp_mysql_database_sizes.

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

Parameters2/5

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

Schema has 1 required parameter (db_name) with no description. The description doesn't mention the parameter at all, so schema coverage is 0%. The agent must infer that db_name refers to the target MySQL database. No guidance on format, required vs optional, or behavior when db doesn't exist.

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

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. The sibling list includes ecp_mysql_database_sizes (database-level sizes), and there are similar sizing tools for other engines (ecp_mssql_table_sizes, ecp_postgres_table_sizes), but the description doesn't distinguish the MySQL table-size tool from ecp_mysql_database_sizes or others. An agent must infer distinctions from names alone.

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

ecp_mysql_truncate_tableB

Delete all rows from a table. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
table_nameYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It does disclose the most critical fact—the operation is irreversible—and clarifies that all rows are affected. However, it omits other relevant behaviors such as the need for explicit confirmation, potential auto-increment reset, or lack of rollback beyond the general irreversibility warning.

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: 'Delete all rows from a table. Irreversible.' Both sentences earn their place, and the core action and safety warning are front-loaded with no filler.

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

Completeness3/5

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

For a destructive 3-parameter tool, this is minimally adequate: it states the action and the irreversibility. It lacks usage guidance, parameter relationships, and sibling-tool differentiation, but the schema provides the confirmation requirement and parameter names, so an agent can still invoke it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain db_name, table_name, or confirm. The phrase 'a table' weakly maps to table_name, but the critical confirm parameter receives no semantic context beyond the schema's const: true constraint.

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 uses a specific verb and resource: 'Delete all rows from a table.' This clearly conveys truncation semantics and distinguishes it from dropping a table. It does not explicitly differentiate from row-level delete tools, but 'all rows' provides enough clarity.

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?

There is no guidance about when to use this tool versus alternatives like ecp_mysql_delete_row or ecp_mysql_drop_table. The description only warns about irreversibility and does not state prerequisites, exclusions, or scenarios where another tool would be preferred.

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

ecp_mysql_update_rowC

Update a row in a table, identified by primary_key.

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYes
confirmYes
db_nameYes
passwordYes
table_nameYes
db_usernameYes
primary_keyYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the row-identification mechanism, but does not disclose that the operation is destructive, requires a confirmation flag, or depends on credentials. The absence of any warning about modifying persistent data makes this inadequate 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 a single, front-loaded sentence with no filler words. While it is minimal to the point of under-specification, every word contributes to stating the core action and target.

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

Completeness1/5

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

For a tool with 7 required parameters, nested objects, no output schema, and no annotations, this description is severely incomplete. An agent would not know how to construct 'values' or 'primary_key', why 'confirm' is required, or what the tool returns.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no meaning for any of the 7 parameters. It does not explain the shape of 'values' or 'primary_key', the role of 'db_username'/'password', or the 'confirm' constraint, leaving the agent with only parameter names.

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

Purpose4/5

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

The description clearly states the action ('Update a row in a table') and the selection mechanism ('identified by primary_key'), making the core purpose unambiguous. It does not explicitly differentiate from sibling tools like ecp_mssql_update_row or ecp_postgres_update_row, but the tool name supplies the MySQL context and the verb 'update' contrasts with insert/delete/browse siblings.

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?

There is no guidance on when to use this tool versus alternatives, prerequisites, or the required confirmation step. The description does not mention that 'confirm' must be true or indicate any circumstances where this tool should be preferred over other MySQL row operations.

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

ecp_network_domain_port_mapsB

List port mappings for one domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

B3.4/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. 'List' does indicate a read operation, but the description does not disclose the output shape, pagination, error behavior, permissions, or any limitations beyond the domain scope.

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 entire description is one short, front-loaded sentence with no filler or redundancy. Every word earns its place by conveying the action, resource, and scope.

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 one-required-parameter read tool, this is minimally adequate: the agent can infer the action and the input. However, with no output schema and no annotations, the description omits return-value details and exact domain semantics, leaving gaps.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no meaning to the 'domain' parameter beyond echoing its name. It does not clarify whether domain refers to a domain name, an ID, or a specific format, leaving the agent to guess.

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'), a concrete resource ('port mappings'), and a scope qualifier ('for one domain'). This clearly distinguishes it from the unfiltered sibling ecp_network_port_maps and the mutating ecp_network_update_port_maps.

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 phrase 'for one domain' implies this tool is for single-domain queries, but there is no explicit guidance on when to choose it over ecp_network_port_maps or when to avoid it. Usage is implied rather than stated.

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

ecp_network_port_mapsB

List all port mappings on this account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/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. The verb 'List' implies a read-only operation, but no further behavioral traits are disclosed (e.g., output format, whether it reflects live state, or permission requirements). For a simple no-parameter list tool, this is minimally adequate but adds little beyond the core action.

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, focused sentence with no extraneous words. It front-loads the primary action and scope immediately, making it 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?

For a tool with no parameters and no output schema, the description is largely sufficient to invoke it correctly. However, given the existence of ecp_network_domain_port_maps, the description could have explicitly distinguished the account-wide scope from domain-level port maps. It does not describe the response shape, but that is perhaps less critical for a list-all operation.

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

Parameters4/5

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

The tool has zero parameters, and the rubric sets a baseline of 4 for no-parameter tools. The description does not need to explain parameter semantics, and the empty schema contains nothing to clarify.

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

Purpose4/5

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

The description clearly states the action (list) and resource (port mappings), and adds the scope 'on this account,' which indicates account-wide operation. It does not explicitly name or contrast with siblings but the account-wide wording provides some distinction from ecp_network_domain_port_maps.

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?

There is no guidance on when to use this tool versus the similar siblings ecp_network_domain_port_maps or ecp_network_update_port_maps. The description only states what it does, leaving the agent to infer when to choose it, and it does not mention any exclusions or alternatives.

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

ecp_network_update_port_mapsC

Update a port mapping and its nginx config. Can affect site routing.

ParametersJSON Schema
NameRequiredDescriptionDefault
httpsNo
domainYes
host_portYes
guest_portYes
descriptionNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It does disclose two important side effects: it modifies nginx config and can affect site routing. However, it omits details such as whether the mapping is replaced or merged, whether changes are reversible, and what failure or validation behavior to expect.

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 wasted words. The core action is front-loaded, and the warning about site routing is placed deliberately at the end. This is concise without losing useful signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating network config tool with 5 parameters, no output schema, and no annotations, this description is too sparse. It gives an agent a general idea but not enough to safely call the tool with correct parameter semantics or to predict side effects and ordering requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining what domain, host_port, guest_port, https, and description mean. It does none of this, leaving an agent to guess which side maps to host versus container and what the https flag controls.

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 names a specific action ('Update') and resource ('port mapping') plus a meaningful secondary effect on nginx config. It is clearly distinct from nearby list-style siblings like ecp_network_port_maps and ecp_network_domain_port_maps, though it does not explicitly differentiate itself.

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?

There is no guidance on when to use this tool versus alternatives, nor when not to use it. The phrase 'Can affect site routing' is a caution, not usage direction; an agent is left to infer that it should first list port mappings or verify the domain before calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_nginx_get_confB

Read the raw nginx config for a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_nameYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it reads the config, which implies a non-destructive operation, but it does not disclose what the response looks like, whether the config is returned as raw text or parsed, whether the domain must exist, or any error behavior. For a read tool, the lack of return format details is a notable gap.

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, concise sentence that front-loads the action and resource. It is appropriately sized for a simple read operation. It could add a bit more detail about the return value without becoming verbose, but as-is it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations, no output schema, and a single undocumented parameter, the description is thin. It tells the agent what the tool does but not what to expect in the response, how the domain_name should be formatted, or any prerequisites (e.g., domain must exist in nginx). Given the sibling ecp_nginx_set_conf exists, a note about read-only vs. write could 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 0%, so the description must compensate for the undocumented parameter. The description mentions 'for a domain' which maps to the domain_name parameter, but it does not add details like expected format (e.g., bare domain vs. with www) or whether it must be an exact match. The single parameter is simple, so the description provides minimal but adequate context.

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 'Read the raw nginx config for a domain' clearly states the action (read) and the resource (raw nginx config for a domain). It distinguishes itself from the sibling ecp_nginx_set_conf, which is the write counterpart, and from ecp_nginx_list_domains, which lists domains rather than reading a config. It could be slightly more explicit about the output being the config file content, but the verb and resource are specific enough.

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: call this when you need to inspect the nginx configuration for a specific domain. It does not explicitly state when not to use it or mention alternatives like ecp_nginx_set_conf for modifying the config. The context is clear but lacks explicit routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_nginx_list_domainsA

List domains that have an nginx config on this container.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It clearly communicates a read-only listing operation and scopes it to nginx configs on this container. However, it does not describe output format, potential empty results, pagination, or other behavioral nuances, though these are less critical for a zero-parameter 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?

A single, focused sentence states the operation, resource, and scope without any filler or redundancy. It is front-loaded and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only listing tool with no output schema, the description is largely complete: it identifies what is listed and under what scope. It could optionally mention the return type explicitly, but 'List' makes the outcome reasonably clear without requiring more context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no properties and there are zero parameters, so there is no parameter meaning for the description to clarify. The description does not need to compensate for schema gaps since the schema coverage is trivially complete.

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 a clear resource ('domains that have an nginx config on this container'), making the tool's purpose immediately understandable. The scope also helps distinguish it from generic domain-listing siblings like ecp_domains_list_all or ecp_domains_list_additional.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied by the description: an agent should call this when it needs domains that have an nginx config on this container. However, it does not explicitly mention when to prefer this over related domain/nginx tools, nor does it state any exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_nginx_set_confA

Overwrite the raw nginx config for a domain. Malformed content can break the site - verify the config is valid before writing.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
domain_nameYes
file_contentYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly identifies the operation as an overwrite and warns that malformed content can break the site, covering the most important destructive risk. It does not mention rollback, nginx reload behavior, or permission requirements, but the core danger is clearly disclosed.

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 zero filler. The action is front-loaded, and the warning is directly relevant to safe invocation, earning its place in the description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple overwrite operation but leaves notable gaps. It does not explain the confirm parameter, explicitly state that the existing config is fully replaced, or mention using ecp_nginx_get_conf to verify the current state first. Given the lack of output schema and annotations, a bit more operational detail would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for missing parameter documentation. It loosely maps 'nginx config' to file_content and 'domain' to domain_name, but it never explains the required confirm parameter, whose purpose is only inferable from the schema's const:true constraint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Overwrite') and a precise resource ('the raw nginx config for a domain'), making it immediately clear what the tool does. It is easily distinguishable from the read-oriented sibling ecp_nginx_get_conf and ecp_nginx_list_domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes a clear use context: replacing a domain's nginx configuration. It also gives a practical directive to verify the config before writing, which implies caution. However, it does not explicitly state when not to use it or point to ecp_nginx_get_conf as the way to inspect the current configuration first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_notifications_clear_allB

Delete all notifications. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes

TDQS

B3/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 burden. It does disclose irreversibility, which is the most critical behavioral fact for a destructive operation. However, it does not explain the scope of 'all' (user-level vs system-wide), whether it clears unread/read states, or what side effects the deletion has.

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, both essential, with the destructive warning placed prominently. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation tool with no annotations POST, the description is thin. It omits the confirm parameter behavior, does not specify scope (e.g., all notifications for the current user vs global), and gives no fallback or recovery information. The agent can call it safely enough, but only because the schema enforces confirm=true.

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?

There is one required parameter, 'confirm', and the schema provides no description. The description never mentions that confirmation is required or what the parameter semantics are, so the agent must infer from the schema alone that 'confirm' must be true.

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 uses a specific verb ('Delete') and a specific resource ('all notifications'), making the core operation clear. It does not explicitly contrast with the sibling ecp_notifications_delete, but the word 'all' conveys bulk scope adequately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to choose this tool over ecp_notifications_delete or ecp_notifications_mark_read. There are no prerequisites, no warning about pending confirmation requirements, and no mention of whether unread notifications are also deleted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_notifications_deleteC

Delete one notification. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
confirmYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Irreversible,' which is useful for a destructive operation, but it does not mention side effects, success/failure responses, idempotency, or authentication needs. This is minimal coverage for a delete 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 short sentences with no filler. The verb is front-loaded, and the critical warning about irreversibility is included. Every word earns its place, achieving excellent conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with a required confirmation parameter and no output schema, this description is starkly incomplete. It does not explain the confirm parameter, how to obtain a valid id, error handling, or what makes this different from clearing all notifications. The irreversibility note helps but does not compensate for missing operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It implies that 'id' identifies the notification via 'one notification,' but it does not explicitly map parameters, and crucially it omits the 'confirm' parameter's role as a required confirmation flag. This leaves the agent with significant ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Delete) and resource (one notification), which is specific and distinct from siblings like ecp_notifications_list or ecp_notifications_clear_all. It is not a tautology and provides enough to understand the core purpose.

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 given on when to use this tool versus alternatives such as ecp_notifications_clear_all or ecp_notifications_mark_read. There is no mention of prerequisites (e.g., needing an id from list) or exclusions, leaving the agent to infer when this is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_notifications_listC

List this account's notifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
unreadNo

TDQS

C2.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 of behavioral disclosure. 'List' suggests read-only behavior, but the description never states whether fetching notifications alters read status, how results are ordered or paginated, or what side effects might occur. This ambiguity matters in a notification API with sibling mark-read and delete tools.

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, front-loaded sentence with no filler or unnecessary repetition. It is concise and easy to parse, though it omits important parameter semantics and behavioral detail that could have been included without bloating the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and an undocumented optional parameter, the description is not complete enough for reliable tool invocation. An agent can guess the basic unfiltered list behavior but cannot confidently interpret the `unread` filter or know what a successful response looks like. This is adequate only for the most trivial use case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, `unread`, is entirely undocumented at both the schema and description level, with schema description coverage at 0%. The description adds no meaning about whether `unread: true` means 'only unread notifications', includes the read flag, or filters in some other way. There is no compensating detail for this low 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 uses a specific verb ('List') and resource ('this account's notifications'), making the operation clearly a retrieval operation. It is distinct from sibling notification mutators like ecp_notifications_mark_read and ecp_notifications_delete, though it does not explicitly name or contrast them. This is clear but lacks explicit sibling differentiation, so it earns a 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided beyond the literal statement of what the tool does. There is no mention of when to prefer this over alternatives, no exclusions, and no context around prerequisites such as authentication or account scope. An agent is left to infer the appropriate call context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_notifications_mark_all_readA

Mark all notifications read.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full responsibility for behavioral disclosure. It merely states the action without adding context like whether the operation is reversible, whether it affects all notification types, or what response to expect. Minimal disclosure for a state-changing operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, scannable sentence that conveys the exact behavior with no filler. It is perfectly sized for a zero-argument 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?

For a trivial zero-parameter action, the description covers the core behavior. It lacks detail on the returned value or scope, but given the tool's simplicity and the lack of an output schema, parents the brevity is acceptable and unlikely to confuse an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description has nothing to explain here. A baseline of 4 is appropriate since no parameters exist and the empty schema already documents this.

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 'Mark all notifications read' names a specific verb, resource, and scope. It correctly differentiates from sibling ecp_notifications_mark_read (which marks individual notifications) by emphasizing 'all', so the agent cannot confuse them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case: when the user wants to mark every notification as read. However, it does not explicitly compare against the sibling ecp_notifications_mark_read (for a single notification) or ecp_notifications_clear_all (which may delete them). The intended applicability is clear but not explicitly structured.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_notifications_mark_readB

Mark one notification read.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It states the core mutation (mark read) but does not mention idempotency, whether the notification must exist, any permissions required, or what the response contains, leaving the agent to infer these.

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 filler. It efficiently conveys the essential action and scope, earning its place for such a simple tool.

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 one-parameter tool with no output schema and no annotations, the description is minimally adequate: an agent knows the action and the id parameter, but it lacks context about the id meaning, side effects, and relationship to related notification tools. It is acceptable but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only says 'one notification' and does not explain that the id identifies the notification to mark or any format or source for the id. It adds minimal meaning beyond the schema's bare 'id' property.

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 ('mark') and resource ('notification') and explicitly scopes to 'one', which distinguishes it from the sibling ecp_notifications_mark_all_read. The action is unambiguous and not a tautology.

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 given about when to use this tool versus alternatives such as mark_all_read, delete, clear_all, or list. The 'one' suggests a single-item operation, but the description does not explicitly route the agent away from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_oneclick_blueprint_appsB

List available one-click app blueprints (fetched from the public EH blueprints catalog).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The only behavioral hint is that data is 'fetched from the public EH blueprints catalog,' implying a remote/network dependency. Since there are no annotations, the description should clarify side effects, failure modes, or staleness; it does not.

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 verb, and contains no filler. The core behavior and data source are stated efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list operation, the description covers the essential action and source. However, it omits any note about return shape, performance, or how this differs from ecp_apps_list, which is useful context for an agent deciding between siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so parameter semantics are trivially complete. The description adds no confusion and makes clear there is nothing to configure, though it does not explicitly say 'takes no parameters.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('List') and a specific resource ('available one-click app blueprints') with the source ('public EH blueprints catalog'). It is plain about what the tool does, though it does not explicitly distinguish itself from the similarly named sibling ecp_apps_list.

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 given on when to choose this tool over alternative list-style tools like ecp_apps_list. The context is implicit ('one-click app blueprints') but no when-to-use or when-not-to-use information is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_oneclick_create_databaseA

Create a MySQL user + database in one step, for use during a one-click app install. If user creation fails (e.g. already exists), database creation is still attempted - check ecp_mysql_list_db_users/ecp_mysql_list_databases afterward if unsure.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
db_passYes
db_userYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses a key behavioral trait: if user creation fails, database creation is still attempted, and it tells the agent how to verify the outcome. This is valuable non-obvious behavior. It doesn't mention idempotency or side effects beyond that, but the partial-failure disclosure is significant.

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 with the core action and context, followed by a critical failure-handling note. Every sentence earns its place; no filler.

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 3-parameter tool with no output schema, the description covers the main action, the use case, and the partial-failure behavior. It doesn't describe the return value or success/failure indicators, but the verification hint partially compensates. Given the tool's simplicity, this is nearly 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 0%, so the description must compensate. It names the three parameters implicitly (db_name, db_user, db_pass) through the phrase 'MySQL user + database', but doesn't add details like naming constraints, password requirements, or defaults. The description adds some context but leaves the agent to infer parameter semantics from names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Create') and resource ('MySQL user + database in one step'), and explicitly scopes it to 'one-click app install'. This distinguishes it from sibling tools like ecp_mysql_create_database and ecp_mysql_create_db_user, which are separate 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?

The description clearly states the intended context ('for use during a one-click app install') and provides a fallback verification step if user creation fails. It doesn't explicitly name alternatives or say when not to use it, but the context is clear enough to guide selection among the many MySQL siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_oneclick_get_blueprintA

Get a blueprint's definition, including the install commands it expects to run (for you to review/run yourself - see note on why this MCP server doesn't run them automatically).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
versionYes

TDQS

A3.6/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 disclosure burden, and it does well: it reveals the critical behavior that this is a non-executing retrieval (the install commands are returned, not run) and explains the server-side rationale. The only shortfall is that it references an external 'note' without including its content.

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?

A single front-loaded sentence states purpose and key behavior with little waste. The parenthetical aside functions as a dash-dash clause is grammatically clunky and depends on an out-of-line note, but overall the description is compact and readable.

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 straightforward two-parameter read tool this is nearly sufficient: the description names the return content (definition plus install commands) and the server behavior. However, with no output schema, no parameter descriptions, and 0% schema coverage, it leaves unaddressed where name/version values originate and how the returned install commands are structured.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it never mentions name or version or their meaning. The parameter semantics ('name' and 'version') are only inferable from the tool name and the word 'blueprint', which leaves the agent to guess where valid values come from.

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 names a specific verb and resource ('Get a blueprint's definition') and clarifies the deliverable: the install commands the blueprint expects to run. It distinguishes itself from the 'one-click' install siblings by stating the server does not execute these commands, but it does so implicitly rather than by naming those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes a clear usage context: call this tool when the agent needs to retrieve the blueprint definition so it can review or run the install commands itself. It does not explicitly name alternatives (e.g., ecp_oneclick_install_wordpress) or give a when-not-to-use condition, but the review-and-run framing is enough to steer an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_oneclick_install_wordpressA

Scaffold a WordPress app: creates the app directory, nginx server block, and patches wp-config.php for HTTPS. Does NOT install WordPress itself - see ecp_oneclick_get_blueprint and run its install commands yourself afterward.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
app_dirYes
app_nameYes
php_versionYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly discloses the side effects (creates directory, nginx block, patches wp-config.php) and the critical limitation (does not install WordPress). It does not mention whether the operation is destructive or idempotent, or whether it requires specific permissions, but the enumerated side effects give the agent a solid behavioral model. A 4 is appropriate because the description adds meaningful behavioral context beyond the name, though it could disclose idempotency/overwrite 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?

Two sentences with zero waste. The first sentence front-loads the core action and its three concrete effects; the second sentence delivers the critical exclusion and the follow-up tool. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a scaffolding tool with no output schema and no annotations, the description covers the main workflow, the follow-up step, and the key side effects. It does not describe the return value or success/failure signals, and it does not explain what 'patches wp-config.php for HTTPS' entails in terms of required inputs. However, the explicit routing to ecp_oneclick_get_blueprint makes the overall workflow complete enough for an agent to proceed. A 4 is justified; a 5 would require return-value or error information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the four undocumented parameters. The description implies the purpose of app_dir, domain, and php_version (scaffolding a WordPress app with nginx and HTTPS), but it does not explain the exact meaning or constraints of each parameter, nor how they relate to the scaffolded artifacts. It adds some context but leaves the agent to infer parameter semantics from the schema names alone. Baseline 3 is fair.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Scaffold'), the resource ('WordPress app'), and enumerates the concrete actions (creates app directory, nginx server block, patches wp-config.php for HTTPS). It also explicitly distinguishes itself from a full WordPress install, which is critical given the sibling ecp_oneclick_get_blueprint. This is a clear, specific purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says what the tool does NOT do ('Does NOT install WordPress itself') and directs the agent to the exact sibling tool to use afterward ('see ecp_oneclick_get_blueprint and run its install commands yourself afterward'). This is an explicit when-to-use/alternative routing, leaving no ambiguity about the follow-up workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_php_get_iniC

Get php.ini values for a PHP version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, but it only says 'Get', which suggests a read operation. It does not disclose whether the tool returns the raw file, parsed key/value pairs, or what errors occur for invalid versions. No parent/destination info is given.

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 concise sentence with no redundant words. It front-loads the action and resource, but it could have used the brevity to add a small detail about the return type without violating conciseness.

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?

The tool has no output schema and only one parameter, yet the description does not explain what is actually returned (whole config? specific values?) or any error conditions. An agent would need to guess the response format, making the description incomplete even for a simple getter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema lists 'version' as a string with 0% coverage, so the description must compensate, but it only says 'PHP version' without format, valid values, or relation to installed versions. It does not explain which version strings are accepted or where to find them.

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', the resource 'php.ini values', and the scope 'for a PHP version'. It distinguishes the tool from siblings like ecp_php_set_ini (which writes) and ecp_php_installed_versions (which lists versions).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention that the version should be one from ecp_php_installed_versions, nor does it contrast with ecp_php_set_ini. Usage context is left entirely to the agent's inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_php_installA

Install a PHP version (apt-get, takes time). This tool cannot show install output - check ecp_php_installed_versions afterward to confirm it succeeded.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
versionYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There is no annotation coverage, so the description carries the full burden. It discloses two important behaviors: the operation is time-consuming and it cannot show install output, and it provides a corrective verification step. This exceeds most descriptions, though it could mention facility-required privileges or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences with no filler. The main action is front-loaded, and the caveat about output and verification is stated immediately. Every sentence earns its place and the information is easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, no-output-schema install operation, the description covers the key aspects: purpose, time expectation, output limitation, and verification alternative. It doesn't state what the function itself returns, but the guidance to check the sibling covers the success determination proxy, making this enough for an agent to proceed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no description coverage (0%) and the description barely supplements it. It alludes to the 'version' parameter by phrasing 'Install a PHP version' but does not define expected version formats or explain the 'confirm' parameter's exact meaning beyond the schema's const constraint. Given the low coverage, this is an under-documented area.

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 uses a specific verb and resource ('Install a PHP version') and identifies the method ('apt-get'), making the action clear. It doesn't explicitly distinguish from sibling install tools like ecp_asdf_install, but among the PHP siblings (installed versions, uninstall, ini) there is little ambiguity.

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 gives useful operational guidance: it warns that no install output appears and instructs checking ecp_php_installed_versions to confirm success. However, it doesn't state when to use this over alternative installation approaches or provide exclusions, leaving some usage judgment to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_php_installed_packagesC

List installed PHP extensions for a version.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the full behavioral burden falls on the description. The word 'list' implies a read-only operation, and that is about all the transparency the description offers. It does not disclose what 'installed' means (enabled extensions vs available packages), how invalid or missing versions behave, or what the return payload looks like.

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 short sentence with no filler: 'List installed PHP extensions for a version.' It is efficiently structured and front-loaded. It loses the final point because it is terse to the point of vagueness on the version parameter, but conciseness itself is good.

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 one-parameter, read-only listing tool, the description nearly suffices. However, with no annotations and no output schema, the agent is left to infer how 'version' should be supplied and what 'extensions' means for the target PHP environment. It also does not point to the sibling that lists installed PHP versions, which would make the tool contextual point complete.

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 sole parameter 'version' has 0% schema description coverage, so the description should compensate. It only restates that the operation is 'for a version,' which adds little beyond the parameter name itself. It omits the expected version format, whether it must match an installed PHP version, or how to obtain valid version strings.

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 gives a specific verb and resource: 'List installed PHP extensions for a version.' It clearly distinguishes from the sibling ecp_php_installed_versions (versions vs extensions) without needing the schema. It does not quite earn 5 because it does not explicitly orient the agent against sibling PHP management tools such as ecp_php_get_ini or ecp_php_install.

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?

There is no guidance on when to use this tool versus alternatives. The description states what it does but never says when not to use it, how to discover available PHP versions, or what to do when the requested version is not installed. Related tools like ecp_php_installed_versions could supply the version value, but no such relationship is mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_php_installed_versionsA

List PHP versions installed on this account's container.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It clearly indicates a read-only listing operation, which is useful. However, it doesn't disclose details like whether the list is sorted, whether it includes default/alternative PHP versions, or what the output format looks like. The description is accurate 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, clear sentence with no wasted words. It front-loads the action ('List') and specifies the exact resource. Perfectly concise for a zero-parameter 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?

For a zero-parameter, read-only listing tool, the description is nearly complete. It tells the agent what the tool does and the scope ('this account's container'). The only minor gap is not describing the output format or whether it includes version details like minor versions, but given the simplicity, this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics burden. The description correctly implies no input is needed. The schema coverage is 100% (empty properties), and the description adds the context of what is being listed, which is sufficient.

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 states a specific verb ('List') and resource ('PHP versions installed on this account's container'), which clearly identifies the tool's function. It distinguishes itself from related PHP tools like ecp_php_installed_packages and ecp_php_get_ini by focusing on installed versions, though it doesn't explicitly name those siblings.

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 context: it's a read-only listing of PHP versions for the current account's container. However, it doesn't explicitly state when to prefer this over alternatives like ecp_asdf_list_installed_versions or ecp_php_installed_packages, nor does it mention any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_php_set_iniB

Overwrite php.ini for a PHP version. Can break every app using that version if malformed.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
versionYes
file_contentYes

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 is the only safety signal. It usefully discloses that this is a destructive overwrite and warns that malformed content can break all apps on that PHP version. However, it does not mention whether the operation makes a backup, validates the ini syntax, or requires a restart.

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 filler. The primary action and the most important risk are communicated immediately, which is appropriately front-loaded for a destructive operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter, high-impact mutation without annotations or an output schema, the description is too thin. It covers the key risk warning but omits crucial operational details such as how version should be specified and what 'file_content' must contain, leaving an agent under-informed before invoking a destructive action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needs to compensate. It only hints that file_content is the malformed content being written and that the operation is version-specific, but it does not explain version formats, that file_content replaces the entire file, or how confirm must be supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Overwrite php.ini') and a resource ('php.ini for a PHP version'), which clearly distinguishes it from siblings like ecp_php_get_ini and ecp_php_installed_versions. It avoids tautology and tells an agent exactly what action is being performed.

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?

There is no explicit guidance about when to use this tool versus alternatives such as ecp_php_get_ini or ecp_php_install. The warning 'Can break every app using that version if malformed' implies caution but does not help an agent select among PHP-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_php_uninstallA

Uninstall a PHP version. Breaks any app still configured to use it. This tool cannot show uninstall output - check ecp_php_installed_versions afterward.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
versionYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly warns that uninstalling breaks apps still configured to use the version, and discloses that the tool cannot show uninstall output, directing the agent to verify via ecp_php_installed_versions. This is valuable behavioral 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?

Three short sentences with no wasted words. The core action is front-loaded, the critical warning comes second, and the verification instruction is last. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive uninstall tool with no output schema and no annotations, the description covers the key operational facts: what it does, the risk, and how to verify success. It doesn't explain the version parameter format or whether confirmation is required, but the schema's const true on confirm makes that self-evident. The missing version format detail is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'a PHP version' but does not explain the 'version' parameter format or the 'confirm' parameter's role. The schema shows 'confirm' is a const true boolean, which is self-explanatory, but the description adds no detail about what version string looks like. Baseline 3 is appropriate since the schema is minimal and the description adds only partial context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Uninstall') and resource ('a PHP version'), and immediately distinguishes itself from related PHP tools by noting it breaks apps still using that version. It is clearly differentiated from siblings like ecp_php_install and ecp_php_installed_versions.

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 clearly implies when to use it (when you want to remove a PHP version) and warns about the consequence (breaks apps still configured to use it). It doesn't explicitly name alternatives like ecp_php_installed_versions for checking versions, but it does reference checking afterward, which provides practical usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_backup_to_storage_bdB

Back up a Postgres database to the account's storage.bd tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It names the action and destination but does not mention side effects, whether the backup runs asynchronously, how long it may take, or what happens on failure. For a backup operation these are material unknowns.

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 filler. Every word contributes to identifying the verb, object, and destination, which is appropriately concise for a one-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations and output schema, the description is too thin: it does not explain what response the agent can expect, whether a job identifier is returned, or how to check backup status. These missing details matter for correct invocation and follow-up.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage and the tool description does not compensate. The only parameter, db_name, is left to be understood from its name and the phrase 'Postgres database'; the description adds no detail about format, ownership, or validity requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Back up'), a clear resource ('a Postgres database'), and a destination ('the account's storage.bd tenant'). This distinguishes it from sibling backup tools for MySQL, MongoDB, and MSSQL, as well as from restore operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of related tools such as ecp_postgres_restore_from_storage_bd or ecp_storage_bd_job_status. The usage context is left entirely to inference from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_browse_rowsB

Browse rows in a table. Connects as the given db_username/password, which must be a user this account owns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
db_nameYes
filtersNo
passwordYes
page_sizeNo
table_nameYes
db_usernameYes
sort_columnNo
sort_directionNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the tool connects as a given db_username/password and that the user must be owned by the account, which is useful. However, it does not disclose whether this is a read-only operation, whether it returns paginated results, what the default page size is, or whether filters/sorting are applied server-side. For a browse tool, these are meaningful 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and front-loads the core action ('Browse rows in a table') before the connection detail. Every sentence earns its place, though the second sentence could have been more informative about pagination or filtering.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, 0% schema description coverage, no output schema, and no annotations, the description is under-specified. An agent cannot know how to construct filters, what page/page_size defaults are, what sort_direction values are valid (though the enum helps), or what the response shape looks like. The owned-user connection note is helpful but does not compensate for the missing operational details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only mentions db_username/password and table browsing. It does not explain the meaning of page, page_size, filters, sort_column, or sort_direction, which are all present in the schema. The description adds almost no value beyond the schema's property names, leaving the agent to guess at filter syntax and pagination semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Browse') and resource ('rows in a table'), and the tool name already signals the PostgreSQL engine. It distinguishes itself from the MySQL/MSSQL/Mongo browse siblings by the ecp_postgres_ prefix, though it doesn't explicitly name a sibling. The phrase 'Connects as the given db_username/password' adds a useful operational detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the read-only row-browsing tool for PostgreSQL, and the sibling list contains ecp_postgres_list_columns, ecp_postgres_table_sizes, and ecp_postgres_browse_rows, so an agent can infer when to use it. However, it does not explicitly state when to prefer this over ecp_mysql_browse_rows or ecp_mssql_browse_rows, nor does it mention any exclusions or prerequisites beyond the owned-user requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_change_database_ownerA

Change a database's owning user (both must already belong to this account).

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
db_usernameYes

TDQS

A4/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 behavioral burden. It clearly identifies a mutating action and a key precondition, but does not disclose side effects on the previous owner, error behavior, or whether the operation affects privileges.

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?

A single front-loaded sentence with no filler. Every word contributes to understanding the operation and its precondition.

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 two-parameter mutation with no output schema, the description covers the operation and the critical precondition. It does not describe return values or error cases, but those are less critical given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only provides string type with no descriptions. The description adds meaning by clarifying that db_username is the new owning user and that both db_name and db_username must be existing resources within the account.

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?

States a specific verb and resource: changing a database's owning user. This clearly distinguishes it from sibling PostgreSQL tools like ecp_postgres_create_database, ecp_postgres_create_database_user, and ecp_postgres_grant_privileges.

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 name alternatives or say 'use this when...', but the parenthetical requirement that both database and user already belong to the account implies this is not for creating resources. Usage context is present but implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_create_databaseA

Create a Postgres database. db_name gets the account's own prefix applied automatically. db_username must already exist (see ecp_postgres_create_database_user).

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
db_usernameYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose a meaningful behavior: db_name gets the account's own prefix applied automatically, which is a non-obvious side effect. It also states a precondition. However, it doesn't describe what happens if the database already exists, permission requirements, or error cases, though for this simple create operation the disclosure is acceptable.

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 deliver the core purpose, a critical naming behavior, and a prerequisite with a pointer to the relevant sibling tool. There is no filler or repetition of schema fields, and the most important 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?

For a two-parameter, low-complexity create operation, the description gives the main precondition and an important side effect. Without an output schema, an agent still knows why and when to call the tool. It doesn't describe idempotency or permission requirements, but the description is sufficient for the practical use case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only names and types with zero descriptions, so the description must compensate. It does so by explaining both parameters: db_name is transformed with the account prefix, and db_username must point to an existing user. This adds meaning that the schema completely lacks, even if it doesn't detail length constraints or validation rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Create a Postgres database." It also distinguishes itself from the sibling user-creation tool by naming ecp_postgres_create_database_user in the context of a prerequisite. The purpose is unambiguous and immediately separable from other database 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?

It explicitly states that db_username must already exist and points to the sibling tool ecp_postgres_create_database_user for creating a user first. This gives clear when-to-use guidance and implies the proper sequence. It doesn't explicitly state when not to use it, but the prerequisite covers the main exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_create_database_userA

Create an additional Postgres user. db_username gets the account's own prefix applied automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYes
db_usernameYes

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 the behavioral burden. It usefully discloses that the submitted db_username is automatically prefixed, which is non-obvious. However, it does not mention default privileges, failure behavior if the user already exists, or what the response contains.

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 the core action first and the key behavioral caveat second. Every word earns its place; there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter create operation with no output schema, the description is largely complete: it identifies the operation, the required inputs, and the critical prefix behavior. The lack of details about password constraints or post-creation privileges is a minor gap at this complexity level.

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 description adds meaningful semantics for db_username by explaining the automatic prefix, which the schema does not convey. The password parameter receives no added explanation, but its purpose is clear from its name and string type; the compensation is partial rather than complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (Create) and resource (an additional Postgres user), and the word 'Postgres' plus 'user' clearly separates it from sibling tools that create MySQL/MSSQL/Mongo users or Postgres databases. 'Additional' also signals it is not the account's initial 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?

The phrase 'additional Postgres user' gives clear context: use this when an extra user is needed, not when creating a database or managing an existing user. It does not explicitly name alternatives or state when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_database_sizesA

Get size of each Postgres database.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full behavioral disclosure burden. It states the read operation but does not describe the output format, units, whether all databases are included, or any permission requirements, leaving the agent to guess at returned data.

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 action and resource clearly. Every word earns its place, and there is no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool the description is minimally viable, but because there is no output schema, it should disclose at least the expected return shape or units. The current text leaves the agent uncertain whether sizes are in bytes, megabytes, or a human-readable format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the baseline for no parameters is 4. With an empty input schema, there is no parameter ambiguity for the agent to resolve, so the description does not need to add parameter-level detail.

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 a precise resource ('size of each Postgres database'), which clearly distinguishes it from the many sibling tools like ecp_postgres_list_databases and ecp_postgres_table_sizes by specifying 'size' and 'each Postgres database.'

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?

There is no explicit guidance about when to use this tool versus alternatives such as ecp_postgres_table_sizes or ecp_mysql_database_sizes. While the name and scope imply a simple read-only database-size listing, no when/when-not context is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_delete_databaseB

Delete a Postgres database. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly warns 'Irreversible,' which is a key behavioral trait for a destructive operation. However, it provides no further details about cascading deletions, user permissions, or system effects that might be expected. Since no annotations are present, this single warning carries the burden but is insufficient for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two short sentences. Every word serves a purpose: it states the action and the key risk (irreversibility). No filler or redundant phrasing.

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 complete enough for a simple destructive operation but lacks details about required parameters, effects on dependent objects, or any output. It does not mention that 'confirm' must be set to true, though the schema enforces it. A more complete description would explain typical usage and consequences.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides no descriptions for 'db_name' or 'confirm', and the tool description does not explain them either. While parameter names are somewhat self-explanatory, the purpose of the 'confirm' boolean (must be true) is not stated, leaving an agent to rely on naming conventions rather than explicit semantics.

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 'Delete a Postgres database' clearly identifies the action (delete) and the resource type (Postgres database), distinguishing it from other database operations among siblings. The irreversibility note reinforces the specific nature of the operation.

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 usage guidance is provided. The description does not indicate when to use this tool versus other Postgres operations (e.g., drop table, truncate) or mention any prerequisites or consequences beyond irreversibility. An agent is left to infer the appropriate context from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_delete_rowA

Delete a row from a table, identified by primary_key. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
passwordYes
table_nameYes
db_usernameYes
primary_keyYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It warns that the operation is 'Irreversible,' which is a critical safety trait for a destructive operation. However, it does not mention authentication requirements, potential side effects, or what happens if the row does not exist, leaving important behavioral aspects undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two short sentences that convey the core purpose and a critical warning. Every word adds value, and there is no filler or repetition.

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?

The tool has 6 required parameters, including a confirm flag and a nested primary_key object, with no output schema. The description fails to explain the confirm parameter's requirement (it must be true) or the structure of primary_key. It also omits any return value or error behavior, making the tool incomplete for correct invocation without additional external knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning only for 'primary_key' by stating the row is identified by it, but it does not explain the structure of the primary_key object or the purpose of the required 'confirm' parameter. The remaining parameters (db_name, table_name, db_username, password) are self-explanatory from their names, but the description provides no additional detail, leaving a significant gap in 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?

The description clearly states the operation: 'Delete a row from a table, identified by primary_key.' It specifies the resource (a row), the identification method (primary key), and the verb (delete). This distinguishes it from sibling tools that drop tables or truncate data, 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 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 versus alternatives like ecp_postgres_drop_table or ecp_postgres_truncate_table. It implies use for single-row deletion but provides no guidance on when not to use it, leaving the agent to infer the appropriate context from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_delete_userC

Delete a Postgres user. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_usernameYes

TDQS

C2.9/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 disclosing destructive behavior. It warns that the operation is 'Irreversible,' which is a meaningful behavioral trait, but it does not mention side effects, dependency failures, or the required confirm flag.

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 carry the essential message: the action and its irreversibility. There is no filler, and the key warning is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no annotations and no output schema, the description is too sparse. It omits the confirm requirement, any usage context, and potential consequences beyond irreversibility, leaving an agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description provides no information about db_username or confirm. The description must compensate for the undocumented schema, but it does not explain either parameter or the confirmation requirement.

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 states a specific verb ('Delete') and resource ('Postgres user'), clearly identifying the operation and engine. It is distinct from siblings like ecp_postgres_delete_database and the MySQL/Mongo/MSSQL delete-user tools, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as revoking privileges or disabling a user. Prerequisites (e.g., ensuring the user owns no objects) are also absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_drop_tableC

Drop (delete) a table entirely. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
table_nameYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses irreversibility, a critical behavioral trait. However, it omits other important details: the need for the confirm parameter (schema const true), cascading effects on dependent objects, permission requirements, and behavior if the table doesn't exist. With no annotations provided, these gaps leave the agent underinformed about consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very brief, which is efficient, but it omits essential information about parameters and usage. While the action is front-loaded, the extreme brevity sacrifices necessary context for an AI agent. It is not appropriately sized for a destructive tool with multiple required inputs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with three required parameters and no output schema, this description is incomplete. It fails to explain the confirmation mechanism, the role of each parameter, and the broader consequences. An agent cannot reliably invoke this tool correctly without additional inference or external knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides zero information about the three parameters (db_name, table_name, confirm). Schema description coverage is 0%, so the agent is left without any explanation of what these parameters mean or why the confirm flag is required. The schema only lists types, not semantics.

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 ('Drop (delete) a table entirely') and the resource being operated on. It emphasizes irreversibility, distinguishing it from truncate operations. Though it doesn't name sibling tools, the 'postgres' prefix in the tool name disambiguates from other database drop_table 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 given on when to use this tool versus alternatives like truncate_table. There is no mention of scenarios where dropping is appropriate, prerequisites, or situations to avoid. The only hint is 'Irreversible,' which implies caution but does not offer explicit decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_export_databaseA

Export a Postgres database as a .sql dump (returned as text - large databases will produce a large result, consider ecp_postgres_backup_to_storage_bd instead for anything beyond a quick look).

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes

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 compensate. It clearly states the dump is returned as text and can be large, which indicates output size behavior. However, it doesn't disclose whether this operation is destructive, whether it locks the database, or what PostgreSQL dump format details apply. With no annotations at all, the description carries the full safety burden and only partially covers it.

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 clear sentence that front-loads the purpose and adds a practical warning about result size. Concise and scannable, though it lacks a usage-eligibility clause or return-format note (already partially covered).

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 one-parameter export tool, the description covers the operation, the output type, and the key caveat (large result). It doesn't explain result format details like escaping or delimiters, but for this simple schema with one param, it is reasonably complete. The sibling alternative is named.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% – the single required parameter db_name has no description. The tool description never mentions what db_name means or expects (name of a database on the server). The agent must infer the parameter's meaning from the tool name alone, which is a real gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Export'), resource ('Postgres database'), and format ('.sql dump'). Names the sibling it is not (ecp_postgres_backup_to_storage_bd), distinguishing this quick-look dump tool from the backup variant. Scope is explicit: export a database as a SQL dump, which is unambiguous against the extensive sibling list.

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 recommends ecp_postgres_backup_to_storage_bd as an alternative for anything beyond a quick look, saying the result is returned as text and is large. This is the clearest possible when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_grant_privilegesA

Grant privileges to a user on a database. Applied per-table (all tables in the public schema) plus default privileges for future tables. Security-sensitive - review carefully before confirming.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
privilegesYes
db_usernameYes

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 carries the full behavioral burden. It discloses the surprising scope behavior (all current tables in public schema plus default privileges for future tables) and flags the operation as security-sensitive. It does not mention prerequisites such as existing database/user or whether privileges are additive, but the core side-effect is clearly conveyed.

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 short clauses, each earning its place: the action, the precise scope, and the safety warning. The most decision-relevant scope detail is front-loaded immediately after the verb.

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 for understanding the core operation but leaves gaps for a security-sensitive mutation: no prerequisites (database/user must exist), no mention of reversibility or whether the grant is additive, and no return/result behavior. Since there are no annotations and no output schema, these gaps are more significant than they would be otherwise.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It maps 'privileges to a user on a database' to the main parameters and clarifies that the grant applies to all tables in the public schema, giving meaning to db_name. It does not explain confirm in detail beyond the generic security warning, but the schema's const:true and the privilege enum already constrain those parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Grant privileges'), a specific resource ('to a user on a database'), and a non-obvious scope ('Applied per-table (all tables in the public schema) plus default privileges for future tables'). This scope detail clearly differentiates it from generic grant semantics and from sibling revoke/list privilege tools.

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 intended use is clear: grant privileges to a database user. The security-sensitive warning also implies a cautionary when-not-to-use condition. However, it does not explicitly name alternatives such as ecp_postgres_revoke_privileges or ecp_postgres_list_privileges.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_import_databaseA

Import a .sql dump into an existing Postgres database, overwriting its content. Irreversible - pass the full SQL as text.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
sql_contentYes

TDQS

A3.9/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 of behavioral disclosure. It explicitly says the import 'overwrites' existing content and is 'Irreversible', which is critical for an agent to understand this is a destructive operation. It could mention execution failure behavior or confirmation mechanics, but the core destructive nature is clearly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, with the destructive warning front-loaded. Every word adds value, and the structure makes the risk immediately clear before any parameter details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, 3-parameter tool with no annotations and no output schema, the description covers the key elements: operation, target, input format, and irreversibility. However, it leaves gaps around the confirm field, potential partial-failure behavior, and whether a backup should be taken first, which would make it more complete for an agent deciding to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It gives meaning for db_name ('existing Postgres database') and sql_content ('pass the full SQL as text'), but it does not explain the confirm parameter beyond its schema-level const: true. Since confirm is essential for a destructive operation, this is a notable gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Import'), a specific resource ('.sql dump'), and a clear target ('existing Postgres database'), with an explicit behavioral qualifier ('overwriting its content'). This distinguishes it from related siblings like create_database, export_database, and restore_from_storage_bd even without naming them.

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?

It clearly states the context: importing into an existing Postgres database and passing the full SQL as text. However, it does not explicitly contrast with alternatives such as ecp_postgres_restore_from_storage_bd or warn when not to use it, leaving some usage decisions to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_insert_rowD

Insert a row into a table.

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYes
confirmYes
db_nameYes
passwordYes
table_nameYes
db_usernameYes

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It does not mention that the operation requires a confirmation flag (confirm=true), does not describe side effects, error conditions, or what happens on conflicting data. The description provides zero behavioral information beyond the bare action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short (one sentence), which is concise but severely under-specified. It fails to convey essential information about parameters, return values, or usage context, making it more of a placeholder than a useful definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 required params, a nested 'values' object, and a confirmation flag), this description is wildly incomplete. It lacks field-level guidance, no mention of required credentials, no note on data format, and no indication of what the tool returns. An agent cannot safely invoke this tool without substantial guesswork.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 6 required parameters with zero descriptions (coverage 0%). The description adds no parameter semantics – it does not explain what 'values' should contain, the format of credentials, or the purpose of the confirm flag. The tool is completely opaque to an agent trying to construct a valid call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb (insert) and resource (a row into a table), which is clear at a high level. However, it does not mention the database type, so it fails to distinguish from sibling insert_row tools for MySQL, MSSQL, etc. The tool name carries that information but the description itself is ambiguous.

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?

There is no guidance on when to use this tool over alternatives such as ecp_mysql_insert_row or ecp_mssql_insert_row, nor any conditions or prerequisites. The agent is left to infer that this is for PostgreSQL solely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_list_columnsB

List a table's columns (metadata only, no row data).

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
table_nameYes

TDQS

B3.3/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 of behavioral disclosure. It clearly states the operation is metadata-only and returns no row data, which is a key behavioral trait. However, it doesn't disclose whether the operation requires specific permissions, whether it fails on non-existent tables, or what the output format looks like. The metadata-only note is useful but the description is otherwise thin.

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 sentence with no wasted words. It front-loads the action ('List'), the resource ('a table's columns'), and the key constraint ('metadata only, no row data'). Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only metadata tool with two parameters and no output schema, the description is mostly adequate. It tells the agent what the tool does and that it doesn't return row data. However, it lacks details about the output structure (e.g., column names, types) and any prerequisites (e.g., table must exist), which an agent might need to interpret the result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the two parameters (db_name, table_name). The description mentions 'a table's columns' but does not explicitly explain that db_name identifies the database and table_name identifies the table. An agent can infer this from the parameter names, but the description adds no semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('a table's columns'), and clarifies it is metadata only, not row data. It doesn't explicitly differentiate from sibling tools like ecp_mysql_list_columns or ecp_mssql_list_columns, but the 'postgres' prefix in the tool name and the metadata-only note provide enough clarity for an agent to understand the core function.

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 context: it is a read-only metadata operation for a Postgres table. However, it does not explicitly state when to use this tool versus alternatives like ecp_postgres_browse_rows (for row data) or ecp_postgres_table_sizes (for size info). The metadata-only note hints at the distinction but doesn't name alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_list_databasesA

List this account's Postgres databases.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations and no output schema, the description carries the full behavioral burden. It clearly indicates a read-only listing operation scoped to the account, but it does not disclose what information is returned (names only versus metadata) or whether any filtering occurs.

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 wasted words. It states the action and scope efficiently, which is ideal for a simple parameterless 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?

For a zero-parameter list operation, the description provides enough context to invoke the tool correctly. A minor gap is that there is no output schema or mention of the return shape, but for a simple database listing this is not a major obstacle.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema has full description coverage, so there is no parameter documentation burden for the description. The baseline of 4 applies for parameterless tools because schema and description leave nothing ambiguous about inputs.

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 a precise resource ('this account's Postgres databases'), making the operation clear. It also differentiates from sibling tools like ecp_mysql_list_databases or ecp_postgres_database_sizes by naming both the engine and the list action.

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 intended use is implied: call this when you need to enumerate the account's Postgres databases, rather than MySQL, Mongo, or MSSQL ones. However, there is no explicit guidance about when to prefer this over related Postgres introspection tools like ecp_postgres_database_sizes or ecp_postgres_list_columns.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_list_db_usersA

List additional Postgres users on this account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. 'List' implies a read-only operation and 'additional' hints at a subset of users, but the description does not disclose output format, what 'additional' excludes, or any account-level prerequisites. For a simple zero-parameter list 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, front-loaded sentence with no filler. Every word adds meaning: 'additional', 'Postgres users', and 'on this account' all carry relevant scope information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only listing tool with no output schema and no annotations, this description is largely sufficient for an agent to invoke it correctly. The main gap is that 'additional' is not formally defined and the return shape is not described, but the operation is simple enough that this is a minor omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty, so there are no parameter semantics to clarify; the baseline for zero-parameter tools is 4. The 'on this account' phrase provides useful context without needing to document parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('additional Postgres users on this account'), which clearly distinguishes it from sibling tools like ecp_postgres_list_databases and ecp_postgres_list_privileges. The scope 'on this account' adds useful precision.

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 intended use is implied: call this when you need the additional Postgres users for the current account. However, it does not explicitly state when not to use it or mention any alternative tool, leaving usage guidance mostly to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_list_privilegesB

List a Postgres user's privileges on a database. Applied per-table (all tables in the public schema) plus default privileges for future tables.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes
db_usernameYes

TDQS

B3.4/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 of disclosing behavior. It does disclose a key behavioral trait: the listing is applied per-table across all tables in the public schema and also covers default privileges for future tables. This is useful context beyond the name. However, it does not mention any potential side effects, prerequisites (like user existence), or whether the operation is read-only. It is not misleading but leaves gaps about what the tool does or requires.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero filler. The first sentence states the core action, and the second adds essential scope detail. It is front-loaded and every word contributes to understanding the tool's function. No redundant information or unnecessary elaboration.

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 tool with two string parameters and no output schema, the description covers the main functionality and scope. However, it omits guidance on output format or return values (though not strictly required without an output schema) and does not clarify parameter semantics. It also does not mention any error conditions or requirements. While adequate for a basic tool, the gaps in parameter clarity and usage context make it only partially complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must fully explain the parameters. It mentions 'a Postgres user' and 'a database', which implies that db_username is the user and db_name is the database, but it does not explicitly map these to the parameter names or provide additional constraints, formats, or examples. For a low-coverage case, this is insufficient compensation; an agent might infer but lacks explicit clarity on what each parameter represents.

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' with a specific resource: 'a Postgres user's privileges on a database.' It further specifies scope as per-table in the public schema plus default privileges for future tables, which distinguishes it from other privilege tools and from similar tools for MySQL/MSSQL. This makes the tool's purpose unambiguous and distinct from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention when to use it instead of grant/revoke tools or note any conditions that would make this tool the right choice. The scope detail (per-table and default privileges) is behavioral, not usage guidance. Without any statement about context or alternatives, an agent has no guidance beyond the basic action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_restore_from_storage_bdA

Restore a Postgres database from a storage.bd snapshot, overwriting its current content. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
snapshot_idYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden of behavioral disclosure. It explicitly states that the operation overwrites current content and is irreversible, which is the critical behavioral fact. It does not mention prerequisites, auth needs, or job completion, but the main destructive side effect is clearly disclosed.

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 short and front-loaded, with the core action first and the destructive consequence immediately after. The only minor issue is the inconsistent spelling 'storage.bd' versus the sibling naming convention 'storage_bd'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with three required parameters and no output schema, the description covers the essential outcome and risk. It misses guidance on how to obtain a valid snapshot_id, what confirmation behavior is expected, and what observable result indicates success, but it does not mislead.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not map its behavior to the three parameters. db_name, snapshot_id, and confirm are left inferable only by name; the description does not explain that confirm is a mandatory safety guard or how snapshot_id relates to stored backup snapshots.

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 names the verb ('Restore'), the resource ('a Postgres database'), and the source ('a storage.bd snapshot'), while explicitly noting the destructive overwrite. This distinguishes it from MySQL/MongoDB/MSSQL restore siblings and from backup 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?

The description implies use when one wants to restore a database from a snapshot, but it does not state when to use it versus alternatives, what prerequisites are needed, or that snapshot_id likely comes from a snapshot-listing tool such as ecp_backup_list_snapshots. There is no exclusion or alternative guidance beyond the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_revoke_privilegesA

Revoke privileges from a user on a database. Applied per-table (all tables in the public schema) plus default privileges for future tables.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
privilegesYes
db_usernameYes

TDQS

A3.5/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 operation is applied per-table across the public schema and also affects default privileges for future tables. However, it does not mention the destructive nature, any prerequisites (e.g., user existence), or what happens to existing privileges not listed. It adds some scope context but lacks comprehensive behavioral details.

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 the action and then immediately specifies the scope. There is no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, and zero parameter descriptions, this description is insufficient. It does not clarify the role of the confirm parameter, the exact effect of the privileges array, or any safety implications. An agent could not confidently determine how to call it correctly without additional assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it does not explain any parameters. It only mentions 'user' and 'database' generically, leaving the privileges array and confirm parameter unexplained. The schema enums are helpful, but the description adds no value beyond the raw names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Revoke privileges'), the target (a user on a database), and clarifies the scope (per-table across public schema plus default privileges). This precisely distinguishes it from sibling tools like ecp_postgres_grant_privileges and ecp_postgres_list_privileges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and description, but no explicit alternatives or when-not-to-use conditions are given. It does not mention that this only applies to the public schema or that there may be other schema-specific methods, nor does it reference sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_table_sizesA

Get size of each table in a Postgres database.

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the burden. 'Get size' implies a read-only, non-destructive operation, which is useful behavioral context. However, the description does not disclose any performance implications, permissions prerequisites, or whether the result includes every schema or only specific tables. It conveys the basic behavior but leaves substantial 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 clear sentence with no fluff or redundancy. It is perfectly concise and front-loaded with the core action and scope. Every word 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 the tool's low complexity (one parameter, no output schema) and no annotations, the description is functional but incomplete. It doesn't mention what the returned data looks like (e.g., units, whether indexes are included), nor whether it covers all schemas or just the default public schema. An agent could plan the call but might be surprised by the output shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description must compensate. It implicitly identifies db_name as the Postgres database whose tables are queried, adding the engine context that the raw property name lacks. However, it does not explain exactly what db_name expects (e.g., database name, must exist) or format constraints. The minimal context is enough to map the single 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 states a specific verb and resource: 'Get size of each table in a Postgres database.' It clearly identifies the database engine (Postgres) and the object (each table), distinguishing it from sibling tools like ecp_postgres_database_sizes or ecp_mysql_table_sizes. No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. The description does not mention that this tool should be used when per-table size is needed as opposed to database-level size, nor does it reference alternatives like ecp_postgres_database_sizes. The intent is only inferred from the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_truncate_tableB

Delete all rows from a table. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
db_nameYes
table_nameYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so description carries full burden. It does mention irreversible data loss, which is important. However, it fails to disclose other behavioral aspects like locking behavior, whether it resets identity sequences (auto-increment counters), or whether it requires special permissions. Also, the tool requires a 'confirm' parameter set to true, which is a safety mechanism, but the description does not explain its presence or the need for explicit confirmation. This is a significant gap for a destructive operation.

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?

Two short sentences, no filler. 'Delete all rows from a table. Irreversible.' Front-loads the core action and immediately follows with the critical warning. Well-structured for the content it includes, though it could include a touch more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation on a database table, the description is thin. It does not mention the confirm parameter, which is effectively a safety gate, nor does it suggest any recovery options or mention transactionality. Given the tool's irreversible nature, an agent needs to know that calling it will permanently wipe data and that there is no undo. While the 'irreversible' warning covers that, the absence of any mention of the confirm parameter or impact on identity sequences leaves gaps. The output schema is absent, so the description should explain what happens after execution – it does not. This is below minimum viable for such a critical 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 0%, so description must compensate. It doesn't explain that db_name identifies the target database, table_name the target table, and that confirm is a boolean that must be exactly true as an explicit consent. It implies the table name via 'table' and the irreversible nature via the warning, but does not name any parameters. With 3 required parameters and no description, an agent gets no help in understanding what values are suitable. Score 3 because at least it's clear the tool operates on a table, but the confirm parameter is unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description: 'Delete all rows from a table. Irreversible.' States a specific verb+resource (delete rows from a table) and is clear. It does not explicitly differentiate from sibling tools like ecp_postgres_drop_table, which deletes the entire table, but for an agent familiar with the distinction, the purpose is unambiguous. With no title, the description provides the only purpose text.

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 on when to use this tool versus alternatives like ecp_postgres_drop_table (which removes the table entirely) or ecp_postgres_delete_row (which deletes selective rows). Implied usage: when you need to remove all data but keep the table structure.SaveChanges are permanent. No explicit exclusions or prerequisites, but the 'irreversible' warning implicitly suggests caution. This is adequate but lacks explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_postgres_update_rowC

Update a row in a table, identified by primary_key.

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYes
confirmYes
db_nameYes
passwordYes
table_nameYes
db_usernameYes
primary_keyYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It conveys that a row will be mutated, but it does not disclose whether the operation is destructive, whether confirmation is required, what happens if the primary key is missing, or whether it can be reversed. This is a significant transparency gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no fluff and gets to the action immediately. It is concise and front-loaded, though it achieves brevity by omitting substantial guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 required parameters, nested objects, no parameter docs, no annotations, and no output schema, this description is not close to being complete. It fails to explain the values structure, primary_key shape, confirmation semantics, credentials, or any expected behavior or result. The agent would need to guess at almost every field.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description only says the row is identified by primary_key and does not explain values, db_name, table_name, credentials, or the confirm parameter. For 7 required parameters, including nested objects, this is far too little input to guide correct invocation.

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 updates a row in a table, identified by primary_key, and this distinguishes it from insert/delete/browse sibling tools. However, the description is generic enough that the database engine distinction relies on the tool name rather than the description itself.

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?

There is no guidance about when to use this update tool versus its siblings (e.g., postgres_insert_row, postgres_delete_row, or mysql_update_row). No preconditions, exclusions, or alternatives are mentioned, so the agent must infer usage from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_resource_statusA

Get this account's resource/quota status (e.g. disk or CPU pressure, suspension warnings).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. 'Get' clearly implies a read-only status check, and the examples specify what kinds of conditions are surfaced. It does not explicitly state it has no side effects, but the verb and status framing leave little 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?

A single, front-loaded sentence that directly states the purpose with illustrative examples. Every word earns its place, and there is no redundant fluff.

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 zero-parameter read-only status tool, the description is mostly complete: it names the object, scope, and example result categories. It does not detail the exact response structure, but the examples provide enough orientation for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema already fully covers invocation semantics. The description adds helpful context about what the status covers, but no parameter documentation is needed.

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 uses a specific verb ('Get') and a clear resource ('this account's resource/quota status'), with concrete examples like disk/CPU pressure and suspension warnings. It is distinguishable from the sibling ecp_resource_status_dismiss, though it does not explicitly contrast itself with ecp_system_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 context for use is implied: check account-level resource/quota status and pressure warnings. However, there is no explicit guidance about when to prefer this over related tools like ecp_system_disk_usage or how it relates to ecp_resource_status_dismiss.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_resource_status_dismissC

Dismiss a resource-status warning banner.

ParametersJSON Schema
NameRequiredDescriptionDefault
resource_typeYes

TDQS

C2.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 states the action but does not disclose side effects, reversibility, scope (e.g., current user vs global), idempotency, or any authentication requirements. For a state-changing action, this is a notable gap.

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?

One short sentence, front-loaded with the verb and object. No fluff, easy to parse. It loses a point only because it is so terse that it omits essential parameter guidance.

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 indicator, no annotations, and a single parameter whose acceptable values are undocumented, the agent cannot reliably construct a valid call. The description is complete about the action but incomplete about the required inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required parameter 'resource_type' has 0% schema description coverage and no enums. The description never explains what values are valid (e.g., 'mongo', 'mysql', 'nginx') or how it influences which banner is dismissed. The agent is left guessing at the parameter's domain.

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 uses a specific verb (dismiss) and a clear object (resource-status warning banner), and the action is distinct among the sibling list (no other tool mentions dismissing a banner). It's unambiguous about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage 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 prerequisites, and no mention of what triggers a resource-status banner. The only implicit context is that it dismisses a banner, which is closer to purpose than usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_ssl_apply_certificateA

Apply an already-generated certificate to a domain's nginx config, without regenerating it. Can break HTTPS for that domain if misapplied.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
confirmYes
certificate_nameYes

TDQS

A4.1/5.0
Behavior4/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 clearly discloses the key behavioral risk: 'Can break HTTPS for that domain if misapplied.' It does not detail return behavior or postconditions, but the most important destructive consequence is explicitly surfaced.

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 filler. It front-loads the core action and immediately follows with the critical risk warning, making it easy for an agent to absorb the essential information quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a small three-parameter tool with no output schema and no annotations, the description covers the essential facts: what the tool applies, to what target, and the danger of misuse. It could be more complete by naming sibling tools or clarifying prerequisites around certificate generation, but the core decision-relevant context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not meaningfully define the three parameters. It loosely ties 'certificate' to certificate_name and 'domain' to domain, but it never explains the certificate_name enum values or the role of the required confirm flag, which is a significant gap for a destructive operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Apply an already-generated certificate to a domain's nginx config.' It also explicitly says 'without regenerating it,' which distinguishes this tool from SSL generation/renewal siblings like ecp_ssl_request_lets_encrypt and ecp_ssl_update_self_signed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'already-generated certificate' establishes a clear precondition: use this only when a certificate already exists and does not need regeneration. It does not explicitly name alternatives such as the SSL request/update tools, so it stops short of full exclusion guidance, but the usage context is otherwise clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_ssl_available_certificatesB

List certificates available for a domain (pass certificate_name: 'lets_encrypt' or 'self_signed').

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNo
certificate_nameNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations supplied, the description carries the behavioral burden. The verb 'List' conveys that this is a read-only, non-mutating operation, which is useful. However, it does not describe the response shape, pagination, scoping behavior when parameters are omitted, or whether the listed certificates are ready to apply.

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 one sentence, front-loads the primary action and resource, and uses a parenthetical to show the certificate_name constraint. There is no filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is thinner than the tool call requires: it doesn't define the returned certificate list contents, doesn't state required vs optional parameters clearly, and doesn't connect the output to how it should be used with the SSL apply/update siblings. The tool is simple, but the missing details leave room for misinvocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only restates the enum values already in the schema and labels the resource as 'a domain.' It does not clarify whether domain is actually required, what happens if certificate_name is omitted, or what value each parameter should take beyond repeating the enum.

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 states a specific action ('List') and resource ('certificates available for a domain'), and the verb clearly separates this from the SSL request/update/apply sibling tools. It doesn't explicitly say what makes a certificate 'available' or how this relates to ecp_ssl_apply_certificate, so it is clear but not fully differentiated.

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 only guidance is to pass certificate_name; there is no statement of when to use this tool instead of ecp_ssl_request_lets_encrypt, ecp_ssl_update_lets_encrypt, or ecp_ssl_apply_certificate. No prerequisites, exclusions, or alternatives are given, so an agent receives no routing help beyond the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_ssl_request_lets_encryptA

Issue a new Let's Encrypt certificate for a domain (does not apply it to nginx - see ecp_ssl_update_lets_encrypt or ecp_ssl_apply_certificate).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the behavioral transparency burden. It does disclose a meaningful side-effect boundary by stating it does not apply the certificate to nginx. However, it does not describe what success looks like, whether the issuance is synchronous, whether existing certificates are replaced, or what preconditions such as domain validation may be required.

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 one sentence, front-loaded with the main action, and contains a compact parenthetical that clarifies the non-effect and directs to relevant alternatives. There is no filler or redundant restatement of the tool name.

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 tool with one parameter and no output schema or annotations, the description gives enough orientation to know what happens and what the next-step sibling tools are. Still, it does not describe expected return behavior, issuance timing, potential failures, or prerequisites like domain reachability or DNS validation, so an agent could not fully anticipate the outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. The phrase 'for a domain' clarifies that the single required parameter is the target of the issuance, which adds a small amount of meaning beyond the parameter name. But it does not explain the expected format, validation requirements, or any practical restrictions beyond what the field name already implies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action: 'Issue a new Let's Encrypt certificate for a domain.' It also distinguishes itself from the self-signed and apply/update tools by naming 'Let's Encrypt' and explicitly carving out the apply step. An agent can tell it apart from ecp_ssl_request_self_signed and ecp_ssl_apply_certificate without opening their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit when-not and names alternatives: 'does not apply it to nginx - see ecp_ssl_update_lets_encrypt or ecp_ssl_apply_certificate.' It clearly routes an agent that needs an applied certificate to the right siblings, though it does not differentiate precisely when to choose update_lets_encrypt versus apply_certificate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_ssl_request_self_signedA

Generate a new self-signed certificate for a domain (does not apply it to nginx).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description has the full burden of behavioral disclosure. It only says the cert is generated and not applied, but it does not mention whether existing certificates are overwritten, where the key/cert are stored, any expected response, authentication needs, or irreversible effects. This is insufficient for a side-effectful generation action.

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?

One clean sentence with no filler, front-loaded with the primary action and immediately qualifying scope. The parenthetical is efficient and clarifies the main confusion instead of adding separate prose.

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?

This is a one-parameter tool, so the description can be shorter, but it still omits details that materially affect correct invocation: what happens to an existing self-signed cert, what the tool returns, and what next step to use. The 'does not apply' hint begins the workflow but does not complete it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero description coverage and one required parameter, 'domain'. The description maps it by saying 'for a domain,' but it adds no format, validation, or constraint details beyond the parameter name. It is minimally sufficient but leaves the agent with basic questions about accepted domain forms.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Generate') and a concrete resource ('a new self-signed certificate for a domain'), and immediately distinguishes itself from the let's-encrypt, update, and apply siblings by noting it does not apply to nginx. An agent can tell this tool apart without inspecting other schemas.

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 (when you need a new self-signed certificate) and clearly notes a limitation (does not apply it to nginx). However, it does not explicitly name alternative tools for the apply step, renewal/update, or let's encrypt decisions, leaving the routing to the agent's inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_ssl_update_lets_encryptB

Issue and apply a Let's Encrypt certificate to a domain's nginx config. Can break HTTPS for that domain if it fails partway.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
confirmYes

TDQS

B3/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 behavioral disclosure burden. It does disclose a critical risk: it can break HTTPS for the domain if it fails partway. However, it omits other relevant consequences such as replacing an existing certificate, nginx reload behavior, reversibility, or prerequisites.

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 tightly written sentences with no filler. The action is front-loaded and the risk warning follows immediately. Every word contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating operation with no annotations, no output schema, and 0% parameter coverage, this description is incomplete. It lacks guidance on what 'confirm' means, prerequisites like DNS or domain existence, what success or failure returns, and recovery options after a partial failure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to clarify parameter semantics. It implicitly covers 'domain' by mentioning 'a domain's nginx config', but 'confirm' is completely unexplained. Since the confirm parameter is required and constrained to true, its purpose as an acknowledgment or consent should have been stated.

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 states a concrete action: issue and apply a Let's Encrypt certificate to a domain's nginx config. It identifies the resource and certificate type, which helps distinguish it from self-signed SSL tools. However, it doesn't explicitly mention 'update' or 'renew', leaving some overlap with ecp_ssl_request_lets_encrypt and ecp_ssl_apply_certificate.

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?

There is no explicit guidance about when to use this tool over ecp_ssl_request_lets_encrypt, ecp_ssl_apply_certificate, or ecp_ssl_update_self_signed. The risk warning is cautionary but not a selection criterion. This is essentially no usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_ssl_update_self_signedA

Generate and apply a self-signed certificate to a domain's nginx config. Can break HTTPS for that domain if it fails partway.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
confirmYes

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 carries the full disclosure burden. It explicitly warns that the operation 'Can break HTTPS for that domain if it fails partway,' disclosing a non-obvious risk. It could say more about success behavior or reversibility, but the warning is substantive and meaningful.

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 filler. The action and target are stated immediately, and the risk warning earns its place as essential safety information. Nothing in the description is redundant.

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 two-parameter mutation, the description plus schema is minimally viable: 'domain' is clear, and 'confirm' is constrained by the schema to true. However, the description does not mention the confirmation parameter, alternative flows, or success/output behavior, so an agent is left to infer some important context. It is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It indirectly explains 'domain' by referencing a domain's nginx config, but it does not explain the 'confirm' parameter at all or why it must be true. An agent would understand the domain target but not the confirmation requirement from the description alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: generate and apply a self-signed certificate to a domain's nginx config. This distinguishes it from sibling tools like ecp_ssl_request_self_signed and ecp_ssl_apply_certificate by indicating it performs both generation and application in one operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool — when a self-signed certificate needs to be generated and applied to a domain — but it does not explicitly state when to prefer this over ecp_ssl_request_self_signed, ecp_ssl_apply_certificate, or Let's Encrypt options. The breakage warning is risk information, not usage routing, so no explicit alternatives or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_storage_bd_get_configA

Get this account's storage.bd backup config (client_id only - the secret is never returned).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool is a read operation (get), that it returns only the client_id, and that the secret is never returned—a critical behavioral guarantee. This is meaningful context beyond what the empty schema provides.

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?

A single, tightly written sentence that front-loads the action and resource, then adds the critical caveat about the secret. Every word earns its place; no fluff.

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 zero-parameter read tool with no output schema, the description is nearly complete. It tells the agent what it will get (client_id) and what it won't (secret). The only minor gap is not describing the exact response format, but that's acceptable given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics burden. The description correctly implies no input is needed. The baseline for 0 params is 4, and the description adds clarity about what the tool returns.

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 the account's storage.bd backup config, specifies it returns only the client_id, and explicitly notes the secret is never returned. This is a specific verb+resource combination that distinguishes it from sibling tools like ecp_storage_bd_set_config and ecp_storage_bd_job_status.

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 this is a read-only configuration retrieval tool, and the explicit note about the secret not being returned provides important context for when to use it (e.g., when you need the client_id but should not expect the secret). It doesn't explicitly name alternatives, but the sibling set makes the distinction clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_storage_bd_job_statusA

Check whether a storage.bd backup/restore job is currently running for this account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden of behavioral disclosure. It does imply a read-only status query ('Check whether'), which is useful, but it does not state the shape of the result (boolean, status text, list), whether the call is asynchronous, or if there are any side effects. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, no filler, and the key scoping ('storage.bd backup/restore job' and 'currently running') is front-loaded. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only status tool the description is nearly sufficient. However, with no output schema it does not mention what the agent should expect as a return value (e.g., true/false, status enum, duration). It also doesn't indicate how this status relates to the backup/restore lifecycle tools, which would help an agent decide when to poll.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and schema coverage is effectively 100%. The baseline for 0 params is 4, and the description correctly does not attempt to document nonexistent parameters. No additional meaning is needed here.

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 names a specific verb ('Check') and resource ('whether a storage.bd backup/restore job is currently running for this account'). This is clearly distinct from sibling tools like ecp_storage_bd_get_config, ecp_backup_list_snapshots, or the various database backup/restore tools, so an agent can tell what this tool does without ambiguity.

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 gives no guidance about when to use this tool versus alternatives. It does not say to invoke it after a backup/restore was initiated, nor does it point to sibling tools like ecp_backup_list_snapshots for listing snapshots or ecp_storage_bd_set_config for configuration. Context is only implied by the verb 'check'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_storage_bd_set_configA

Set this account's storage.bd backup credentials (client_id as '.', client_secret).

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
client_idYes
client_secretYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavior. It states 'Set' which implies mutation, but does not mention that this overwrites existing credentials, that it is irreversible, or that confirmation (confirm=true) is required. The schema enforces confirm as const true, but the description does not explain this safety mechanism. The description also omits any side effects or prerequisites, leaving the agent uncertain about the operation's impact.

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 operation and includes the critical client_id format. No wasted words; every element adds value. This is exemplary conciseness for a simple configuration tool.

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 relatively simple with only three parameters and no output schema, so the baseline completeness requirement is modest. However, the description omits the confirm requirement, does not mention that it overwrites existing credentials, and does not explain the relationship to backup operations (e.g., that this must be set before backups can work). Given the lack of annotations, these omissions leave the agent with gaps in understanding the operation's full effect and prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds crucial meaning to client_id by specifying the format '<tenant_id>.<install_id>', which is not in the schema. It merely names client_secret without format details, and completely omits the confirm parameter. While the most complex parameter is addressed, the other two receive little to no added value, leaving a partial 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 clearly states the verb 'Set' and the resource 'storage.bd backup credentials' with a specific format for client_id. It unambiguously differentiates from sibling ecp_storage_bd_get_config which reads configuration, and from backup operations that use these credentials.

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 when to use it – when configuring backup credentials for storage.bd. It does not explicitly mention alternatives, but the purpose is self-evident and the sibling get_config is obvious. The context of setting credentials is clear enough that an agent would not confuse it with other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_supervisor_add_processC

Register a new supervised (auto-restarting) process.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
commandYes
autostartNo
directoryYes
environmentNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The 'auto-restarting' phrase adds a useful behavioral hint, but since no annotations are provided, the description carries the full burden of explaining side effects. It does not mention that this mutates supervisor configuration, how duplicate names are handled, whether permissions are required, or what a successful registration returns.

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 filler. Every word contributes, and the phrase 'auto-restarting' adds useful context beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter mutation tool with a nested object, no output schema, and no annotations, the description is too thin. It omits required-field semantics, value formats, side effects, and what the agent can expect after calling it, so the agent is left guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no parameter-level meaning at all. It does not explain what name, command, directory, autostart, or environment mean or how they must be provided, despite the nested environment object and required fields.

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 identifies the verb 'register' and the object 'a new supervised (auto-restarting) process', so the core action is clear. It distinguishes the tool from start/stop/remove/process_info reasonably well, but it does not explicitly compare it to those 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 given about when to use this tool instead of ecp_supervisor_start_process, ecp_supervisor_process_info, ecp_supervisor_remove_process, etc. The word 'new' implies a use case, but it does not state exclusions or the correct alternative for existing processes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_supervisor_list_processesA

List all supervised processes on this account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 full burden. The verb 'list' reasonably implies a non-mutating operation, but the description does not explicitly state that it is read-only, nor does it disclose response format, pagination, or whether 'supervised processes' include both running and stopped entries. For a simple read tool, 'list' is acceptable, but the absence of annotations leaves some ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence delivers the core purpose. Nothing is redundant; the sentence structure is perfect for a tool this simple.

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 zero-parameter shape, the injection is still not fully complete: there is no output schema and the description does not explain what a 'supervised process' is or what fields will be returned. Agents must rely on external knowledge or runtime heuristics. Still, for a bare-bones 'list all' tool, the core operation is fully specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the baseline is 4. The description's 'all supervised processes' correctly conveys that there is no filtering supported, which prevents an agent from looking for parameters that do not exist.

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 ('all supervised processes'), plus scoping to 'this account.' It clearly distinguishes this from siblings like ecp_supervisor_process_info (single process) and ecp_supervisor_remove_process (management action).

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 given about when to use this vs. sibling supervisor tools. It does not mention that process_info should be used for a single process, or that add/start/stop/restart are for operations. The agent is left to infer from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_supervisor_process_infoA

Get status/info for one supervised process.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes

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 the behavioral disclosure burden. 'Get status/info' clearly indicates a read-only retrieval, but it does not disclose response format, error behavior, or how app_name is resolved. The core operation is conveyed, but detail is sparse.

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 sentence with no filler. The verb and scope are front-loaded, and every word contributes to identifying the tool's 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?

For a one-parameter read tool, this is minimally viable, but it omits what app_name should be set to and what the returned status/info includes. It is not fully self-contained, though the simple interface reduces the risk of incorrect 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?

The schema provides only a raw 'app_name' string with no description, and schema coverage is 0%. The description adds that the entity is a 'supervised process,' which helps, but it does not specify the value format, how to discover valid names, or whether app_name is a path or label.

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 the specific verb 'Get' and clearly identifies the resource as 'status/info for one supervised process.' The singular scope distinguishes it from supervisor_list_processes and the start/stop/restart siblings, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use guidance or alternatives are named. The phrase 'one supervised process' implies a single-process lookup and sibling names provide context, but the agent is left to infer when to choose this over list_processes or other supervisor commands.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_supervisor_remove_processA

Remove a supervised process. Irreversible (config is deleted, not just stopped).

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
app_nameYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly warns that the operation is irreversible and that the config is deleted, which is critical for a destructive tool. It does not mention effects on a currently running process, but the key risk is disclosed.

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 the action front-loaded and the irreversibility warning right after. There is no filler or redundant restating of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core purpose and the main danger, but with no annotations and no output schema it should also clarify the effect on a running process and the role of the confirm parameter. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no parameter-level meaning. It does not explain that app_name identifies the supervised process or that confirm is a required safety confirmation. This is a significant gap for a two-parameter tool.

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?

States a specific verb and resource: 'Remove a supervised process.' It also distinguishes this from mere stopping by noting the config is deleted, which differentiates it from the sibling ecp_supervisor_stop_process.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'not just stopped' gives clear context that this tool is for permanent removal rather than temporary stopping. It does not explicitly name the alternative stop_process or state when-not-to-use, but the intended usage is clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_supervisor_restart_processC

Restart a supervised process.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. 'Restart' implies a stop-and-start cycle, but the description does not mention potential downtime, whether the process must already exist, or any side effects. It lacks essential context for an agent to anticipate the tool's impact.

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 one short sentence with no unnecessary words, which is efficient. It is front-loaded and gets straight to the point. However, it is so brief that it borders on under-specification, but for a simple operation it is adequately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations, output schema, and parameter descriptions, the description is far from complete. It does not explain what happens after the restart, how to identify the process, or any preconditions. An agent has to guess essential details, which is risky for a process-manipulation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it does not mention the parameter at all. The parameter name 'app_name' is self-explanatory (likely the process name), but the description adds no nuance about format, required state, or relationship to other tools. It provides minimal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('restart') and resource ('supervised process'), which is specific enough to convey the action. It is easily distinguishable from sibling tools like start and stop because 'restart' is a distinct operation. However, it does not explicitly differentiate itself from alternatives or explain what restart entails beyond the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention that restart implies stopping and starting, nor does it suggest conditions like 'when the process is misbehaving' or 'after configuration changes'. It leaves the choice entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_supervisor_start_processC

Start a supervised process.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes

TDQS

C2.4/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 burden of disclosing behavior. It only states that a process is started, but does not explain idempotency, failure behavior, whether the process must already be registered, or what the result/response will be.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is terse and has no wasted words, so it is concise. However, it is so short that it does not convey context beyond the tool name, making it more under-specified than well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no annotations and no output schema, this minimal description leaves out when to call it, how the process is identified, and what happens after the call. It is not complete enough for an agent to invoke it with confidence, especially given the nearby add/restart/stop siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and a description that never mentions app_name, the description adds no meaning beyond the raw property name. For the sole required parameter, this is insufficient compensation.

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 uses a specific verb ('start') and a resource ('a supervised process'), and the sibling set includes stop/restart/remove, so the basic intent is clear. It does not, however, distinguish this from ecp_supervisor_add_process, which could overlap functionally.

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?

There is no guidance about when to start versus add, list, or restart a supervised process, and no mention of prerequisites such as the process already existing. The agent is left to infer the appropriate context from the terse sentence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_supervisor_stop_processC

Stop a supervised process.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure, but it only states the core action. It does not explain whether stopping is graceful or forceful, whether the process can be restarted later, whether the process definition is preserved, or what side effects may occur.

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, direct sentence with no filler or redundancy. It is concise and front-loaded, though the brevity comes at the cost of missing important behavioral and usage context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a single parameter, the description is minimal but barely sufficient. It fails to mention how to identify the process, what happens after stopping, or how this relates to the supervisor workflow tools. The agent must rely on inference from sibling tool names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single `app_name` string parameter with no description and 0% schema description coverage. The description does not explain what `app_name` should contain or how an agent should obtain its value. While the parameter name is somewhat inferable, the description adds no semantic clarity.

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 uses a specific verb and resource: 'Stop a supervised process.' This clearly identifies the action and target, though it does not explicitly distinguish itself from sibling tools like start, restart, or remove. The tool name itself reinforces the intent.

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 about when to use this tool instead of ecp_supervisor_start_process, ecp_supervisor_restart_process, or ecp_supervisor_remove_process. There are no prerequisites, context clues, or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_system_check_for_updateA

Check whether an ECP/system update is available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of explaining behavior. The description clearly states the action (check for update) and implies a read-only behavior (checking, not modifying). This is adequate for a simple check operation, though it doesn't disclose details like whether it modifies anything or what side effects might occur, but for a check operation, this level is sufficient.

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 fully explains the tool's purpose. There is no unnecessary verbiage, and it is front-loaded with the key verb and resource. It earns a top score for efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description is largely complete. It tells an agent what the tool does and implies its use in an update workflow. However, it could benefit from mentioning that it is a check that typically precedes the 'ecp_system_update' tool, to provide more contextual guidance. But for a zero-parameter check, the description is nearly sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is 100% (vacuously). Since there are no parameters, the description doesn't need to provide parameter semantics. The description correctly identifies that it checks for updates without needing any input, which is clear and complete. A baseline of 4 is appropriate given the zero-parameter nature.

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 states a clear verb ('check') and a specific resource ('ECP/system update'), which makes the tool's purpose understandable. However, it does not distinguish it from the closely related sibling tool 'ecp_system_update', which is about performing the update rather than just checking, so some ambiguity remains.

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 that this tool should be used to check for updates, presumably before calling 'ecp_system_update' to actually perform the update. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or conditions for usage. The context signal of no parameters suggests it's a simple check, but the description could be more explicit about its role.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_system_disk_usageC

Get disk, container-temp-file, and database usage/quota for this account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether this is a read-only operation, whether it aggregates data, what scope it covers, or what the response format is. The description is too vague to inform an agent about side effects, permissions, or output behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence and is concise, but it is under-specified rather than efficiently informative. It front-loads a list of resource types but does not explain the tool's purpose or output. It earns a middle score because it is short and readable, but the brevity comes at the cost of clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless tool with no output schema and no annotations, the description should clearly state what the tool returns and how it relates to the many sibling tools. It does not. The description is too vague to allow an agent to predict the tool's behavior or decide when to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics burden on the description. The schema is empty and coverage is 100% by default. The description's mention of 'usage/quota' is the only semantic content, and while vague, it is not misleading for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get disk, container, file, and database usage/quota for this account.' is a generic catch-all that does not identify a specific verb+resource. It lists four unrelated resource types (disk, container, file, database) and 'usage/quota' without stating what the tool actually does or returns. It does not distinguish itself from the many sibling tools that also deal with files, databases, or quotas.

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 given about when to use this tool versus alternatives. The description does not mention any exclusions, prerequisites, or conditions. An agent cannot tell whether this is a summary/overview tool or a detailed per-resource query, and the sibling list contains many more specific tools for each resource type.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_system_get_configB

Get this account's ECP config key/values.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates a read operation but does not mention authentication requirements, whether the config values are sensitive, or anything about the response 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?

The description is a single concise sentence that front-loads the verb and object. Every word earns its place, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-oriented config getter, the description is largely sufficient for an agent to invoke it correctly. The main gap is that no output schema exists and the return format is not described, though 'key/values' gives a reasonable expectation of a mapping.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema already fully describes the input surface; there is nothing for the description to add. The phrase 'this account's' adds helpful scoping context even though no parameter exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and the resource ('this account's ECP config key/values'), so an agent can understand what the tool does. It does not explicitly name the sibling ecp_system_set_config, though the get/set distinction is fairly obvious from the tool name and description.

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?

There is no guidance about when to use this tool versus alternatives like ecp_system_set_config or other config-related tools such as ecp_storage_bd_get_config. The usage context is only implied by the verb 'Get', with no exclusions, prerequisites, or routing hints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_system_set_configC

Update ECP config key/values for this account.

ParametersJSON Schema
NameRequiredDescriptionDefault
configYes
confirmYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burdenags. It says 'Update' which implies a write operation, but it does not warn about potential side effects (e.g., configuration changes may break ECP), does not state that the confirmation flag is required, and gives no sense of irreversibility. A cautious agent would need more 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?

The description is a single, concise sentence with no fluff. It front-loads the action and object. However, it is so brief that it misses opportunities to add value; it is efficiently written but not maximally informative. Still, it earns points for being free of redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description should provide context about return values, side effects, or example use cases. It does not. The tool modifies a configuration endpoint; knowing what happens to existing configs or how this interacts with other settings would be important for an agent to use it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes two parameters, but the description only hints at 'config' (key/value pairs) and says nothing about 'confirm'. The confirm parameter is a boolean constrained to true, which is not explained. Since schema coverage for parameter descriptions is 0%, the description carries full burden and fails to explain the semantics of each field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update') and the target ('ECP config key/value pairs'). It's specific enough to distinguish from related tools like ecp_storage_bd_set_config, though it doesn't explicitly mention the tool name's 'system' scope. The verb and object are clear, so an agent can infer this is a mutation of ECP-level configuration, not storage config.

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?

There is no guidance on when to use this tool versus alternatives, nor any context about prerequisites or typical scenarios. The description simply states what it does without saying when to invoke it. In a large tool set with many similar setters, this lack of differentiation is a weakness.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_system_updateA

Update account/hosting settings (hosting_environment, hosting_version) or ECP password. Requires the account's own current password. Account-wide impact - review carefully.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
ecp_passwordYes
hosting_versionNo
hosting_environmentNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must carry the behavioral disclosure burden. It does disclose that this is a mutating operation, requires the current password, and warns about account-wide impact. Still, it does not clarify side effects, whether changes are reversible, or what exactly 'account-wide impact' means in practice.

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 tight sentences with no filler. It front-loads the operation, names the affected fields, and adds the critical password prerequisite and account-wide warning without 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 security-sensitive mutation with no annotations, no output schema, and 0% schema property descriptions, the description provides a reasonable minimum: what it updates, what is required, and a caution. However, the unexplained confirm field and lack of clarity about which fields can be combined leave gaps for an agent trying to invoke it safely and correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning to hosting_environment, hosting_version, and ecp_password, but it never explains the required confirm parameter or its const-true semantics. It also does not give any value format or constraint hints for the hosting fields.

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 names a specific action ('Update') and specific targets: account/hosting settings (hosting_environment, hosting_version) and the ECP password. It is not a tautology and is fairly distinguishable from the many sibling tools by naming its exact fields, though it does not explicitly contrast itself with ecp_system_set_config or the various password 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?

The description gives useful preconditions: the account's own current password is required and the change has account-wide impact. However, it does not state when to prefer this tool over alternatives like ecp_system_set_config, nor does it provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ecp_whoamiA

Get the profile of the hosting account this MCP server is authenticated as.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Get' clearly signals a read-only operation with no side effects, and 'authenticated as' explains what identity context is being surfaced. It does not mention output details, but for a zero-parameter whoami-style 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?

A single, focused sentence that immediately states the tool's purpose without any filler, caveats, or repetition. Every word adds meaning.

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 zero-parameter, no-output-schema tool, the description is essentially complete: it names the resource, the action, and the authentication context. A more detailed enumeration of profile fields would be helpful but is not necessary to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. There is nothing more the description needs to explain about inputs; the empty schema already fully covers parameter expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('profile of the hosting account') with an explicit authentication context. It clearly differentiates this from the many operational sibling tools by focusing on the authenticated identity itself.

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 makes it clear that this tool is used to discover which hosting account the MCP server is authenticated as. It provides clear context for when to call it, and since no sibling tool serves the same identity-introspection role, explicit exclusions are unnecessary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 194 tool updatesv0.1.0
    • First observedecp_apps_create_from_git
    • First observedecp_apps_create_from_upload
    • First observedecp_apps_delete
    • First observedecp_apps_deploy_step
    • First observedecp_apps_directory_tree
    • First observedecp_apps_flush_logs
    • First observedecp_apps_get
    • First observedecp_apps_list
    • First observedecp_apps_save_custom_command
    • First observedecp_apps_tail_logs
    • First observedecp_apps_update_domain
    • First observedecp_apps_update_static_domain
    • First observedecp_asdf_install
    • First observedecp_asdf_list_all_versions
    • First observedecp_asdf_list_installed_versions
    • First observedecp_asdf_plugin_list
    • First observedecp_asdf_plugin_list_all
    • First observedecp_asdf_set_global
    • First observedecp_asdf_uninstall
    • First observedecp_backup_list_snapshots
    • First observedecp_crontab_add
    • First observedecp_crontab_list
    • First observedecp_crontab_remove
    • First observedecp_db_connection_info
    • First observedecp_db_services_status
    • First observedecp_dns_add_record
    • First observedecp_dns_delete_record
    • First observedecp_dns_list_records
    • First observedecp_domains_add_domain
    • First observedecp_domains_add_subdomain
    • First observedecp_domains_delete
    • First observedecp_domains_list_additional
    • First observedecp_domains_list_all
    • First observedecp_domains_remove_redirect
    • First observedecp_domains_set_redirect
    • First observedecp_files_add_file
    • First observedecp_files_add_folder
    • First observedecp_files_change_permission
    • First observedecp_files_compress
    • First observedecp_files_copy
    • First observedecp_files_copy_multiple
    • First observedecp_files_delete
    • First observedecp_files_delete_multiple
    • First observedecp_files_directory_tree
    • First observedecp_files_extract
    • First observedecp_files_is_directory_exists
    • First observedecp_files_list
    • First observedecp_files_move
    • First observedecp_files_move_multiple
    • First observedecp_files_read
    • First observedecp_files_rename
    • First observedecp_files_write
    • First observedecp_git_authorize_url
    • First observedecp_git_disconnect_provider
    • First observedecp_git_list_connections
    • First observedecp_git_list_providers
    • First observedecp_git_list_repos
    • First observedecp_git_webhook_capabilities
    • First observedecp_git_webhook_create
    • First observedecp_git_webhook_delete
    • First observedecp_git_webhook_deliveries
    • First observedecp_git_webhook_get
    • First observedecp_git_webhook_rotate_secret
    • First observedecp_git_webhook_update
    • First observedecp_mongo_assign_user_to_database
    • First observedecp_mongo_backup_to_storage_bd
    • First observedecp_mongo_browse_documents
    • First observedecp_mongo_create_collection
    • First observedecp_mongo_create_database
    • First observedecp_mongo_create_user
    • First observedecp_mongo_database_sizes
    • First observedecp_mongo_delete_database
    • First observedecp_mongo_delete_document
    • First observedecp_mongo_delete_user
    • First observedecp_mongo_drop_collection
    • First observedecp_mongo_insert_document
    • First observedecp_mongo_list_collections
    • First observedecp_mongo_list_databases
    • First observedecp_mongo_list_users
    • First observedecp_mongo_restore_from_storage_bd
    • First observedecp_mongo_update_document
    • First observedecp_mongo_update_user_password
    • First observedecp_mssql_backup_to_storage_bd
    • First observedecp_mssql_browse_rows
    • First observedecp_mssql_change_database_owner
    • First observedecp_mssql_create_database
    • First observedecp_mssql_create_database_user
    • First observedecp_mssql_database_sizes
    • First observedecp_mssql_delete_database
    • First observedecp_mssql_delete_row
    • First observedecp_mssql_delete_user
    • First observedecp_mssql_drop_table
    • First observedecp_mssql_grant_privileges
    • First observedecp_mssql_insert_row
    • First observedecp_mssql_list_columns
    • First observedecp_mssql_list_databases
    • First observedecp_mssql_list_db_users
    • First observedecp_mssql_list_privileges
    • First observedecp_mssql_restore_from_storage_bd
    • First observedecp_mssql_revoke_privileges
    • First observedecp_mssql_table_sizes
    • First observedecp_mssql_truncate_table
    • First observedecp_mssql_update_row
    • First observedecp_mysql_backup_to_storage_bd
    • First observedecp_mysql_browse_rows
    • First observedecp_mysql_change_db_user
    • First observedecp_mysql_create_database
    • First observedecp_mysql_create_db_user
    • First observedecp_mysql_database_sizes
    • First observedecp_mysql_delete_database
    • First observedecp_mysql_delete_db_user
    • First observedecp_mysql_delete_row
    • First observedecp_mysql_drop_table
    • First observedecp_mysql_export_database
    • First observedecp_mysql_grant_privileges
    • First observedecp_mysql_import_database
    • First observedecp_mysql_insert_row
    • First observedecp_mysql_list_columns
    • First observedecp_mysql_list_databases
    • First observedecp_mysql_list_db_users
    • First observedecp_mysql_list_privileges
    • First observedecp_mysql_restore_from_storage_bd
    • First observedecp_mysql_revoke_privileges
    • First observedecp_mysql_table_sizes
    • First observedecp_mysql_truncate_table
    • First observedecp_mysql_update_row
    • First observedecp_network_domain_port_maps
    • First observedecp_network_port_maps
    • First observedecp_network_update_port_maps
    • First observedecp_nginx_get_conf
    • First observedecp_nginx_list_domains
    • First observedecp_nginx_set_conf
    • First observedecp_notifications_clear_all
    • First observedecp_notifications_delete
    • First observedecp_notifications_list
    • First observedecp_notifications_mark_all_read
    • First observedecp_notifications_mark_read
    • First observedecp_oneclick_blueprint_apps
    • First observedecp_oneclick_create_database
    • First observedecp_oneclick_get_blueprint
    • First observedecp_oneclick_install_wordpress
    • First observedecp_php_get_ini
    • First observedecp_php_install
    • First observedecp_php_installed_packages
    • First observedecp_php_installed_versions
    • First observedecp_php_set_ini
    • First observedecp_php_uninstall
    • First observedecp_postgres_backup_to_storage_bd
    • First observedecp_postgres_browse_rows
    • First observedecp_postgres_change_database_owner
    • First observedecp_postgres_create_database
    • First observedecp_postgres_create_database_user
    • First observedecp_postgres_database_sizes
    • First observedecp_postgres_delete_database
    • First observedecp_postgres_delete_row
    • First observedecp_postgres_delete_user
    • First observedecp_postgres_drop_table
    • First observedecp_postgres_export_database
    • First observedecp_postgres_grant_privileges
    • First observedecp_postgres_import_database
    • First observedecp_postgres_insert_row
    • First observedecp_postgres_list_columns
    • First observedecp_postgres_list_databases
    • First observedecp_postgres_list_db_users
    • First observedecp_postgres_list_privileges
    • First observedecp_postgres_restore_from_storage_bd
    • First observedecp_postgres_revoke_privileges
    • First observedecp_postgres_table_sizes
    • First observedecp_postgres_truncate_table
    • First observedecp_postgres_update_row
    • First observedecp_resource_status
    • First observedecp_resource_status_dismiss
    • First observedecp_ssl_apply_certificate
    • First observedecp_ssl_available_certificates
    • First observedecp_ssl_request_lets_encrypt
    • First observedecp_ssl_request_self_signed
    • First observedecp_ssl_update_lets_encrypt
    • First observedecp_ssl_update_self_signed
    • First observedecp_storage_bd_get_config
    • First observedecp_storage_bd_job_status
    • First observedecp_storage_bd_set_config
    • First observedecp_supervisor_add_process
    • First observedecp_supervisor_list_processes
    • First observedecp_supervisor_process_info
    • First observedecp_supervisor_remove_process
    • First observedecp_supervisor_restart_process
    • First observedecp_supervisor_start_process
    • First observedecp_supervisor_stop_process
    • First observedecp_system_check_for_update
    • First observedecp_system_disk_usage
    • First observedecp_system_get_config
    • First observedecp_system_set_config
    • First observedecp_system_update
    • First observedecp_whoami

TDQS

C2.9/5.0

Scored across 194 tools

Disambiguation4/5

Most tools are clearly distinct by resource area and action, and the descriptions carefully call out subtle differences (e.g. ecp_apps_directory_tree vs ecp_files_directory_tree, ecp_ssl_request vs ecp_ssl_update vs ecp_ssl_apply). A few near-duplicates exist—ecp_files_copy vs ecp_files_copy_multiple and ecp_files_move vs ecp_files_move_multiple—but they are rare and understandable.

Naming Consistency4/5

The ecp_<area>_<verb>_<noun> pattern is followed almost everywhere, making names very predictable. Minor deviations include ecp_network_port_maps (noun-first), ecp_network_domain_port_maps, and ecp_files_is_directory_exists (awkward verb phrase), but these do not undermine the overall uniformity.

Tool Count1/5

194 tools is an extreme count for a single MCP server. Even accounting for the broad hosting-panel domain (files, four database engines, SSL, nginx, git, supervisor, cron, notifications, backups), this volume creates a massive selection surface and will overwhelm agents. The count alone warrants the lowest score.

Completeness4/5

The tool surface is remarkably comprehensive: apps, domains, DNS, nginx, files, four database engines with user/privilege/backup/restore operations, SSL, supervisor, crontab, asdf, git webhooks, notifications, and storage. The only notable gap is the explicitly blocked ability to run custom commands directly (ecp_apps_save_custom_command mentions 'run' isn't exposed yet), which is a stated intentional limitation rather than an oversight.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    A
    maintenance
    Enables natural language interaction with a Panelica hosting panel to manage domains, SSL, databases, services, and more through any MCP client.
    404
    51
    1
    MIT
  • F
    license
    B
    quality
    C
    maintenance
    A comprehensive MCP server for managing cPanel hosting accounts through AI assistants. It supports DNS, email (DKIM/SPF), databases, domains, SSL, PHP, cron jobs, security, Git deployment, and more.
    100
    17
    -
  • A
    license
    C
    quality
    B
    maintenance
    Connect any MCP-compatible AI agent to the full Hostinger platform. Manage VPS, domains, DNS, hosting, WordPress, email, ecommerce, and more through natural language.
    100
    5
    MIT