Skip to main content
Glama
Panelica

panelica-mcp

Official
by Panelica

Panelica MCP Server

Talk to your Panelica hosting panel in plain English. Provision a domain, issue an SSL certificate, create a database, or restart a service through Claude Desktop, Cursor, ChatGPT, or any other Model Context Protocol client.

npm Tools Scopes Docker Zero drift License

404 tools cover the entire External API surface — accounts, domains, DNS, SSL, email, MySQL, FTP, security, backups, server resources, and more.


Table of Contents


Related MCP server: cPanel MCP Server

How it works

+----------------+         stdio JSON-RPC          +-------------------+
|  MCP client    |  <----------------------------> |  panelica-mcp     |
|  (Claude, ...) |                                 |  (this package)   |
+----------------+                                 +---------+---------+
                                                             |
                                          HTTPS + HMAC-SHA256|
                                            X-API-Key        |
                                            X-Timestamp      |
                                            X-Signature      |
                                                             v
                              +------------------------------+------------------------------+
                              |  https://<panel-host>:8443/api/external/v1/...               |
                              |  nginx reverse proxy on the panel host                       |
                              |  (TLS termination + path rewrite: /api/external/X -> /X)     |
                              +------------------------------+------------------------------+
                                                             |
                                       127.0.0.1:3002 plain  |
                                                             v
                                            +----------------+-----------------+
                                            |  external-server (HMAC verify)   |
                                            +----------------+-----------------+
                                                             |
                                                             v
                                            +----------------+-----------------+
                                            |  Panelica panel + Linux services |
                                            +----------------------------------+

panelica-mcp is a thin, stateless adapter:

  1. The MCP client launches the binary over stdio.

  2. The client asks for the tool list — the server reads tools/tools.json (404 entries, auto-generated from the panel's live API spec) and returns it.

  3. When the client calls a tool, the server builds the corresponding HTTP request, signs it with HMAC-SHA256 using your local PANELICA_API_SECRET, and forwards it to the panel.

  4. The HTTP response is returned to the client as the tool result.

No data is cached, no telemetry is emitted, and the secret never leaves the machine running the MCP server.

Requirements

  • A running Panelica panel (version 1.0.193 or newer recommended; the External API surface is stable from 1.0.180+).

  • HTTPS access to the panel UI on port 8443 from the machine that will run panelica-mcp. This is the same port you already use in the browser — no extra firewall change is required.

  • One of the following runtimes on that machine:

    • Node.js ≥ 20 for the npm install path

    • Docker for the container path

You do not need to install anything on the panel host itself, and you do not need to open the internal port 3002 to the public internet.

Install

Pick whichever fits your MCP client setup. All three produce the same stdio binary; pick by which sandbox model you prefer.

npm install -g panelica-mcp

or run without installing (the MCP client launches npx for you):

npx -y panelica-mcp

The -y flag accepts npm's "install on first run" prompt non-interactively, which is what MCP clients need.

Option B — Docker

A pre-built image is published to GitHub Container Registry on every release:

docker pull ghcr.io/panelica/panelica-mcp:latest

Run it from an MCP client config:

{
  "command": "docker",
  "args": [
    "run", "--rm", "-i",
    "-e", "PANELICA_BASE_URL",
    "-e", "PANELICA_API_KEY",
    "-e", "PANELICA_API_SECRET",
    "ghcr.io/panelica/panelica-mcp:latest"
  ],
  "env": {
    "PANELICA_BASE_URL": "https://your-panel-host:8443/api/external",
    "PANELICA_API_KEY":  "pk_...",
    "PANELICA_API_SECRET": "sk_..."
  }
}

-i keeps stdin attached so the MCP client can talk to the container. --rm removes the container when the client disconnects.

Option C — Build from source

git clone https://github.com/Panelica/panelica-mcp.git
cd panelica-mcp
npm install
npm run build
node dist/index.js          # speaks MCP over stdio

To regenerate tools/tools.json from your panel's live API spec:

PANELICA_SPEC_URL="https://your-panel:8443/api/external/v1/api-spec" npm run rebuild-tools

Configuration

You need three values: a reachable base URL, an API key, and an API secret.

1. Pick the right base URL

Panelica's external-server process listens on 127.0.0.1:3002, and the panel's nginx on 8443 reverse-proxies /api/external/... to it. Nginx strips the /api/external prefix before forwarding, so the path the HMAC signature is computed over and the path the backend sees both end up as /v1/... — signatures match end-to-end without any extra knobs.

The right PANELICA_BASE_URL depends on where you run panelica-mcp:

Scenario

Recommended PANELICA_BASE_URL

MCP client on your laptop, panel on a remote server

https://<panel-host>:8443/api/external

MCP client and panel on the same machine

http://127.0.0.1:3002

You should not open port 3002 to the public internet. The default install binds it on all interfaces but expects it to be either firewalled or only reached through the 8443 reverse proxy.

Sanity-check the proxy from your machine:

curl -sk https://<panel-host>:8443/api/external/health
# {"status":"ok"} or similar

If you get a TLS error, that is the panel's self-signed certificate — install a real cert on the panel (panel UI → Settings → SSL) rather than disabling verification client-side.

2. Generate an API key in the panel

  1. Sign in to the panel as root or any account with permission to manage API keys.

  2. Navigate to Settings → API Keys → Generate API Key.

  3. Pick the scopes you want the MCP server to have. For a read-only assistant, *:read is enough. For full automation, grant *:write too. Every tool's description in this server lists the scopes it requires.

  4. Copy both key (looks like pk_...) and secret (looks like sk_...). The secret is shown only once; store it in a password manager.

3. Verify the credentials with curl

Before you wire the MCP client up, prove the credentials work end-to-end:

export PANELICA_BASE_URL=https://your-panel-host:8443/api/external
export PANELICA_API_KEY=pk_xxxxxxxx
export PANELICA_API_SECRET=sk_xxxxxxxx

TS=$(date +%s)
# Signature is over METHOD + PATH + TIMESTAMP + BODY. The path is the
# backend-visible path (/v1/...) — NOT the /api/external/ prefix that nginx
# strips before forwarding. panelica-mcp does this automatically.
SIG=$(printf "GET/v1/api-keys${TS}" \
  | openssl dgst -sha256 -hmac "$PANELICA_API_SECRET" -hex | awk '{print $2}')

curl -sk "$PANELICA_BASE_URL/v1/api-keys" \
  -H "X-API-Key:   $PANELICA_API_KEY" \
  -H "X-Timestamp: $TS" \
  -H "X-Signature: $SIG"

You should get back JSON listing your API keys. Common 401 responses:

error.code

Likely cause

MISSING_API_KEY / MISSING_TIMESTAMP / MISSING_SIGNATURE

Header is empty — re-check the curl flags

INVALID_KEY_FORMAT

The PANELICA_API_KEY value is malformed

INVALID_TIMESTAMP

Local clock drifted more than 5 minutes — sync NTP

INVALID_SIGNATURE

Wrong secret, or the path you signed includes /api/external/ (it must not — nginx strips it before the backend sees it)

Wire it into your MCP client

Claude Code (one command)

claude mcp add panelica \
  -e PANELICA_BASE_URL=https://your-panel:8443/api/external \
  -e PANELICA_API_KEY=pk_... \
  -e PANELICA_API_SECRET=sk_... \
  -- npx -y panelica-mcp

That's it — ask Claude Code to "list my domains" or "create a database for example.com" and it will drive the panel through the scoped API key.

Claude Desktop

Edit your Claude Desktop config:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

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

  • Linux (Claude Desktop beta): ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "panelica": {
      "command": "npx",
      "args": ["-y", "panelica-mcp"],
      "env": {
        "PANELICA_BASE_URL":   "https://your-panel-host:8443/api/external",
        "PANELICA_API_KEY":    "pk_...",
        "PANELICA_API_SECRET": "sk_..."
      }
    }
  }
}

Save, fully quit Claude Desktop (not just close the window — Quit), and re-open it. A new chat will show panelica as a connected MCP server with "404 tools available".

Cursor

In Settings → MCP → Add new server:

{
  "panelica": {
    "command": "npx",
    "args": ["-y", "panelica-mcp"],
    "env": {
      "PANELICA_BASE_URL":   "https://your-panel-host:8443/api/external",
      "PANELICA_API_KEY":    "pk_...",
      "PANELICA_API_SECRET": "sk_..."
    }
  }
}

OpenAI Codex CLI

Add to ~/.codex/config.toml:

[mcp_servers.panelica]
command = "npx"
args = ["-y", "panelica-mcp"]

[mcp_servers.panelica.env]
PANELICA_BASE_URL = "https://your-panel:8443/api/external"
PANELICA_API_KEY = "pk_..."
PANELICA_API_SECRET = "sk_..."

Continue.dev, Cline, Zed

Any MCP-aware editor that accepts a stdio command works the same way — give it npx -y panelica-mcp (or the absolute path to the built dist/index.js) and the three environment variables.

Generic stdio client

PANELICA_BASE_URL=https://your-panel-host:8443/api/external \
PANELICA_API_KEY=pk_... \
PANELICA_API_SECRET=sk_... \
panelica-mcp

The process speaks MCP JSON-RPC over stdin/stdout. Send an initialize request first, then tools/list, then tools/call.

Tool catalogue

404 tools are auto-generated from the panel's live /v1/api-spec, so they never drift from the API. Each tool carries MCP safety annotations (read-only 181 · mutating 177 · destructive 46) that capable clients use to auto-approve reads and warn before destructive calls.

Category

Tools

Git

43

Domains

32

Logs

26

File Manager

23

Laravel Apps

21

Python Apps

19

Node.js Apps

18

Accounts

16

CloudFlare

12

Docker

12

IP Addresses

9

Cron Jobs

8

Email

8

FTP

8

Security

8

Databases

7

Spam

7

SSH Users

7

WordPress

7

API Keys

6

License

6

MySQL Users

6

Server

6

Webhooks

6

Backups

5

DNS

5

Migrations

5

Plans

5

Snapshots

5

2FA

4

Antivirus

4

Backup Schedules

4

Mailing Lists

4

SSL

4

Bandwidth

3

Config Locks

3

Core

3

Remote MySQL

3

Sessions

3

Subdomains

3

Terminal

3

Audit

2

Metrics

2

Notifications

2

Panel Settings

2

Resource Quota

2

SMTP Relay

2

System Cron

2

Mail Queue

1

PHP

1

Redirects

1

Full machine-readable list: tools/tools.json.

Example sessions

After wiring the server up, try these in your MCP client:

Domain provisioning.

"Create a new account for alice@example.com on the starter plan, then add the domain alice-shop.com to it and issue a Let's Encrypt certificate."

The assistant will pick up panelica_accounts_post_v1_accounts, panelica_domains_post_v1_domains, and panelica_ssl_post_v1_ssl_... from the catalogue, fill in the parameters from the conversation, and call them in sequence. You can watch the calls happen in the client's tool log.

Diagnostic.

"Show me the last 24 hours of bandwidth usage for alice-shop.com and tell me whether it is on track to exceed the plan quota this month."

Bulk cleanup.

"List every domain whose SSL certificate expires in the next 14 days and renew them all."

DNS migration.

"For the zone alice-shop.com, list the current A and CNAME records, then add www as a CNAME to alice-shop.com and an A record for mail pointing to 203.0.113.10."

The assistant will only invoke tools whose scopes are granted to your API key, so a read-only key safely answers "list" questions but refuses "create / delete".

Permission scopes

API keys are scoped — grant an AI assistant exactly the access it needs, nothing more. No scope is preselected when creating a key in the panel, and the create dialog has live search over all 50 scopes. read view/list only · write create/update · delete remove · special special access. Every family also accepts its wildcard (domains:*) and *:* grants everything.

Area

Scopes

Accounts

accounts:read read · accounts:write write · accounts:delete delete

Domains & subdomains

domains:read read · domains:write write · domains:delete delete

Databases

databases:read read · databases:write write · databases:delete delete

DNS

dns:read read · dns:write write · dns:delete delete

Email

email:read read · email:write write · email:delete delete

FTP

ftp:read read · ftp:write write · ftp:delete delete

SSL

ssl:read read · ssl:write write

Backups & snapshots

backups:read read · backups:write write · backups:restore special

File Manager

files:read read · files:write write · files:delete delete

CloudFlare

cloudflare:read read · cloudflare:write write · cloudflare:delete delete

Docker & app templates

docker:read read · docker:write write · docker:delete delete

App hosting (Laravel / Node.js / Python)

apps:read read · apps:write write · apps:delete delete

Git & Deploy

git:read read · git:write write · git:delete delete

Logs & audit

logs:read read · logs:write write

Security (antivirus, firewall, IP blocks)

security:read read · security:write write · security:delete delete

Server & infrastructure

server:read read · server:write write

Service control

services:restart special · services:start special · services:stop special

Plans

plans:read read · plans:write write

Webhooks

webhooks:read read · webhooks:write write · webhooks:delete delete

Bandwidth

bandwidth:read read

License

license:read read

Migrations (panel-to-panel)

migrations:read read

Terminal

terminal:access special

Full access

*:* special

Mutating service control deliberately requires its own action scopes (or server:write) — a metrics-only server:read key can not stop MySQL.

Security model

  • HMAC-SHA256 request signing. Every request is signed over METHOD + PATH + QUERY + TIMESTAMP + BODY with your API secret. The panel rejects requests whose timestamp drifts more than 5 minutes from server clock, so replays are not possible.

  • Secrets stay local. The API secret is read from the process environment and used only to compute the signature. It is never logged, sent to any third party, or written to disk.

  • Scope-restricted keys. Generate one API key per use case. Grant only the scopes that use case needs — e.g. domains:read for a read-only assistant, *:write only for full automation.

  • Audit trail. Every request hits the panel's normal audit logging and RBAC. Actions taken via MCP are indistinguishable from any other authenticated API call and can be traced to the API key that performed them.

  • No data harvesting. This server emits no telemetry, writes no cache, and contacts no third party.

  • Container hardening. The Docker image runs as a non-root user and exposes no ports — it speaks only stdio.

Troubleshooting

Symptom

Likely cause

Fix

Client reports "0 tools available"

Server crashed at startup — usually a missing env var

Run panelica-mcp once from a shell with the three env vars set; read stderr

401 MISSING_API_KEY

PANELICA_API_KEY not set or wrong header passthrough

Re-check the MCP client config; restart the client after editing

401 INVALID_SIGNATURE

Wrong PANELICA_API_SECRET, or clock drift > 5 min

chronyc tracking (or timedatectl status) on both the MCP host and panel host

401 INVALID_TIMESTAMP

Local clock drift > 5 min

Sync NTP on the MCP host

Connect timeout on BASE_URL

Wrong host/port — typically :8443/api/external was missed off the URL

Verify with curl -sk $PANELICA_BASE_URL/health — should return {"status":"ok"}

403 FORBIDDEN on a tool

API key lacks the required scope

Regenerate the key in the panel with the scope listed in the tool's description

Tool description says "Schema not statically extractable"

The endpoint uses dynamic request bodies

Pass a free-form body object; the panel will validate and tell you the missing fields with a 400 response

TLS verification fails

Panel is using its self-signed cert

If the MCP host trusts that CA, this works out of the box. If not, deploy a real cert on the panel (panel UI → Settings → SSL) — do not disable TLS verification client-side

If you are still stuck, open an issue at github.com/Panelica/panelica-mcp/issues with the (redacted) stderr output.

Development

git clone https://github.com/Panelica/panelica-mcp.git
cd panelica-mcp
npm install
npm run build
node dist/index.js

Project layout:

.
├── src/index.ts          # MCP server (stdio transport, HMAC client)
├── tools/
│   ├── build-tools.mjs   # Generates tools.json from the API spec
│   ├── api-spec.json     # Committed snapshot of the live /v1/api-spec
│   └── tools.json        # 404 tool definitions, auto-generated (committed)
├── .github/workflows/
│   └── refresh-tools.yml # Weekly CI: regenerate from the live API, commit if changed
├── Dockerfile
├── smithery.yaml         # Smithery deployment manifest
├── .env.example
└── README.md

Keeping the tool catalogue current

The catalogue never drifts from the API by hand. The backend serves an always-current /v1/api-spec (built from its route registry), and the tools are regenerated from it:

# Rebuild from the committed snapshot (offline):
npm run rebuild-tools

# Pull the live spec, refresh the snapshot, and rebuild:
PANELICA_SPEC_URL="https://your-panel:8443/api/external/v1/api-spec" npm run rebuild-tools

CI (refresh-tools.yml) runs this weekly against the panel named in the PANELICA_SPEC_URL repository variable and commits any changes, so a new API endpoint becomes an MCP tool automatically. Each tool is tagged with safety annotations (readOnlyHint for GET, destructiveHint for DELETE) that capable MCP clients use to auto-approve reads and warn before destructive calls.

A separate, internal dataset of every panel endpoint (1,263 total) exists for training purposes — only the 404 documented External API endpoints are exposed through this package. Internal panel endpoints, recorded DEV data, and training jsonl files are not part of the public repository.

Versioning & support

  • This package follows the Panelica panel's External API. Tool signatures change only when the panel itself ships a backward-incompatible API change, and the package's major version is bumped to match.

  • New endpoints become available the next time we regenerate tools/tools.json and publish a release.

  • Panel issues (the API itself, not this client): the Panelica forum at forum.panelica.com.

  • Client / packaging issues: github.com/Panelica/panelica-mcp/issues.

License

MIT. See LICENSE.

Available Tools

404 tools
panelica_2fa_get_v1_2fa_statusA
Read-onlyIdempotent

Get 2FA status

HTTP: GET /v1/2fa/status Category: 2FA Required scopes: accounts:write Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description reinforces this with 'Read-only.' It adds genuinely useful context beyond annotations: the required OAuth scope 'accounts:write' and the exact HTTP endpoint. There is no contradiction between the description and 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?

The description is compact and front-loaded: purpose, HTTP method, category, required scopes, and read-only status are each on their own line. Only 'Category: 2FA' is somewhat redundant with the tool name, but the overall overhead is minimal and highly scannable.

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 read-only status check, the description covers the essential invocation details: endpoint, HTTP method, auth scope, and safety profile. It does not describe the response structure, but with no output schema and a self-describing 'status' resource, this is a modest rather than a blocking 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 an empty input schema, so there is no parameter ambiguity for the description to resolve. The baseline of 4 applies because the schema and context signals fully cover parameter semantics.

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

Purpose4/5

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

The description provides a concrete verb and resource ('Get 2FA status') and reinforces it with the explicit HTTP endpoint. It is clearly distinct from the sibling 2FA mutation tools (enable, disable, verify), though it does not explain what the returned status payload looks like. The core phrase largely repeats the title, but the added endpoint and scope lines make 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?

The description gives no explicit guidance about when to use this tool versus the 2FA enable/disable/verify siblings, nor any prerequisite conditions. It only labels the category as 2FA and states read-only, leaving the selection decision mostly to inference.

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

panelica_2fa_post_v1_2fa_disableA

Disable 2FA

HTTP: POST /v1/2fa/disable Category: 2FA Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate not read-only and not idempotent; the description adds the required accounts:write scope and explicitly states 'Mutating: changes server state.' It does not disclose other behavioral consequences, such as whether a confirmation code is required or how existing 2FA settings are affected.

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 definition is compact and structured with HTTP method, category, required scope, and mutation flag. There is slight redundancy in repeating 'Disable 2FA' and the Category line, but no significant 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?

It covers the essential auth scope and mutation semantics, but leaves the request body content unspecified and does not explain when to use this operation versus sibling 2FA operations. For a simple state-changing endpoint this is adequate but not fully self-contained.

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 single body parameter is described in the schema as 'Request body (application/json). Schema not statically declared — see API docs,' which gives little real semantic detail. The description adds no further parameter guidance, so with high schema coverage the baseline score of 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource: 'Disable 2FA', reinforced by the exact HTTP endpoint POST /v1/2fa/disable. It is clearly distinguishable from sibling 2FA tools such as enable, verify, and 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 intended use is implied by the name and endpoint, but the description gives no explicit guidance about when to choose this over panelica_2fa_post_v1_2fa_enable or panelica_2fa_get_v1_2fa_status. It provides scope and mutation context but no alternatives or exclusions.

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

panelica_2fa_post_v1_2fa_enableC

Enable 2FA

HTTP: POST /v1/2fa/enable Category: 2FA Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, and the description reiterates this with 'Mutating: changes server state.' It adds the required scope 'accounts:write' as useful auth context, but overall adds limited behavioral detail beyond what annotations provide.

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

Conciseness4/5

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

The description is compact and structured with HTTP method, category, scope, and mutation status. It is front-loaded with the core purpose and contains 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 and an open request body, the description leaves critical invocation details missing: what to send in the body, what the response looks like, and what side effects beyond 'changes server state' occur. An agent cannot fully understand how to call 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?

The only parameter, 'body', has a schema description explicitly stating it is not statically declared. The tool description provides no additional fields, format, or example. Schema coverage is nominally 100%, but the body's actual structure is opaque, and the description does nothing to 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 states a clear verb and resource: 'Enable 2FA'. The HTTP path and category reinforce the action. However, it does not explicitly differentiate from sibling tools like disable or verify, though 'enable' is unambiguous enough on its own.

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 the sibling 2FA tools (status, disable, verify). It lists required scopes and mutation status, but not context for choosing this operation over alternatives.

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

panelica_2fa_post_v1_2fa_verifyB

Verify 2FA

HTTP: POST /v1/2fa/verify Category: 2FA Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, and the description adds explicit confirmation that the operation changes server state. It also provides the required scopes (accounts:write). However, it omits what specific state changes occur, what the request body should contain, and what the response 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 short and front-loaded with the core meaning, followed by essential metadata. 'Category: 2FA' is mildly redundant with the name, but overall every line is compact and purposeful.

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 an opaque free-form body, no output schema, and a mutating tool, the description is incomplete. It lacks request body expectations, response format, and workflow context hinting when verification is needed. An agent would have difficulty invoking this tool correctly without external API documentation.

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, 'body', has a description that explicitly says the schema is not statically declared and to consult API docs. The tool description adds no information about required fields such as a 2FA code or token, so an agent cannot determine what to send beyond arbitrary JSON.

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 and resource: 'Verify 2FA' via POST /v1/2fa/verify. It is distinct from sibling tools like enable, disable, and status, though those differences are not explicitly spelled out.

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 useful context — HTTP method, required scopes, and that it mutates server state — but does not explicitly say when to choose this over enable/disable/status. Usage is implied by the name and endpoint but not articulated.

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

panelica_accounts_delete_v1_accounts_idA
DestructiveIdempotent

Delete account

HTTP: DELETE /v1/accounts/:id Category: Accounts Required scopes: accounts:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true, so the description's destructive warning is largely redundant. However, it adds meaningful context beyond annotations: the required scope accounts:delete and the explicit statement that the resource is permanently removed, clarifying the irreversibility.

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

Conciseness5/5

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

The description is compact and efficiently structured: action, HTTP details, category, required scope, and a warning. Every line adds relevant information without 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?

This is a simple one-parameter delete operation with a rich set of annotations. The description covers the HTTP method, path, required scope, and permanence of deletion, which is sufficient 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.

Parameters3/5

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

Schema coverage is 100% and the schema describes id as the path parameter, so the description does not need to add much. The description names the path placeholder :id, which mirrors the schema but adds no new semantic 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 states a clear verb and resource: "Delete account" with the HTTP DELETE method and path /v1/accounts/:id. This unambiguously identifies the action and distinguishes it from sibling account tools like suspend, patch, or get.

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 choose this tool over alternatives such as suspending an account. It gives context like required scopes and destructiveness, but does not explain when deletion is appropriate or warn against use in reversible situations.

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

panelica_accounts_get_v1_accountsA
Read-onlyIdempotent

List accounts

HTTP: GET /v1/accounts Category: Accounts Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, covering the safety profile. The description adds meaningful auth context with 'Required scopes: accounts:read' and confirms the HTTP method, which is useful beyond the annotations. There is no contradiction with the 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?

The description is highly concise and front-loaded with the core purpose 'List accounts'. Every line carries useful information: HTTP method, category, required scopes, and read-only status. There is no fluff or redundancy beyond the minor overlap between 'Read-only' and the readOnlyHint annotation.

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 parameterless, read-only list endpoint, the description is mostly complete: it gives the endpoint, scope, and category. However, there is no output schema and the description does not describe what the response contains, which could leave an agent unsure about the returned account shape. It also does not contrast with account-specific sibling tools, so some selection context 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 input schema has zero parameters and 100% schema description coverage, so there is nothing for the description to explain. The baseline for a parameterless tool is 4, and the description adds no unnecessary parameter guidance. This is appropriate for a no-parameter operation.

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 exactly what the tool does with 'List accounts' and gives the explicit endpoint GET /v1/accounts. This makes the resource and action clear. It does not explicitly differentiate from siblings like get_v1_accounts_id, but the collection endpoint and list verb are sufficient for basic disambiguation.

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 useful context such as required scopes and read-only behavior, which informs the agent about prerequisites. However, it does not state when to use this tool versus alternatives like fetching a single account or account-specific subresources. Usage is implied by the endpoint rather than explicitly guided.

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

panelica_accounts_get_v1_accounts_idB
Read-onlyIdempotent

Get account

HTTP: GET /v1/accounts/:id Category: Accounts Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already cover the read-only, non-destructive, idempotent nature of the operation. The description adds the required scope 'accounts:read' and restates read-only behavior, which is useful but does not go much beyond what annotations already convey.

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, structured, and easy to scan with clear labels for HTTP, category, scopes, and behavior. A little redundancy exists with the title and annotations, but overall it is appropriately sized.

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 single-parameter GET operation, the description is mostly sufficient, especially with annotations and schema in place. However, it does not describe what data the response contains or explicitly distinguish itself from the related list-accounts endpoint, leaving minor gaps for an agent deciding whether this is the correct tool.

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

Parameters3/5

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

Schema coverage is 100% and the only parameter, 'id', is already described as 'Path parameter: id'. The description adds no additional meaning about parameter format, constraints, or examples, so the schema carries the semantic weight.

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, 'Get account', reinforced by the HTTP method and path 'GET /v1/accounts/:id'. This makes it distinguishable from sibling account tools that target sub-resources like stats or disk usage, though it does not explicitly contrast itself with the list-accounts sibling.

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 useful context such as the HTTP endpoint and required scopes, which implies this is for retrieving a single account by ID. However, it gives no explicit guidance on when to use this tool versus related alternatives like panelica_accounts_get_v1_accounts or the account sub-resource tools.

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

panelica_accounts_get_v1_accounts_id_disk_usageA
Read-onlyIdempotent

List disk usage

HTTP: GET /v1/accounts/:id/disk-usage Category: Accounts Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds value by declaring the required OAuth scope (accounts:read) and the HTTP method, giving the agent concrete auth and invocation context. No contradiction with 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?

The description is compact and front-loaded: 'List disk usage' immediately states the purpose, followed by HTTP path, category, scopes, and read-only flag. Every line carries distinct and useful information with zero 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 single-parameter read-only GET endpoint, the description, annotations, and schema together provide enough for correct invocation: the id is the only required input, the auth scope is declared, and safety is clear. No output schema exists, but 'List disk usage' gives a reasonable sense of the return; a note on response format would be a minor improvement.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter, with 'Path parameter: id'. The description's HTTP path reinforces that id refers to an account ID, but it does not add substantive parameter semantics beyond what the schema already provides. Baseline 3 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 states a specific verb and resource: 'List disk usage'. The HTTP path clarifies it is per-account. However, it does not explicitly distinguish this from sibling tools like resource_usage or stats, so it falls 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 Guidelines3/5

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

The description provides useful context (category, required scopes, read-only) but does not state when to use this tool versus alternatives such as panelica_accounts_get_v1_accounts_id_resource_usage or panelica_accounts_get_v1_accounts_id_stats. Usage is 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.

panelica_accounts_get_v1_accounts_id_domainsA
Read-onlyIdempotent

List domains

HTTP: GET /v1/accounts/:id/domains Category: Accounts Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.6/5.0
Behavior3/5

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

Annotationa already provide read-only, idempotent, and non-destructive signals, and the description's 'Read-only' mostly repeats that. It adds the accounts:read scope requirement, which is useful, but it does not disclose response shape, pagination, or filtering 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 compact and well structured: the action comes first, followed by endpoint, category, scope, and safety marker in minimal lines. Every element earns its place and there is 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 one-parameter read-only list endpoint with strong annotations, the method, path, required scope, and read-only marker make the definition usable. The absence of an output schema leaves return-field details unstated, but 'List domains' conveys the expected high-level result.

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

Parameters3/5

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

The input schema covers the single `id` parameter at 100%, so the baseline is adequate. The path template suggests `id` is the account identifier, but the description adds no further semantic detail beyond that.

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 ('List domains') and provides the exact HTTP GET path, which shows this is scoped to an account's domains via /accounts/:id/domains. It does not explicitly name sibling alternatives, so it stops just 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 Guidelines3/5

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

The described HTTP method, Accounts category, required scope, and read-only label give enough context for an agent to treat this as a safe read operation for an account's domains. However, it does not state when to choose this over sibling domain-listing endpoints or when not to use it, so usage is only implied.

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

panelica_accounts_get_v1_accounts_id_emailsA
Read-onlyIdempotent

List emails

HTTP: GET /v1/accounts/:id/emails Category: Accounts Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds the non-obvious auth requirement 'Required scopes: accounts:read'. That is useful disclosure beyond the structured annotations, though it does not mention pagination, result size, or what the returned list 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?

The description is compact and front-loaded with the action, followed by endpoint, category, scope, and read-only flag in a clearly separated block. Every line carries distinct information and there is no filler or redundant expansion.

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-only endpoint this is mostly adequate, but with no output schema and a sibling that lists email accounts, the description leaves ambiguity about what 'emails' means and does not define the return shape. It is a minimum-viable description rather than a fully self-sufficient one.

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

Parameters3/5

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

Schema description coverage is 100%, and the only parameter is 'id', described as 'Path parameter: id'. The tool description adds no further meaning to the parameter, so the baseline score of 3 applies because the schema already documents it adequately.

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 opens with 'List emails', a clear verb and resource, and the HTTP path 'GET /v1/accounts/:id/emails' anchors it to a per-account email listing. It does not fully explain what counts as an 'email' here (addresses vs. messages) or explicitly distinguish itself from sibling endpoints like panelica_email_get_v1_email_accounts_id, so it stops short of perfect 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 statement of when to use this tool versus alternatives; the only contextual clues are the path and category. Required scopes and read-only markings describe access requirements, not decision rules, and no alternative sibling is named.

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

panelica_accounts_get_v1_accounts_id_resource_usageB
Read-onlyIdempotent

Get account resource usage

HTTP: GET /v1/accounts/:id/resource-usage Category: Accounts Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already cover the safety profile with readOnlyHint, idempotentHint, and destructiveHint=false. The description adds a useful behavioral prerequisite not present in annotations: the required 'accounts:read' scope. It doesn't describe the return payload, but for a simple read-only fetch this 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.

Conciseness4/5

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

The description is compact and front-loaded with the core purpose, followed by concise metadata lines. The 'Read-only' line duplicates the annotation and 'Category: Accounts' adds little, which prevents a perfect score.

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 single-parameter GET endpoint, the invocation essentials (id, path, scopes) are present, and the annotations cover safety. However, with no output schema, the description does not say what 'resource usage' actually includes—disk, bandwidth, quotas, etc.—which is relevant for choosing among sibling accounting 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?

The input schema already describes the only parameter as 'Path parameter: id' with 100% coverage. The description's HTTP line echoes ':id' but adds no new meaning, so the baseline of 3 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 ('Get') and a clear resource ('account resource usage'), and the HTTP path pins down exactly which endpoint it is. It does not explicitly contrast itself with sibling read endpoints such as account stats or disk usage, so it stops short of fully distinguishing among similar 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 the many sibling account-related GET endpoints. The description only lists endpoint metadata (HTTP method, category, required scopes, read-only) rather than any selection conditions or exclusions.

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

panelica_accounts_get_v1_accounts_id_statsC
Read-onlyIdempotent

List stats

HTTP: GET /v1/accounts/:id/stats Category: Accounts Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

C2.9/5.0
Behavior3/5

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

The annotations already carry the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description's 'Read-only' line is consistent with them rather than additive. It adds the required scope 'accounts:read' and the explicit HTTP endpoint, but provides no details about response shape or pagination, so it contributes only modest context beyond the 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?

The description is compact, front-loaded with the action, and each line communicates a distinct fact: endpoint, category, required scope, and read-only nature. There is no filler or redundant elaboration.

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

Completeness2/5

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

There is no output schema, yet the description never says what statistics are actually included, leaving the return value ambiguous. Given nearby sibling tools for disk usage and resource usage, an agent cannot confidently predict what this 'stats' endpoint provides.

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

Parameters3/5

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

The schema already fully documents the only parameter as 'Path parameter: id' with 100% coverage, so the description does not need to explain it. The HTTP path template reinforces that id is the account id in the URL, but adds no new semantic detail.

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 ('List') and identifies the resource through the HTTP path '/v1/accounts/:id/stats', so it is not merely a name restatement. However, 'stats' is vague and does not say which statistics are returned, and it does not distinguish this from sibling account tools like disk_usage or resource_usage.

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 related account tools such as panelica_accounts_get_v1_accounts_id_disk_usage or resource_usage. The HTTP method, category, scope, and read-only flag describe the request itself but do not help an agent select among alternatives.

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

panelica_accounts_patch_v1_accounts_idA

Update account

HTTP: PATCH /v1/accounts/:id Category: Accounts Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.6/5.0
Behavior4/5

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

The description explicitly states the required scope (accounts:write) and labels the operation as one that changes server state, adding auth and side-effect context beyond the readOnlyHint=false annotation. It is consistent with the idempotentHint and destructiveHint flags, though it does not describe response behavior or possible irreversible 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 compact: a one-line purpose followed by HTTP method/path, category, required scope, and mutation flag. Every line carries distinct information and there is 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?

For a mutating PATCH endpoint with an open body schema and no output schema, the description is too thin: it never says which account fields can be updated, what the request body should contain, or what response to expect. The schema itself defers body shape to API docs, leaving the agent without enough information to construct a valid call from this definition alone.

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

Parameters3/5

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

Input schema coverage is 100% (id as path parameter and body as a JSON object), so the description does not need to restate them. However, the body parameter is open-ended and the description adds no field-level meaning; it just repeats the path pattern. This is acceptable but not additive.

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 'Update account' followed by 'HTTP: PATCH /v1/accounts/:id', giving a clear verb-resource pair and making the operation distinct from sibling create, get, and delete account endpoints. The resource and action are unambiguous even before considering 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?

No when-to-use or when-not-to-use guidance is provided. The description does not mention that this endpoint is for general account modifications, nor does it direct an agent to sibling tools for password changes, suspension, or impersonation. An agent must infer the appropriate situation from the verb alone.

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

panelica_accounts_post_v1_accountsB

Create account

HTTP: POST /v1/accounts Category: Accounts Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false) already convey the safety profile, and the description adds useful context: the explicit 'Mutating: changes server state' warning and the accounts:write auth requirement. However, it doesn't disclose any side effects beyond 'state change' or clarify behavior on duplicate accounts, and 'openWorldHint=true' is left unadorned.

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?

Five short lines, each carrying a distinct fact (action, route, category, scopes, mutating flag), and the core action is front-loaded. Minor redundancy: 'Create account' restates the title and 'Category: Accounts' re-echoes the tool name prefix.

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 an open-world free-form body and no output schema, the agent is left unable to construct a valid request: the body fields are neither declared in the schema nor illustrated in the description, and no return value or success signal is described. The description covers the what/route/scopes but not the how.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds no parameter-level meaning; the sole body parameter is documented in the schema only as an opaque 'Schema not statcally declared — see API docs' object with additionalProperties true. The tool description does nothing to compensate for the fact that the body structure is unknowable from the definition itself.

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 ('Create') and resource ('account'), and the HTTP route POST /v1/accounts makes the operation unambiguous. It is distinguishable from sibling account tools (get, patch, delete, change_password) by the verb+resource pairing, though it doesn't explicitly name any alternative.

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

Usage 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 select this tool over alternatives — no exclusions, no prerequisite conditions, no hint about what distinguishes account creation from other account operations. The only actionable constraint is the required scope accounts:write, which is an authorization requirement rather than a selection criterion.

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

panelica_accounts_post_v1_accounts_id_change_passwordB

Create change password

HTTP: POST /v1/accounts/:id/change-password Category: Accounts Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the state-changing character is known. The description adds useful confirmation ('Mutating: changes server state') and states the required scope, but does not disclose possible side effects (e.g., invalidating existing sessions/tokens) or response behavior. No contradiction with 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?

The description is compact and scannable, with each line carrying distinct information: operation summary, HTTP method/path, category, required scope, and mutation flag. There is 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 mutating password-change endpoint with no output schema and an open/deferred body schema, the description does not specify the required body fields (e.g., new password) or any expected response. The agent could not reliably construct a correct request from the provided definition alone, making this incomplete for a state-changing 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 100%, so the baseline is 3. The schema documents 'id' as the path parameter and 'body' as the JSON request body, but the description adds no extra meaning; notably the body schema is not statically declared and no password field semantics are described, so the agent must rely on external docs.

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 operation via 'HTTP: POST /v1/accounts/:id/change-password' and 'Category: Accounts', which conveys that this tool changes an account password and distinguishes it from sibling change-password endpoints (email, FTP, MySQL). However, the first line 'Create change password' is awkward and does not state in plain terms that it changes the account's password, so it is 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 endpoint path and 'Required scopes: accounts:write' imply that the tool should be used to change the password of a Panelica account when write access is available. It does not explicitly state when to use this versus the sibling email/FTP/MySQL password-change tools or give exclusions, so usage 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.

panelica_accounts_post_v1_accounts_id_impersonateB

Create impersonate

HTTP: POST /v1/accounts/:id/impersonate Category: Accounts Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and idempotentHint=false; the description adds the required accounts:write scope and explicitly states 'Mutating: changes server state.' That is useful but still does not describe the actual impersonation behavior, such as whether the current session changes, a token is returned, or how it must be undone.

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

Conciseness4/5

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

The description is compact and structured, with each line carrying a specific fact: route, category, scopes, and mutation flag. There is no filler, though the opening 'Create impersonate' fragment is slightly awkward.

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 an open-body mutating action with no output schema, an agent needs more context about what impersonation means, what the request body should contain, and how the action relates to stop_impersonation. This description is too thin to support correct invocation in a meaningful workflow.

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

Parameters3/5

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

Schema coverage is 100% for the two parameters, so the baseline is 3. The description itself adds no parameter semantics; the body parameter is only described as an open JSON object with no static schema, and the description does not help fill that 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 names the operation as 'Create impersonate' and includes the full HTTP endpoint POST /v1/accounts/:id/impersonate, so an agent can tell it is a POST action targeting an account. However, it does not explain what impersonation actually does or differentiate it from related account actions like stop_impersonation.

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 for when to use this tool versus alternatives. The description mentions required scopes and that it mutates state, but it does not explain the session context, pairing with stop_impersonation, or any preconditions.

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

panelica_accounts_post_v1_accounts_id_sso_loginB

Create sso login

HTTP: POST /v1/accounts/:id/sso-login Category: Accounts Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already indicate a mutating, non-idempotent operation (readOnlyHint=false, idempotentHint=false), and the description adds the required scope and an explicit 'changes server state' statement. It does not disclose further behavioral details such as whether sessions are invalidated, how long the SSO login is valid, or what the response contains, so the added transparency beyond annotations is modest.

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

Conciseness4/5

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

The description is compact and scannable, with the HTTP method, path, category, required scope, and mutability all presented in short lines. There is slight redundancy: 'Create sso login' and 'Mutating' largely echo the title and annotations, but the overall structure is efficient and easy to process.

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 endpoint with an open body schema and no output schema, the description leaves important invocation details unstated: what the body may contain, whether the response includes a login URL or token, and any practical side effects. The route and scope are covered, but an agent cannot confidently construct the request or anticipate the result.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 even without extra parameter explanation in the description. The description's HTTP path aligns with the id path parameter, but it adds no meaning beyond the schema, and the body parameter remains unspecified with additionalProperties enabled.

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 ('Create sso login') and gives the exact HTTP route, making it clear this is a POST operation that creates an SSO login for a specific account. It is distinguishable from siblings by the unique sso-login endpoint, though it does not explain what creating an SSO login returns or explicitly contrast it with account impersonation.

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 useful context: it is an account-category operation, requires the accounts:write scope, and is mutating, so an agent can infer when it is appropriate. However, it does not give explicit when-to-use or when-not-to-use guidance or compare it with closely related account actions such as impersonation or password changes.

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

panelica_accounts_post_v1_accounts_id_suspendC

Create suspend

HTTP: POST /v1/accounts/:id/suspend Category: Accounts Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds the required scope and states that it mutates server state, which is useful but largely reinforces the existing annotations. It does not explain side effects, reversibility, 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.

Conciseness4/5

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

The description is compact and scannable, with endpoint, category, scope, and mutation flag each on its own line. The 'Create suspend' opener is unhelpful, but the remaining lines are concise and free of 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 simple action with one required path parameter and no output schema, the description plus schema provides enough to identify and invoke the operation: endpoint, required id, scopes, and mutation flag. However, it leaves the body's purpose and the consequences of suspension unexplained, so 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.

Parameters3/5

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

Schema description coverage is 100%, so id and body are already documented in the input schema. The description adds no parameter-level detail, such as id being the account identifier or clarifying the body's purpose. Baseline 3 is appropriate because the schema carries the load.

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's opening 'Create suspend' is grammatically odd and vague; the actual action of suspending an account is only inferable from the endpoint path and tool name. The HTTP line clarifies the resource, but the description does not explicitly state what suspension 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 provides required scopes and notes that the call mutates server state, but gives no guidance on when to use this tool versus alternatives. The sibling unsuspend tool is not mentioned, so an agent has no explicit cue about choosing between suspend and unsuspend.

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

panelica_accounts_post_v1_accounts_id_unsuspendB

Create unsuspend

HTTP: POST /v1/accounts/:id/unsuspend Category: Accounts Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the 'Mutating' label adds little beyond what is structured. The description does add the required scope accounts:write, which is useful auth context, but it does not describe side effects, reversibility, or what happens to the account's status.

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

Conciseness4/5

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

The description is compact, labeled, and scannable, with the endpoint, category, scope, and mutation flag each on their own line. Some content, like 'Mutating: changes server state', largely repeats annotation information, and 'Create unsuspend' is near-tautological, so it is not perfectly waste-free.

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 id-driven action, the required parameter and auth scope are discoverable, so a basic call can be constructed. However, there is no description of the response format, the purpose of the optional body, or any precondition such as the account being suspended, leaving notable gaps given there is no output schema.

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

Parameters3/5

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

Schema description coverage is 100% for the declared properties, and the description adds no parameter-specific meaning. The body parameter remains open-ended ('Schema not statically declared — see API docs'), and the description does not compensate for that uncertainty.

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 endpoint path clearly identifies the action (POST /v1/accounts/:id/unsuspend) and the target resource, and 'Mutating' reinforces that it changes state. However, the opening phrase 'Create unsuspend' is awkward and the description never states in plain terms that this re-enables a previously suspended account.

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 panelica_accounts_post_v1_accounts_id_suspend or other account mutations. There are no preconditions, such as the account needing to be suspended, and no explicit scenarios or exclusions.

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

panelica_accounts_post_v1_accounts_stop_impersonationC

Create stop impersonation

HTTP: POST /v1/accounts/stop-impersonation Category: Accounts Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already mark readOnlyHint=false and idempotentHint=false, so the description's 'Mutating: changes server state' adds only mild reinforcement. It does add a useful auth requirement (accounts:write), but it does not disclose what state is changed, whether an active impersonation session is required, or what the caller should expect after a successful call. No contradiction with annotations.

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

Conciseness4/5

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

The description is compact and scannable, with HTTP method, category, scope, and mutation flag in a clear bullet-like format. The only real waste is the redundant and awkward opening line 'Create stop impersonation', which repeats the title. Everything else 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 no-required-parameter mutation, the description is minimally sufficient: an agent could call POST /v1/accounts/stop-impersonation with an empty or minimal body. However, it does not explain when this endpoint is relevant, what the body should contain, whether an impersonation must already be active, or what response to expect, leaving meaningful gaps.

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

Parameters3/5

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

The only parameter is an opaque 'body' object with additionalProperties: true, and the schema description is generic boilerplate pointing to API docs. The tool description itself adds no parameter-level meaning. Since schema description coverage is high, the baseline of 3 applies, though the body remains effectively undocumented for the agent.

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 HTTP path and the phrase 'stop impersonation' make the intended action reasonably clear, but the opening line 'Create stop impersonation' is grammatically awkward and essentially restates the tool/title. It does not clearly explain what happens when impersonation is stopped or distinguish it from the closely related impersonate and SSO-login 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 guidance on when to use this endpoint versus alternatives. It only states the required scope and that the call mutates server state, but it never says 'call this after impersonating' or contrasts it with panelica_accounts_post_v1_accounts_id_impersonate. There are no use-case conditions or exclusion criteria.

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

panelica_antivirus_get_v1_antivirus_quarantineB
Read-onlyIdempotent

List quarantine

HTTP: GET /v1/antivirus/quarantine Category: Antivirus Required scopes: security:read Read-only.

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?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context like "Required scopes: security:read" and the explicit HTTP endpoint, but it does not describe what the returned quarantine list contains or any pagination/ordering behavior.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action "List quarantine", followed by structured metadata. Minor redundancy exists since "Read-only" repeats the readOnlyHint annotation, but overall the size is appropriate for a zero-parameter GET endpoint.

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

Completeness4/5

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

For a simple, zero-parameter, read-only list operation with strong annotations, the description is mostly complete: it specifies the endpoint, method, required scope, and read-only nature. The absence of return-value details is a minor gap given no output schema exists, but "List quarantine" plus the endpoint make the tool's purpose sufficiently clear.

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 there is no parameter semantics burden on the description. The schema fully defines the call signature, and no additional parameter explanation 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 starts with "List quarantine", a clear verb+resource statement that identifies the tool as a read-only retrieval of antivirus quarantine entries. It is distinct from sibling tools like panelica_antivirus_get_v1_antivirus_status or panelica_antivirus_post_v1_antivirus_scan, though it does not 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?

The description provides the HTTP method, category, required scopes, and read-only nature, but gives no guidance about when to choose this tool over other antivirus-related tools. There is no mention of alternatives or exclusion criteria, so the agent must infer usage context 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.

panelica_antivirus_get_v1_antivirus_scan_idB
Read-onlyIdempotent

Get scan

HTTP: GET /v1/antivirus/scan/:id Category: Antivirus Required scopes: security:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the read-only behavior is covered. The description adds useful context in the form of the required scope (security:read) and the concrete endpoint path. It does not describe response shape, pagination, error behavior, or what fields a scan object contains, but for a simple read-only GET with strong annotation coverage this 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.

Conciseness4/5

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

The description is compact and front-loaded with the core action before useful metadata. The only slight redundancy is 'Get scan' repeated as the first line, which duplicates the title, but the rest of the lines—HTTP path, category, scope, read-only—are efficient and each 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 one-parameter read-only GET with rich annotations, the description provides the essential context: endpoint, method, category, required scope, and safety. No output schema exists, but the absence of return-value details is a minor gap because the request itself is fully specified and the agent can reasonably infer the response is the scan object for the given ID.

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

Parameters3/5

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

Schema coverage is 100%, and the single parameter 'id' is already described as 'Path parameter: id'. The description reinforces that the id belongs in the URL via '/v1/antivirus/scan/:id', but adds no deeper semantic meaning, such as where to obtain the scan ID or what values are valid. Baseline 3 applies because the schema carries the parameter 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 the verb and resource clearly: 'Get scan' with HTTP GET /v1/antivirus/scan/:id. It is immediately clear this retrieves a specific scan by ID. However, it does not explicitly differentiate itself from sibling antivirus tools like status or quarantine, so it stops short of a 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?

The description provides the HTTP method, category, required scope, and read-only nature, but gives no guidance on when to use this tool versus alternatives. It does not name or contrast siblings such as panelica_antivirus_post_v1_antivirus_scan or panelica_antivirus_get_v1_antivirus_status, and does not explain the context in which fetching a scan by ID is appropriate.

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

panelica_antivirus_get_v1_antivirus_statusA
Read-onlyIdempotent

List status

HTTP: GET /v1/antivirus/status Category: Antivirus Required scopes: security:read Read-only.

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?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which the description confirms with 'Read-only.' It adds the required scope security:read and the HTTP method, but does not disclose any deeper behavioral traits such as response shape or latency characteristics.

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

Conciseness5/5

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

The description is highly concise, front-loading 'List status' before providing HTTP method, category, required scope, and read-only flag in a clean structured format. Every line carries useful information with no waste.

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 GET endpoint, the description provides the endpoint, category, required scope, and safety profile, which is sufficient for an agent to select and invoke it. However, since there is no output schema, the description does not clarify what the returned status represents (e.g., protection state, last scan time, version), leaving minor 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 an empty input schema, so there is no parameter ambiguity. Baseline 4 applies because the description has nothing to add 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 'List status' with the explicit HTTP GET /v1/antivirus/status, and the tool name identifies the antivirus resource. This is enough to distinguish it from sibling antivirus operations like scan, quarantine, and scan_id, though 'status' is not expanded to clarify what status information is returned.

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 for when to use this tool versus alternatives such as panelica_antivirus_post_v1_antivirus_scan or panelica_antivirus_get_v1_antivirus_quarantine. The description only lists required scopes and read-only nature, with no selection criteria or exclusions.

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

panelica_antivirus_post_v1_antivirus_scanB

Create scan

HTTP: POST /v1/antivirus/scan Category: Antivirus Required scopes: security:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already carry readOnlyHint=false and idempotentHint=false; the description reinforces this with 'Mutating: changes server state' and adds the security:write scope requirement. However, it does not disclose whether the scan runs asynchronously, what side effects occur, or how the created scan can be tracked.

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

Conciseness5/5

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

The description is compact and well ordered: action first, then HTTP method, category, required scope, and mutating flag. Every line carries one distinct piece of operational information with 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?

For a create operation with an opaque body and no output schema, the description omits the request payload shape, whether the scan is asynchronous, and how the result relates to the sibling panelica_antivirus_get_v1_antivirus_scan_id endpoint. The sibling polling pattern is strongly implied but never connected.

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 only parameter is a free-form body whose schema says it is not statically declared, so the agent gets no actionable field-level semantics from either the schema or the description. The high schema-description coverage signal gives a baseline of 3, but the provided description is essentially a placeholder pointing to API docs.

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 'Create scan' with HTTP POST /v1/antivirus/scan and category Antivirus, giving a clear verb and resource. It does not explicitly differentiate from the sibling GET antivirus tools, though the POST verb and endpoint path make 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?

There is no guidance on when to create a scan versus checking antivirus status or quarantine, and no mention of polling a scan by ID after creation. The description provides operational metadata like required scopes and mutating behavior, but no context for choosing this tool over alternatives.

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

panelica_api_keys_delete_v1_api_keys_key_idA
DestructiveIdempotent

Delete api key

HTTP: DELETE /v1/api-keys/:key_id Category: API Keys Required scopes: accounts:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
key_idYesPath parameter: key_id

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already provide destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds value beyond these by spelling out 'WARNING: destructive — permanently removes the resource' (clarifying irreversibility) and 'Required scopes: accounts:delete' (auth prerequisite). This meaningfully supplements the annotation layer without contradicting 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?

Five short lines, each earning its place: the action, the endpoint, the category, the required scope, and the permanence warning. The core verb is front-loaded and there is zero 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 single-parameter destructive delete with annotations covering the safety profile, the description is nearly complete: it states the action, endpoint, required scopes, and irreversibility. Minor gaps — no mention of what a successful response looks like (no output schema) or whether deleting a key revokes already-issued tokens — but these are low impact for such a simple 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 coverage is 100% — the sole parameter key_id is already documented as 'Path parameter: key_id' in the schema. The description's HTTP path line adds marginal context by showing the parameter embedded in the URL, but otherwise contributes nothing beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource: 'Delete api key', reinforced by 'HTTP: DELETE /v1/api-keys/:key_id'. This is unambiguous and clearly distinguishable from the api_keys siblings (get, patch, post, regenerate) by the HTTP method and verb.

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 delete an API key versus the realistic alternatives among siblings, most notably panelica_api_keys_post_v1_api_keys_key_id_regenerate (rotate a key instead of deleting it) or patch (modify it). The required-scope line is a precondition, not usage guidance, and there is no mention of when deletion is appropriate.

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

panelica_api_keys_get_v1_api_keysA
Read-onlyIdempotent

List api keys

HTTP: GET /v1/api-keys Category: API Keys Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

It adds the required scope 'accounts:read', which is behaviorally relevant beyond the annotations, and confirms the HTTP GET method. The read-only statement is consistent with the readOnlyHint and destructiveHint annotations, though it does not describe pagination or response 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 compact and front-loaded with the core action, followed by only the most relevant transport, category, scope, and safety details. Every line adds value without unnecessary verbosity.

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

Completeness4/5

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

For a simple zero-parameter list operation, the description covers the essential context: endpoint, category, required scope, and read-only status. The lack of response-shape or pagination information is a minor gap, especially given the annotations and the simplicity 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 and an empty input schema, so there is no parameter ambiguity for the description to resolve. The baseline of 4 applies because no parameter documentation 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 states 'List api keys' with the explicit endpoint 'GET /v1/api-keys', making both the action and resource unambiguous. It is clearly distinct from sibling tools like panelica_api_keys_get_v1_api_keys_key_id, which targets a single key.

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 useful context such as category, HTTP method, required scopes, and read-only behavior, but it does not explicitly state when to prefer this tool over alternatives like the single-key getter. Usage is implied rather than fully specified.

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

panelica_api_keys_get_v1_api_keys_key_idB
Read-onlyIdempotent

Get api key

HTTP: GET /v1/api-keys/:key_id Category: API Keys Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
key_idYesPath parameter: key_id

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds operational context by specifying 'Required scopes: accounts:read' and the GET method, giving the agent auth prerequisite knowledge that annotations do not convey. No annotation contradiction 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 compact and front-loaded with the purpose, followed by endpoint, category, scope, and read-only information. 'Read-only' is redundant with the annotations but not padded; there are no wasted sentences.

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 GET endpoint, the description covers the endpoint, required scope, and read-only nature, which is largely sufficient for invocation. However, with no output schema, it does not describe what the response contains or what happens when the key does not exist, leaving a minor completeness 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?

The input schema fully documents the single key_id parameter as 'Path parameter: key_id' with 100% coverage, so the baseline is 3. The description only repeats the path placeholder and adds no additional format, constraints, or behavior for the 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 ('Get') and resource ('api key'), and the HTTP path '/v1/api-keys/:key_id' makes clear this retrieves a single API key by ID rather than the collection. It is not explicitly differentiated from the sibling list endpoint by name, but the singular resource and path parameter are enough to disambiguate.

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 the sibling list/create/update/regenerate API-key endpoints. Required scopes are listed, but there is no when-to-use, alternative recommendation, or exclusion.

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

panelica_api_keys_patch_v1_api_keys_key_idA

Update api key

HTTP: PATCH /v1/api-keys/:key_id Category: API Keys Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
key_idYesPath parameter: key_id

TDQS

A3.6/5.0
Behavior4/5

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

The description explicitly discloses that the call is mutating and changes server state, and it adds the required scope accounts:write—context beyond the annotations' readOnly/destructive/idempotent hints. There is no contradiction with the 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?

The definition is compact and front-loaded: action, HTTP method, category, required scope, and mutation flag are each on their own line with 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?

This is a mutation endpoint with an open body schema ('Schema not statically declared — see API docs') and no output schema, yet the description gives no indication of which API key properties can be updated or what the response contains. The basics for selection are present, but an agent still lacks enough information to build a correct PATCH body.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter-level meaning, but the schema already documents key_id as a path parameter and body as an application/json object with an undeclared schema and additionalProperties allowed.

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 opens with 'Update api key' and confirms the HTTP method (PATCH) and resource path, so an agent can tell this is a modification operation on an existing API key. It differentiates from GET/DELETE/POST siblings, though it does not contrast with the regenerate sibling.

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 action verb and PATCH method imply this tool is for modifying an existing API key, and the required scope 'accounts:write' gives an authorization condition. However, it never states when to prefer this over the sibling POST, DELETE, or regenerate endpoints, leaving the selection mostly to inference.

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

panelica_api_keys_post_v1_api_keysA

Create api key

HTTP: POST /v1/api-keys Category: API Keys Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.8/5.0
Behavior4/5

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

The description explicitly reports the required scope 'accounts:write' and confirms the operation mutates server state, which adds an actionable authorization precondition beyond the annotations. It does not describe response behavior or effects on existing keys, but the annotations already communicate the basic read-only and destructive profile.

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

Conciseness5/5

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

The description is compact and front-loaded with the core action, followed by the endpoint, category, scopes, and mutation warning. Every line carries relevant information 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.

Completeness2/5

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

For a create operation with a free-form request body and no output schema, the description leaves the agent without enough guidance to construct a valid payload or anticipate the response. It covers routing, authorization, and side effects, but the most important body semantics are unresolved.

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 tool description itself adds no parameter details beyond what the input schema already provides. The schema documents a single 'body' object, notes that its schema is not statically declared, and allows additional properties, so the description does not compensate for the body's unspecified inner fields.

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 'Create api key' and gives the exact HTTP method and path (POST /v1/api-keys), making the operation unambiguous. Among sibling API-key tools for list, get, patch, delete, and regenerate, this is clearly the creation endpoint.

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 useful context such as the HTTP method, category, required scopes, and mutating behavior, but it does not explicitly state when to choose this over related API-key tools. The intended usage is only implied by the verb 'Create' and the endpoint, leaving alternative-selection guidance to inference.

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

panelica_api_keys_post_v1_api_keys_key_id_regenerateC

Create regenerate

HTTP: POST /v1/api-keys/:key_id/regenerate Category: API Keys Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
key_idYesPath parameter: key_id

TDQS

C2.7/5.0
Behavior3/5

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

The description adds "Required scopes: accounts:write" and "Mutating: changes server state." The mutation point is already implied by annotations (readOnlyHint: false), but the required scope is useful beyond the structured metadata. It does not disclose important behavior such as whether the old key is invalidated 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.

Conciseness3/5

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

The description is short and scannable, with clear labeled lines for HTTP method, category, scope, and mutation status. But it opens with the confusing fragment "Create regenerate," which wastes the front-loaded position where the tool's actual purpose should be stated. No sentences are expendable, but the first one undermines 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 mutating endpoint with no output schema, the description should explain what regeneration does, what the response looks like, and any side effects. It provides the endpoint, scope, and a generic mutation warning, but never states the core behavior of regenerating an API key. An agent still lacks enough context to know what will happen when calling 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 coverage is 100%, so the schema already documents the key_id path parameter and the body object. The description adds no parameter-level semantics beyond the endpoint path, which is acceptable under the high-coverage baseline. However, the body parameter is described as "Schema not statically declared — see API docs," leaving real payload requirements unexplained by either the schema or the description.

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 provides the HTTP endpoint "POST /v1/api-keys/:key_id/regenerate" and category "API Keys", which lets an agent infer the action is regenerating an API key. However, it never states this in plain terms—"Create regenerate" is a tautological, ungrammatical phrase that fails to say what the operation actually does. It does not meaningfully distinguish this tool from sibling API-key tools like create or patch.

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. There is no mention that this should be used to rotate an existing API key, while creating a new key should use a different endpoint. The description only restates the endpoint and required scopes, leaving the selection decision to inference.

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

panelica_audit_get_v1_activity_logA
Read-onlyIdempotent

Get activity log

HTTP: GET /v1/activity-log Category: Audit Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description adds a useful authentication constraint: 'Required scopes: logs:read'. It also restates 'Read-only', which adds little beyond the annotation, but the scope requirement is genuinely helpful behavioral context.

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

Conciseness5/5

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

The description is four short lines and immediately front-loads the core action. The endpoint, category, and required scope each earn their place without filler or repetition beyond the harmless read-only note.

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, read-only endpoint, this is nearly complete: it gives the endpoint, category, auth scope, and safety profile. It does not describe the response shape or any pagination behavior, and with no output schema present that information is missing, but the low complexity and rich annotations keep the gap minor.

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 the baseline is 4. There is no parameter ambiguity or missing documentation to penalize, and the description does not need to compensate for any parameter coverage 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 opens with 'Get activity log', a clear verb-plus-resource statement, and reinforces it with the HTTP endpoint and 'Category: Audit'. It is unambiguous about what the tool does, but it does not distinguish itself from the very similar sibling panelica_audit_get_v1_audit_logs, so it stops 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?

There is no guidance about when to use this tool versus the many log- and audit-related sibling tools. The category and scopes provide some context, but nothing tells an agent why this tool should be chosen over panelica_audit_get_v1_audit_logs or other log retrieval tools.

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

panelica_audit_get_v1_audit_logsA
Read-onlyIdempotent

Get audit logs

HTTP: GET /v1/audit-logs Category: Audit Required scopes: logs:read Read-only.

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?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description's 'Read-only' merely restates that, though it does add the required logs:read scope and HTTP method. No additional behavioral context like pagination, time range, or response shape is provided beyond what annotations already cover.

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

Conciseness5/5

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

The description is compact and front-loaded with the core purpose, then adds HTTP method, category, required scope, and read-only status. Every line contributes a distinct piece of metadata with 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 zero-parameter, read-only endpoint with rich annotations, the description is mostly sufficient. The main gap is the lack of clarification about how this relates to the sibling activity-log endpoint, but the low complexity and empty schema make this non-critical.

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 there is no parameter semantics burden for the description to carry. The baseline of 4 for no-parameter tools applies here.

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 specific verb and resource ('Get audit logs') along with the HTTP endpoint, so an agent knows exactly what operation this is. It does not distinguish itself from the sibling activity-log tool (panelica_audit_get_v1_activity_log), which keeps it from 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 about when to use this tool versus alternatives. With many log-related and audit-related siblings, the description only restates the operation and leaves the selection decision entirely to the agent.

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

panelica_backup_schedules_delete_v1_backup_schedules_idB
DestructiveIdempotent

Delete backup schedule

HTTP: DELETE /v1/backup-schedules/:id Category: Backup Schedules Required scopes: backups:restore WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already provide destructiveHint=true, readOnlyHint=false, idempotentHint=true. The description adds the explicit 'WARNING: destructive — permanently removes the resource' and the required scope 'backups:restore', which is useful beyond the annotations. No 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?

Compact and front-loaded: 'Delete backup schedule' leads, followed by HTTP method, category, scopes, and a warning. The repetition of 'Delete' from the title and annotations is minor. The formatting is easy 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?

For a simple one-parameter destructive delete, this is mostly adequate—it includes the HTTP method, scope, and a destructive warning. However, there is no output schema or explanation of response/return behavior, and no mention of id source or error cases. Still, given the tool's simplicity, the gaps are modest.

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?

There is only one parameter, id, with schema description 'Path parameter: id'. The description doesn't add anything about id format, where to find it, or what happens if it's invalid. With 100% schema coverage, a baseline 3 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?

States a clear verb ('Delete') and resource ('backup schedule'), and includes the HTTP method/path. It doesn't distinguish this from sibling delete tools (e.g., many DELETE endpoints exist), but for its domain within backup schedules it 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 explicit when-to-use or when-not-to-use guidance, and no mention of alternatives such as the PATCH or GET backup schedule tools. The scopes line hints at prerequisites but the description doesn't say under what circumstances deleting is appropriate vs. other actions.

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

panelica_backup_schedules_get_v1_backup_schedulesA
Read-onlyIdempotent

List backup schedules

HTTP: GET /v1/backup-schedules Category: Backup Schedules Required scopes: backups:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the required scopes and an explicit 'Read-only' statement, but it does not disclose response shape, pagination, or other 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 compact and front-loaded with the core purpose. Each line provides useful operational detail—endpoint, category, required scope, and read-only nature—without any 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 parameterless, read-only list endpoint with rich annotations, the description is largely complete: it names the resource, gives the HTTP route, and states the required scope. The only gap is that no output schema exists and the description does not describe the response format, but the tool 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 has zero parameters and schema description coverage is 100%, so the description has no parameter semantics to add. The baseline of 4 for a parameterless tool is appropriate.

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

Purpose5/5

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

The description opens with 'List backup schedules,' a specific verb plus resource, making the tool's purpose immediately clear. The HTTP method and category reinforce the resource, and it is easily distinguishable from the backup_schedules_create/update/delete 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 provides useful context such as HTTP method, category, required scope, and read-only status, but it does not explicitly state when to use this tool versus alternatives. An agent must infer that this is the listing counterpart to the other backup-schedule mutation endpoints.

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

panelica_backup_schedules_patch_v1_backup_schedules_idB

Update backup schedule

HTTP: PATCH /v1/backup-schedules/:id Category: Backup Schedules Required scopes: backups:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the description's 'Mutating: changes server state' adds limited but useful confirmation. It also discloses the required scope 'backups:write', which goes beyond annotations. However, it does not explain what aspects of the schedule can be updated, whether the update is partial or full replacement, or what happens to existing unsent fields.

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

Conciseness4/5

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

The description is compact and front-loaded with the core purpose, followed by method, category, scope, and mutation behavior. Each line earns its place, though the category line is somewhat redundant with the resource 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?

The tool is a mutating endpoint with an open-world body schema that is not statically declared, yet the description gives no example fields, no indication of response behavior, and no mention of related tools like GET to inspect current schedules. An agent would need external documentation to construct a valid request body, so the description is not complete enough for reliable 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 100%, so the baseline is 3. The id parameter is documented as a path parameter and the body is documented as 'application/json' with a note that the schema is not statically declared. The tool description itself adds no parameter-level meaning, and the body's actual fields remain unknown, but the schema at least directs the agent to external API docs.

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 opens with 'Update backup schedule', a clear verb+resource statement, and reinforces it with the HTTP method and path. It is distinguishable from sibling backup-schedule tools (get/post/delete) by the PATCH method, though it does not explicitly contrast itself 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 provided about when to use this tool versus alternatives such as creating, deleting, or retrieving backup schedules. The mutating flag and HTTP method imply usage, but 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.

panelica_backup_schedules_post_v1_backup_schedulesB

Create backup schedule

HTTP: POST /v1/backup-schedules Category: Backup Schedules Required scopes: backups:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.3/5.0
Behavior3/5

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

The description states 'Required scopes: backups:write' and 'Mutating: changes server state', adding auth requirements and explicit mutation beyond the annotations. However, it provides no other side effects, reversibility, rate limits, or idempotency caveats, and the mutation line is largely redundant with readOnlyHint=false.

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?

Four short, structured lines with the core action front-loaded. 'Category: Backup Schedules' is somewhat redundant with the endpoint and tool name, but the rest is informative and compact.

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 create operation with no static request-body schema and no output schema, the description is incomplete: it omits what fields a backup schedule requires, any examples, and response behavior. An agent cannot reliably construct a correct request from the provided metadata alone.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline applies, but the only parameter is an opaque 'body' object whose schema is explicitly not statically declared. The tool description adds no field-level meaning, so an agent gains no practical parameter guidance beyond knowing the request body is JSON.

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 backup schedule', reinforced by the HTTP method and category. This clearly distinguishes it from the GET, PATCH, and DELETE backup-schedule 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?

No explicit guidance on when to use this tool instead of the backup-schedule GET/PATCH/DELETE siblings or other create tools. Required scopes and mutating state are prerequisites, not selection criteria; usage must be inferred from the verb 'Create'.

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

panelica_backups_delete_v1_backups_filenameA
DestructiveIdempotent

Delete backup

HTTP: DELETE /v1/backups/:filename Category: Backups Required scopes: backups:restore WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesPath parameter: filename

TDQS

A3.6/5.0
Behavior4/5

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

Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description adds valuable context: the operation is irreversible ('permanently removes the resource'), the required OAuth scope (backups:restore), and the exact HTTP endpoint. The warning reinforces rather than contradicts the destructiveHint annotation.

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?

Five short lines with zero filler: core action first, then endpoint, category, scope, and a prominent destructive warning. Every line earns its place and the most important operational detail (permanence) is highlighted.

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 destructive tool, the description covers the action, endpoint, auth requirement, and irreversibility; annotations already cover the safety profile. It does not describe expected success/error responses, but with no output schema defined and such a simple operation, this 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 100% — the single 'filename' parameter is already documented as a path parameter. The description adds marginal value by showing the ':filename' placeholder in the URL, confirming it is a path segment, but largely the schema carries the burden. Baseline 3 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 states a specific verb and resource ('Delete backup') and includes the HTTP method and endpoint (DELETE /v1/backups/:filename), making the action unambiguous. It does not explicitly differentiate from siblings such as panelica_backups_post_v1_backups_filename_restore or panelica_backups_get_v1_backups_filename, but 'delete' plus the resource is sufficiently distinct.

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. There is no mention of the restore sibling (which an agent should consider before permanently deleting), no exclusions, and no conditions. The endpoint and scope info are context, not usage direction.

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

panelica_backups_get_v1_backupsA
Read-onlyIdempotent

Returns all full and incremental server backups.

HTTP: GET /v1/backups Category: Backups Required scopes: backups:read Read-only.

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?

Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior. The description adds value by specifying required scope backups:read, the HTTP method, and the exact data scope (full and incremental backups), giving auth and content context beyond the structured annotations. No contradiction.

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 purpose is front-loaded in the first sentence, followed by three compact metadata lines. No filler or redundant restatement; it is minimal without losing necessary context.

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

Completeness5/5

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

For a zero-parameter read-only list endpoint, the description is complete: it states HTTP method, category, required scopes, safety, and what is returned. No output schema is present, but the return description and tool title sufficiently convey the result 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 input schema has zero parameters, so there is nothing for the description to explain. The schema description coverage is trivially complete, and the baseline for a no-parameter tool 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 opens with 'Returns all full and incremental server backups,' naming a specific verb, a resource, and a scope. This clearly distinguishes the list-all endpoint from sibling operations that target a filename or create backups. The accompanying title reinforces the purpose.

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

Usage Guidelines3/5

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

The description gives clear operational context—HTTP GET, Category: Backups, required scope backups:read, read-only—so an agent can tell this is a safe list operation. However, it does not explicitly say when to prefer this endpoint over the sibling panelica_backups_get_v1_backups_filename or panelica_backups_post_v1_backups, so usage guidance is 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.

panelica_backups_get_v1_backups_filenameA
Read-onlyIdempotent

Get backup

HTTP: GET /v1/backups/:filename Category: Backups Required scopes: backups:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesPath parameter: filename

TDQS

A3.6/5.0
Behavior4/5

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

The annotations already establish read-only, idempotent, and non-destructive behavior. The description adds the required scope 'backups:read' and restates read-only status, which provides useful auth context beyond the annotations.

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 action and endpoint. Minor redundancy exists in 'Category: Backups' and 'Read-only', but the overall structure is clean and free of unnecessary bulk.

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 endpoint, scope, and read-only flag are sufficient for basic invocation. However, there is no output schema and the description does not state whether the response is backup metadata, a file download, or something else, nor that filenames must come from the backup list.

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

Parameters3/5

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

The input schema already documents filename as a required path parameter with 100% coverage. The description merely repeats ':filename' in the endpoint and adds no format, constraints, examples, or relationship to the backup 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 specifies a single verb and resource: HTTP GET /v1/backups/:filename. This clearly identifies that it fetches one backup by filename, distinguishing it from the sibling list endpoint panelica_backups_get_v1_backups, the delete endpoint, and the restore endpoint.

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 that filenames can be discovered via the backup list endpoint, and no exclusions or conditions are given for delete/restore operations.

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

panelica_backups_post_v1_backupsA

Create server backup

HTTP: POST /v1/backups Category: Backups Required scopes: backups:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already indicate the tool is mutating and not destructive, but the description adds valuable context by explicitly stating 'Mutating: changes server state' and listing the required scope 'backups:write'. This goes beyond the annotations with auth and mutation clarity, though it doesn't describe side effects like filename generation or async 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 extremely concise and front-loaded with the core action. Every line serves a purpose: the endpoint, category, required scope, and mutation behavior. There is no filler or unnecessary elaboration.

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

Completeness2/5

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

The body parameter is open and undocumented in both schema and description, and there is no output schema to clarify the result. An agent can tell what the tool does but not what request body to send or what response to expect. The description would need to compensate more for this missing 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?

The input schema has a single free-form body parameter whose description says the schema is not statically declared. The tool description adds no information about what the body should contain, such as backup names, retention, or included services. Schema description coverage is 100%, so the baseline of 3 applies, but no additional semantic value is provided.

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 'Create server backup', identifying both the specific verb and the resource. The HTTP line 'POST /v1/backups' reinforces this, and the operation is unambiguous when compared to sibling backup endpoints for listing, deleting, and restoring backups.

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

Usage Guidelines2/5

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

The description provides no guidance on when to choose this endpoint over alternatives such as backup_schedules_post_v1_backup_schedules, snapshots_post_v1_snapshots, or backups_post_v1_backups_filename_restore. It gives useful metadata but no explicit when/when-not conditions.

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

panelica_backups_post_v1_backups_filename_restoreB

Restore backup

HTTP: POST /v1/backups/:filename/restore Category: Backups Required scopes: backups:restore Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
filenameYesPath parameter: filename

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds 'Mutating: changes server state' which is consistent with the annotations and adds the required scope (backups:restore) as auth context. However, it doesn't disclose what a restore actually does to current data — whether it overwrites existing files, causes service disruption, or is reversible — which matters for a restore 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 compact and front-loaded: purpose first, followed by HTTP method, category, scopes, and mutation flag. Each line carries distinct information with minimal waste. Slightly terse, but every element 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 state-changing restore operation with an unconstrained body parameter and no output schema, the description leaves critical gaps: what payload to send in the body, what the response looks like, and what consequences a restore has on the current environment. An agent cannot fully determine correct invocation from this definition alone.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline of 3 applies. The description adds nothing about parameter semantics — notably, the 'body' parameter is an open object (additionalProperties: true, schema not statically declared) and the description provides no hint about what the body should contain, leaving the agent dependent on external API docs.

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 'Restore backup' — a specific verb (restore) on a specific resource (backup identified by filename), reinforced by the HTTP endpoint POST /v1/backups/:filename/restore. This distinguishes it from the backup list/get/delete siblings, though it doesn't explicitly differentiate from the similar snapshots_post_v1_snapshots_id_restore sibling.

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. The description gives metadata (Category: Backups, Required scopes) but never states under what conditions an agent should choose this over alternatives, nor what prerequisites exist (e.g., the backup filename must already exist). No exclusions or alternative routing is mentioned.

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

panelica_bandwidth_get_v1_bandwidth_accounts_idB
Read-onlyIdempotent

Get account bandwidth

HTTP: GET /v1/bandwidth/accounts/:id Category: Bandwidth Required scopes: bandwidth:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description adds a required scope (bandwidth:read) and states the HTTP method, but no contradiction; no extra behavioral context such as response content or rate limits.

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?

Compact and front-loaded: the purpose, route, category, scope, and read-only nature fit in four short lines. Slight redundancy exists because 'Read-only' repeats the readOnlyHint annotation, but the text is otherwise efficient.

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

Completeness3/5

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

For a one-parameter read-only endpoint with rich annotations, the description is adequate but not complete: it does not state what bandwidth data is returned, units, time range, or how this account-level call relates to bandwidth_summary/bandwidth_domains_id. Agents may still need to infer the intended response or sibling choice.

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

Parameters3/5

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

Schema description coverage is 100% for the single id parameter. The route template /v1/bandwidth/accounts/:id reinforces that id is a path parameter, but the description does not add detail beyond the schema's minimal 'Path parameter: id'. Baseline 3 per high schema coverage.

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

Purpose4/5

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

The description states the tool gets account bandwidth, with a specific resource (accounts) and HTTP GET route. It distinguishes itself from sibling bandwidth_domains_id by the 'account' scope, though it never names a sibling 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 explanation of when to use this endpoint versus the closely related panelica_bandwidth_get_v1_bandwidth_summary or panelica_bandwidth_get_v1_bandwidth_domains_id. The only guidance is 'account bandwidth' in the title and route, which is implied at best.

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

panelica_bandwidth_get_v1_bandwidth_domains_idA
Read-onlyIdempotent

Get domain bandwidth

HTTP: GET /v1/bandwidth/domains/:id Category: Bandwidth Required scopes: bandwidth:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.5/5.0
Behavior3/5

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

The description explicitly states 'Read-only' and the annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds the required scope 'bandwidth:read', which is a useful behavioral requirement not present in the annotations, but does not discuss response format, pagination, or what units/period the bandwidth covers.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action 'Get domain bandwidth', followed by essential technical details (HTTP method, path, category, scopes, read-only flag). It is arguably terse but each line adds useful information.

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

Completeness3/5

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

The output schema is absent, but for a simple read endpoint fetching bandwidth the description is mostly adequate. However, the tool name contains both 'domain' and 'summary' alternatives among siblings, and the description does not specify what bandwidth data is returned (e.g., time range, totals, per-day), which would help an agent understand the result without calling 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?

Schema coverage is 100% and the single parameter 'id' is described as the path parameter. The description's HTTP path '/v1/bandwidth/domains/:id' reinforces the meaning of the id parameter, which is sufficient for a single straightforward 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 clear verb and resource: 'Get domain bandwidth' for a given domain ID. It distinguishes itself from the closely related panelica_bandwidth_get_v1_bandwidth_accounts_id and the summary endpoint by virtue of the 'domains/:id' path, though it doesn't 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 Guidelines3/5

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

The description provides the HTTP method, path, category, and required scopes, which imply when to use it (fetching bandwidth for a specific domain). However, it does not state when to prefer this over the sibling bandwidth endpoints or the logs/stat endpoints that may overlap.

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

panelica_bandwidth_get_v1_bandwidth_summaryA
Read-onlyIdempotent

Get bandwidth summary

HTTP: GET /v1/bandwidth/summary Category: Bandwidth Required scopes: bandwidth:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds a meaningful operational constraint beyond the annotations: the required scope 'bandwidth:read', which tells the agent what authorization is needed. It also confirms the HTTP method as GET, consistent with the read-only hints.

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 compact: a one-line summary followed by three short metadata lines. The action is front-loaded, and the HTTP path, scope requirement, and read-only indication each earn their place without 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 parameterless, read-only summary endpoint, this is nearly complete: the HTTP path and required scope are present, and annotations cover the safety profile. However, there is no output schema and no description of what the summary contains (e.g., time range, units, or whether it covers all accounts/domains), leaving slight ambiguity about the returned meaning.

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 information for the description to add. With no parameters, the baseline of 4 applies because the schema and description cannot be expected to document anything further.

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 ('Get') and the resource ('bandwidth summary'), and the HTTP line pins it to GET /v1/bandwidth/summary. It is clear but does not explicitly contrast with the sibling per-account and per-domain bandwidth endpoints, so the aggregate nature is inferred rather than stated.

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 sibling bandwidth_accounts_id or bandwidth_domains_id endpoints. The only usage signal is the word 'summary', which implies an aggregate view, but no alternative is named and no selection condition is given.

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

panelica_cloudflare_delete_v1_cloudflare_zones_zone_id__5d0d4625A
DestructiveIdempotent

Delete a DNS record from a CloudFlare zone.

HTTP: DELETE /v1/cloudflare/zones/:zone_id/dns/:record_id Category: CloudFlare Required scopes: cloudflare:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
zone_idYesPath parameter: zone_id
record_idYesPath parameter: record_id

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark it destructiveHint=true and readOnlyHint=false, so the primary risk is structurally declared. The description adds value by warning 'destructive — permanently removes the resource' and by disclosing the required scope 'cloudflare:delete', which is not visible in the schema or 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?

Every line earns its place: a one-sentence purpose, exact HTTP endpoint, category, required scope, and a prominent destructive warning. It is compact, front-loaded with the action, and contains 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 simple two-parameter, no-output-schema delete operation, the description supplies the HTTP method, target resource, required identifiers, scope, and irreversibility warning. It does not describe success or error responses, but that is a minor gap for a straightforward idempotent delete.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3 even though the schema descriptions are minimal ('Path parameter'). The description adds modest context by identifying the target as a DNS record within a CloudFlare zone, but it does not clarify the expected format or source for zone_id and record_id.

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 action and resource: 'Delete a DNS record from a CloudFlare zone.' This is unambiguous and naturally differentiates it from sibling Cloudflare operations such as get/post/put DNS records, even though they share the same zone scope.

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 'from a CloudFlare zone' gives clear context, but the description stops short of explicit when-to-use or when-not-to-use guidance. It does not tell an agent how to choose between this Cloudflare-specific delete and the sibling generic panelica_dns_delete_v1_dns_records_id, so the routing decision is left implied.

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

panelica_cloudflare_get_v1_cloudflare_zonesA
Read-onlyIdempotent

List all CloudFlare zones with settings (security_level, ssl_mode, always_use_https). Returns zone list with Panelica domain matching and IP sync status.

HTTP: GET /v1/cloudflare/zones Category: CloudFlare Required scopes: cloudflare:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
credential_idNoOptional CloudFlare credential ID for multi-account

TDQS

A4.1/5.0
Behavior4/5

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

The description adds required scopes and read-only behavior on top of the annotations, and states what the response includes. It does not cover edge cases like pagination or invalid credentials, but the annotations already carry the safety profile.

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

Conciseness4/5

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

The description is concise and front-loads the purpose and return content. The trailing HTTP route, category, and read-only lines are somewhat redundant with the tool name and annotations, but they do not create meaningful bloat.

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

Completeness4/5

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

For a read-only list operation with one optional parameter, the description adequately covers what the tool returns, the required scope, and the general use case. There is no output schema, but the key return fields are summarized well enough for an agent to invoke 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 only parameter is fully documented in the schema as an optional Cloudflare credential ID for multi-account use. The description does not add extra parameter meaning, so the baseline of 3 applies.

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

Purpose5/5

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

The description states a specific verb ('List') and resource ('all CloudFlare zones'), then names the exact settings included and the additional status fields. This clearly distinguishes it from per-zone Cloudflare siblings like zone settings, DNS, or purge 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 a clear usage context: retrieving an all-zones overview with security/SSL settings and sync status. It does not explicitly name alternatives or when-not-to-use cases, so it is clear but lacks full exclusion guidance.

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

panelica_cloudflare_get_v1_cloudflare_zones_zone_id_dnsA
Read-onlyIdempotent

List all DNS records for a CloudFlare zone.

HTTP: GET /v1/cloudflare/zones/:zone_id/dns Category: CloudFlare Required scopes: cloudflare:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
zone_idYesCloudFlare zone ID

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds a concrete authentication requirement ('Required scopes: cloudflare:read') and the HTTP GET method, which are useful beyond the annotations. No contradiction with annotations exists.

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

Conciseness5/5

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

The description is front-loaded with a clear purpose sentence followed by compact metadata lines for HTTP method, category, required scopes, and read-only status. There is no verbose filler or redundant explanation beyond what is useful for an agent.

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 read-only list endpoint with strong annotations, the description is largely sufficient: it names the resource, scope, auth requirements, and safety profile. It does not mention pagination or response shape, and it leaves sibling selection implicit, but these are minor gaps for this level of complexity.

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

Parameters3/5

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

The sole parameter zone_id is fully described in the input schema as 'CloudFlare zone ID', giving 100% schema description coverage. The description does not add extra meaning such as where to find the zone_id, expected format, or examples, so it stays at the baseline.

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'), resource ('DNS records'), and scope ('for a CloudFlare zone'), which is clear and immediately useful. It includes a Category line that helps group it with CloudFlare tools, but it does not explicitly differentiate itself from the similar generic DNS records endpoint among the siblings.

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

Usage Guidelines3/5

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

Usage context is implied: it is a read-only operation for listing all DNS records on a CloudFlare zone, and it lists the required scope. However, it never explicitly says when to prefer this tool over alternatives such as panelica_dns_get_v1_dns_zones_domain_id_records, and no exclusion conditions are provided.

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

panelica_cloudflare_get_v1_cloudflare_zones_zone_id_settingsA
Read-onlyIdempotent

Get CloudFlare zone settings including security_level, ssl_mode, and always_use_https.

HTTP: GET /v1/cloudflare/zones/:zone_id/settings Category: CloudFlare Required scopes: cloudflare:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
zone_idYesCloudFlare zone ID

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful context beyond that: the required scope 'cloudflare:read' and the exact HTTP endpoint. No contradiction with 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?

The description is compact and front-loaded with the primary action, followed by useful operational details: HTTP method, path, category, required scope, and read-only status. Every line adds value.

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

Completeness4/5

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

For a simple read-only endpoint with one required parameter, the description provides enough to select and invoke the tool: route, scope, parameter, and examples of returned settings. No output schema exists, but the low complexity makes this gap minor.

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

Parameters3/5

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

Schema description coverage is 100% and the only parameter, zone_id, is already documented as 'CloudFlare zone ID'. The description does not add additional meaning about the parameter, so the baseline 3 applies.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Get CloudFlare zone settings' and names concrete fields (security_level, ssl_mode, always_use_https). This clearly distinguishes it from sibling Cloudflare tools like zone listing or DNS management.

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 by the resource name and category, and the HTTP route clarifies the operation. However, there is no explicit guidance about when to choose this 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.

panelica_cloudflare_post_v1_cloudflare_zones_zone_id_dev_modeA

Enable or disable CloudFlare development mode. When enabled, bypasses cache for 3 hours.

HTTP: POST /v1/cloudflare/zones/:zone_id/dev-mode Category: CloudFlare Required scopes: cloudflare:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json)
zone_idYesPath parameter: zone_id

TDQS

A3.7/5.0
Behavior4/5

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

Beyond the annotations, the description states the behavior explicitly: 'Mutating: changes server state' and the cache-bypass duration of 3 hours. It also discloses required scopes (cloudflare:write), which is useful operational context. The description does not contradict the annotations.

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

Conciseness4/5

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

The description is compact and front-loaded, with the core purpose in the first sentence and the effect immediately after. The HTTP, category, scope, and mutation lines are brief but add operational context. Minor redundancy with annotations, such as 'Mutating' vs. readOnlyHint, prevents a 5.

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 toggle endpoint with no output schema, the description gives the essential information: purpose, effect, duration, required auth, and mutation status. It could be more complete by referencing sibling zone tools for discovery or clarifying behavior when disabling, but nothing critical is missing.

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

Parameters3/5

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

Schema coverage is 100%, and the schema already describes body.enabled as 'true to enable, false to disable' and zone_id as a path parameter. The description mentions enabling/disabling but adds no parameter-level detail beyond the schema, so the baseline of 3 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 opens with a specific action and resource: 'Enable or disable CloudFlare development mode.' This clearly identifies what the tool does and distinguishes it from sibling purge/DNS/settings endpoints. It does not explicitly contrast itself with another 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 Guidelines3/5

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

It implies usage by stating that enabling the mode 'bypasses cache for 3 hours,' giving a concrete effect an agent can match to user intent. However, it does not explicitly state when to prefer this over alternatives such as purge cache, nor does it provide exclusions or prerequisites. The context is clear but the selection guidance is only implied.

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

panelica_cloudflare_post_v1_cloudflare_zones_zone_id_dnsA

Create a new DNS record in a CloudFlare zone.

HTTP: POST /v1/cloudflare/zones/:zone_id/dns Category: CloudFlare Required scopes: cloudflare:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json)
zone_idYesPath parameter: zone_id

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=false and idempotentHint=false, and the description adds the required scope 'cloudflare:write' and explicitly states 'Mutating: changes server state.' This gives the agent auth and side-effect context beyond the structured fields, though it does not elaborate on duplicate-record handling or propagation behavior. No contradiction with 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?

The description leads with a one-sentence purpose and then packs HTTP method, category, scopes, and mutating behavior into compact metadata lines. Every line carries information and there is 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 simple create operation with full parameter documentation and a mutating annotation, the description covers the endpoint, required scopes, and side-effect profile. It does not describe the response format or edge cases, but no output schema exists and the Cloudflare context is unambiguous. Slightly more guidance on how zone_id is obtained or what the response contains would be nice, but the current coverage is adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters (zone_id, body, and nested type/name/content/ttl/proxied) are already documented in the schema. The description does not add parameter-level meaning beyond confirming the zone_id path parameter in the HTTP line. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb ('Create'), resource ('a new DNS record'), and scope ('CloudFlare zone'), clearly distinguishing it from sibling operations like the DNS GET list, PUT update, and DELETE. The HTTP line reinforces the POST route, so there is no ambiguity 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 Category and Required scopes lines imply this is the Cloudflare DNS creation path, but the description never explicitly states when to prefer it over alternatives or provides exclusions. Sibling tools such as panelica_dns_post_v1_dns_zones_domain_id_records also create DNS records, and no routing guidance distinguishes them.

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

panelica_cloudflare_post_v1_cloudflare_zones_zone_id_ht_602debf0A

Enable or disable automatic HTTPS redirect (Always Use HTTPS) for a CloudFlare zone. When enabled, all HTTP requests are redirected to HTTPS.

HTTP: POST /v1/cloudflare/zones/:zone_id/https-redirect Category: CloudFlare Required scopes: cloudflare:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json)
zone_idYesPath parameter: zone_id

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=false and idempotentHint=false. The description reinforces this by explicitly stating 'Mutating: changes server state' and adds useful context about required scopes (cloudflare:write). No contradiction with annotations.

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 main purpose is front-loaded and the supporting metadata (HTTP method, category, scopes, mutating flag) is terse. Some redundancy exists with the tool name (e.g., HTTP path, category), but nothing is excessive.

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 toggle with full schema coverage and annotations, the description adequately covers purpose, behavior, and required scope. It does not describe return values, but no output schema exists and this is not critical for 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 100%, so the schema fully documents body.enabled and zone_id. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Enable or disable automatic HTTPS redirect (Always Use HTTPS) for a CloudFlare zone.' This clearly distinguishes it from sibling CloudFlare operations like dev_mode, purge, ssl_mode, and DNS management.

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

Usage Guidelines4/5

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

The description gives clear context for when to use this tool: to toggle whether all HTTP requests redirect to HTTPS. It does not name alternatives or exclusions, but the intended use case is unambiguous from the effect described.

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

panelica_cloudflare_post_v1_cloudflare_zones_zone_id_purgeA

Purge CloudFlare cache for a zone. Send purge_everything:true to purge all, or files array for specific URLs.

HTTP: POST /v1/cloudflare/zones/:zone_id/purge Category: CloudFlare Required scopes: cloudflare:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json)
zone_idYesPath parameter: zone_id

TDQS

A4.1/5.0
Behavior4/5

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

The description adds useful behavioral context beyond annotations: required scope cloudflare:write, mutating/changes server state, and HTTP method. It clearly states what the call does (purge all or specific URLs), compensating for no output schema. It does not contradict readOnlyHint=false and destructiveHint=false; cache purge is a state-changing but not user-data-destroying 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 tight and front-loaded with purpose, then gives the two invocation modes and key metadata. The HTTP line and category duplicate some schema/name information but are brief and useful for routing. There is 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 two-parameter tool with no output schema, it covers the action, both body strategies, required scope, and mutation effect. It does not specify return values or whether one body field is required, but the schema leaves body optional and the 'or' phrasing guides usage. This is sufficient for an agent to invoke 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 coverage is 100%, so a baseline of 3 applies; the description then adds value by framing files and purge_everything as alternatives ('or'), making the semantic model clearer. It also translates boolean and array parameters into concrete invocation patterns.

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: 'Purge CloudFlare cache for a zone.' This distinguishes it from sibling CloudFlare zone operations like dev mode, DNS, SSL, or sync IP by the cache-purge action. The title 'Purge cache' reinforces the intended 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?

There is no explicit comparison to alternatives or a when-not-to-use note. Usage is implied by the purpose: choose this when a CloudFlare zone's cache needs purging. It does give mode guidance (purge everything vs specific files) but not selection guidance among sibling endpoints.

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

panelica_cloudflare_post_v1_cloudflare_zones_zone_id_ssl_modeA

Set CloudFlare SSL/TLS encryption mode. Options: off (no encryption), flexible (CF-to-origin HTTP), full (CF-to-origin HTTPS, self-signed OK), strict (CF-to-origin HTTPS, valid cert required).

HTTP: POST /v1/cloudflare/zones/:zone_id/ssl-mode Category: CloudFlare Required scopes: cloudflare:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json)
zone_idYesPath parameter: zone_id

TDQS

A4.4/5.0
Behavior4/5

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

The description explicitly states 'Mutating: changes server state' and 'Required scopes: cloudflare:write,' adding behavioral context beyond the annotations. It also explains operational implications of each mode, such as strict requiring a valid origin certificate.

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

Conciseness5/5

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

The description is compact and front-loaded: purpose first, then the full option list, then protocol/category/scope/mutation metadata. Every line carries useful information 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.

Completeness4/5

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

For a two-parameter mutation with a simple enum body, the description supplies everything needed to invoke it correctly: valid values, required scope, and mutation status. It does not describe the response shape, but no output schema exists and the core invocation details are 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 coverage is 100%, so the baseline is 3. The description adds real semantic value by explaining what each mode means, which is more informative than the schema's terse 'SSL mode: off, flexible, full, strict' description.

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

Purpose5/5

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

The description opens with a specific verb+resource statement, 'Set CloudFlare SSL/TLS encryption mode,' and enumerates every accepted value with a concise meaning. This makes the tool clearly distinguishable from Cloudflare siblings like dev_mode, purge, and DNS 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 gives clear context for when to use the tool: whenever a user wants to change a Cloudflare zone's SSL/TLS mode. It does not name alternative tools, but no sibling appears to cover this same action, so the trigger condition is unambiguous.

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

panelica_cloudflare_post_v1_cloudflare_zones_zone_id_sync_ipA

Sync the Panelica server IP to the root A record of a CloudFlare zone. If an A record exists, it will be updated; otherwise a new one is created with proxy enabled.

HTTP: POST /v1/cloudflare/zones/:zone_id/sync-ip Category: CloudFlare Required scopes: cloudflare:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json)
zone_idYesPath parameter: zone_id

TDQS

A3.6/5.0
Behavior4/5

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

The description discloses that the operation is mutating, requires cloudflare:write scope, and changes server state. It adds useful detail about the upsert behavior and proxy-enabled creation, going beyond the annotations. It does not fully discuss the impact of overwriting an existing DNS record, but the annotations already establish the safety profile.

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

Conciseness4/5

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

The description is concise and front-loaded with the core behavior. The metadata lines for HTTP method, category, scopes, and mutability are useful, though the category line is somewhat redundant. Overall, it is tight and focused.

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

Completeness3/5

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

The description covers the main side effects, required scope, and the create/update behavior, and the schema covers parameters well. However, there is no output schema and the description does not mention what response to expect, error cases, or whether proxy is preserved when an existing A record is updated. This leaves meaningful ambiguity for an agent invoking the 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 100%, so the schema already documents zone_id, zone_name, and server_ip. The description adds little beyond natural-language context for these parameters. It does not explain why zone_name is required in the body when zone_id is already a path parameter, but the schema is otherwise 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 opens with a specific verb and resource: 'Sync the Panelica server IP to the root A record of a CloudFlare zone.' It also clarifies the update-or-create behavior. It clearly conveys what the tool does, though it does not explicitly name sibling DNS tools to differentiate itself from 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 explains the behavior and the create/update conditional, which makes the intended use fairly obvious. However, it never explicitly states when to choose this over the sibling CloudFlare DNS creation/update tools, such as post_dns or put_dns. The guidance is 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.

panelica_cloudflare_post_v1_cloudflare_zones_zone_id_un_8d5cbd2aA

Enable or disable CloudFlare Under Attack mode. When enabled, shows a JavaScript challenge to all visitors for 5 seconds.

HTTP: POST /v1/cloudflare/zones/:zone_id/under-attack Category: CloudFlare Required scopes: cloudflare:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json)
zone_idYesPath parameter: zone_id

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already signal readOnlyHint=false, and the description reinforces this by stating 'Mutating: changes server state.' It adds valuable context beyond annotations, including the required scope 'cloudflare:write' and the specific visitor-facing consequence of a 5-second JavaScript challenge. No contradiction exists between description and annotations.

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 front-loads purpose and effect in two clear sentences, then appends only the HTTP route, category, scope, and mutating note. It is compact and scannable, though the HTTP route and category lines are somewhat derivable from the tool name and add minor 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 simple two-parameter mutation with a nested boolean body, the description plus schema and annotations cover required inputs, authentication scope, mutation behavior, and the user-visible effect. The lack of an output schema is a minor gap, but nothing essential is missing for an agent to invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents body.enabled as a boolean toggle and zone_id as a path parameter. The description's 'Enable or disable' phrasing adds domain-level meaning to body.enabled but provides no additional syntax or semantics for zone_id. Baseline 3 is appropriate given full schema coverage.

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

Purpose5/5

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

The description states a specific action and resource: 'Enable or disable CloudFlare Under Attack mode.' It also explains the concrete effect (JavaScript challenge to all visitors for 5 seconds), which makes the tool's purpose unambiguous and distinguishable from sibling Cloudflare mode tools like dev_mode or ssl_mode.

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 a zone should challenge all visitors under attack—and explains the behavioral result, but it gives no explicit when-to-use guidance or mention of alternatives among the Cloudflare sibling tools. An agent must infer selection from the tool name and effect rather than receiving direct routing guidance.

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

panelica_cloudflare_put_v1_cloudflare_zones_zone_id_dns_abb3a8b2A
Idempotent

Update an existing DNS record in a CloudFlare zone.

HTTP: PUT /v1/cloudflare/zones/:zone_id/dns/:record_id Category: CloudFlare Required scopes: cloudflare:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json)
zone_idYesPath parameter: zone_id
record_idYesPath parameter: record_id

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark this as mutating and non-destructive, but the description adds the explicit required scope 'cloudflare:write' and the HTTP PUT method, which help an agent understand authentication and invocation constraints. 'Mutating: changes server state' reinforces the annotation without contradicting it.

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

Conciseness5/5

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

The description is compact and front-loaded with the core action, then followed by useful invocation metadata: HTTP method, category, scopes, and mutation effect. Every line adds practical information without unnecessary 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?

The description, complete schema, and annotations together cover the essential input requirements, required scopes, and mutation safety. It lacks explicit guidance on choosing this over sibling CloudFlare DNS tools and does not describe the response format, but those are minor gaps for this straightforward update operation.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented in the input schema. The description adds no parameter-level meaning beyond the schema, which matches the baseline for fully covered schemas.

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 ('Update'), a specific resource ('existing DNS record in a CloudFlare zone'), and the word 'existing' clearly separates this update operation from create/list/delete siblings. It leaves no ambiguity about what the tool does.

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

Usage Guidelines3/5

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

The phrase 'Update an existing DNS record' implies the tool should be used to modify an already-created record, but the description gives no explicit when-to-use or when-not-to-use guidance, and it names no alternative such as the POST endpoint for creating records. Usage context 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.

panelica_config_locks_delete_v1_config_locksA
DestructiveIdempotent

Release config lock

HTTP: DELETE /v1/config-locks Category: Config Locks Required scopes: domains:write WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true and readOnlyHint=false, and the description meaningfully adds that the resource is 'permanently removed.' It also discloses the required domains:write scope, which is not present in the annotations. There is no contradiction between the description and annotations.

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

Conciseness4/5

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

The description is concise and front-loaded with the action, followed by HTTP method, category, scopes, and a destructive warning. Each line adds operational information, with only minor redundancy against the annotation title 'Release config lock.'

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 destructive tool with no output schema, the description adequately covers what the operation does, the endpoint, required scope, and irreversibility. It does not explain the broader concept of a config lock or side effects beyond removal, but that is secondary given the low complexity and existing annotations.

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?

This tool has zero parameters and the input schema is fully covered at 100%, so there are no parameter semantics the description needs to explain. The description appropriately omits parameter details, satisfying the baseline for parameterless tools.

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 'Release config lock' and maps it to HTTP DELETE /v1/config-locks, making the resource and operation clear. The destructive warning further clarifies that this is a removal. It is distinguishable from sibling get/post config-lock tools by the noun and verb, though it does not 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?

The description gives no explicit guidance on when to use this tool versus alternatives such as creating or reading a config lock. It provides prerequisites like required scopes and HTTP method, but does not state exclusions or routing conditions. Usage context must be inferred from the verb 'Release'.

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

panelica_config_locks_get_v1_config_locks_type_idA
Read-onlyIdempotent

Get config lock status

HTTP: GET /v1/config-locks/:type/:id Category: Config Locks Required scopes: domains:write Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior, and the description adds a concrete auth requirement (domains:write scope) plus confirmation of the GET method. It does not describe response details, but for a zero-parameter read-only status lookup that 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?

Every line earns its place: action, endpoint, category, required scope, and side-effect profile. The key statement is front-loaded and there is no redundant prose.

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, low-complexity read-only GET with no output schema and no declared parameters, the description is largely sufficient: it gives the resource, endpoint, category, and auth scope. The one notable gap is that the endpoint's :type/:id path variables are not reconciled with the empty input schema, which could confuse an agent at invocation time.

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

Parameters4/5

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

With zero parameters and 100% schema coverage, the schema carries the full parameter burden; the description does not need to document inputs. The endpoint string mentions :type and :id path placeholders, which is useful context even though the input schema exposes no corresponding properties.

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 'Get config lock status,' a specific verb and resource, and reinforces it with the HTTP GET endpoint. This clearly sets it apart from the config lock create/delete 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 Guidelines3/5

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

Operational context is present: HTTP method, category, required scopes, and read-only behavior. However, it never explicitly states when to choose this tool over alternatives or identifies the create/delete siblings as the non-read-only counterparts, so usage guidance is implied rather than stated.

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

panelica_config_locks_post_v1_config_locksC

Acquire config lock

HTTP: POST /v1/config-locks Category: Config Locks Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

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

The description adds an explicit auth requirement ('Required scopes: domains:write') and states 'Mutating: changes server state,' which complements the annotations already indicating readOnlyHint=false and idempotentHint=false. It does not explain lock duration, scope, or release behavior, but the annotation coverage lowers the bar.

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

Conciseness4/5

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

The description is compact and front-loaded with the action, followed by endpoint, category, scopes, and mutation status. The 'Category: Config Locks' line is mildly redundant but harmless, and there is no unnecessary prose.

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 POST with no output schema and an under-specified body, the description does not explain what a successful response looks like, what happens after the lock is acquired, or how the lock is later released. The sibling tools hint at a lifecycle, but too much is left to inference.

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 is a body object whose schema is described only as 'Schema not statically declared — see API docs,' so the agent gets no concrete fields or format from the schema. The tool description adds no body guidance, examples, or constraints, leaving request construction to guesswork.

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 identifies the action and resource: 'Acquire config lock' with HTTP POST /v1/config-locks. This distinguishes it from the sibling get/delete config-lock tools by action, though it does not explicitly call out 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 usage context is provided: it does not say when acquiring a config lock is appropriate, what state must exist first, or when to prefer the sibling config-lock tools. Listing required scopes is useful but is an authorization constraint, not usage guidance.

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

panelica_core_get_v1_meA
Read-onlyIdempotent

List me

HTTP: GET /v1/me Category: Core Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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

The annotations already cover idempotency and non-destructiveness; the description reinforces this with 'Read-only' and adds a useful auth requirement (Required scopes: accounts:read). It doesn't contradict the annotations and provides extra operational context.

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

Conciseness4/5

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

The description is short and every line carries information (HTTP method, category, scope, read-only flag). 'List me' is terse but not wasteful; a slightly clearer phrase like 'Get current user details' would push it higher.

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 GET endpoint, the description is mostly sufficient: it gives the route, category, scope, and safety. However, with no output schema present, it never states what 'me' returns (e.g., current account profile fields), so an agent must infer the response shape.

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 parameter count is zero, so there are no parameter semantics for the description to clarify. Baseline 4 applies because no parameter documentation burden 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 states a verb and resource — 'List me' with HTTP GET /v1/me — so an agent can tell this targets the current authenticated entity. It lacks an explicit expansion of what 'me' represents or how it differs from siblings, but the endpoint is unambiguous 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 provides context (GET /v1/me, Category: Core, required scope accounts:read, read-only) but never explicitly states when to call this tool or names alternatives. Usage is implied by the endpoint rather than spelled out.

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

panelica_core_get_v1_rate_limitA
Read-onlyIdempotent

Returns current rate limit status for the API key.

HTTP: GET /v1/rate-limit Category: Core Required scopes: : Read-only.

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?

Annotations already mark this as read-only, idempotent, and non-destructive. The description adds value by stating 'Read-only', giving the exact HTTP endpoint, and disclosing the required scope '*:*', which is useful auth context beyond the annotations. No contradiction exists.

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

Conciseness5/5

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

The description is compact and front-loaded: the first sentence states the core function, followed by concise metadata lines for HTTP method, path, category, scopes, and read-only behavior. Every sentence earns its place with no redundancy.

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

Completeness4/5

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

For a zero-parameter, read-only status endpoint, the description provides enough context: endpoint, category, required scope, and the return concept. There is no output schema, and the description does not list response fields, but 'current rate limit status' is sufficiently informative for invocation.

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 empty, so parameter documentation is not needed. The description's phrase 'for the API key' clarifies the implicit resource being queried, which is sufficient given the 0-parameter baseline.

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

Purpose5/5

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

The description states a specific verb ('Returns'), a concrete resource ('current rate limit status'), and clarifies the subject ('for the API key'). The HTTP path and Category metadata reinforce what the tool does, and no sibling tool covers rate-limit status, so there is 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 clearly identifies the tool's purpose and resource, so an agent can infer when to use it: when rate limit status for the API key is needed. It does not explicitly discuss alternatives, but there is no closely competing sibling tool, so this is acceptable.

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

panelica_cron_jobs_delete_v1_cron_jobs_idA
DestructiveIdempotent

Delete cron job

HTTP: DELETE /v1/cron-jobs/:id Category: Cron Jobs Required scopes: accounts:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description explicitly warns that the operation permanently removes the resource and lists the required scope (accounts:delete). This gives an agent critical behavioral context about irreversibility and authorization, adding value beyond the structured 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?

The description is compact and front-loaded: the core action appears first, followed by essential HTTP, authorization, and warning details. Every line provides useful information with no 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 simple one-parameter destructive delete operation, the description is complete: it identifies the resource, HTTP method, path, required scope, and the irreversible nature of the action. The annotations already confirm destructive and non-read-only behavior, and no output schema is needed.

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

Parameters3/5

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

The schema has 100% coverage for the single 'id' parameter, documented as 'Path parameter: id'. The description does not add additional semantic detail beyond this, so it is adequate but not augmented.

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

Purpose5/5

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

The description clearly states the specific action ('Delete cron job'), the HTTP method and path, and the category. It is easily distinguished from sibling cron job tools like get, patch, post, run, and toggle because the DELETE verb and '/v1/cron-jobs/:id' path make the operation 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 context is clear: this tool is for deleting a cron job via HTTP DELETE, and it states the required scope. It does not explicitly compare itself to alternatives such as toggling a cron job off or patching it, but the delete semantics and destructive warning make the primary use case evident.

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

panelica_cron_jobs_get_v1_cron_jobsA
Read-onlyIdempotent

List cron jobs

HTTP: GET /v1/cron-jobs Category: Cron Jobs Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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

The annotations already declare the operation read-only, idempotent, and non-destructive. The description adds useful authorization context by stating the required scope 'accounts:read', which is not present in the annotations. Though terse, this goes beyond what annotations provide.

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

Conciseness5/5

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

The description is compact and front-loaded with the core purpose, followed by useful endpoint, category, scope, and safety metadata. Every line contributes information without unnecessary elaboration.

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 parameterless list operation with rich annotations, the description is reasonably complete: it identifies the resource, HTTP method, required scope, and read-only nature. It does not describe output shape or pagination, but no output schema exists and the listing semantics are straightforward enough for an agent to invoke 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 and the schema coverage is 100%, so there is nothing for the description to add about inputs. Per the rubric, zero-parameter tools receive a baseline of 4, and repeating the empty schema would add no value.

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 ('List cron jobs') and includes the HTTP endpoint, so an agent knows what operation this tool performs. However, it does not explicitly distinguish user cron jobs from the sibling system cron job endpoints, leaving slight 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 guidance is provided about when to use this tool versus alternatives such as panelica_system_cron_get_v1_system_cron_jobs or panelica_cron_jobs_get_v1_cron_jobs_id. The category and endpoint imply context, but there are no explicit usage conditions or exclusions.

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

panelica_cron_jobs_get_v1_cron_jobs_idA
Read-onlyIdempotent

Get cron job

HTTP: GET /v1/cron-jobs/:id Category: Cron Jobs Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description reinforces this with 'Read-only.' It adds useful behavioral context beyond annotations by specifying the required scope 'accounts:read' and the HTTP method/path. No contradiction exists.

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

Conciseness5/5

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

The description is compact and front-loaded: it states the operation, then adds endpoint, category, required scope, and safety in a scannable multi-line format. Every line contributes useful information without redundancy.

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

Completeness4/5

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

For a one-parameter read-only fetch with full annotations, the description covers the operation, endpoint, required scope, and safety profile. It does not describe the response shape, but the simplicity of 'Get cron job' and the absence of an output schema keep that gap minor.

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 sole 'id' parameter is fully documented in the schema as a path parameter, and the HTTP template /v1/cron-jobs/:id confirms that role. With 100% schema coverage, the schema already carries the parameter meaning, and the description adds no further format or constraint 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 states the exact operation ('Get cron job') and the HTTP path, clearly identifying the resource and verb. This distinguishes the single-item fetch from sibling tools like listing cron jobs, fetching cron job logs, updating, deleting, or running a cron job.

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

Usage Guidelines3/5

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

No explicit guidance is provided on when to prefer this tool over alternatives such as the list endpoint or the logs endpoint. Usage is only implied by the tool name and 'Get cron job,' which is adequate for a simple read but not explicit about exclusions or alternatives.

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

panelica_cron_jobs_get_v1_cron_jobs_id_logsA
Read-onlyIdempotent

Get cron job logs

HTTP: GET /v1/cron-jobs/:id/logs Category: Cron Jobs Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already mark this as read-only, idempotent, and non-destructive; the description adds the HTTP method (GET), the required OAuth scope (accounts:read), and explicitly repeats 'Read-only.' The required scopes are useful behavioral context beyond what annotations provide. No contradictions with 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?

The description is compact and front-loaded: purpose first, then method/path, scopes, and safety statement. Each line adds distinct information 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 simple one-parameterGET endpoint, the description covers purpose, HTTP method, target path, authorization scope, andread-only behavior. There is no output schema, but since this is a basic log retrieval with no nested objects or optional parameters, the provided information is reasonably complete. It would be stronger if it indicated the response format or that logs are returned for the specified cron job id, but the endpoint path already imply that.

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 descriptions has 100% coverage for the single 'id' parameter ('Path parameter: id'), so thedescription is not required to explain it. The description's HTTP path shows the id placeholder, but adds no semanticdetail beyond what the schema already provides.

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

Purpose4/5

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

The description states a specific verb and resource: 'Get cron job logs,' and the HTTP path clarifies exactly which object's logs are fetched. It is clear and unambiguous, but it does not explicitly distinguish itself from sibling log tools like panelica_git_get_v1_git_deployments_id_logs or panelica_logs_get_v1_logs_category_id.

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 panelica_cron_jobs_get_v1_cron_jobs_id for cron job details or other log endpoints. The description includes category and scope but no exclusions, prerequisites, or selection criteria beyond the resource name.

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

panelica_cron_jobs_patch_v1_cron_jobs_idB

Update cron job

HTTP: PATCH /v1/cron-jobs/:id Category: Cron Jobs Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior4/5

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

The description explicitly states 'Mutating: changes server state' and adds the required scope 'accounts:write', which is meaningful behavioral and authorization context not present in the annotations. The annotations already cover read-only, idempotence, and destructive safety, so the description adds useful context without contradicting them.

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

Conciseness5/5

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

The description is compact and front-loaded: the core 'Update cron job' operation appears first, followed by four concise, relevant metadata lines. Every line earnes its place, and there is no padding or repetition beyond the unavoidable title echo.

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 an update endpoint with an opaque request body and no output schema; an agent needs to know what cron job fields are updatable to call it correctly, but the description only defers to API docs via the schema. It also does not describe response behavior or validation side effects, so the definition is not complete enough on its own.

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

Parameters3/5

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

The input schema already describes both the id path parameter and the body parameter, so schema coverage is high; the description itself adds no parameter-level meaning. The body is an open object with an undeclared schema, and the description does not hint which cron job fields (schedule, command, etc.) should be included.

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 opens with a clear verb-resource pair ('Update cron job') and reinforces it with the HTTP method/path. This is enough to distinguish it from sibling cron job operations like create, delete, toggle, and run. However, it gives no detail about which cron job attributes can be updated, so it is clear but not fully differentiated at the field level.

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. It does not tell the agent to use POST /v1/cron-jobs for creating a new job, POST .../run for triggering one, or DELETE for removing one. 'Update cron job' only implies an update use case without routing or exclusions.

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

panelica_cron_jobs_post_v1_cron_jobsB

Create cron job

HTTP: POST /v1/cron-jobs Category: Cron Jobs Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already convey readOnlyHint=false and idempotentHint=false, so 'Mutating: changes server state' largely restates what is already structured. The useful addition is 'Required scopes: accounts:write', an authorization prerequisite not present in annotations, but no side effects, rate limits, or response behavior 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?

Five short lines with no filler; the essential HTTP verb and path are front-loaded. 'Category' and 'Mutating' add little beyond other signals, but they do not inflate the description enough to lower it below a strong score.

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 with an open body schema and no output schema, this is thin. It lacks any indication of required body fields, schedule or command semantics, example payloads, or response and error expectations, so an agent cannot reliably construct a valid create call from the description alone.

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 only parameter, body, is described in the schema as a JSON object whose schema is not statically declared. Because schema_description_coverage is 100%, the baseline applies; however, the tool description itself adds no field-level meaning, so the agent still does not learn what the body should contain.

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 verb–resource pair 'Create cron job', reinforced by 'HTTP: POST /v1/cron-jobs' and 'Category: Cron Jobs'. This clearly separates it from sibling operations like patch, delete, run, and toggle, so an agent can identify the create operation without opening schemas.

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 call this versus the related get, patch, delete, run, or toggle cron-job tools. The only contextual signal is 'Category: Cron Jobs', which does not explain conditions, prerequisites, or alternatives, so the agent must infer usage from the verb alone.

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

panelica_cron_jobs_post_v1_cron_jobs_id_runB

Run cron job now

HTTP: POST /v1/cron-jobs/:id/run Category: Cron Jobs Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=false and idempotentHint=false, so the description's 'Mutating: changes server state' adds only modest additional context. It also notes the required scope (accounts:write), which is useful, but it does not describe side effects beyond 'changes server state' or any risks of triggering a job.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action. The HTTP method, category, scopes, and mutation note are all relevant; there is no filler. It earns a 4 rather than 5 because it is somewhat bare and could arguably include one line of usage context.

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 POST action with only a required id, the description is mostly sufficient to select and call the tool. However, the request body semantics are left unresolved, and there is no statement about what happens after triggering the job or any caveats about the run. With no output schema, a bit more context would help.

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 reported at 100%, and the description reinforces the id path parameter via the HTTP route. However, the body parameter is explicitly not statically declared ('see API docs'), and the description offers no additional meaning about what the optional body should contain. This meets the baseline but does not compensate for the opaque body schema.

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

Purpose4/5

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

The description clearly states the action ('Run cron job now') and the resource it acts on, and the HTTP line reinforces the exact endpoint. However, it does not explicitly distinguish itself from sibling cron-job tools like toggle, patch, or delete, so it stops 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?

The description gives no guidance on when to use this tool versus alternatives such as toggling a cron job or editing it. It states what the tool does but provides no conditions, exclusions, or mention of sibling tools.

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

panelica_cron_jobs_post_v1_cron_jobs_id_toggleB

Toggle cron job

HTTP: POST /v1/cron-jobs/:id/toggle Category: Cron Jobs Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and idempotentHint=false. The description adds that the operation requires accounts:write scope and that it mutates server state. However, it does not explain the actual effect of toggling, reversibility, or response behavior, so transparency 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.

Conciseness4/5

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

The description is compact and front-loaded with the action, endpoint, category, scope, and mutating behavior. It avoids fluff, though the title-like first line is somewhat redundant with 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?

The description is too thin for an agent to fully understand the toggle semantics or whether the open body parameter needs specific fields. While annotations cover the safety profile and the required id parameter is clear, the absence of any explanation of what 'toggle' does or what the body may contain leaves meaningful gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The schema describes id only as a path parameter and body as an undocumented open object. The description adds no parameter-level meaning beyond what the schema already provides, and the body is left entirely to external API docs.

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 ('Toggle') on a specific resource ('cron job') and gives the exact HTTP endpoint. This is clear enough to distinguish it from run/delete/patch cron-job operations, though it does not explicitly say what state is toggled (enabled/disabled).

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 panelica_cron_jobs_post_v1_cron_jobs_id_run or panelica_cron_jobs_patch_v1_cron_jobs_id. There are no when-to-use, when-not-to-use, or prerequisite conditions beyond the required scope.

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

panelica_databases_delete_v1_databases_idA
DestructiveIdempotent

Delete database

HTTP: DELETE /v1/databases/:id Category: Databases Required scopes: databases:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.7/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description adds a clear warning that the operation permanently removes the resource and specifies the required scope. This tells the agent this is irreversible and identifies the auth need, going beyond the structured hints.

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-loads the core action before HTTP, category, scope, and warning lines. Each line carries useful operational information, though 'Category: Databases' is somewhat redundant with the tool name.

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 delete operation with no output schema, the description covers the endpoint, required scope, and destructive irreversibility. It could mention response/status expectations, but the core call information 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 100%, and the single id parameter is already described as 'Path parameter: id'. The description's HTTP path shows :id but adds no additional semantic meaning 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 'Delete database' with the HTTP method and path, clearly identifying the verb and resource. It is easily distinguished from sibling database tools like get/post databases, 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?

There is no guidance on when to choose this tool over alternatives, such as the database get or create tools. It does provide a required scope (databases:delete), but that is an authorization prerequisite rather than usage direction.

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

panelica_databases_get_v1_databasesA
Read-onlyIdempotent

List databases

HTTP: GET /v1/databases Category: Databases Required scopes: databases:read Read-only.

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?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds the required scope 'databases:read' and restates 'Read-only', which provides some authentication context not present in the annotations. It doesn't go deeper into pagination or response behavior, but for a simple read-only list that 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?

The description is extremely compact and every line earns its place: operation, HTTP method, category, required scope, and read-only status. There is no filler, repetition, or irrelevant 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 parameterless read-only list endpoint, the description provides the essential call information: endpoint, HTTP method, auth scope, and safety. It leaves return-shape and pagination details implicit, but the annotations and overall simplicity make the tool callable without those details.

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 100% schema description coverage, so there is nothing for the description to add. The baseline of 4 applies because no parameter documentation is needed; the description correctly provides no extraneous parameter-related text.

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 and specifically states the operation ('List databases') on the databases resource, which is unambiguous. It doesn't explicitly differentiate from the sibling tool that fetches a single database by ID, but the verb and resource are specific enough for an agent 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?

There is no guidance about when to use this tool versus alternatives such as panelica_databases_get_v1_databases_id or the database creation tool. No conditions, exclusions, or 'use X instead' hints are provided. The phrase 'List databases' implies enumeration, but that is minimal and not enough to route an agent effectively.

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

panelica_databases_get_v1_databases_idB
Read-onlyIdempotent

Get database

HTTP: GET /v1/databases/:id Category: Databases Required scopes: databases:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false; the description adds a required OAuth scope (databases:read), which is useful auth context beyond the annotations. It does not add details about error behavior, response shape, or side effects, but for a simple read-only GET the annotation and scope line cover most of the safety profile.

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

Conciseness5/5

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

The description is minimal and front-loaded: the core action appears first, followed by the HTTP method/path, category, required scope, and read-only indicator. Every line provides useful information with 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 one-parameter read-only GET, the endpoint, scope, and annotations give an agent enough to invoke it correctly. The only notable omission is not stating what a successful response contains, but the operation is simple enough that this 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 coverage is 100% and the only parameter is 'id' with 'Path parameter: id' already documented in the schema. The description adds no meaning beyond that, so the baseline 3 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 states the action ('Get') and resource ('database') and gives the HTTP path GET /v1/databases/:id, so an agent can tell it retrieves a single database by ID. It is clear but stops short of explicitly distinguishing it from the plural list endpoint or describing what the fetched database record contains.

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 choose this tool over alternatives such as panelica_databases_get_v1_databases, panelica_databases_post_v1_databases, or database detail endpoints. The usage context is only implied by the endpoint and category, with no when-to-use or when-not-to-use information.

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

panelica_databases_get_v1_phpmyadminB
Read-onlyIdempotent

List phpmyadmin

HTTP: GET /v1/phpmyadmin Category: Databases Required scopes: databases:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false, and the description does not contradict them. It adds useful access information by declaring 'Required scopes: databases:read', but it does not disclose what the response contains, whether pagination occurs, or any other behavioral detail beyond the annotations.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action 'List phpmyadmin', followed by the HTTP method, category, scopes, and read-only flag. Every line serves a purpose, though the wording 'List phpmyadmin' is slightly awkward and could be more natural.

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 no-input GET tool this is nearly sufficient, but because there is no output schema, the description should clarify what the returned list actually contains, such as phpMyAdmin instances, URLs, or access credentials. Without that, an agent may not know what to expect or how to use the result.

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 input schema is empty with 100% coverage, so there are no parameter semantics for the description to clarify. The baseline of 4 is appropriate because there is nothing missing for an agent to know about inputs.

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 verb 'List' and the resource 'phpmyadmin', and adds the HTTP endpoint, category, and required scope, so an agent can identify this as a read-only listing operation. It is more than a tautology, though it does not explain what the listed phpMyAdmin items represent or explicitly differentiate it from database-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?

There is no explicit guidance about when to use this tool versus alternatives such as panelica_databases_get_v1_databases or panelica_databases_get_v1_databases_id. The read-only label and endpoint imply a safe listing operation, but the description never states the intended selection conditions or exclusions.

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

panelica_databases_post_v1_databasesC

Create database

HTTP: POST /v1/databases Category: Databases Required scopes: databases:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds "Mutating: changes server state" and the required scope "databases:write", which are useful, but it does not describe what happens on success, what fields are required, or any side effects beyond creation.

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 purpose, followed by structured metadata. Some redundancy exists with the tool name and annotations, but the format is clean and scannable.

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?

This is a mutating create operation with an opaque request body and no output schema. The description provides no field names, required properties, examples, validation rules, or response expectations, making it impossible for an agent to invoke correctly without external API documentation.

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

Parameters3/5

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

Schema coverage is 100% for the single body parameter, and the body description at least states it is application/json. However, the body schema is explicitly not statically declared, and the tool description adds no field-level semantics or examples, so the agent still cannot construct a valid payload.

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: "Create database" for POST /v1/databases. This distinguishes it from database read/delete/grant operations, though it does not explicitly contrast with 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?

The description provides metadata such as required scopes and mutation status, but gives no guidance on when to prefer this tool over alternatives, no prerequisites, and no exclusions. An agent must infer usage solely from the tool name and one-line purpose.

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

panelica_databases_post_v1_databases_id_grantC

Create grant

HTTP: POST /v1/databases/:id/grant Category: Databases Required scopes: databases:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate the tool mutates and is not idempotent, and the description reinforces this by stating 'Mutating: changes server state.' It adds the required scope 'databases:write,' which is not present in annotations. However, it does not disclose side effects, reversibility, or what exactly a grant entails beyond the mutation.

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

Conciseness4/5

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

The description is compact, with each line providing distinct metadata: title, HTTP endpoint, category, required scopes, and mutation status. It is front-loaded with the core action 'Create grant' and contains no filler. It could be slightly more structured, but it is efficiently sized.

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 an open-ended body and no output schema, the description is incomplete: it omits the request body structure, the return value, and the precise effect of a grant. While annotations cover safety aspects, they do not fill these functional gaps. An agent cannot invoke this tool correctly without consulting external API documentation.

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?

Although schema coverage is nominally 100%, the descriptions are minimal: 'id' is just labeled a path parameter, and 'body' is said to have no statically declared schema. The description does not compensate by explaining what fields or structure a grant body should contain, leaving the agent unable to construct a correct request. It defers to 'API docs' instead of providing usable 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 uses the specific verb 'Create' with the resource 'grant' and includes the HTTP endpoint, making it clear this tool creates a grant on a database. It does not explicitly distinguish itself from sibling tools, but the name and path are unique. The meaning of 'grant' is not elaborated, but the intent is evident.

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 the revoke sibling or other database operations. It only states the HTTP method, scopes, and mutating nature, which do not help an agent decide between grant and revoke. The usage is implied by the tool name, not explained.

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

panelica_databases_post_v1_databases_id_revokeC

Create revoke

HTTP: POST /v1/databases/:id/revoke Category: Databases Required scopes: databases:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, so 'Mutating: changes server state' mostly restates that signal. The description does add the required scope 'databases:write', which is useful auth context, but it does not disclose what state is changed, whether the action is reversible, or what consequences revoking has.

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 metadata lines are compact and scannable, but the opening 'Create revoke' is a redundant placeholder that duplicates the title instead of adding clarity. The structure would be stronger if the description led with a plain-language explanation of the 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 mutating POST with an open body object and no output schema, the description leaves major gaps: what the revoke affects, what body fields are valid, and what a successful response looks like. The endpoint, scopes, and mutating flag are present, but an agent still lacks enough context to invoke it confidently.

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

Parameters3/5

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

Schema coverage is 100%, so both id and body already have descriptions and the description need not repeat them. The body note that the schema is not statically declared is useful, but the tool description itself adds no additional meaning to the parameters.

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 opens with 'Create revoke', which is effectively the title and endpoint verb restated; it does not plainly say what operation is performed (e.g., revoking database access or privileges). The HTTP line identifies the database endpoint, but an agent cannot tell what 'revoke' actually does or how it differs from the sibling grant/delete database 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 such as databases_post_v1_databases_id_grant or databases_delete_v1_databases_id. The included scopes and mutating flag are operational metadata, not usage or selection guidance.

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

panelica_dns_delete_v1_dns_records_idA
DestructiveIdempotent

Delete DNS record

HTTP: DELETE /v1/dns/records/:id Category: DNS Required scopes: dns:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.8/5.0
Behavior4/5

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

The WARNING line explicitly states 'destructive — permanently removes the resource,' which reinforces and extends the destructiveHint annotation. The 'Required scopes: dns:delete' line adds useful authorization context beyond what annotations provide, and nothing contradicts the 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?

The description is compact and front-loaded, stating purpose, HTTP method, category, required scope, and a clear destructive warning in only four short lines. There is no filler, redundancy, or unnecessary repetition of schema content.

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

Completeness4/5

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

For a single-parameter DELETE operation with annotations already covering idempotency and destructiveness, the description supplies the essential invocation context: path, scope, and permanence of the action. It omits response/error behavior details, but no output schema exists and this is a standard delete endpoint, so the core context is sufficient.

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

Parameters3/5

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

The schema fully documents the single `id` parameter with 'Path parameter: id', and the description adds no additional semantic detail beyond repeating the path placeholder. Schema description coverage is 100%, so the baseline of 3 applies; the description does not need to compensate.

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 'Delete DNS record' — a specific verb and resource — and the HTTP DELETE line reinforces the action. It clearly differentiates from sibling DNS tools like panelica_dns_patch_v1_dns_records_id and panelica_dns_get_v1_dns_zones_domain_id_records by naming the exact destructive 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 is given about when to use this tool versus alternatives, such as using GET to locate the record ID first or PATCH to modify instead. The intended use is only implicit in the action name and warning; there is no explicit context, precondition, or exclusion.

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

panelica_dns_get_v1_dns_zones_domain_idB
Read-onlyIdempotent

Get DNS zone

HTTP: GET /v1/dns/zones/:domain_id Category: DNS Required scopes: dns:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_idYesPath parameter: domain_id

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description's 'Read-only' mostly repeats that. It does add the required dns:read scope and HTTP method, which is useful auth context, but it discloses no behavior beyond the annotations, such as response shape or error semantics. No contradiction exists.

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 purpose stated first followed by route, category, scope, and read-only flag. There is minor redundancy with the annotations, but no prose is wasted.

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 read-only GET with a fully covered safety profile, this description is mostly complete: it provides the route, required scope, and operation. It does not describe the response contents or the exact accepted format of domain_id, but those are minor gaps for invoking this 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 100%, and the only parameter, domain_id, is already documented as a path parameter. The description adds no further meaning about the expected value or format, so the baseline of 3 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 clearly states 'Get DNS zone' and gives the exact HTTP endpoint, identifying a specific verb and resource. It is unambiguous enough to be distinguished from the sibling 'get DNS zone records' operation, though it does not explicitly call out 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?

The description provides no guidance on when to use this tool over alternatives. It only restates the endpoint, category, and scope, leaving the choice between this and sibling DNS tools to inference.

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

panelica_dns_get_v1_dns_zones_domain_id_recordsA
Read-onlyIdempotent

List DNS records

HTTP: GET /v1/dns/zones/:domain_id/records Category: DNS Required scopes: dns:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_idYesPath parameter: domain_id

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds the required scope 'dns:read', which is useful beyond the structured annotations. It also restates 'Read-only' consistently with the annotations, and there is no contradiction. Pagination or response-shape behavior is not disclosed, but the safe-read annotations lower the burden.

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, front-loaded with the action, and includes the endpoint, category, scope, and safety posture. 'Read-only' is somewhat redundant with the annotations, but the overall structure is tight and easy to scan.

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

Completeness4/5

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

For a single-parameter, read-only GET tool, the description provides the endpoint, required scope, and a clear action. Since no output schema exists, describing the response format or pagination would be beneficial, but its absence is not critical for correctly invoking this tool.

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

Parameters3/5

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

The input schema already has 100% description coverage for the only parameter, domain_id, labeling it a path parameter. The tool description adds no additional meaning about the domain_id value or its relationship to DNS zones, so the schema is doing the heavy lifting and the baseline score of 3 applies.

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

Purpose5/5

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

The description opens with 'List DNS records', a specific verb plus resource, and the HTTP path '/v1/dns/zones/:domain_id/records' clarifies that it lists records belonging to a DNS zone. Sibling tools such as panelica_dns_post_v1_dns_zones_domain_id_records, panelica_dns_patch_v1_dns_records_id, and panelica_dns_get_v1_dns_zones_domain_id are clearly distinct in action or resource.

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

Usage Guidelines3/5

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

The GET method and 'List' verb imply that this tool is for retrieval, but the description never explicitly states when to use it versus creating, updating, deleting, or fetching the zone itself. There is no mention of alternatives or exclusions, so usage context is only implied.

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

panelica_dns_patch_v1_dns_records_idA

Update DNS record

HTTP: PATCH /v1/dns/records/:id Category: DNS Required scopes: dns:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=false, so the description's 'Mutating: changes server state' reinforces but goes slightly beyond them. More importantly, it adds required scopes ('dns:write'), an auth requirement not present in annotations. It does not detail side effects, but the annotation set covers idempotency and destruction hints.

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

Conciseness5/5

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

The description is compact and front-loaded: a one-line summary, followed by HTTP method/path, category, required scopes, and mutation flag. Each line carries useful routing and authorization metadata with no elaboration or 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 simple PATCH-by-ID call, the description plus annotations cover method, resource, scopes, and state-changing nature. The main gap is that the request body is an open object with no declared fields and the description doesn't summarize what a valid DNS-record update payload looks like or point to the API docs beyond the schema's generic note.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3: both parameters (id path parameter and body request container) have descriptions in the schema. The main description adds no parameter meaning, and the body schema is explicitly open with no field declarations, but the schema itself communicates that the body adheres to API docs rather than a static 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 opens with 'Update DNS record', a specific verb and resource that clearly identifies this as the PATCH operation for an existing DNS record. It is distinct from sibling create/delete DNS tools, though it doesn't name an alternative or fully describe the operation's 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 explicit guidance on when to use this tool versus siblings; the HTTP method PATCH only implies that it updates an existing record. There is no mention of prerequisites such as the record needing to exist, nor alternatives like POST for creation or DELETE for removal.

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

panelica_dns_post_v1_dns_zones_domain_id_recordsA

Create DNS record

HTTP: POST /v1/dns/zones/:domain_id/records Category: DNS Required scopes: dns:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
domain_idYesPath parameter: domain_id

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already indicate the operation is not read-only, not idempotent, and not destructive, so the bar is lower. The description adds useful behavioral context by explicitly stating that it mutates server state and requires the dns:write scope. It does not describe conflict or failure behavior, but that is not essential given the 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?

The description is compact and well ordered: the action comes first, followed by HTTP method/path, category, required scope, and mutation flag. Every line provides distinct information with 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?

This is a mutating tool with an opaque request body and no output schema, yet the description does not explain what DNS record fields (e.g., type, name, value, TTL) the body should contain. An agent cannot reliably construct a valid create-record request from this definition alone, making it incomplete for 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 100%: domain_id is labeled as a path parameter and body as the JSON request body, so the schema carries the parameter burden. The description adds no field-level meaning, and the body schema is deliberately opaque, saying 'Schema not statically declared — see API docs.'

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 ('Create DNS record') and includes the exact endpoint POST /v1/dns/zones/:domain_id/records, which distinguishes it from sibling GET/DELETE/PATCH DNS tools. It does not explicitly name the sibling alternatives, so it falls just short of full differentiation.

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: call this when you need to create a DNS record for a zone. It also states the required dns:write scope, which is a prerequisite, but it gives no explicit guidance about when to prefer this over the sibling DNS record tools or how to structure the request.

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

panelica_docker_delete_v1_docker_containers_idA
DestructiveIdempotent

Delete container

HTTP: DELETE /v1/docker/containers/:id Category: Docker Required scopes: docker:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark it destructive and non-read-only; the description adds the key detail that deletion 'permanently removes the resource' and discloses the required docker:delete scope. This goes beyond the annotations without contradicting them.

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?

Every line carries signal: the operation, HTTP method, category, required scope, and destructive warning. It is short, scannable, 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?

For a one-parameter DELETE endpoint, the description covers the method, path, scope, and irreversibility, and annotations cover idempotency and safety. It does not discuss response or error behavior, but no output schema exists and that is not essential for calling this simple endpoint.

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

Parameters3/5

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

Schema coverage is 100% and the schema describes id as a path parameter, so the baseline is 3. The description adds only implicit context that the id refers to a Docker container; no additional format, lookup, or behavior details are given.

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

Purpose5/5

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

Description opens with 'Delete container,' a clear verb + resource statement, and reinforces it with 'HTTP: DELETE /v1/docker/containers/:id.' It is unambiguous compared with sibling Docker tools like container get/action endpoints.

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 naming the operation, and the destructive warning signals when to avoid it, but it does not explicitly name alternatives or state when not to use it. The required scope 'docker:delete' is a prerequisite, not a comparison with sibling endpoints.

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

panelica_docker_get_v1_docker_containersA
Read-onlyIdempotent

List containers

HTTP: GET /v1/docker/containers Category: Docker Required scopes: docker:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior4/5

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

The description adds a useful precondition, 'Required scopes: docker:read', which goes beyond the annotations, and the 'Read-only' statement is consistent with readOnlyHint and destructiveHint=false. For a zero-parameter safe GET endpoint, the safety profile is adequately conveyed, though response contents and pagination are not described.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action, then gives the HTTP method, endpoint, category, scope, and read-only status in a clear structure. 'Category: Docker' and 'Read-only' are somewhat redundant with the tool name and annotations, but the description remains appropriately concise.

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 read-only, parameterless list endpoint, the description covers the essentials: HTTP method, endpoint, required scope, and safety. However, with no output schema, it does not state what the returned list contains or whether pagination applies, leaving some behavior to inference.

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 no required parameters, so there is no parameter semantics for the description to clarify. The zero-parameter baseline applies, and nothing is missing.

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 opens with the specific action 'List containers' and gives the exact resource via 'HTTP: GET /v1/docker/containers', making the collection-listing intent clear. It does not explicitly contrast with sibling endpoints like get_v1_docker_containers_id or the stats endpoint, so it stops short of full 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 provided on when to use this tool instead of the adjacent Docker endpoints, such as get_v1_docker_containers_id, get_v1_docker_containers_id_stats, or post_v1_docker_containers. The category and scope lines describe the endpoint but do not help an agent choose among the sibling tools.

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

panelica_docker_get_v1_docker_containers_idA
Read-onlyIdempotent

Get container

HTTP: GET /v1/docker/containers/:id Category: Docker Required scopes: docker:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety profile is covered. The description adds the required scope 'docker:read' and 'Read-only' status, which gives useful context beyond annotations without duplication.

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: 'Get container' followed by essential metadata (HTTP method, category, scopes, read-only). Every element serves a purpose and the core behavior 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 single-parameter read operation with rich annotations and full schema coverage, the description is largely adequate. It lacks a mention of return format or what the container details include, but without an output schema this is a minor gap given the simplicity of the 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 coverage is 100% with one parameter 'id' described as 'Path parameter: id'. The description doesn't add extra details about what format the id should be, but with full schema coverage the baseline 3 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?

Beschreibung: "Get container". Clear verb+resource combination, HTTP method and path shown. However, the description doesn't distinguish it from sibling tools like docker_get_v1_docker_containers_id_stats or docker_get_v1_docker_containers (list), so it doesn't 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 Guidelines3/5

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

The description provides context via HTTP method, category, and required scopes, but no explicit guidance comparing it to related tools like listing containers or getting container stats. Context is 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.

panelica_docker_get_v1_docker_containers_id_statsC
Read-onlyIdempotent

List stats

HTTP: GET /v1/docker/containers/:id/stats Category: Docker Required scopes: docker:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method, required scope (docker:read), and a 'Read-only' confirmation. However, it omits notable behavioral traits such as whether the Docker stats endpoint returns a continuous stream versus a one-shot snapshot, which would be valuable for an agent deciding how to use the result.

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

Conciseness4/5

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

The description is compact and front-loaded with the purpose ('List stats'), followed by four lines that each earn their place: HTTP method/path, category, required scopes, and read-only status. Minor redundancy exists since 'List stats' repeats the annotation title, but overall there is no waste.

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

Completeness3/5

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

For a single-parameter read-only tool with rich annotations, the definition is mostly adequate. However, with no output schema present, the description should indicate what the stats response contains or its shape (e.g., CPU/memory/network metrics, streaming behavior), which it does not. An agent would still be unsure what data to expect after calling this endpoint.

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

Parameters3/5

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

Schema description coverage is 100% — the single parameter 'id' is documented as 'Path parameter: id'. The description adds no additional parameter meaning, so the baseline 3 applies. The description does not clarify that id refers to a Docker container ID, but the tool name and HTTP path largely carry that information.

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 verb and resource ('List stats') with an HTTP path that clarifies it targets a specific container's stats. However, it doesn't specify what kind of stats (CPU, memory, network, etc.) and doesn't differentiate it from the many sibling stats endpoints (docker, nodejs_apps, python_apps, git, accounts, domains). The name helps, but the description itself is 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?

No guidance is given on when to use this tool versus alternatives. There is no mention of sibling tools like panelica_docker_get_v1_docker_containers (to first find container IDs), panelica_server_get_v1_server_metrics, or the other resource-specific stats endpoints. The Category and Required scopes lines provide context but no decision guidance.

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

panelica_docker_get_v1_docker_domains_linkedA
Read-onlyIdempotent

List container-domain links

HTTP: GET /v1/docker/domains/linked Category: Docker Required scopes: docker:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable context beyond the annotations: the required OAuth scope 'docker:read', the HTTP method/endpoint, and the Docker category. No contradiction exists between the description and 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?

The description is compact and front-loaded: a one-sentence summary is followed by endpoint, category, required scope, and read-only status. Every line adds useful information 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 simple zero-parameter GET endpoint, the description provides the endpoint, auth requirement, and safety profile. There is no output schema, so the response shape is not explicitly described, but this is unlikely to prevent an agent from invoking the tool correctly for a basic list 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 description has no parameter semantics to clarify beyond what the schema already shows. Per the zero-parameter baseline, a score of 4 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 states a clear verb and resource: 'List container-domain links', and the HTTP endpoint reinforces exactly what the tool returns. It does not explicitly contrast with sibling tools like panelica_docker_post_v1_docker_domains_link or unlink, but the read-versus-write distinction is strongly implied by the verb and the 'Read-only' note.

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 the related Docker domain link/unlink endpoints. The description provides no conditions, exclusions, or alternative routing; the only hints are 'Read-only' and the required scope, which imply safe usage but do not tell the agent when to prefer this tool over others.

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

panelica_docker_get_v1_docker_templatesA
Read-onlyIdempotent

One-click app template catalogue (same catalogue the panel uses).

HTTP: GET /v1/docker/templates Category: Docker Required scopes: docker:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior, so the bar is lower. The description adds genuinely useful context beyond annotations by stating the HTTP endpoint and the required docker:read scope. It does not describe output shape or pagination, but this is a simple read-only catalogue endpoint and no output schema exists.

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

Conciseness5/5

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

The description is compact and well-structured: the purpose is front-loaded, followed by HTTP method, category, required scope, and read-only nature. Every line conveys invocation-relevant information without unnecessary prose.

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 catalogue endpoint, the description provides enough to call it correctly: the endpoint, the required scope, and the meaning of the response. It could be more complete by mentioning the sibling slug/deploy endpoints or describing the returned template objects, but overall complexity is low.

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 and schema description coverage is 100%, so the schema fully captures the invocation surface. The description does not need to add parameter-level detail, and the baseline of 4 for zero-parameter tools 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 identifies the resource as the one-click app template catalogue and provides the explicit GET endpoint, making it clear this is a read/list operation. It does not explicitly distinguish itself from sibling template endpoints like get_v1_docker_templates_slug or deploy, though 'catalogue' conveys the collection-level 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?

It gives clear context: this is the same catalogue the panel uses, and it states the required docker:read scope, which is enough for an agent to know when this tool is appropriate. It does not mention alternatives or exclusions, so it falls short of 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.

panelica_docker_get_v1_docker_templates_slugA
Read-onlyIdempotent

Get app template

HTTP: GET /v1/docker/templates/:slug Category: Docker Required scopes: docker:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesPath parameter: slug

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already convey read-only, idempotent, non-destructive behavior. The description adds meaningful operational context beyond annotations by specifying the required scope 'docker:read' and the exact HTTP method/path. It does not describe error cases or return shape, but the safety profile is well covered.

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

Conciseness5/5

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

The description is extremely compact and front-loads the core purpose first. The structured lines for HTTP method, category, required scopes, and read-only status are all scannable and leave 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 simple single-parameter GET operation with rich annotations, the description is largely complete: it gives the endpoint, scope, and safety characteristics. It does not explain what the response contains or how to find a valid slug, but the sibling list tool and the path parameter provide enough context for 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?

Parameter schema coverage is 100% and the only parameter, 'slug', is already described as a path parameter. The description adds no additional meaning about what a slug is, what format it should take, or how to discover valid slugs, so it provides no 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 and resource: 'Get app template', and the HTTP endpoint makes the target explicit. It does not explicitly differentiate itself from the sibling list tool or the deploy tool, but the singular 'slug' path parameter makes its scope reasonably 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?

Usage is implied by the endpoint '/v1/docker/templates/:slug': this tool retrieves a single Docker app template by slug. However, it provides no explicit guidance about when to use this versus listing all templates or deploying a template, and no alternatives are mentioned.

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

panelica_docker_post_v1_docker_containersB

Create container

HTTP: POST /v1/docker/containers Category: Docker Required scopes: docker:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the mutation profile is covered. The description adds the required scope (docker:write) and confirms 'Mutating: changes server state,' which is consistent with readOnlyHint=false. It does not disclose side effects, what resources get consumed, or response behavior, but the bar is lower given the 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?

Five short lines with the core action front-loaded, followed by endpoint, category, scope, and mutation flag. Every line carries information; zero 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?

For a mutating create operation with no output schema and an opaque free-form body parameter, the description is insufficient: the agent cannot construct a valid request body or know what response to expect. Required scopes and mutating status are helpful, but the essential 'what fields does the body need' information is missing and only deferred to external API docs.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. However, the sole parameter's schema description explicitly defers ('Schema not statically declared — see API docs'), so the agent gets no meaningful structure for the JSON body, and the tool description adds nothing about required or optional fields to compensate for that 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?

"Create container" states a specific verb and resource, and the HTTP line (POST /v1/docker/containers) pins down the exact endpoint, distinguishing it from siblings like panelica_docker_get_v1_docker_containers (list) and panelica_docker_post_v1_docker_containers_id_action (act on existing). However, it is largely a restatement of the title and tool name, adding little descriptive texture about what creating a container entails.

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 choose this tool over alternatives such as panelica_docker_post_v1_docker_templates_slug_deploy or the container action endpoint. The scopes line ('Required scopes: docker:write') is a prerequisite, not selection guidance, and no conditions, exclusions, or alternative routes are mentioned.

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

panelica_docker_post_v1_docker_containers_id_actionC

:id action

HTTP: POST /v1/docker/containers/:id/:action Category: Docker Required scopes: docker:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
actionYesPath parameter: action

TDQS

C2.4/5.0
Behavior3/5

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

The annotations already mark readOnlyHint=false and idempotentHint=false, and the description reinforces this with "Mutating: changes server state" while adding the required docker:write scope. There is no contradiction with annotations, but no deeper context is provided about side effects, action-specific consequences, or reversibility.

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

Conciseness3/5

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

The definition is short and label-oriented, but the leading ":id action" line is redundant and "Category: Docker" adds little beyond the path and tool name. It is compact but does not use every line to convey meaningful value.

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

Completeness2/5

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

For a generic action endpoint with no enums, an open body, and no output schema, the description is materially incomplete. An agent cannot determine which actions are valid or how to construct the request body, so correct invocation depends entirely on external API documentation.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline applies even though the description itself adds no parameter meaning. The schema entries for id and action are tautological, and body is an open object with no static schema; the description does not compensate by listing valid action values or body structure.

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's first line is ":id action", a placeholder that restates the tool name and path rather than stating a concrete purpose. HTTP method, category, and "Mutating: changes server state" only indicate this is a state-changing Docker container endpoint; they do not say what specific actions are performed or how this endpoint distinguishes itself from other Docker 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 alternative Docker or sibling endpoints. "Required scopes: docker:write" and "Mutating" are prerequisites and effects, not usage guidance, and no alternatives or exclusions are mentioned.

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

panelica_docker_post_v1_docker_domains_linkB

Serve an installed app on the customer's own domain.

HTTP: POST /v1/docker/domains/link Category: Docker Required scopes: docker:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds the required scope docker:write and confirms 'Mutating: changes server state', but provides no extra context about side effects, reversibility, or postconditions. No contradiction with 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?

Four short lines with the core purpose first, followed by HTTP method, category, scope, and mutation flag. No wasted words.

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

Completeness2/5

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

For a mutating endpoint with an opaque request body and no output schema, the description is not complete enough. It omits what body fields are needed, how linking behaves, and when to choose this over the unlink or list siblings.

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

Parameters3/5

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

Schema coverage is 100% for the single body parameter, so the baseline is 3. The description adds no parameter details, and the schema itself only says to consult API docs, so the agent still lacks concrete body field knowledge.

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 first line states a clear outcome - serving an installed app on the customer's own domain - with a specific resource. It does not explicitly say 'link' or differentiate from the sibling unlink tool, but the intent is reasonably 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 gives no guidance on when to use this tool versus the sibling docker_domains_unlink or docker_domains_linked list tool. It only lists scopes and mutation, leaving the agent to infer usage from the tool name and siblings.

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

panelica_docker_post_v1_docker_domains_unlinkA

Unlink domain from container

HTTP: POST /v1/docker/domains/unlink Category: Docker Required scopes: docker:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.8/5.0
Behavior4/5

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

The description explicitly discloses that the operation is mutating and changes server state, and adds the required scope docker:write. These go beyond the annotations, which already indicate non-read-only and non-idempotent, by adding auth and HTTP method details. No contradiction with 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?

The description is compact and well-structured: a clear action line followed by HTTP method, category, required scopes, and mutation flag. Every line carries relevant information with 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?

The description fails to specify the request body contract—what identifiers or fields (e.g., domain, container) are needed to perform the unlink. With no output schema and a free-form body parameter, the agent cannot reliably construct a correct request from this definition alone. The pointer to API docs is a stopgap rather than complete context.

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

Parameters3/5

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

Schema description coverage is 100% because the single body parameter has a description, but that description only says 'Request body (application/json)' and notes the schema is not statically declared. The tool description adds no detail about what the body must contain, leaving the agent with a baseline 3 but no meaningful parameter 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 opens with 'Unlink domain from container', a specific verb and resource pair that unambiguously states the operation. It implicitly differentiates from the sibling 'link' tool by using the inverse action, and from the read-only linked-domains getter.

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 action phrase 'Unlink domain from container' and reinforced by the POST mutation context, but there is no explicit guidance about when to choose this over alternatives, nor a mention of the inverse link endpoint. The description provides metadata like scopes and mutating but no direct when-to-use/when-not-to-use.

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

panelica_docker_post_v1_docker_templates_slug_deployA

Provision a container from an app template. Owner resolution and plan container limits are enforced.

HTTP: POST /v1/docker/templates/:slug/deploy Category: Docker Required scopes: docker:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
slugYesPath parameter: slug

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false and idempotentHint=false, and the description reinforces this by stating 'Mutating: changes server state.' It adds useful context beyond the annotations: required scopes (docker:write) and the enforcement of owner resolution and plan container limits. This is solid behavioral disclosure, though it does not detail side effects or failure modes beyond limits.

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

Conciseness5/5

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

The description is compact and well-structured: one purpose sentence, one behavioral constraint sentence, then a clean metadata block with HTTP method, category, scopes, and mutation status. Every element 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?

This is a mutating operation with a free-form request body and no output schema. The description does not explain how to construct the body, what fields are expected, or where to find valid template slugs. An agent would be unable to reliably invoke this tool correctly without consulting external API docs, despite the open-world hint.

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?

Although schema description coverage is 100%, the descriptions are minimal: slug is just 'Path parameter: slug' and body is explicitly 'Schema not statically declared — see API docs.' The tool description adds no meaning about what the request body should contain, leaving the most important parameter unspecified. The baseline of 3 does not hold because the schema itself is not informative.

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: 'Provision a container from an app template.' This clearly distinguishes the tool from sibling Docker operations like generic container creation (docker_post_v1_docker_containers) by emphasizing the template-based workflow.

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 deploying a container from a template) but provides no explicit when-not-to-use guidance or named alternatives. It does not tell the agent to prefer this over docker_post_v1_docker_containers or to fetch template details via docker_get_v1_docker_templates_slug first.

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

panelica_domains_delete_v1_domains_idA
DestructiveIdempotent

Delete domain

HTTP: DELETE /v1/domains/:id Category: Domains Required scopes: domains:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4.1/5.0
Behavior5/5

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

The description explicitly warns that the operation is destructive and 'permanently removes the resource,' adding meaningful behavioral context beyond the annotations. It also states the required scope (domains:delete), which helps the agent assess authorization requirements. This does not contradict the 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?

The description is compact and front-loaded: the core action comes first, followed by the HTTP method/path, category, required scope, and a clear destructive warning. Every line 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?

Given the very simple interface (one path parameter, no output schema), the description covers the essential operational facts: what it does, the endpoint, the required scope, and the permanent destructive nature. An agent has enough information to decide whether to invoke it and what the consequence will be.

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?

There is only one parameter, id, and the schema already documents it as a path parameter with 100% coverage. The description's HTTP path line echoes :id but adds no new semantic detail beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific action on a specific resource: 'Delete domain' with the HTTP DELETE /v1/domains/:id line. This clearly distinguishes it from other domain-related tools like suspend, unsuspend, or database deletion, since no other plain domain-deletion sibling 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 explicit guidance on when to choose this tool over alternatives such as suspending a domain or deleting domain-related sub-resources. The only implied usage is the action itself, and there is no discussion of prerequisites, side effects, or when deletion should be avoided.

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

panelica_domains_delete_v1_domains_id_databasesA
DestructiveIdempotent

Delete database from domain

HTTP: DELETE /v1/domains/:id/databases Category: Domains Required scopes: domains:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true, but the description adds valuable context by explicitly warning that the resource is permanently removed and by specifying the required 'domains:delete' scope. This goes beyond the annotations and is consistent with them.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action. The HTTP path, required scope, and destructive warning are all high-value; 'Category: Domains' is minor redundancy but does not meaningfully hurt clarity.

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 destructive delete operation with annotations, the description covers the endpoint, auth requirement, and permanence of the action. It lacks explicit alternative guidance and response details, but the simplicity and annotation coverage make it reasonably complete.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The HTTP path clarifies that 'id' refers to the domain ID, but the description adds no format, validation, or example details beyond what the schema already provides.

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

Purpose4/5

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

The description states a specific verb ('Delete') and target resource ('database from domain'), and the HTTP path clarifies the scope. However, it does not explicitly distinguish this from sibling tools like panelica_databases_delete_v1_databases_id or panelica_domains_post_v1_domains_id_databases, so full sibling differentiation is missing.

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 action phrase and resource path, and the description adds the required scope and destructive warning. It does not explicitly state when to prefer this tool over alternatives or when not to use it, so the guidance remains 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.

panelica_domains_get_v1_domainsA
Read-onlyIdempotent

List domains

HTTP: GET /v1/domains Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds the required oauth scope (domains:read) and the HTTP method, which are useful invocation details beyond the annotations. It does not mention pagination or response shape, but for a no-parameter read-only listing this is a modest 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 short and front-loaded with the core action, "List domains", followed by endpoint, category, scope, and read-only status. It is appropriately concise, though "Read-only" and the category line are partially redundant with the annotations and 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 zero-parameter, read-only, list operation with rich annotations, the description is minimally adequate. However, there is no output schema and the description does not mention what the returned domain list contains, whether it is paginated, or any scoping semantics, so the agent must assume those details.

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 there is no parameter semantics burden for the description. Per the baseline for tools with no parameters, a score of 4 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 clearly states the operation: "List domains" with the HTTP endpoint GET /v1/domains and category Domains. It names the specific verb and resource, so there is no ambiguity about what the tool does. However, it does not explicitly distinguish itself from sibling endpoints such as panelica_domains_get_v1_domains_id, 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?

The description provides a required scope (domains:read) and states the operation is read-only, which are prerequisites rather than usage guidance. It gives no indication of when to choose this tool over alternatives like panelica_domains_get_v1_domains_id or panelica_accounts_get_v1_accounts_id_domains.

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

panelica_domains_get_v1_domains_idA
Read-onlyIdempotent

Get domain

HTTP: GET /v1/domains/:id Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds useful behavioral context by stating the required 'domains:read' scope and the exact HTTP GET form, which helps the agent invoke it correctly. No contradiction with annotations.

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

Conciseness4/5

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

The description is compact and front-loaded with 'Get domain', followed by method, category, scope, and read-only status. Each line is brief and relevant, though 'Read-only' partially duplicates what the annotations already state.

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 read-only fetch operation, the description provides the necessary HTTP method, path, required scope, and parameter location. It does not describe the response shape, but the operation is simple and the output schema is absent, making this a minor gap rather than a critical one.

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

Parameters3/5

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

Schema coverage is 100%, so the required id parameter is already documented. The description's ':id' in the HTTP path mirrors the schema's 'Path parameter: id' without adding deeper meaning such as id format, uniqueness, or domain identifier 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 opens with 'Get domain' and gives the HTTP method and path, clearly identifying a single-domain read operation. However, it does not explicitly differentiate itself from sibling domain subresource getters such as panelica_domains_get_v1_domains_id_logs_access, so it is clear but lacks sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the many domain-related siblings. 'Category: Domains' and 'Read-only' imply domain retrieval, but there are no explicit alternatives, exclusion conditions, or use-case direction, leaving selection to inference.

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

panelica_domains_get_v1_domains_id_dkimB
Read-onlyIdempotent

List dkim

HTTP: GET /v1/domains/:id/dkim Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already provide readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is well covered. The description adds the required scope `domains:read`, which is useful auth context, but otherwise mostly repeats 'Read-only' and provides no additional behavior such as pagination, response shape, 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 compact and front-loads the purpose, then provides HTTP method, category, scopes, and read-only status in short lines. It is somewhat sparse but contains no filler or unnecessary 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?

For a one-parameter read-only endpoint, the description is mostly sufficient: it names the operation, the resource path, the scope, and the read-only behavior. However, there is no output schema and the description does not indicate what a DKIM list actually returns, nor does it mention pagination or how this operation relates to the DKIM enable/disable siblings.

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

Parameters3/5

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

The schema describes the only parameter as 'Path parameter: id,' and the endpoint path in the description clarifies that `id` is a domain identifier. Since schema description coverage is 100%, the baseline is acceptable, but the description adds no deeper meaning about format, allowed values, or validation beyond the path template.

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 'List dkim' with an explicit HTTP path `/v1/domains/:id/dkim`, making it clear this is a read operation for a specific domain resource. It is more specific than a tautology, but it does not explicitly distinguish itself from the sibling DKIM enable/disable tools or explain what the returned DKIM data represents.

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

Usage Guidelines2/5

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

The description includes 'Required scopes: domains:read' and 'Read-only,' which give some operational context, but it does not say when an agent should choose this tool over alternatives such as enabling or disabling DKIM. There is no explicit when-to-use or when-not-to-use guidance relative to sibling tools.

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

panelica_domains_get_v1_domains_id_email_autorespondersA
Read-onlyIdempotent

List email autoresponders

HTTP: GET /v1/domains/:id/email-autoresponders Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4.2/5.0
Behavior4/5

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

The description adds the required scope 'domains:read' and explicitly labels the operation 'Read-only', which is useful beyond the annotations' readOnlyHint. It does not mention pagination or response shape, but for a simple read-only list endpoint with annotations already covering safety, 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?

The description is compact and front-loaded: the core purpose is the first line, followed by concise technical details (HTTP method, category, scopes). Every line 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.

Completeness4/5

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

For a one-parameter read-only list operation, the description provides the endpoint, required scope, category, and safety profile, which is enough to invoke it correctly. No output schema exists, so a bit more detail about the response format could help, but the operation's simple nature keeps the gap minor.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'id', described only as 'Path parameter: id'. The tool description does not add further meaning about what this id refers to, so the schema remains the primary source and the baseline of 3 applies.

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

Purpose5/5

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

The description begins with 'List email autoresponders', clearly naming the verb and resource, and the HTTP path confirms the operation is scoped to a specific domain. This clearly distinguishes it from sibling tools like creating autoresponders (POST) or listing email forwarders.

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 is a GET operation against a domain's email autoresponders, with required scopes and read-only behavior. It does not explicitly state when not to use it or name alternatives, but the resource is specific enough that no exclusions are necessary.

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

panelica_domains_get_v1_domains_id_email_deliverabilityB
Read-onlyIdempotent

List email deliverability

HTTP: GET /v1/domains/:id/email-deliverability Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare the operation read-only, idempotent, and non-destructive. The description adds the required 'domains:read' scope and the HTTP method/path, which is useful context beyond annotations, but it does not describe the response shape or any other behavioral nuances. No contradiction exists.

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, front-loaded with the summary, and includes the endpoint, category, scope, and read-only status in a compact format. Minor redundancy exists because 'Read-only' repeats the readOnlyHint annotation and the first line repeats the title, but there is no padding.

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 endpoint, the description provides enough to make the call: ID, endpoint, and required scope. However, with no output schema present, it does not explain what the deliverability list contains or how an agent should interpret the results, leaving a meaningful 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?

The schema already documents the only parameter, id, with 100% coverage. The description's HTTP path '/v1/domains/:id/email-deliverability' reinforces that id refers to the domain ID, which is mild additional context, but no deeper semantics are added.

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 email deliverability', and the HTTP line clarifies that it operates on a domain endpoint. This distinguishes it from sibling domain tools like email autoresponders, email forwarders, SPF, and logs, though it does not define what 'email deliverability' actually includes.

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 category, read-only flag, and required scope are stated, but the description never says when an agent should select this endpoint over related domain email or DNS tools.

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

panelica_domains_get_v1_domains_id_email_forwardersA
Read-onlyIdempotent

List email forwarders

HTTP: GET /v1/domains/:id/email-forwarders Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false, so the description's 'Read-only' line is redundant with structured data, not contradictory. The description adds genuine value by disclosing the required auth scope (domains:read) and the exact endpoint, which the annotations do not provide.

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

Conciseness4/5

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

The description is compact and front-loaded, with the purpose first and structured metadata (HTTP line, category, scopes) following. The only redundancy is 'Read-only,' which duplicates the annotations, but it is a single word that also serves agents that may not surface annotations.

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, low-complexity GET operation, the description covers purpose, endpoint, category, and auth requirement, and the annotations cover the safety profile. There is no output schema and the description does not hint at the return shape, but for a simple list operation the gap is minor.

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

Parameters3/5

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

Schema coverage is 100% and there is only one parameter, so the baseline is 3. The schema's 'Path parameter: id' is nearly tautological, and the description only slightly improves on it by showing via the endpoint path that id refers to the domain. That marginal addition warrants the baseline, not more.

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 — 'List email forwarders' — and the HTTP endpoint reinforces the target resource. The verb differentiates it from the POST/DELETE forwarder siblings, but it does not explicitly name an alternative or contrast with closely related list tools (e.g., email accounts), so it stops short of the explicit distinction that would earn 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 Guidelines4/5

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

The description provides clear invocation context: the HTTP method/path, the Domains category, the required domains:read scope, and the read-only nature. It does not state explicit when/when-not conditions or name sibling alternatives, so it fits 'clear context, no exclusions' rather than a 5.

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

panelica_domains_get_v1_domains_id_logs_accessB
Read-onlyIdempotent

List access

HTTP: GET /v1/domains/:id/logs/access Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior. The description adds the required scope ('domains:read') and the HTTP method, which are useful, but it does not describe return format, pagination, or any log-filtering behavior that would go beyond the annotations.

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

Conciseness4/5

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

The description is compact, front-loaded with the action, and uses short labeled lines for HTTP, category, scopes, and read-only status. Every line earns its place, though the headline 'List access' is terse and could be more explicit.

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

Completeness4/5

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

For a simple read-only endpoint with one required parameter and rich safety annotations, the description is largely sufficient: it gives the path, category, required scope, and read-only nature. It lacks an explicit statement that 'access' means access logs, and there is no output-schema to explain the return shape, but an agent can likely invoke it 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 schema fully describes the single parameter as 'Path parameter: id' at 100% coverage, so the description carries little parameter burden. The HTTP path line reinforces that 'id' is the domain id, but it adds no new semantic information beyond the schema and endpoint template.

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 ('access'), and the HTTP path '/v1/domains/:id/logs/access' plus Category: Domains clarifies that this lists domain access logs. It does not explicitly distinguish itself from sibling tools like panelica_logs_get_v1_logs_access, but the domain-scoped path makes the object 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 provides context (requires a domain id, domains:read scope, read-only) but gives no explicit guidance on when to choose this tool over alternatives. It does not mention the global access-log sibling or any exclusion conditions, leaving selection to inference from the name and path.

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

panelica_domains_get_v1_domains_id_logs_errorB
Read-onlyIdempotent

List error

HTTP: GET /v1/domains/:id/logs/error Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false; the description confirms read-only behavior and adds the 'domains:read' scope requirement, which is useful. It does not describe pagination, response format, or ordering, but the annotation coverage lowers the burden.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action, followed by HTTP method, category, scope, and read-only status. The phrase 'List error' is slightly truncated, but 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 simple one-parameter read-only GET endpoint, the description provides enough to select and invoke it: endpoint, required scope, and read-only behavior. It omits response format and does not route among sibling log tools, but the low complexity and strong annotations keep the deficit moderate.

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

Parameters3/5

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

Schema coverage is 100% and the single required parameter 'id' is documented as a path parameter, so the baseline is 3. The description adds no further parameter meaning; the id is not explicitly identified as the domain ID, though the endpoint path makes that reasonably inferable.

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-list and resource-error, and the HTTP line 'GET /v1/domains/:id/logs/error' identifies the exact operation. It is not fully explicit about 'domain error logs' and gives no comparison to sibling log endpoints, so it stops 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 endpoint instead of domain access logs, global error logs, or tail endpoints. The required scope and category are listed, but there are no alternatives, exclusions, or contextual triggers.

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

panelica_domains_get_v1_domains_id_modsecurityB
Read-onlyIdempotent

List modsecurity

HTTP: GET /v1/domains/:id/modsecurity Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already carry readOnlyHint/idempotentHint/destructiveHint; the description adds required scopes ('domains:read') and restates read-only/GET, which provides a little extra context. It does not describe response contents, pagination, or any side effects, but none are expected for a simple read.

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 short and front-loaded, but the opening line duplicates the title ('List modsecurity') and the read-only/HTTP lines mostly repeat annotations and the tool name. It is concise but includes some redundancy and misses an opportunity to add semantic 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?

For a read-only, single-parameter GET, the essentials are present: path, category, scope, and id. But with no output schema, the description does not say what the modsecurity response contains or what behavior to expect, leaving the resource semantics partially undefined.

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 only parameter (id) is documented in the schema as 'Path parameter: id' (100% coverage), so the description is not required to explain it. Still, neither the schema nor the description clarifies that this is the domain ID beyond the URL path, so no additional meaning is added.

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 specific verb ('List') and resource ('modsecurity') and the tool name encodes the HTTP route, so an agent can tell it returns the ModSecurity list for a domain. However, it never explains what 'modsecurity' denotes (rules? status? configuration?), and it does not distinguish itself from sibling domain reads other than by resource name.

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 verb and URL path: call it to list ModSecurity data for a domain. It gives no explicit guidance on when to prefer it over sibling domain GETs or the PATCH modsecurity endpoint, and no exclusions are stated.

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

panelica_domains_get_v1_domains_id_phpC
Read-onlyIdempotent

List php

HTTP: GET /v1/domains/:id/php Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false, so the description's 'Read-only' line adds little. It does add the required scope (domains:read) and the explicit HTTP method, which is useful operational context, but it does not disclose return shape or any pagination/list behavior.

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

Conciseness4/5

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

The description is very compact and front-loaded, with no filler: HTTP method, category, required scope, and read-only status are each on their own line. The opening 'List php' is redundant with the tool title and could be replaced with a clearer noun phrase, which keeps this from 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 simple read-only, single-parameter GET endpoint, the path, scope, annotation safety profile, and parameter schema together cover most operational needs. However, there is no output schema and the description does not clarify what the returned PHP items represent, leaving some ambiguity about the exact resource being listed.

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

Parameters3/5

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

The schema already fully documents the sole parameter as a required string path parameter 'id', so description-level parameter explanation is not necessary. The description adds no extra meaning about what kind of id is expected or how it should be formatted; baseline 3 is appropriate given 100% schema coverage.

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

Purpose3/5

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

The description states a verb and resource ('List php') plus the HTTP path, so it is not a pure tautology. However, 'php' is undefined: it could mean PHP versions, PHP configuration, or installed runtimes for a domain, and it does not distinguish this from sibling tools like the PATCH php endpoint or the global PHP versions listing.

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 panelica_domains_patch_v1_domains_id_php or panelica_php_get_v1_php_versions. The scope and category are stated, but there are no use-case conditions, 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.

panelica_domains_get_v1_domains_id_redirectsB
Read-onlyIdempotent

List redirects

HTTP: GET /v1/domains/:id/redirects Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description's 'Read-only' line merely restates what annotations convey. It does add the domains:read scope requirement, which is useful invocation context, and does not contradict any annotation.

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

Conciseness5/5

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

The description is compact and front-loaded: the purpose is in the first two words, followed by the endpoint, category, scope, and read-only flag. Every line carries a distinct piece of information with zero padding.

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

Completeness4/5

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

For a one-parameter, read-only list operation whose annotations already cover safety and idempotency, the description is nearly complete with the endpoint, category and required scope. The only gaps are the lack of an output schema and no hint about the shape of the returned redirect objects, which is a minor omission for such a simple 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 100% and the single 'id' parameter is documented as a path parameter. The HTTP line confirms it appears as :id in the path, adding marginal clarity that it is the domain id, but the description itself adds little 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+resource pair ('List redirects') and reinforces it with the HTTP endpoint, so an agent can tell this is a read-only listing operation for a domain's redirects. It is clearly distinct from sibling tools like the POST redirect creation endpoint and the redirect-deletion endpoint, though the differentiation is implicit rather than stated by 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 when-to-use or when-not-to-use guidance is provided, and no alternative tools are mentioned. The only directive is the required scope 'domains:read', which is a prerequisite rather than usage context. An agent must infer from the route that this applies to a specific domain.

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

panelica_domains_get_v1_domains_id_spfB
Read-onlyIdempotent

List spf

HTTP: GET /v1/domains/:id/spf Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description adds a useful authentication requirement ('Required scopes: domains:read') plus 'Read-only'. This reinforces the read-only, side-effect-free behavior without contradicting the annotations.

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 'List spf', followed by endpoint, category, scopes, and read-only status. It is efficiently structured, though 'Category: Domains' and 'Read-only' add only marginal value when the name and annotations already convey them.

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 endpoint, the description covers the route, auth scope, and safety profile. However, with no output schema it does not state what the response contains (e.g., the domain's SPF records), which leaves a small but real gap for an agent selecting or invoking the tool.

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

Parameters3/5

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

The schema has 100% coverage for the single 'id' parameter, so the description doesn't need to explain it. The endpoint /v1/domains/:id/spf echoes that 'id' is a path parameter, but no additional meaning or formatting is provided 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 opens with 'List spf' and gives the exact HTTP path GET /v1/domains/:id/spf, so the verb and resource are identifiable. It does not explicitly differentiate itself from sibling SPF/DKIM tools, but the resource name and read-only verb are enough to avoid confusion.

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 call this tool instead of related domain tools such as panelica_domains_get_v1_domains_id_dkim or panelica_domains_patch_v1_domains_id_spf. The description mentions required scopes and read-only status, but that is access metadata, not usage routing.

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

panelica_domains_get_v1_domains_id_statsB
Read-onlyIdempotent

List stats

HTTP: GET /v1/domains/:id/stats Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.3/5.0
Behavior3/5

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

The description matches the annotations by declaring the operation read-only and adds the required 'domains:read' scope, which is useful auth context. It does not describe what statistics are returned, any time-range/filtering behavior, or output format, so beyond the annotations the behavioral disclosure 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 about 20 words, front-loads the operation, and packs endpoint, category, scope, and safety into four short lines. Nothing is verbose or out of order.

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-only GET this is nearly sufficient, but with no output schema the description should say what kind of statistics are returned, such as metrics, time span, or units. It only says 'list stats', which leaves the agent guessing whether this endpoint covers traffic, requests, resource usage, or something else.

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 only parameter, 'id', is already fully documented as a required path parameter, and the description's HTTP template just repeats that. Since schema coverage is 100%, the baseline applies and the description adds no extra format, source, or example for the ID.

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 opens with a specific verb ('List') and ties it to a concrete resource through the path '/v1/domains/:id/stats', so the agent knows it is retrieving statistics for one domain. It does not explicitly differentiate this from sibling stats endpoints (accounts, git, docker, node, python), so it stops 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?

Apart from restating the operation and noting the required scope, there is no guidance about when to call this tool compared with related domain endpoints or when not to use it. The category and read-only lines are metadata, not selection criteria.

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

panelica_domains_get_v1_domains_id_subdomainsB
Read-onlyIdempotent

List subdomains

HTTP: GET /v1/domains/:id/subdomains Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is well covered. The description adds the required scope (domains:read) and confirms read-only behavior, but does not disclose return structure, pagination, or error behavior. This is acceptable but adds only modest value beyond the 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?

The description is compact and well-structured: operation, HTTP method and path, category, required scope, and read-only flag. It is front-loaded with the action and contains no filler or redundancy that hurts clarity.

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, read-only list operation, the description plus annotations provide enough to invoke the tool correctly: endpoint, required scope, and safety profile. It lacks explicit response format or pagination details, but the absence of an output schema and the simplicity of a list call make this 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 100%: the only parameter 'id' is already documented in the schema as 'Path parameter: id'. The description merely repeats the path segment in the HTTP line and adds no additional 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 opens with a specific verb and resource ('List subdomains') and gives the exact HTTP endpoint, making the operation clear. It is implicitly distinguishable from siblings like panelica_domains_post_v1_domains_id_subdomains and panelica_subdomains_get_v1_subdomains_id, but 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 explicit guidance about when to use this tool versus alternatives such as creating a subdomain or fetching a single subdomain. Required scopes are stated, but the usage context is only implied by the name and path rather than described.

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

panelica_domains_get_v1_domains_id_webserverB
Read-onlyIdempotent

List webserver

HTTP: GET /v1/domains/:id/webserver Category: Domains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior, so the safety profile is fully covered. The description adds the required scope 'domains:read' and repeats the read-only nature, which is useful but does not disclose additional behavioral details like pagination, errors, or response shape.

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 primary action, followed by compact structured details: HTTP method, category, scope, and read-only flag. It is not bloated, though 'List webserver' duplicates the title and 'Read-only' duplicates the annotation.

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 GET, the description provides enough to construct the request and understand the access requirements. However, it does not clarify what 'webserver' means in this context or what the response will contain, and there is no output schema to fill that 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?

The schema already documents the single required 'id' parameter with 100% coverage as 'Path parameter: id'. The description contributes no additional parameter-level meaning, so the schema carries the full burden and the baseline of 3 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 states a clear verb and resource ('List webserver') and reinforces it with the HTTP GET route and Domains category. It does not explicitly describe what 'webserver' contains or differentiate itself from the sibling domain sub-resource reads, but the intent is reasonably 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 HTTP GET method and the explicit 'Read-only' flag imply this tool is for retrieval rather than modification. However, it does not state when to prefer this over sibling tools, such as the PATCH webserver endpoint, nor does it provide 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.

panelica_domains_patch_v1_domains_idB

Update domain

HTTP: PATCH /v1/domains/:id Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the core mutation safety profile is covered. The description adds the required scope 'domains:write' and explicitly says 'Mutating: changes server state,' but does not explain potential side effects of updating a domain or what happens to domain configurations.

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

Conciseness4/5

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

The description is compact and front-loaded with the core operation, followed by HTTP method, category, scope, and mutation status. Almost every line carries useful routing or invocation information, though 'Update domain' and 'Mutating: changes server state' are somewhat redundant with the path and annotations.

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 generic PATCH endpoint with an open-world body schema and no output schema, the description is not sufficient for an agent to construct a correct request body. It also does not clarify which domain aspects are updatable or when to prefer one of the many sibling domain-specific PATCH 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?

Schema description coverage is 100%, so the baseline is 3, but the body parameter is only described as 'Schema not statically declared — see API docs.' The tool description adds no field-level meaning, so the agent still has no idea which domain fields can be updated in the body.

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: 'Update domain' with HTTP PATCH /v1/domains/:id, which identifies the base domain resource rather than a subresource. However, it does not explicitly distinguish itself from sibling domain PATCH endpoints like modsecurity, php, spf, or webserver, leaving some potential 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?

There is no guidance on when to use this generic domain update versus the specialized domain PATCH endpoints. The description provides metadata like scope and mutating status, but no when-to-use or when-not-to-use instructions or references to alternatives.

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

panelica_domains_patch_v1_domains_id_modsecurityB

Update modsecurity

HTTP: PATCH /v1/domains/:id/modsecurity Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already mark readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds 'Required scopes: domains:write' and explicitly states 'Mutating: changes server state,' which aligns with annotations but adds little beyond what is already inferable. No contradiction exists.

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

Conciseness5/5

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

The description is compact and well-structured: the action is front-loaded, followed by HTTP method, category, required scopes, and mutation status. Every line earns its place, with 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?

For a mutating endpoint with an opaque request body and no output schema, the description should summarize accepted modsecurity fields or point to specific documentation. It only restates the path and scopes, so an agent still cannot determine what content to send in the 'body' parameter.

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 nominally 100%, but the body parameter is described only as 'Schema not statically declared — see API docs' with additionalProperties true, leaving the agent without field-level semantics. The description adds no parameter details, so it meets the baseline for high schema coverage but does not help the agent construct a valid request body.

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 'Update modsecurity' and identifies the specific endpoint via HTTP PATCH /v1/domains/:id/modsecurity. The resource is clear and distinguishable from sibling tools like GET modsecurity or other domain patch endpoints. It doesn't describe what modsecurity settings can be changed, but the verb+resource is 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 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 the GET modsecurity endpoint or other domain PATCH endpoints. The description provides prerequisites like required scopes and mutation behavior, but it does not explain selection criteria, exclusions, or when this endpoint is appropriate.

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

panelica_domains_patch_v1_domains_id_phpC

Update php

HTTP: PATCH /v1/domains/:id/php Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already signal a mutating operation via readOnlyHint=false, and the description adds the required scope 'domains:write' and explicitly warns that it changes server state. However, it does not disclose what gets modified, whether changes are reversible, or what errors or 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 short, well-structured, and front-loads the core action. The metadata lines for HTTP method, category, scope, and mutation are compact and scannable, though the extreme brevity contributes to the lack of semantic 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 mutating PATCH tool with an open request body and no output schema, the description is incomplete. It identifies the endpoint and mutation flag but leaves the actual PHP update semantics, accepted body fields, and any constraints entirely unspecified, making correct invocation unlikely without external references.

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 covers the path parameter id and an open 'body' object whose schema is not statically declared. The description adds no information about what fields the body should contain, so an agent cannot construct a valid request body for this PATCH operation without consulting external API documentation.

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 an action ('Update') and a resource ('php') and the HTTP path clarifies it targets a domain's PHP configuration. It is distinguishable from the sibling read tool panelica_domains_get_v1_domains_id_php, though 'php' remains somewhat underspecified (version vs. settings vs. runtime options).

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 instead of alternatives. It does not mention the corresponding GET endpoint for reading current PHP settings, nor does it explain situations where a different PATCH or POST tool 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.

panelica_domains_patch_v1_domains_id_spfC

Update spf

HTTP: PATCH /v1/domains/:id/spf Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds useful context by stating the required scope (domains:write) and explicitly noting the operation mutates server state. It does not describe side effects like overwriting the existing SPF record, but this is partially covered by the annotations.

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 well-structured with labeled lines for HTTP method, category, scopes, and mutation effect. It is front-loaded with the core action and contains 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?

The description is incomplete for actually invoking the tool because the request body schema is not statically declared and no example or field list is provided. An agent can select the tool but cannot reliably construct a valid update payload based on this 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?

The schema documents id as a path parameter and body as an untyped object with additionalProperties allowed, but the body description explicitly says 'Schema not statically declared.' The tool description adds no parameter details, example payload, or guidance on what fields the SPF update body should contain, which is a critical gap for a mutation endpoint.

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 ('Update') and resource ('spf') and gives the HTTP path, so an agent can distinguish it from the sibling GET SPF endpoint. It is concise but does not elaborate on what updating an SPF record entails.

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 PATCH method and 'Mutating' note imply this is for changing an existing SPF configuration, but there is no mention of reading the current SPF first, prerequisites, or how this differs from other domain update tools.

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

panelica_domains_patch_v1_domains_id_webserverB

Update webserver

HTTP: PATCH /v1/domains/:id/webserver Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate this is a mutating, non-idempotent operation. The description adds the explicit statement 'Mutating: changes server state' and 'Required scopes: domains:write', which are useful beyond the annotations. However, it does not disclose more specific behavioral traits such as reversibility, failure modes, or side effects beyond a generic state change.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action. Additional lines for HTTP method, category, scopes, and mutation status are short and scannable. Some redundancy with the annotation title exists, but overall the structure 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 mutating PATCH endpoint with an undeclared request body and no output schema, the description is not complete enough to invoke correctly. An agent would not know what fields the body should contain, what values are accepted, or what the response looks like. Even though it points to 'see API docs', the definition itself leaves a significant gap for constructing a valid request.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description itself adds no meaning for the 'id' or 'body' parameters. The body schema is notably opaque ('Schema not statically declared — see API docs'), and the tool description does not compensate by describing what fields should be sent, so the parameter semantics remain weak despite the coverage baseline.

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 opens with 'Update webserver', a clear verb and resource, and the HTTP line identifies the exact endpoint. It is distinguishable from sibling tools like the GET webserver endpoint or other domain PATCH endpoints, though it does not specify what aspect of the webserver is being updated.

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, no mention of sibling tools like the GET webserver endpoint for reading current settings, and no exclusions or prerequisites beyond the listed scope. The HTTP line implies mutability but does not explain appropriate usage context.

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

panelica_domains_post_v1_domainsB

Create domain

HTTP: POST /v1/domains Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.3/5.0
Behavior4/5

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

The description discloses 'Required scopes: domains:write' and 'Mutating: changes server state', which adds useful behavioral context beyond the annotations. It does not describe side effects or failure behavior, but the explicit state-change warning and scope requirement are meaningful.

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, front-loaded with the main action, and uses a clear labeled format. The only mildly redundant line is 'Category: Domains', but overall the structure 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?

For a mutating create operation with no output schema and an undeclared request body, the description is incomplete: it does not explain what fields the body requires, what the response will look like, or what side effects may occur. An agent cannot reliably construct a correct request from this description alone.

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

Parameters3/5

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

The input schema has one 'body' property whose description explicitly says 'Schema not statically declared — see API docs', so it provides almost no semantic content. The tool description also adds no parameter details, leaving the agent without a payload contract; however, the context reports 100% schema description coverage, so the baseline is 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 a clear action and resource: 'Create domain', and the HTTP line confirms POST /v1/domains. It is unambiguous about what the tool does, though it does not explicitly contrast it with sibling domain-related tools such as creating subdomains or databases.

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 select this tool versus alternative domain creation or management tools. 'Create domain' and 'Category: Domains' merely describe the operation; there are no exclusions, prerequisites beyond scopes, or hints about when another sibling 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.

panelica_domains_post_v1_domains_id_databasesB

Create database for domain

HTTP: POST /v1/domains/:id/databases Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate this is mutating and non-idempotent; the description reinforces that with 'Mutating: changes server state' and adds the required 'domains:write' scope. It does not disclose side effects, response behavior, or constraints like the domain needing to exist, but there is no contradiction with annotations.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action, followed by short endpoint, category, scope, and mutation notes. It contains minor boilerplate that overlaps with annotations, but no meaningful 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?

For a mutating operation with an open-ended body schema and no output schema, this description is incomplete. It gives no indication of required body fields, database naming rules, example payloads, or response details, so an agent cannot reliably construct a valid request without external documentation.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The 'id' parameter is documented as a path parameter, but the 'body' parameter is essentially unspecified beyond 'Schema not statically declared — see API docs'. The description adds no field-level meaning, so an agent still cannot determine what the request body should contain.

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'), resource ('database'), and scope ('for domain'), and includes the HTTP endpoint. It does not explicitly contrast with sibling tools like the global database creation endpoint, but the domain-scoped phrasing makes the target resource reasonably 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 to use this tool versus alternatives such as panelica_databases_post_v1_databases or panelica_domains_delete_v1_domains_id_databases. There are no prerequisites, exclusions, or conditions stated; the intended usage is only implicit from the phrase 'for domain'.

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

panelica_domains_post_v1_domains_id_dkim_disableC

Create disable

HTTP: POST /v1/domains/:id/dkim/disable Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.2/5.0
Behavior2/5

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

Annotations already convey readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description's 'Mutating: changes server state' is largely redundant with readOnlyHint=false, and it adds only the required scopes. It does not disclose what disabling DKIM actually does, such as removing records or affecting email deliverability.

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 short, but the leading 'Create disable' is confusing and wastes the most prominent position. The 'Mutating' line also largely repeats what annotations already communicate, so the structure is terse but not 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?

For a POST action with no output schema and an open-ended body parameter, the description does not explain what payload to send, what side effects to expect, or what a successful response looks like. An agent would need external API documentation to call this reliably.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. However, the description adds nothing about parameters, and the body parameter is explicitly left as 'Schema not statically declared — see API docs,' leaving the agent without real field semantics for the request body.

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 opens with the garbled phrase 'Create disable' and never states in plain language that this tool disables DKIM for a domain. The HTTP path is the only functional clue, so the description mostly restates the tool name/title rather than clarifying its 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?

There is no guidance about when to use this tool versus alternatives such as the closely related dkim_enable sibling. The description provides scopes and mutating status, but no context about prerequisites, when disabling is appropriate, or when another tool should be chosen.

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

panelica_domains_post_v1_domains_id_dkim_enableB

Create enable

HTTP: POST /v1/domains/:id/dkim/enable Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

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

The description adds 'Required scopes: domains:write' and 'Mutating: changes server state,' which are useful beyond the annotations. However, it does not explain what specific server state changes occur, and the mutation fact is already implied by readOnlyHint=false; no contradiction with annotations exists.

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, well-structured, and front-loaded with the endpoint, category, scope, and mutation flag. The 'Create enable' line is redundant and confusing, but the overall format is tight and scannable.

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

Completeness3/5

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

For a simple single-required-param mutation with meaningful annotations, the description covers the key operational facts: endpoint, scope, and state change. The main gap is the opaque body parameter and lack of response details, but the schema already defers body structure to external API docs.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline of 3 applies even though the description itself adds no parameter-level detail. The schema documents id as a path parameter and marks body as an open, non-statically-declared object, so the parameters are minimally but adequately described.

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 'Create enable' is vague and awkward, but the HTTP line 'POST /v1/domains/:id/dkim/enable' makes the action concrete: enable DKIM on a specific domain. The resource and verb are identifiable and distinct from the sibling dkim_disable tool, though no explicit prose states 'Enable DKIM.'

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 auth scope and mutation status but no guidance on when to use this tool versus alternatives. It never mentions dkim_disable or conditions such as 'use when DKIM is not yet enabled,' leaving selection context entirely to inference.

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

panelica_domains_post_v1_domains_id_email_autorespondersA

Create email autoresponder

HTTP: POST /v1/domains/:id/email-autoresponders Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.5/5.0
Behavior3/5

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

The description explicitly states 'Mutating: changes server state', which aligns with readOnlyHint=false and adds a clear side-effect warning. It also provides required scope 'domains:write', which is useful auth context beyond the annotations. However, it does not disclose error behavior, idempotency consequences (already hinted false), or what happens on duplicate creation.

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

Conciseness4/5

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

The description is compact and front-loaded with the core purpose, followed by short labeled metadata lines for HTTP method, category, scope, and mutation effect. No filler is present, though some lines repeat information already inferable from the tool name or annotations.

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 and a body whose schema is explicitly not statically declared, the description should compensate by naming essential or common body fields, but it does not. An agent has no way to construct a meaningful create-autoresponder request beyond supplying the domain id, and no return/response expectations are described.

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

Parameters3/5

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

Schema coverage is 100%: 'id' is described as a path parameter and 'body' as the application/json request body, so the schema carries the basic semantics. The description adds no parameter-level detail, and the body remains opaque ('Schema not statically declared'); per the coverage rule, the baseline of 3 applies.

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

Purpose5/5

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

The description opens with the verb-resource pair 'Create email autoresponder' and confirms it with the HTTP POST path, so the tool's action and target are unmistakable. It is clearly distinguished from the sibling GET list tool and the DELETE autoresponder tool, and no other POST sibling covers autoresponders.

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 saying 'Create email autoresponder' and labeling itself as mutating, so an agent can infer to call it when an autoresponder needs to be added to a domain. However, it does not explicitly state when to prefer this over reading existing autoresponders (panelica_domains_get_v1_domains_id_email_autoresponders) or removing one (panelica_email_delete_v1_email_autoresponders_id).

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

panelica_domains_post_v1_domains_id_email_forwardersA

Create email forwarder

HTTP: POST /v1/domains/:id/email-forwarders Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already mark this as non-read-only, non-idempotent, and non-destructive. The description adds the required scope 'domains:write' and restates that it mutates server state, which is some added value but does not disclose richer behavioral context such as validation behavior, failure modes, 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.

Conciseness5/5

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

The description is compact and front-loaded, with the core action first and only relevant metadata following. Every line earns its place: action, HTTP method, category, required scope, and mutation flag.

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 creation tool with an undeclared request body schema and no output schema, this description is incomplete. An agent cannot determine what fields are required to create an email forwarder, and the description simply defers to API docs without summarizing the body shape or behavior.

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

Parameters3/5

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

Schema description coverage is 100%, giving the baseline of 3. However, the body parameter's schema is explicitly 'not statically declared' and allows arbitrary properties; the description adds no guidance about what fields an email forwarder body should contain, so it does not compensate for that 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 action ('Create email forwarder') with a concrete resource, and the HTTP method and path are included. Even among many siblings, the verb plus endpoint clearly distinguishes this creation operation from related GET/DELETE forwarder 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 implies its usage by saying 'Create email forwarder' and showing the POST endpoint, but it never explicitly says when to choose this tool over alternatives or mentions any prerequisites beyond the required scope. There is no 'use this when' guidance, though the purpose is reasonably clear.

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

panelica_domains_post_v1_domains_id_redirectsB

Create redirect

HTTP: POST /v1/domains/:id/redirects Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior4/5

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

Beyond the annotations, the description explicitly states 'Mutating: changes server state' and 'Required scopes: domains:write', giving behavioral and authorization context not present in the structured fields. It does not contradict the readOnlyHint=false, idempotentHint=false, or destructiveHint=false annotations.

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

Conciseness4/5

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

The description is compact and well-structured: action, HTTP method/path, category, required scope, and mutation flag in four brief lines. It wastes little space, though the first line repeats the annotation title.

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 an open-world create operation with no output schema and no declared body schema, the description is insufficient. The agent learns that it mutates and needs domains:write, but not what payload fields are allowed, what response to expect, or any warning about non-idempotent side effects.

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 id parameter is described only tautologically as 'Path parameter: id', and the body is an unconstrained object with 'Schema not statically declared — see API docs'. The tool description adds no field meanings, so an agent cannot determine what redirect configuration to send; the nominal 100% schema coverage does not provide real semantic content.

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 opens with a specific verb and resource, 'Create redirect,' and the HTTP line confirms it targets /v1/domains/:id/redirects. It is distinguishable from sibling operations such as panelica_domains_get_v1_domains_id_redirects and panelica_redirects_delete_v1_redirects_id, though it does not explicitly contrast itself 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 about when to choose this over related redirect operations, prerequisites for the domain, or what configuring a redirect entails. The scope and category are useful metadata, but nothing tells an agent which scenario this tool is appropriate for.

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

panelica_domains_post_v1_domains_id_subdomainsB

Create subdomain

HTTP: POST /v1/domains/:id/subdomains Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

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

The description adds the required scope (domains:write) and the explicit confession 'Mutating: changes server state,' which is consistent with readOnlyHint=false, so there is no contradiction with annotations. However, it discloses no side effects or postconditions (e.g., DNS changes, propagation, whether the subdomain is immediately usable) and, given the open body schema, could have been more transparent about what the mutation requires.

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

Conciseness4/5

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

The description is compact and front-loaded: the purpose leads, followed by short single-purpose lines for HTTP method, category, scope, and mutation flag. The HTTP line partially duplicates the route encoded in the tool name, but the structure is clean and every remaining line 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 mutating creation tool with an undeclared open body schema and no output schema, this description is too thin. An agent has no way to construct a valid request body, no indication of what fields are required, and no statement of what a successful call returns or changes. The scopes and mutability flags help, but the critical invocation detail is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no meaning beyond the schema: it does not hint what the body should contain, and the schema itself punts ('Schema not statically declared — see API docs'). With an open additionalProperties body, a one-line hint about the expected payload (e.g., subdomain name) would have materially helped.

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 — "Create subdomain" — and the HTTP line confirms the exact route (POST /v1/domains/:id/subdomains). It is unambiguous against siblings like the GET subdomains list or DELETE subdomains endpoints, though it does not explicitly name a sibling it differs from.

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, no prerequisites (e.g., domain must exist), and no hints about what constraints apply. 'Required scopes: domains:write' is an auth prerequisite rather than usage direction, and there is no exclusion or alternative routing information.

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

panelica_domains_post_v1_domains_id_suspendC

Create suspend

HTTP: POST /v1/domains/:id/suspend Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate this is a mutating operation, and the description adds 'Mutating: changes server state' plus the required scope. It does not disclose what suspension does to the domain, whether it is reversible, or what side effects occur, but it does not contradict the annotations.

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

Conciseness4/5

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

The description is compact and well-structured, with each line providing metadata: HTTP method/path, category, scopes, and mutation status. The only weak point is the awkward 'Create suspend' phrasing, but there is no unnecessary 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 is sufficient to identify the endpoint and required id parameter, but it omits important context for a mutating action, such as the meaning of suspension, any required or optional request body fields, and the relationship to unsuspending. These are meaningful gaps for an agent deciding whether and how to call 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 input schema already documents both parameters, with 'id' as a path parameter and 'body' as an open-ended JSON object. The description adds no additional parameter meaning, so the baseline of 3 applies despite the body schema being unspecified.

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 the endpoint via 'HTTP: POST /v1/domains/:id/suspend' and category 'Domains', so an agent can infer this suspends a domain. However, the actual prose, 'Create suspend', is vague and never states the behavior in clear natural language, such as 'Suspends the specified domain'.

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 the sibling unsuspend endpoint or the suspend endpoints for accounts, FTP users, or SSH users. 'Required scopes' and 'Category' provide context but not usage criteria.

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

panelica_domains_post_v1_domains_id_unsuspendB

Create unsuspend

HTTP: POST /v1/domains/:id/unsuspend Category: Domains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior4/5

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

The description explicitly states 'Mutating: changes server state' and 'Required scopes: domains:write', adding useful behavioral and authorization context beyond the annotations. It is consistent with readOnlyHint=false and destructiveHint=false, and it communicates that this is a state-changing write operation requiring domain write scope.

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

Conciseness4/5

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

The description is compact and well-structured with clear labels for HTTP method, category, scopes, and mutating behavior. The only weak element is the leading phrase 'Create unsuspend', which adds little value and is essentially a title repetition.

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 action, the endpoint, scope, and mutation flag provide a workable baseline. But the description does not explain what unsuspend does to the domain, does not describe the request body despite it being open-schema, and does not mention expected response behavior since no output schema is provided.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3 even without additional parameter detail in the description. However, the tool description adds no clarification about the open-world body object, whose schema is not statically declared; that leaves the main semantic gap unaddressed.

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 the HTTP endpoint POST /v1/domains/:id/unsuspend, which clearly identifies the domain-resource action as 'unsuspend'. The phrase 'Create unsuspend' is awkward and semantically vague, so it does not reach the level of a well-worded purpose statement, but the endpoint plus mutating flag make the operation reasonably 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?

No guidance is provided about when to use this tool versus related alternatives. For example, it does not mention that this applies to a currently suspended domain, nor does it distinguish domain-level unsuspend from account-level or SSH/FTP unsuspend operations that appear in the sibling tools. 'Category: Domains' gives a weak hint but no actual selection guidance.

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

panelica_email_delete_v1_email_accounts_idA
DestructiveIdempotent

Delete email account

HTTP: DELETE /v1/email-accounts/:id Category: Email Required scopes: email:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true and readOnlyHint=false; the description adds meaningful context by stating the operation 'permanently removes the resource' and listing the required scope 'email:delete'. This goes beyond the structured hints and gives an agent the key safety-relevant 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 compact and front-loaded: the core action is the first sentence, followed by the HTTP method, category, required scope, and a clear destructive warning. Every line 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 single-parameter delete operation, the description is complete: it specifies the endpoint, the required scope, and the permanent destructive effect. The annotations supply the remaining safety and idempotency context, and no output schema suggests a simple success response is expected.

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

Parameters3/5

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

The input schema already documents the single required parameter 'id' as a path parameter with 100% coverage. The description's HTTP line reiterates :id as a path placeholder but adds no additional meaning, format guidance, or examples beyond what the schema provides.

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

Purpose5/5

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

The description opens with the specific action and resource: 'Delete email account', and the HTTP line identifies the exact endpoint. This clearly distinguishes it from sibling tools like panelica_email_delete_v1_email_autoresponders_id and panelica_email_delete_v1_email_forwarders_id, as well as from get/patch email account operations.

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

Usage Guidelines3/5

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

The intended use is implied by 'Delete email account' and the destructive warning, but the description does not explicitly state when to choose this tool over alternatives such as updating or retrieving an email account. The required scope is useful context, but no when-not-to-use guidance is provided.

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

panelica_email_delete_v1_email_autoresponders_idA
DestructiveIdempotent

Delete autoresponder

HTTP: DELETE /v1/email-autoresponders/:id Category: Email Required scopes: email:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.9/5.0
Behavior4/5

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

The description goes beyond the annotations by explicitly warning that the operation is destructive and permanently removes the resource, reinforcing the destructiveHint. It also adds the required email:delete scope, which is not present in the annotations. No contradiction with the readOnly, idempotent, or destructive hints.

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

Conciseness4/5

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

The description is compact and front-loads the action, then provides method, category, scope, and danger in a few short lines. 'Category: Email' is slightly redundant with the tool path, but overall there is minimal padding.

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

Completeness4/5

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

For a one-parameter destructive delete with no output schema, the description provides necessary operational context: HTTP method/path, category, required scope, and permanence warning. It does not cover response/error cases, but those are not essential given the simple shape of the 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 single parameter is fully covered by the schema ('Path parameter: id'), and the description only reinforces it via the :id placeholder in the HTTP route. Since schema coverage is 100%, the description does not need to add much parameter-level 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 a specific verb and resource ('Delete autoresponder') and includes the HTTP DELETE path, making it clear this removes an email autoresponder by id. The resource term distinguishes it from sibling delete tools for email accounts and email forwarders.

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 implicitly signals use for deleting an email autoresponder and lists the required email:delete scope as a precondition. However, it does not explicitly state when to prefer this over sibling delete tools or provide exclusions/alternatives.

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

panelica_email_delete_v1_email_forwarders_idA
DestructiveIdempotent

Delete email forwarder

HTTP: DELETE /v1/email-forwarders/:id Category: Email Required scopes: email:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, and the description adds value beyond that by specifying the consequence: 'WARNING: destructive — permanently removes the resource.' This informs the agent the operation is irreversible and must be treated with care. The explicit 'Required scopes: email:delete' also discloses an auth prerequisite not present in the schema or annotations.

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

Conciseness4/5

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

The description is compact and front-loaded with the purpose, followed by four terse, high-value lines covering method, category, auth scope, and destructive warning. 'Category: Email' is slightly redundant given the tool name and sibling context, but it is harmless. Overall it is appropriately sized with minimal waste for a five-line description.

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

Completeness4/5

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

For a very simple tool — one parameter, no output schema, no nested objects — the description covers the essentials: what it does, the HTTP contract, the required scope, and the permanent consequence of invocation. The annotations complete the safety profile (idempotent, destructive, non-read-only). Minor gaps such as success/error response behavior are not critical for a single-path-parameter DELETE endpoint.

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

Parameters3/5

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

Schema description coverage is 100% since the single 'id' parameter is documented as 'Path parameter: id'. The description's endpoint line ('/v1/email-forwarders/:id') mildly reinforces that id is a path identifier, but it adds little meaning beyond what the schema already conveys. Baseline 3 is appropriate because the schema carries the full parameter burden.

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 'Delete email forwarder', a specific verb plus precise resource type, which distinguishes it from sibling delete tools targeting email accounts (panelica_email_delete_v1_email_accounts_id) and autoresponders (panelica_email_delete_v1_email_autoresponders_id). The resource naming alone disambiguates the operation 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 Guidelines3/5

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

The description provides contextual clues — HTTP method, category, and required scopes — that imply when the tool applies, but it never explicitly states when to use it versus alternatives, nor does it name any exclusion conditions. The intended use is inferable ('if you need to delete a forwarder, use this'), but the agent receives no routing guidance for distinguishing it from the other email delete tools.

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

panelica_email_get_v1_email_accountsA
Read-onlyIdempotent

List email accounts

HTTP: GET /v1/email-accounts Category: Email Required scopes: email:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive; the description adds useful context by stating the required scope (email:read) and confirming GET/read-only behavior. It does not describe response formatting or pagination, but the zero-parameter collection-list nature and strong annotations lower that burden.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action. The HTTP, scope, and category lines add helpful context, though 'Read-only' and 'Category: Email' are somewhat redundant with the tool name and annotations.

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 robust annotations, the description supplies the essential details: endpoint, method, required scope, and read-only behavior. It could mention what fields or account information the returned list contains, but 'List email accounts' makes the high-level outcome reasonably clear.

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 100% schema coverage, so the baseline of 4 applies. The description appropriately adds no parameter-specific details because there are none to document.

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 operation ('List email accounts') and resource, reinforced by the HTTP GET path. The plural resource helps distinguish it from the sibling panelica_email_get_v1_email_accounts_id, which targets a single account, though it does not explicitly say 'all accounts' or otherwise differentiate in prose.

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 the get-by-id sibling or other email-related listing endpoints. The phrase 'List email accounts' implies the basic use case, but there are no explicit exclusions, alternatives, or selection conditions.

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

panelica_email_get_v1_email_accounts_idA
Read-onlyIdempotent

Get email account

HTTP: GET /v1/email-accounts/:id Category: Email Required scopes: email:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior, so the description does not need to repeat those. It adds valuable context beyond annotations: the required 'email:read' scope and the explicit HTTP GET method. This is useful for authentication and invocation decisions.

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

Conciseness5/5

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

The description is compact and front-loaded with the core action, followed by HTTP method, category, scopes, and read-only flag. Every line carries useful information without padding.

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

Completeness4/5

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

For a one-parameter read-only endpoint with strong annotations, the description covers the operation, path, required scope, and safety profile. There is no output schema, so a bit more detail about the response shape could help, but the low complexity makes this 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 100%, and the single 'id' parameter is documented as a path parameter. The description adds no additional semantics beyond the schema, which is acceptable given full schema coverage.

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

Purpose5/5

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

The description states a specific verb ('Get') and a specific resource ('email account') and includes the HTTP path '/v1/email-accounts/:id', which distinguishes this from the sibling list endpoint '/v1/email-accounts'. The resource and operation are 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 guidance on when to use this tool versus related email tools such as the list endpoint or other email-account operations. It mentions required scopes and read-only behavior, but does not state selection conditions or exclusions.

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

panelica_email_patch_v1_email_accounts_idB

Update email account

HTTP: PATCH /v1/email-accounts/:id Category: Email Required scopes: email:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.3/5.0
Behavior4/5

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

Beyond the annotations, the description adds a concrete authorization requirement ('email:write') and explicitly declares that the call mutates server state, which also matches readOnlyHint=false. It does not describe side effects beyond 'changes server state,' but the annotations already cover idempotency and destructiveness.

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

Conciseness4/5

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

The description is compact and front-loaded: action first, then HTTP method, category, scope, and mutation flag. Only minor redundancy exists in the 'Category: Email' line given the tool name already contains 'email'.

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 body is an opaque open object ('Schema not statically declared'), no output schema is available, and the description never explains what account properties can be updated or what a successful response looks like. Annotations cover the safety profile, but for actually constructing a correct request an agent would need external API docs.

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

Parameters3/5

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

Schema description coverage is 100%, with id documented as a path parameter and body documented as an application/json object whose schema is intentionally not statically declared. The free-text description adds no field-level meaning, so it neither improves nor degrades the baseline set by 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 action and resource ('Update email account') and includes the HTTP PATCH path, so the tool's basic purpose is unambiguous. It does not, however, say which account attributes can be changed or call out the sibling change-password operation, 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 choose this PATCH over alternatives such as change_password, create, or delete; there are also no exclusions or preconditions beyond the scope line. The agent is left to infer usage from the tool name and path.

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

panelica_email_post_v1_email_accountsA

Create email account

HTTP: POST /v1/email-accounts Category: Email Required scopes: email:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.8/5.0
Behavior4/5

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

The description adds useful behavioral context beyond the annotations: it states the required scope (email:write), confirms the request is mutating, and explicitly says it changes server state. This complements the readOnlyHint=false and idempotentHint=false annotations without contradicting them.

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

Conciseness5/5

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

The description is compact and well-structured, with the core purpose front-loaded and supporting metadata (HTTP method, category, scopes, mutating effect) presented in discrete lines. Every line adds useful context without unnecessary verbosity.

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 description is not complete enough for an agent to reliably construct the request payload. The body schema is not statically declared, no example fields are given, and there is no output schema, leaving critical information for a creation endpoint to external API docs.

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

Parameters3/5

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

The input schema has only a generic body object whose description says the schema is not statically declared and to see API docs. Schema description coverage is listed at 100%, so the baseline is 3, but the description itself adds no field-level meaning about what the email account creation body should contain.

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 'Create email account', a specific verb and resource that clearly identifies the operation. The HTTP method POST and the email-account path further distinguish it from sibling tools like email_patch_v1_email_accounts_id or email_post_v1_email_accounts_id_change_password.

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 by the tool name and description: this is the tool to call when creating a new email account. However, it does not explicitly mention when to prefer this over related email tools, nor does it name alternatives for updating or managing existing accounts.

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

panelica_email_post_v1_email_accounts_id_change_passwordA

Change email password

HTTP: POST /v1/email-accounts/:id/change-password Category: Email Required scopes: email:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.9/5.0
Behavior4/5

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

The description states 'Mutating: changes server state' and 'Required scopes: email:write', which adds useful behavioral context beyond the annotations (readOnlyHint: false, idempotentHint: false). It aligns with the annotations and no contradiction exists, though it does not mention side effects such as whether sessions are invalidated.

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?

Four short lines — purpose, HTTP method/path, category, scope, and mutation flag — with no filler. The most important verb and resource are front-loaded, and every line 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 captures the core operation, required scope, and mutating behavior, which is adequate for selecting the tool. However, it omits details about the request body contents (the body schema is explicitly not statically declared) and any response/error expectations, so it is not fully complete for 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 100%, so the schema already documents id and body. The description itself adds no parameter-level meaning, and the body parameter is left open ('Schema not statically declared — see API docs'), so an agent still must look elsewhere for the actual password payload fields.

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

Purpose5/5

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

The description opens with a clear verb and resource — 'Change email password' — and reinforces it with the exact HTTP endpoint POST /v1/email-accounts/:id/change-password and Category: Email. This distinguishes the tool from sibling email get/patch/delete operations and from other resource change-password endpoints like FTP or MySQL.

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 resource name 'email-accounts' and Category: Email make the intended use clear for password changes on email accounts, but there is no explicit guidance about when not to use it or which sibling tool to prefer (e.g., panelica_email_patch_v1_email_accounts_id for general account edits). 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.

panelica_file_manager_delete_v1_filesB
DestructiveIdempotent

Delete files

HTTP: DELETE /v1/files Category: File Manager Required scopes: files:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (application/json)

TDQS

B3.4/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond the annotations: it discloses the required scope (files:delete), the HTTP method, and explicitly warns that the operation is destructive and permanently removes the resource. This reinforces destructiveHint and readOnlyHint with concrete operational detail and does not contradict the annotations.

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

Conciseness4/5

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

The description is compact and front-loaded: the core action appears first, followed by useful operational metadata and a clear warning. The only minor redundancy is 'Delete files' echoing the title, but it does not meaningfully bloat 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?

For a destructive mutation with a nested request body, the description covers the critical safety facts and auth requirement. It omits parameter semantics for paths and permanent, and provides no guidance on trash behavior, which leaves an agent uncertain about whether to set permanent or what path formats are expected.

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 high at the top level and user_id is described in the schema, so the baseline is acceptable. However, the nested paths and permanent fields have empty descriptions, and the tool description does not clarify their semantics or the effect of the optional permanent flag, leaving some ambiguity about trash 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 description states a specific operation ('Delete files') and adds a key qualifier that deletion permanently removes the resource, so it is more than just a restatement of the name. It does not explicitly differentiate from the sibling trash deletion endpoint, but the permanent-deletion wording gives it enough distinct meaning.

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 trash-related file-manager alternatives such as deleting from trash, restoring from trash, or emptying trash. No conditions, exclusions, or alternative tool references are provided, so the agent must infer usage from the endpoint path alone.

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

panelica_file_manager_delete_v1_files_trash_idA
DestructiveIdempotent

Permanent delete from trash

HTTP: DELETE /v1/files/trash/:id Category: File Manager Required scopes: files:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
user_idYesTarget user ID

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already mark destructiveHint=true, and the description reinforces this with an explicit warning that the resource is permanently removed. It also discloses the required 'files:delete' scope and HTTP method, adding valuable operational context beyond the 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?

The description is compact and front-loaded: operation, then HTTP method, category, scope, and warning. Every line contributes meaningful information with no 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 simple destructive delete with full schema coverage and safety annotations, the description contains the essential facts: what it does, the endpoint, required auth scope, and irreversibility. No output schema is present, but none is needed for this operation.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for both 'id' and 'user_id'. The description adds no additional parameter-level meaning beyond the endpoint path, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states 'Permanent delete from trash' and the HTTP endpoint DELETE /v1/files/trash/:id, giving a precise verb, resource, and scope. The 'permanent' qualifier and trash/:id path clearly distinguish this from sibling restore and empty-trash operations.

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

Usage Guidelines3/5

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

Usage is only implied by the operation name and 'permanent delete' semantics; the description does not explicitly state when to choose this over restore or empty-trash. It provides no alternative routing or when-not-to-use guidance, though the intended use case is reasonably inferable.

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

panelica_file_manager_get_v1_filesA
Read-onlyIdempotent

Lists files and directories in a given path.

HTTP: GET /v1/files Category: File Manager Required scopes: files:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoDirectory path (default: user home)
sort_byNoQuery parameter: sort_by
user_idYesTarget user ID
sort_orderNoQuery parameter: sort_order
show_hiddenNoQuery parameter: show_hidden

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior; the description adds the auth requirement 'Required scopes: files:read', which is useful beyond the annotations. 'Read-only' repeats readOnlyHint, and no rate-limit or pagination behavior is disclosed, so it does not earn a 5.

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 purpose sentence is front-loaded and the entire description is compact. The HTTP line and 'Read-only' are somewhat redundant with the tool name and annotations, but the block is still appropriately sized and scannable.

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

Completeness3/5

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

For a simple GET list call, required user_id and optional path/sort/hidden are present in the schema, and safety is covered by annotations. However, there is no output schema and no guidance on how this listing relates to sibling file-manager endpoints, leaving some context to inference.

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

Parameters3/5

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

Schema description coverage is 100%, so the description is not required to compensate for missing parameter docs. It adds nothing meaningful about sort_by, sort_order, show_hidden, or path beyond what the schema already provides, keeping this at the baseline 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 opens with 'Lists files and directories in a given path' — a specific verb, object, and scope. It is clearly a directory-listing operation, but it does not explicitly distinguish itself from sibling file-manager list tools (e.g., trash listing) or name alternatives, so it stops short of 5.

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

Usage Guidelines3/5

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

The description implies the tool is for listing a directory's contents, but it gives no when-to-use/when-not-to-use guidance and names no alternative file-manager tools. An agent must infer the appropriate use from the operation itself, so this is at baseline rather than above.

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

panelica_file_manager_get_v1_files_accessible_directoriesB
Read-onlyIdempotent

Get accessible directories

HTTP: GET /v1/files/accessible-directories Category: File Manager Required scopes: files:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesTarget user ID

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds only the required files:read scope and labels the operation read-only, which is useful but adds little behavioral context beyond what the name and annotations convey.

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 four short lines with no filler; the endpoint, category, required scope, and read-only marker each contribute useful metadata. The core action is front-loaded and the whole definition is easy 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?

For a single-parameter GET with rich annotations this is near-adequate, but there is no output schema and the description does not say what an 'accessible directory' entry contains or how user_id affects the result. An agent can call it but cannot predict the response 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 100%, and the sole parameter user_id is already documented as 'Target user ID'. The description itself adds no parameter-level meaning, so the schema carries the burden and the baseline 3 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 states a clear verb and resource, 'Get accessible directories' with the HTTP path, and the 'directories' resource distinguishes it from the many file-listing siblings such as get_v1_files. However, it does not explain what 'accessible' means or explicitly contrast it with sibling file manager tools, so it falls just short of full distinctness.

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 rather than alternative file manager listing or permission tools. The description gives endpoint, category, and scope metadata but no context, exclusions, or alternative routing, so an agent must infer the intended use 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.

panelica_file_manager_get_v1_files_archive_infoC
Read-onlyIdempotent

Get archive info

HTTP: GET /v1/files/archive/info Category: File Manager Required scopes: files:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesQuery parameter: path
user_idYesTarget user ID

TDQS

C2.6/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/non-destructive behavior. The description adds useful context by stating the required scope (files:read) and HTTP method, but it does not disclose what data is returned or whether the info reflects current state versus a snapshot. No contradiction with annotations.

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

Conciseness4/5

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

The description is compact and scannable, front-loading the operation and listing endpoint, category, scope, and read-only status. Minor redundancy exists because 'Get archive info' duplicates the title and 'Read-only' duplicates the readOnlyHint annotation.

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?

Since there is no output schema, the description should clarify what 'archive info' means and what the caller will receive. It only provides the endpoint and scopes, leaving the meaning and return value under-specified for an agent deciding whether this is the correct read call.

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?

Both parameters are already fully described in the input schema, with user_id as 'Target user ID' and path as a query parameter, giving 100% schema coverage. The description adds no additional parameter semantics beyond that baseline.

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 'Get archive info' merely restates the tool name/title and never clarifies what 'archive info' actually means (e.g., compressed file metadata vs backup archive) or what fields are returned. The endpoint and category add some context but do not distinguish this from other file-manager read 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 provides general context (HTTP GET, files:read scope, read-only) but gives no guidance on when to use this tool vs alternatives, no exclusions, and no practical hints about preconditions or expected use cases.

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

panelica_file_manager_get_v1_files_contentA
Read-onlyIdempotent

Read file content

HTTP: GET /v1/files/content Category: File Manager Required scopes: files:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesQuery parameter: path
user_idYesTarget user ID

TDQS

A3.5/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar is lower. The description adds the required 'files:read' scope, which is a practical authentication requirement beyond the annotations. It does not mention edge-case behavior such as missing files or response encoding, but the annotation coverage mitigates that 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 compact and front-loaded with the core action. Each subsequent line adds a distinct, useful fact: HTTP method, category, required scope, and read-only nature. No filler or redundant repetition is present.

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 two-parameter read operation with rich annotations, the description is close to sufficient, and the response is plausibly just file content. However, it lacks selection context versus sibling tools, does not clarify path format or the user_id/path relationship, and there is no output schema to explain the response 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 100%, so the baseline is 3. The description adds no parameter-specific meaning; the schema itself describes user_id as 'Target user ID' but path only as 'Query parameter: path', leaving the actual path format and semantics unclear.

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 opens with 'Read file content', which is a specific verb + resource, and reinforces it with the HTTP method and 'Category: File Manager'. It is clear enough to distinguish this from the file manager write-content tool and from other file-related siblings, though it does not explicitly name any alternative.

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

Usage Guidelines2/5

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

The description provides no guidance about when to use this tool versus related siblings such as panelica_file_manager_get_v1_files_download, panelica_file_manager_put_v1_files_content, or the git repository files-content tool. It only lists static attributes like HTTP method, category, scopes, and read-only status, without any selection criteria or exclusions.

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

panelica_file_manager_get_v1_files_downloadB
Read-onlyIdempotent

Download file

HTTP: GET /v1/files/download Category: File Manager Required scopes: files:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesQuery parameter: path
user_idYesTarget user ID

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the required scope 'files:read', which is useful, but it does not disclose response behavior such as returning raw file bytes, handling of missing files, or any path constraints.

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

Conciseness4/5

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

The description is short and front-loaded with the core action 'Download file'. Some lines are redundant, such as 'HTTP: GET /v1/files/download' repeating the tool name and 'Read-only' duplicating the annotation, but overall it remains efficiently sized.

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 download operation with two required parameters, the description is mostly adequate, but it lacks important context about path semantics and the expected response format. An agent may not know whether the response is a binary stream, file content, or a download URL, and it has no guidance on how path should be constructed.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. However, the 'path' parameter description is only 'Query parameter: path' and adds no real meaning; the description itself also fails to clarify whether path is absolute, relative to a user home, or requires encoding. It does not meaningfully compensate for the weak schema wording.

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: 'Download file' via GET /v1/files/download. It is specific enough to identify the operation, though it does not differentiate it from other file-reading or download-related sibling tools such as file content or log download endpoints.

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 like panelica_file_manager_get_v1_files_content or panelica_logs_get_v1_logs_download_file. The description does not state whether this is for binary files, direct attachments, or how it differs from reading file content.

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

panelica_file_manager_get_v1_files_permissionsA
Read-onlyIdempotent

Get file permissions

HTTP: GET /v1/files/permissions Category: File Manager Required scopes: files:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesQuery parameter: path
user_idYesTarget user ID

TDQS

A3.6/5.0
Behavior4/5

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

The description adds useful behavioral context beyond the annotations by stating the HTTP method, the exact endpoint, the category, and the required scope 'files:read'. The 'Read-only' statement is consistent with the annotations, and no contradictions or hidden side effects 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.

Conciseness5/5

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

The description is compact, front-loaded with the core action, and each line adds a distinct piece of information: purpose, HTTP endpoint, category, required scope, and read-only nature. There is 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 simple read-only GET endpoint with two required parameters and rich annotations, the description covers the key invocation details: scopes, HTTP method, endpoint, and safety profile. It does not describe the response shape, which is a minor gap since no output schema exists, but the tool's purpose is straightforward.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The schema provides 'Target user ID' for user_id, but the description for path is merely a tautological 'Query parameter: path' and adds no meaningful semantics. The tool description itself does not clarify what path values are valid or how path relates to the user.

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 ('Get file permissions') and reinforces it with the HTTP path and category. However, it does not explicitly distinguish itself from closely related siblings such as panelica_file_manager_get_v1_files_permissions_presets or panelica_file_manager_patch_v1_files_permissions, so no differentiation is provided beyond the HTTP method implied by 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 gives no guidance on when to use this tool versus alternatives. It does not mention related file-permission tools, the permissions-presets endpoint, or the patch operation, so an agent must infer selection from the name and path alone.

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

panelica_file_manager_get_v1_files_permissions_presetsA
Read-onlyIdempotent

Get permission presets

HTTP: GET /v1/files/permissions/presets Category: File Manager Required scopes: files:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds useful context beyond those annotations by specifying the HTTP method, category, and required scope 'files:read', which helps the agent understand access requirements.

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

Conciseness5/5

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

The description is compact and front-loaded with the primary purpose, followed by essential routing and permission metadata. Every line adds useful information without unnecessary elaboration.

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 GET endpoint, the description provides enough to select and invoke the tool: endpoint, category, required scope, and safety profile. It could be slightly stronger by explicitly stating the return shape, but that is a minor gap 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 input schema has zero parameters and no required fields, so there is nothing for the description to clarify. The baseline of 4 applies because parameters are not a concern for this tool.

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: 'Get permission presets', reinforced by the HTTP endpoint. It is specific enough to distinguish from the sibling tool that retrieves actual file permissions, though it does not explicitly contrast the two.

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 alternative guidance is provided. The description gives metadata such as category and required scope, but does not tell the agent when to choose this tool over related file-manager permission endpoints.

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

panelica_file_manager_get_v1_files_trashA
Read-onlyIdempotent

List trash items

HTTP: GET /v1/files/trash Category: File Manager Required scopes: files:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoQuery parameter: page
limitNoQuery parameter: limit
user_idYesTarget user ID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which cover the core safety profile. The description adds useful context by stating 'Required scopes: files:read' and repeating the read-only nature, but it does not disclose behavioral details such as pagination behavior or response format.

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

Conciseness5/5

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

The description is compact and well-structured: it leads with the core purpose, then gives the HTTP verb, endpoint, category, required scope, and read-only status. Every line carries useful information with 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 simple read-only list operation, the combination of the description, full parameter schema, and safety annotations is adequate for an agent to call the tool correctly. The only minor gap is that the description does not explicitly mention that pagination is governed by page/limit or that results pertain to the target user_id, but those details are already present in the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (page, limit, user_id) are already documented in the input schema. The description adds no additional parameter-level meaning beyond what the schema provides, so the baseline score of 3 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 states a specific verb and resource: 'List trash items' with the endpoint GET /v1/files/trash. It clearly communicates the operation, though it does not explicitly differentiate itself from the related sibling trash stats or restore/empty operations.

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

Usage Guidelines3/5

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

Usage is implied by the purpose statement: an agent can infer this tool is for listing items in the file manager trash. However, there is no explicit guidance on when to choose this over the nearby trash_stats or restore/empty/delete-alternatives.

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

panelica_file_manager_get_v1_files_trash_statsB
Read-onlyIdempotent

Get trash statistics

HTTP: GET /v1/files/trash/stats Category: File Manager Required scopes: files:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesTarget user ID

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already mark the call read-only, idempotent, and non-destructive, and the description adds the needed OAuth scope 'files:read' and repeats 'Read-only' as a safety signal. It does not document response format, but the safety profile is well covered.

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

Conciseness4/5

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

The description is compact and front-loaded with the operation before metadata. Minor redundancy exists ('Read-only' and category appear alongside annotations/title), but there is no padding.

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-only call with strong annotations, the description is serviceable, but it never says what the trash statistics contain or how the response is shaped. Since there is no output schema, a bit more return-value context would make it complete.

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

Parameters3/5

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

Schema coverage is 100%, and the schema describes 'user_id' as 'Target user ID', which is adequate for a single obvious parameter. The description adds no extra meaning about what the user_id scopes the statistics to.

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+resource ('Get trash statistics') and the HTTP path '/v1/files/trash/stats' reinforces the specific operation. It is distinct enough from sibling `get_v1_files_trash` (list vs stats), though it does not explicitly spell out 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?

The description gives no guidance about when to choose this over the trash list, restore, or empty endpoints. It only states the endpoint, category, and required scopes, so an agent must infer usage context from the tool name and siblings.

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

panelica_file_manager_patch_v1_files_ownershipB

Change file ownership

HTTP: PATCH /v1/files/ownership Category: File Manager Required scopes: files:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (application/json)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, and the description adds 'Mutating: changes server state' and 'Required scopes: files:write'. It does not disclose consequences of ownership changes, recursive behavior, or reversibility, so the added behavioral context is modest.

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

Conciseness5/5

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

The description is compact and front-loaded: one purpose line followed by three concise metadata lines. Every element is relevant and there is no wasted prose.

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 file operation with a nested body and no output schema, the description is too thin. It does not explain ownership semantics, the role of user_id versus owner/group, recursive effects, or any prerequisites beyond scopes, leaving significant gaps for an agent.

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

Parameters3/5

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

Schema description coverage is reported at 100%, so the schema is treated as carrying the parameter documentation and the description is not required to repeat it. The description itself adds no explanation of owner, group, user_id, path, or recursive semantics beyond the tool 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 opens with a specific verb and resource, 'Change file ownership', and the HTTP path reinforces the ownership scope. It is clear and easily understood, though it does not explicitly contrast with sibling tools like file permissions or rename.

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 the many file manager siblings such as permissions, rename, move, or copy. The description only states required scopes and that it mutates state, leaving the agent to infer usage 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.

panelica_file_manager_patch_v1_files_permissionsB

Change file permissions

HTTP: PATCH /v1/files/permissions Category: File Manager Required scopes: files:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (application/json)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and idempotentHint=false, so the description's 'Mutating: changes server state' adds little beyond what is structurally known. It does add a useful auth requirement ('Required scopes: files:write'), which is beyond the annotations, but it does not disclose effects like whether existing permissions are replaced or whether recursive application has additional 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?

The description is compact and free of fluff. Each line earns its place: the action, HTTP endpoint, category, required scope, and mutability flag are all useful and quickly scannable. No unnecessary prose is present.

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 and schema together give enough to identify the endpoint and required fields, but the description alone omits important context such as the meaning of 'path', the behavior of 'recursive', and when to prefer this tool over related file-manager operations. With no output schema and a nested required body, a bit more context would meaningfully improve call correctness.

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 reported as 100%, so the baseline is 3 even though the free-text description adds no parameter explanation. The schema provides meaningful descriptions for user_id and permissions (e.g., 0755), though path and recursive have empty descriptions. The tool description itself does not compensate for those gaps.

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

Purpose4/5

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

The description states a specific action and resource: 'Change file permissions.' This clearly communicates the tool's purpose and is distinct from siblings like panelica_file_manager_patch_v1_files_ownership or panelica_file_manager_patch_v1_files_rename. However, it does not explicitly differentiate itself from sibling tools beyond the resource name, 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?

The description provides no guidance on when to use this tool versus alternatives. It includes useful metadata like required scopes and HTTP method, but there is no mention of when to choose this over panelica_file_manager_get_v1_files_permissions or panelica_file_manager_patch_v1_files_ownership, nor any exclusions or prerequisites beyond the scope.

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

panelica_file_manager_patch_v1_files_renameB

Rename file or folder

HTTP: PATCH /v1/files/rename Category: File Manager Required scopes: files:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (application/json)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already mark readOnlyHint=false, so 'Mutating: changes server state' largely restates existing information. However, the description adds the required files:write scope and HTTP method, which are useful context not present in annotations or schema.

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

Conciseness4/5

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

The description is compact and front-loaded with the purpose statement, followed by concise HTTP, category, and scope metadata. Each line contributes useful information, though the mutating line is somewhat redundant with the readOnlyHint annotation.

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

Completeness3/5

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

For a simple rename operation with a single nested body object, the description and schema together are mostly sufficient to build a request. However, new_name semantics are not explained, and there is no note about extension handling, path behavior, or expected response, leaving minor gaps.

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

Parameters3/5

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

Schema description coverage is reported as 100%, so the baseline is 3 even though the description itself adds no parameter details. The schema provides descriptions for body, user_id, and path, but new_name has an empty description, leaving some ambiguity that the tool description does not 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 opens with 'Rename file or folder', a clear verb and resource that directly states what the tool does. It distinguishes the operation from sibling file manager tools by naming the specific action, though it does not explicitly reference 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 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 rename versus move, copy, or other file operations, nor any exclusions. The description only provides API metadata like HTTP method, category, and required scopes, which describe invocation rather than decision context.

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

panelica_file_manager_post_v1_filesB

Create file or folder

HTTP: POST /v1/files Category: File Manager Required scopes: files:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (application/json)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already convey readOnlyHint=false and destructiveHint=false. The description additionally notes required scope files:write and that it mutates server state, which is useful but mostly redundant with the annotations. It does not disclose behaviors like overwriting existing files, recursive directory creation, or response format.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action, followed by useful endpoint, category, scope, and mutation info. The 'Mutating: changes server state' line is somewhat redundant with annotations but does not add significant 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 core purpose, HTTP method, and required scope are present, making it minimally viable. However, with a nested body containing path/name/content and no output schema, the description does not explain return values, path semantics, or creation behavior for existing paths, leaving notable gaps for an agent to call it confidently.

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 reported at 100%, so the baseline is 3. The description itself adds no parameter-level meaning; while some nested properties like path and content have empty descriptions, the tool description does not compensate with path format, content encoding, or type-dependent 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 specific action and resource: 'Create file or folder' for POST /v1/files. This clearly identifies the operation, though it does not explicitly differentiate from nearby siblings like upload or put content.

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 panelica_file_manager_post_v1_files_upload or panelica_file_manager_put_v1_files_content. The description provides category and scope context but no conditions, exclusions, or sibling comparisons.

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

panelica_file_manager_post_v1_files_compressB

Compress files

HTTP: POST /v1/files/compress Category: File Manager Required scopes: files:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (application/json)

TDQS

B3.3/5.0
Behavior4/5

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

The description adds an explicit authorization requirement ('Required scopes: files:write') and explicitly states the operation mutates server state. This goes beyond the annotations' readOnlyHint=false by telling the agent what scope is needed. It does not mention overwrite behavior or whether source files are preserved, but the annotations already convey the non-destructive safety profile, so this is reasonably transparent.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action, followed by terse metadata lines. Every line is useful even if 'Mutating: changes server state' is partly redundant with the annotations, and there is no unnecessary prose.

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 a nested body and no output schema, this description is thin. It omits what archive_path should be, whether source files are removed or preserved, whether an existing archive is overwritten, and what response an agent should expect. It is enough for basic tool selection but not for confident invocation without external API knowledge.

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 tool description itself adds no parameter-level meaning, but the input schema carries most of the load: body is described as a JSON request body, format lists 'zip, tar.gz, etc.', and user_id says 'Target user ID'. Since schema description coverage is reported as 100%, a baseline of 3 applies; source_paths and archive_path still have empty descriptions, but the description does not make that gap worse.

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 ('Compress files') and gives the exact HTTP endpoint, so an agent can tell this is the compression operation. It is unambiguous against sibling operations like extract/copy/move, though it does not explicitly name alternatives or state that it creates an archive at archive_path, so it stops 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?

The description provides only metadata (endpoint, category, required scope, mutation flag) and no when-to-use guidance, exclusions, or mention of sibling alternatives. An agent must infer usage from the tool name alone, making this essentially guidance-free for selecting between tools.

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

panelica_file_manager_post_v1_files_copyB

Copy files

HTTP: POST /v1/files/copy Category: File Manager Required scopes: files:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (application/json)

TDQS

B3.1/5.0
Behavior3/5

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

It adds a useful authentication constraint ('Required scopes: files:write') and explicitly states it mutates server state, which is mildly beyond the readOnlyHint=false annotation. However, it does not disclose operational behavior such as overwrite semantics, directory handling, or whether the operation is synchronous.

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 definition is compact and front-loaded with the operation name, followed by endpoint and metadata in a scannable layout. It is lean, though the 'Mutating' line is largely redundant with readOnlyHint=false.

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 API with a nested body, empty descriptions on two required parameters, and no output schema, the description is too sparse. It does not explain the path model, response shape, or failure behavior, leaving the agent to guess important invocation details.

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

Parameters3/5

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

The description adds no parameter-level meaning. Although schema coverage is reported as 100%, source_paths and destination_path have empty descriptions, so the agent must rely on the parameter names and the copy operation context; user_id is the only clearly documented 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 and resource ('Copy files') and exposes the exact endpoint POST /v1/files/copy, so an agent can identify what the tool does. It does not explicitly distinguish this from sibling file operations such as move or upload, 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 guidance about when to use copy versus alternatives like move, upload, or compress; the description only repeats the operation name. 'Category: File Manager' provides no selection criteria or exclusions.

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

panelica_file_manager_post_v1_files_extractB

Extract archive

HTTP: POST /v1/files/extract Category: File Manager Required scopes: files:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (application/json)

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate readOnly=false, and the description adds the auth requirement 'Required scopes: files:write' and restates mutation as 'Mutating: changes server state.' It does not disclose extraction-side effects such as destination handling or whether remove_archive deletes the source, but the presence of annotations lowers the bar.

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

Conciseness4/5

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

The description is compact and scannable, with the action first and metadata lines below. It is not bloated, though most lines repeat structured information such as the HTTP path and method.

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

Completeness2/5

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

With no output schema, the description should have covered the request body's semantics and the operation's effects. It does not mention supported archive types, destination behavior, overwrite risk, the effect of remove_archive, or what a successful response looks like, so an agent has to guess at important calling details.

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

Parameters3/5

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

Schema description coverage is reported as 100%, so the baseline is 3 even though the description itself adds no parameter detail. The schema documents user_id, but archive_path, destination_path, and remove_archive remain empty in the schema and are not explained by the tool description.

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: 'Extract archive' with the HTTP path POST /v1/files/extract. It identifies a specific verb and resource, and it is distinct from sibling file-manager operations like compress/copy/move, 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 Guidelines2/5

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

No when-to-use guidance is provided, no prerequisites are described, and no alternative tools are mentioned. The verb phrase implies extraction, but the description gives the agent no explicit decision context or exclusions.

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

panelica_file_manager_post_v1_files_moveB

Move files

HTTP: POST /v1/files/move Category: File Manager Required scopes: files:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (application/json)

TDQS

B3.1/5.0
Behavior3/5

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

The annotations already indicate readOnlyHint=false, and the description adds the required scope 'files:write' and explicitly says 'Mutating: changes server state,' which is useful auth context beyond the annotations. It does not, however, disclose what happens on destination collision or whether source files are removed.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action, followed by short, scannable metadata lines. Minor redundancy exists (Category repeats the file-manager namespace), but there is no wasted prose.

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 output schema and nested parameters, the description is not complete enough for safe invocation: it omits destination-overwrite behavior, path interpretation, and any guidance on result/error expectations. The endpoint, scope, and mutating flag provide a foundation but leave material gaps.

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

Parameters3/5

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

Schema coverage is reported as 100% and the top-level 'body' parameter has a description, so the baseline is met, but the description itself adds no parameter meaning. The nested fields source_paths and destination_path have empty descriptions, leaving their path semantics to inference.

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 opens with 'Move files', a concrete verb and resource, and the HTTP line identifies the endpoint. It is clear, but it does not explicitly differentiate the operation from sibling file tools such as copy or rename.

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 context (category, scopes, mutating) but no guidance on when to move instead of copy, rename, upload, or delete. There are no exclusions or alternative-recommendation signals for the agent.

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

panelica_file_manager_post_v1_files_trash_emptyC

Empty trash

HTTP: POST /v1/files/trash/empty Category: File Manager Required scopes: files:delete Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (application/json)

TDQS

C2.9/5.0
Behavior1/5

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

The description's 'Empty trash' semantics imply a destructive deletion of trashed content, and it says 'Mutating: changes server state', yet annotations declare destructiveHint=false. This is an annotation contradiction. The description also fails to disclose irreversibility or that all trash items for user_id are affected.

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

Conciseness4/5

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

The description is compact and front-loaded with the key action. The HTTP method, scopes, and mutation flag are useful metadata without padding. It sacrifices behavioral detail but remains taut 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?

For an operation that empties a user's trash, the description omits the irreversible all-items scope and provides no warning about permanent deletion; the incorrect destructiveHint makes the safety profile worse. The user_id requirement is only recoverable from the schema.

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

Parameters3/5

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

Schema coverage is 100% and user_id is already described as 'Target user ID'. The description adds no parameter meaning, but it does not need to because the schema fully documents the single required parameter.

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

Purpose5/5

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

The description opens with the exact action 'Empty trash' and the endpoint 'POST /v1/files/trash/empty' makes the resource unambiguous. This clearly distinguishes it from sibling trash operations like list trash, get trash stats, and restore from trash.

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 should be used versus alternatives. It does not state that it permanently deletes all trashed files for a user, nor contrast with panelica_file_manager_post_v1_files_trash_id_restore for recovering individual items.

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

panelica_file_manager_post_v1_files_trash_id_restoreA

Restore from trash

HTTP: POST /v1/files/trash/:id/restore Category: File Manager Required scopes: files:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyYesRequest body (application/json)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, so 'Mutating: changes server state' is partly redundant, but the added 'Required scopes: files:write' provides useful auth context beyond the schema. It does not describe side effects like name conflicts or reversibility, though destructiveHint=false and idempotentHint=false partially cover that.

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?

Five compact, labeled lines with the action front-loaded, followed by endpoint, category, scope, and mutation flag. Every line earns its place and there is 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 simple two-parameter restore action, the description plus schema and annotations cover the essential call information: endpoint, auth scope, mutation, and parameter meaning. It omits response/return details and does not discuss interactions with sibling delete/empty operations, but these are not critical for invoking 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?

Schema description coverage is 100%: id is clearly described as the path parameter and body.user_id as 'Target user ID'. The description adds no additional parameter meaning, so the baseline 3 is appropriate.

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

Purpose5/5

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

States a specific action ('Restore from trash') on a specific resource (files in trash), with the HTTP endpoint and category making the scope explicit. It is clearly distinguishable from sibling tools like delete-v1-files-trash-id or empty-trash.

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 makes the operation obvious, but it does not explicitly name alternative tools or when-not-to-use conditions. It provides a prerequisite ('Required scopes: files:write') but leaves the agent to infer that this tool is for restoring a trashed file rather than deleting or emptying the trash.

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

panelica_file_manager_post_v1_files_uploadB

Upload a file (multipart/form-data).

HTTP: POST /v1/files/upload Category: File Manager Required scopes: files:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (multipart/form-data). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already carry readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the description's "Mutating: changes server state" is consistent reinforcement rather than new disclosure. It does add value by stating the required files:write scope, the HTTP POST verb, and the multipart/form-data encoding, but it omits consequences such as overwrite behavior, destination defaults, or response shape.

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 action sentence is front-loaded, and the remaining lines are terse, structured metadata (HTTP endpoint, Category, Required scopes, Mutating) with no filler. This layout is easy to scan; slightly more actionable parameter information would be the only improvement.

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 an opaque body schema, no output schema, and openWorldHint=true, the description carries a heavy burden and falls short. It fails to specify what fields the multipart body must include, how to indicate the destination, size limits, or what the response contains, so an agent cannot reliably construct a correct call from this definition alone.

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

Parameters3/5

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

Schema coverage is 100% but the only parameter's description admits "Schema not statically declared — see API docs," so the body is effectively opaque. The description's multipart/form-data mention is the single concrete semantic clue for what the body should contain, yet it does not enumerate the expected multipart fields (e.g., file data and target path), leaving the agent to guess or consult external docs.

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 leading sentence "Upload a file (multipart/form-data)" states a specific verb and resource with the content-type qualifier, making the tool's function immediately clear. It is distinguishable from the file-manager GET/DELETE/PATCH siblings and from the node.js/python upload_code twins, though it does not explicitly name any sibling as a differentiator.

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 close alternatives such as panelica_file_manager_post_v1_files, put_v1_files_content, or the upload_code endpoints. Category, scope, and mutability labels provide context but do not help an agent choose among overlapping file-management operations.

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

panelica_file_manager_put_v1_files_contentC
Idempotent

Write file content

HTTP: PUT /v1/files/content Category: File Manager Required scopes: files:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRequest body (application/json)

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already carry readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the description's 'Mutating: changes server state' merely confirms rather than extends the annotation. It does add the required scope 'files:write' and HTTP verb context, which is useful. But it does not disclose overwrite-vs-create semantics, content encoding expectations, or size limits, which would be valuable for a mutating file operation.

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

Conciseness4/5

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

The description is compact and front-loaded: the purpose statement leads, followed by terse metadata lines (HTTP, category, scopes, mutating) that each carry useful information. It is arguably redundant with the title ('Write file content') but remains efficient with 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?

For a mutating tool with no output schema and a nested body object, the description leaves too much unspecified: whether the file is overwritten or created, the format/encoding of content, path resolution semantics, and the response behavior. Half of the required nested fields are undocumented. An agent would need to guess or make risky assumptions before calling this 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 reported at 100% only because the single top-level 'body' parameter has a generic 'Request body (application/json)' label; the substantive nested fields path and content have empty descriptions. The tool description adds nothing about parameter meaning, so an agent cannot know whether path is absolute/relative or whether content is raw text, base64, or URL-encoded. The 'Target user ID' description on user_id is the only real semantic signal.

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 opens with a specific verb+resource pair: 'Write file content' (with the title confirming it), and the HTTP line adds precision. It is clearly a write-operation distinct from the read sibling get_v1_files_content. However, it does not explicitly differentiate itself from other file-writing siblings like post_v1_files_upload or post_v1_files, so sibling distinction is left to the 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 category and required-scope metadata but no guidance on when to use this tool versus alternatives. It does not state 'use this to overwrite existing file contents' or 'use upload for binary/multipart transfers.' With several file-manager siblings in the sibling list, the absence of any when-to-use or when-not-to-use direction leaves selection to inference.

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

panelica_ftp_delete_v1_ftp_accounts_idA
DestructiveIdempotent

Delete FTP account

HTTP: DELETE /v1/ftp-accounts/:id Category: FTP Required scopes: ftp:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark destructiveHint and idempotentHint, but the description adds meaningful context by stating the required scope 'ftp:delete' and emphasizing that the resource is 'permanently removes the resource.' This goes beyond the bare annotations and helps an agent understand the irreversible nature of the call.

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

Conciseness4/5

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

The description is compact and front-loaded with the core action, followed by method, category, scope, and a warning. The 'Category: FTP' line adds marginal value given the tool name and sibling context, but overall the structure is efficient and scannable.

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 DELETE tool, the description, schema, and annotations together cover the essential invocation details: what it deletes, the HTTP route, required scope, and destructiveness. It could mention response behavior or error cases, but the operation is simple enough that this is not a major 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 100%, and the single 'id' parameter is already described as 'Path parameter: id.' The description's HTTP path line reinforces that id is in the URL but adds no new semantic meaning beyond what the schema provides, so the baseline 3 applies.

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

Purpose5/5

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

The description opens with 'Delete FTP account,' a specific verb and resource, and reinforces it with 'HTTP: DELETE /v1/ftp-accounts/:id' and 'permanently removes the resource.' This clearly separates it from the many FTP sibling tools that get, patch, suspend, or change passwords.

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 by the verb 'Delete' and the permanent-removal warning, which suggests it should not be used for temporary disabling. However, it never explicitly mentions alternatives like suspending an FTP account or states when not to use this tool versus other FTP operations.

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

panelica_ftp_get_v1_ftp_accountsB
Read-onlyIdempotent

List FTP accounts

HTTP: GET /v1/ftp-accounts Category: FTP Required scopes: ftp:read Read-only.

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?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds some useful context beyond annotations by specifying the required scope 'ftp:read' and the HTTP GET method, but it does not disclose return shape, pagination, or filtering behavior.

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

Conciseness4/5

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

The description is short, front-loaded with the core purpose, and includes relevant transport details. 'Read-only' and 'Category: FTP' are slightly redundant given the annotations and tool name, but the overall structure is appropriately compact for such a simple 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 no-parameter, read-only listing tool with strong annotations, the description covers the essential call context: endpoint, category, required scope, and read-only nature. It does not describe the response format, but no output schema exists and the tool's simplicity makes that 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 has zero parameters, so the schema carries no burden and the description does not need to explain parameter meaning. The baseline of 4 applies because there is nothing for parameter documentation to add.

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 FTP accounts') and includes the HTTP method and path. It is clear this is a collection-listing operation, but it does not explicitly contrast itself with the sibling by-ID tool panelica_ftp_get_v1_ftp_accounts_id, so differentiation is implied rather than stated.

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 the by-ID FTP account getter or listing tools for other resource types. The intended use is only implied by the phrase 'List FTP accounts'; no exclusions or alternative conditions are provided.

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

panelica_ftp_get_v1_ftp_accounts_idB
Read-onlyIdempotent

Get FTP account

HTTP: GET /v1/ftp-accounts/:id Category: FTP Required scopes: ftp:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds one genuinely useful piece beyond annotations — the required scope 'ftp:read' — but its 'Read-only' line merely restates the annotation, and the endpoint duplicates 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 compact and front-loaded with the core purpose ('Get FTP account'), followed by short metadata lines for endpoint, category, scope, and read-only status. Minor redundancy exists ('Read-only' repeats readOnlyHint; the endpoint echoes the tool name), but no line is bloated.

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 with full schema coverage and strong annotations, the description is nearly complete: it supplies the endpoint, auth scope, and read-only nature. The main gaps are the missing usage differentiation from the list/management siblings and the lack of any response shape hint, but no output schema exists and the operation is standard.

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

Parameters3/5

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

Schema description coverage is 100% and the only parameter, 'id', is already documented as 'Path parameter: id'. The description's ':id' in the HTTP path reinforces that it's the path identifier but adds no meaning beyond the schema, so the baseline 3 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 states a specific verb and resource ('Get FTP account') and includes the precise endpoint 'GET /v1/ftp-accounts/:id', which makes the single-resource-by-id purpose evident. Sibling differentiation is implicit through the ':id' path suffix rather than explicit, so it doesn't quite earn 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?

The description provides no guidance on when to use this tool versus alternatives. It never references the sibling list endpoint (panelica_ftp_get_v1_ftp_accounts) or the mutation endpoints, nor does it state conditions that would make this the right choice. Usage is only inferable from the tool name and path.

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

panelica_ftp_patch_v1_ftp_accounts_idC

Update FTP account

HTTP: PATCH /v1/ftp-accounts/:id Category: FTP Required scopes: ftp:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false; the description adds 'Required scopes: ftp:write' and 'Mutating: changes server state,' which provide some auth and side-effect context beyond the annotations. However, it does not describe effects on the account, reversibility, failure behavior, or what the response contains. No contradiction with annotations exists.

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

Conciseness4/5

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

The description is compact and front-loaded: the purpose line comes first, followed by a clean labeled block (HTTP, Category, Required scopes, Mutating). Every line earns its place. Only minor waste is the 'Category: FTP' line, which is redundant with 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 mutating endpoint with an opaque, open-world request body and no output schema, this description is insufficient for safe correct invocation. It does not disclose what fields may be updated, the expected response, or any constraints on the body. The 'see API docs' reference externalizes the critical information an agent needs.

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?

While schema description coverage is 100%, the body parameter's description is a cop-out: 'Schema not statically declared — see API docs' with additionalProperties: true. The tool description adds nothing about what fields a PATCH body should contain (e.g., directory, quota, comment). Since the body is the entire point of an update call, an agent cannot construct a meaningful request from the provided information.

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+resource ('Update FTP account') reinforced by the HTTP method and path (PATCH /v1/ftp-accounts/:id). This distinguishes it from sibling FTP tools like GET (fetch), POST (create), DELETE (remove), and the dedicated change_password/suspend endpoints. The only gap is that it doesn't specify which account attributes can be updated.

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 sibling FTP endpoints (POST to create, DELETE to remove, POST .../change_password to rotate credentials). The description never states that PATCH is for modifying an existing account's settings, nor does it give any condition or alternative. An agent must infer usage entirely from the method name and path.

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

panelica_ftp_post_v1_ftp_accountsA

Create FTP account

HTTP: POST /v1/ftp-accounts Category: FTP Required scopes: ftp:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.5/5.0
Behavior4/5

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

Beyond the annotation readOnlyHint=false, the description explicitly states 'Mutating: changes server state' and 'Required scopes: ftp:write', which are useful auth and side-effect disclosures. It does not contradict any annotation.

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

Conciseness5/5

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

The description is compact and front-loaded: one-line purpose, then HTTP method, category, scope, and mutation flag. Every line carries distinct information with 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?

For a creating operation with no output schema and an undeclared body, the description lacks the essential information needed to invoke the tool (body fields) and what success returns. It is too sparse to be self-sufficient.

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 is a free-form body whose schema description only says 'Schema not statically declared — see API docs,' and the tool description adds no required fields, examples, or formatting hints. An agent cannot confidently construct a valid create-FTP-account request from this definition.

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

Purpose5/5

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

The description opens with 'Create FTP account' and specifies the HTTP POST /v1/ftp-accounts endpoint, making the action and target resource unambiguous. This clearly distinguishes it from the many FTP sibling tools for listing, patching, suspending, or deleting accounts.

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 statement of when to use this tool versus alternatives or when not to use it. Although the POST endpoint and name imply creation, the description does not explain how it relates to ftp_patch, change_password, suspend, or other sibling tools.

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

panelica_ftp_post_v1_ftp_accounts_id_change_passwordB

Change FTP password

HTTP: POST /v1/ftp-accounts/:id/change-password Category: FTP Required scopes: ftp:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds a useful explicit statement that the operation is mutating and changes server state, plus the scope requirement. It does not disclose possible side effects such as session invalidation or password format constraints, but with annotations present the bar is lower.

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 well-structured, with the core action first followed by endpoint, category, scope, and mutation flag. It is efficient overall, though the title, endpoint, and category convey partially redundant 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?

The description covers the endpoint, category, required scope, and mutating behavior, but it leaves a critical gap: the request body is opaque and the agent is not told what fields to send (e.g., the new password). There is also no output schema or description of the response, so the caller is left with incomplete information for a successful invocation.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The id parameter is described as a path parameter, and the body is described as an application/json request body, but the body schema is explicitly not statically declared. The description itself adds no further meaning about what the body should contain, such as the new password, which would have been valuable.

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 ('Change FTP password') and resource (FTP account), and reinforces it with the HTTP endpoint. It does not explicitly differentiate from sibling change-password tools for email, MySQL, or accounts, but the FTP-specific wording and category make 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 provides useful context such as required scopes ('ftp:write') and the fact that the operation mutates server state. However, it does not explicitly tell an agent when to choose this instead of related password-change tools, nor does it mention any preconditions or exclusions.

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

panelica_ftp_post_v1_ftp_accounts_id_suspendA

Suspend FTP account

HTTP: POST /v1/ftp-accounts/:id/suspend Category: FTP Required scopes: ftp:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false, so the description is not contradicting them. It adds useful context by stating 'Required scopes: ftp:write' and 'Mutating: changes server state.' It does not detail what suspension does to active sessions, but with annotations present, the added auth/state information is 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?

The description is compact and front-loaded: the core purpose appears first, followed only by essential metadata. Every line earns its place without redundancy.

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

Completeness4/5

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

For a simple mutation requiring only an id, the description provides the endpoint, category, required scope, and state-change behavior. It lacks explicit guidance about the optional body parameter and reversibility via unsuspend, but those are partially inferable from the schema and sibling tool names.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3; both id and body have descriptions in the schema. However, id is only described as 'Path parameter: id' and body is declared as an opaque request body with no static schema, and the description adds no further 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?

States a specific action: 'Suspend FTP account', reinforced by the explicit HTTP POST endpoint and Category FTP. The verb/resource pair clearly distinguishes this from sibling tools like unsuspend and change_password.

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

Usage Guidelines3/5

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

Usage is implied through 'Suspend FTP account' and the endpoint, but the description does not explicitly say when to choose this over the sibling unsuspend tool, nor does it provide alternative routing. It does provide a prerequisite: required scope ftp:write.

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

panelica_ftp_post_v1_ftp_accounts_id_unsuspendA

Unsuspend FTP account

HTTP: POST /v1/ftp-accounts/:id/unsuspend Category: FTP Required scopes: ftp:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.8/5.0
Behavior3/5

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

The description adds the required scope (ftp:write), which is genuinely beyond what annotations provide. The 'Mutating: changes server state' line is consistent with readOnlyHint=false but largely restates it in plain language. It does not disclose side effects such as whether suspending/unsuspending affects active sessions or other server state, though annotations already carry the safety profile.

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

Conciseness5/5

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

Four short lines, each earning its place: the action, the HTTP route, the category, the auth scope, and the mutation warning. The key verb and resource are front-loaded before the metadata, with zero 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 simple mutation action, the essential call information is present: route, required id parameter, required scope, and mutation flag. The body schema is admittedly not statically declared, but the schema itself points to API docs, and a typical unsuspend call needs no meaningful body. The lack of an output schema is not compensated, but this is a minor gap for such an action.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description itself contributes no parameter meaning; the schema documents id as a path parameter and body as an open, undeclared object. The description does not compensate for the body being undocumented, but given the 100% coverage baseline, 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource ('Unsuspend FTP account') that unambiguously identifies the operation. It also provides the exact HTTP route (POST /v1/ftp-accounts/:id/unsuspend), which distinguishes it from siblings like suspend, change_password, and delete without requiring the agent to inspect 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 usage context is implied by the verb 'unsuspend' — the agent can infer this is for reversing a suspension — and the 'Required scopes: ftp:write' line gives a prerequisite. However, there is no explicit statement of when to use it versus the sibling suspend tool, nor any exclusion or alternative guidance.

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

panelica_git_delete_v1_git_oauth_idA
DestructiveIdempotent

Delete OAuth connection

HTTP: DELETE /v1/git/oauth/:id Category: Git Required scopes: git:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.8/5.0
Behavior4/5

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

Description explicitly warns 'destructive — permanently removes the resource', adding specificity beyond the destructiveHint annotation, and states the required scope git:delete. No contradiction with annotations; the idempotentHint is plausible for a delete 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?

Four short lines, front-loaded with the action, then method/path, category, scope, and warning. Every line adds distinct information with no waste.

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

Completeness4/5

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

For a single-parameter delete endpoint, the description conveys path, auth scope, category, and irreversibility. It omits response/error behavior, but no output schema exists and the destructive warning covers the key risk.

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

Parameters3/5

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

The input schema covers the single id parameter at 100% with 'Path parameter: id'. The description does not add parameter-level meaning beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb ('Delete') and resource ('OAuth connection') with HTTP path and category, clearly distinguishing it from sibling delete endpoints for git repositories, branches, keys, pipelines, and webhooks.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, such as OAuth init/token/callback or other git resource deletions. The only context is the action itself, so an agent must infer when deletion is appropriate.

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

panelica_git_delete_v1_git_repositories_idA
DestructiveIdempotent

Delete repository

HTTP: DELETE /v1/git/repositories/:id Category: Git Required scopes: git:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotations, the description explicitly warns that the operation is destructive and permanently removes the resource, adding irreversibility context the boolean annotation alone does not convey. It also discloses the required scope and HTTP method, giving the agent concrete behavioral and authorization expectations. No contradiction with annotations exists.

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?

Every line earns its place: the action, endpoint, category, required scope, and a one-line destructive warning. It is front-loaded with the primary purpose and has no redundant 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 single-parameter destructive delete with a high-coverage schema and relevant annotations, the description supplies the essential operational information: endpoint, auth scope, and permanence. It omits only explicit response expectations and sibling routing, both minor for this simple tool.

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

Parameters3/5

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

The schema already provides 100% coverage by describing 'id' as the required path parameter. The description's endpoint notation '/v1/git/repositories/:id' confirms that id identifies the repository, but it adds no formatting, validation, or lookup details, which is the expected baseline at this coverage level.

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, 'Delete repository', and anchors it to the exact HTTP endpoint 'DELETE /v1/git/repositories/:id'. This clearly distinguishes it from sibling Git deletion tools for branches, keys, pipelines, and webhooks.

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 context by listing the HTTP method, category, and required scope 'git:delete', which implies the intended use case. However, it does not explicitly say when to prefer this tool over sibling deletion tools or state when not to use it, so usage guidance remains implied rather than direct.

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

panelica_git_delete_v1_git_repositories_id_branchesA
DestructiveIdempotent

Delete branch

HTTP: DELETE /v1/git/repositories/:id/branches Category: Git Required scopes: git:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly warns 'WARNING: destructive — permanently removes the resource,' which reinforces and adds specificity beyond the destructiveHint annotation. It also discloses the required scope 'git:delete.' No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action. The HTTP method/path, required scope, and destructive warning each add necessary operational information. There is minimal 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 single-parameter destructive tool, the description names the resource, endpoint, required scope, and permanence of the action. However, it does not clarify what value the 'id' parameter should take or how the specific branch is identified, which leaves an important gap for safe 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 100%, so the baseline is 3. However, the description adds no meaning beyond the schema: 'id' is only described as a path parameter, and the description does not clarify whether it refers to the repository ID, branch ID, or how the target branch is selected.

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 branch') and includes the exact HTTP endpoint and method (DELETE /v1/git/repositories/:id/branches). This distinguishes it from sibling branch tools that GET or POST to the same resource, and from other git delete 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. It does not mention that listing branches should use GET /branches, creating branches should use POST /branches, or deleting an entire repository should use another delete tool. The usage context is only implied by the action name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_delete_v1_git_repositories_id_environments_envidA
DestructiveIdempotent

Delete environment

HTTP: DELETE /v1/git/repositories/:id/environments/:envId Category: Git Required scopes: git:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
envIdYesPath parameter: envId

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The warning 'destructive — permanently removes the resource' adds meaningful behavioral context beyond the annotations' destructiveHint, explicitly communicating irreversibility and that the target resource will be removed. The required scope 'git:delete' also helps an agent understand authorization needs. This is consistent with the annotations, so no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, with each line serving a purpose: action, HTTP method/path, category, required scopes, and destructive warning. There is no fluff or redundant explanation, and the key 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 simple two-parameter DELETE endpoint with no output schema, the description covers the essential operational facts: what is deleted, the endpoint shape, required scopes, and the destructive/permanent nature. It does not detail side effects on related resources, but given the low complexity and strong annotations, this is 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 schema descriptions only say 'Path parameter: id' and 'Path parameter: envId', which is minimal. The description's HTTP path enriches this by showing that 'id' refers to the Git repository and 'envId' refers to the environment within it. Since schema coverage is already 100%, this extra context raises it above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Delete environment', a specific verb+resource phrase, and the embedded HTTP path '/v1/git/repositories/:id/environments/:envId' clarifies that this deletes an environment from a Git repository. This clearly differentiates it from sibling tools like the GET, PUT, and POST environment endpoints.

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 that GET should be used to inspect environments, PUT to update, or POST to create, nor does it state any prerequisites or exclusions. The only usage signal is the operation name itself, which is 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.

panelica_git_delete_v1_git_repositories_id_keys_keyidA
DestructiveIdempotent

Delete deploy key

HTTP: DELETE /v1/git/repositories/:id/keys/:keyId Category: Git Required scopes: git:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
keyIdYesPath parameter: keyId

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly warns that the operation is destructive and permanently removes the resource, and it lists the required scope 'git:delete.' This adds meaningful context beyond the annotations themselves and does not contradict destructiveHint or readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the verb and resource. The HTTP method/path, category, required scope, and destructive warning each carry useful operational information without unnecessary 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 two-parameter DELETE operation with annotations covering destructive and idempotent behavior, the description plus schema is sufficient for correct invocation. The main missing piece is alternative/selection guidance, but that is already accounted for in usage_guidelines.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both parameters documented as path parameters. The HTTP path in the description clarifies that id refers to the repository and keyId to the deploy key, but it does not add substantial meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Delete deploy key,' which is a specific verb and resource, and the HTTP path confirms the exact target. It does not explicitly distinguish itself from sibling tools like the GET or POST key endpoints, 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?

The description provides no guidance about when to use this tool instead of related endpoints such as listing keys (GET /v1/git/repositories/:id/keys) or creating keys (POST /v1/git/repositories/:id/keys). It states the operation but not selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_delete_v1_git_repositories_id_pipelines_pipelineidA
DestructiveIdempotent

Delete pipeline

HTTP: DELETE /v1/git/repositories/:id/pipelines/:pipelineId Category: Git Required scopes: git:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
pipelineIdYesPath parameter: pipelineId

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even though destructiveHint=true and readOnlyHint=false already signal mutation, the description adds value beyond the annotations: it specifies the auth requirement ('Required scopes: git:delete') and clarifies permanence ('WARNING: destructive — permanently removes the resource'), which rules out any soft-delete or recoverable interpretation. The annotation set (destructive=true, idempotent=true, readOnly=false) is not contradicted by the text. Minor gaps, such as side effects on running deployments, are not disclosed, preventing a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose, HTTP route, category, scopes, and warning each occupy a short line with no filler. 'Category: Git' is slightly redundant given the tool name prefix, and the route duplicates information encoded in the name, but the overall structure is tight and scannable. Every substantive line 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 two-path-parameter delete operation with full schema coverage and annotations already carrying the safety profile (destructive, read-only false, idempotent), the description is largely sufficient: it covers the action, exact route, required scopes, and permanence. It could be more complete by noting typical success/error behavior or effects on related resources like running pipeline executions, but with no output schema expected for a DELETE, those are minor omissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents both required parameters, establishing the baseline of 3. The description's route template adds marginal meaning by implying id is the git repository ID and pipelineId is the pipeline ID, but it does not elaborate on formats or validation. The description adds no parameter-level information beyond what the schema and route already convey.

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 opens with 'Delete pipeline' and reinforces it with 'HTTP: DELETE /v1/git/repositories/:id/pipelines/:pipelineId', a specific verb+resource pairing that is unambiguous. The HTTP route also makes it distinguishable from sibling methods like the PUT pipeline update (panelica_git_put_v1_git_repositories_id_pipelines_pipelineid) and POST pipeline creation, though it never names them explicitly. It falls short of 5 only because the first line repeats the annotation title rather than adding new scoping 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?

When to use the tool is implied by the delete semantics and route: use it to permanently remove a specific pipeline from a git repository. The description provides useful context (required scope 'git:delete' and a destructive warning) but never states when not to use it or directs the agent to alternatives such as the PUT pipeline tool for updating or the GET pipeline tool for listing. There are no explicit exclusions or condition-based routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_delete_v1_git_repositories_id_webhooks_webhookidA
DestructiveIdempotent

Delete webhook

HTTP: DELETE /v1/git/repositories/:id/webhooks/:webhookId Category: Git Required scopes: git:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
webhookIdYesPath parameter: webhookId

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly warns 'destructive — permanently removes the resource' and notes required scopes, which goes beyond the annotations. The annotation already declares destructiveHint=true and idempotentHint=true, and the description adds the permanence warning, which is a meaningful behavioral disclosure for an agent deciding whether to invoke this 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 extremely concise: 8 words of core content, then structured metadata (HTTP method, category, scope, warning). Every line carries information and there is zero 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 simple 2-parameter delete operation with annotations already declaring destructive and idempotent behavior, the description is complete enough. It includes the dangerous warning, required scope, and the resource path. No output schema exists, but for a DELETE operation the absence of an output schema is less critical. It could mention return status codes (204/404), but the annotations cover the destructive behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters as path parameters. The description does not add extra meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete webhook' with the HTTP DELETE method and resource path, identifying the specific verb (delete) and resource (webhook). It's distinguishable from sibling tools like the GET webhooks list and POST webhooks create.

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 states that this is a destructive deletion requiring 'git:delete' scope. However, it does not explicitly contrast this tool with other delete operations in the same category (e.g., deleting a whole repository vs. deleting a webhook), nor does it provide conditions for when to choose this tool over alternatives. The context is clear but no explicit alternatives or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_dashboardB
Read-onlyIdempotent

Git dashboard stats

HTTP: GET /v1/git/dashboard Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint; the description adds the required git:read scope and HTTP GET method. It does not contradict annotations, but it adds little behavioral context beyond what is already structured.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core resource phrase. Each line adds a distinct fact (endpoint, category, scope, read-only), though the 'Read-only' line is redundant with the readOnlyHint annotation.

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 simple zero-parameter read-only tool, and the description provides method, scope, and category. However, with no output schema, it does not specify which stats are included in the dashboard or the response shape, leaving the agent to rely on the name.

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 there is nothing for the description to document. With 0 parameters and 100% schema coverage, 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 states the resource ('Git dashboard stats') and endpoint, and 'stats' implies a read operation. It is clear enough to identify the tool, though it does not explicitly differentiate from sibling git stats tools like panelica_git_get_v1_git_repositories_id_stats.

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 per-repository stats, git quota, or logs dashboard. No use cases, prerequisites (beyond scope), or exclusions are mentioned, so an agent must 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.

panelica_git_get_v1_git_deployments_id_logsB
Read-onlyIdempotent

Get deployment logs

HTTP: GET /v1/git/deployments/:id/logs Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds the required scope 'git:read' and confirms read-only, which is useful auth context, but it does not describe the response format, pagination, truncation, or any streaming behavior of the logs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action, then followed by useful HTTP, category, scope, and read-only metadata. No sentences are wasted, though the content is thin enough that it could have added semantics without becoming bloated.

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 GET endpoint, the description is close to adequate: it gives the endpoint, required scope, and safety profile. However, there is no output schema and no description of what the returned logs look like, which is a notable gap for an agent interpreting the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The schema only says 'Path parameter: id' and the description does not add meaning beyond that; an agent must infer from the endpoint that id is a Git deployment ID.

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: 'Get deployment logs.' It is specific enough to tell an agent what the tool does, but it does not differentiate this from sibling logs tools beyond the resource name, so it stops 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?

There is no guidance about when to use this tool versus alternatives. Sibling tools include other logs endpoints (e.g., cron job logs, node app logs, python app logs), and the description gives no explicit context for choosing this one over them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_oauthA
Read-onlyIdempotent

List OAuth connections

HTTP: GET /v1/git/oauth Category: Git Required scopes: git:read Read-only.

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?

Annotations already declare the tool read-only, idempotent, non-destructive, and open-world. The description adds useful context beyond those annotations by specifying the exact HTTP endpoint, category, and required scope 'git:read', which an agent needs to know before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, leading with the core action and then providing endpoint, category, scope, and safety information. Every line carries useful information with no 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?

For a zero-parameter list operation with strong annotations, this description is complete enough. It names the operation, gives the endpoint, identifies required scopes, and confirms read-only behavior; no additional information is necessary for correct invocation.

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 there are no parameter semantics for the description to clarify. The baseline of 4 applies because there is nothing about parameters the agent needs to resolve.

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 OAuth connections'. This clearly differentiates it from sibling git OAuth tools that create tokens or delete connections, and the HTTP endpoint reinforces the exact 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: whenever the agent needs to list OAuth connections. It provides the required scope 'git:read' as a prerequisite, but it does not explicitly contrast this tool with alternatives or state when another git/OAuth tool should be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_quotaA
Read-onlyIdempotent

Git quota info

HTTP: GET /v1/git/quota Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description reinforces this with 'Read-only.' It adds a useful authorization detail ('Required scopes: git:read') that is not present in the annotations. It does not describe the response contents, but for a simple zero-parameter read-only endpoint with strong annotations, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with each line conveying a distinct fact: resource, HTTP method, category, scope, and read-only status. The first line 'Git quota info' is somewhat redundant with the annotation title, and 'Read-only' repeats the annotation, so it is not perfectly zero-waste, but overall it is appropriately concise.

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 an endpoint with zero parameters and safety annotations, this is nearly complete, but there is no output schema and the description does not state what the quota info contains (e.g., usage, limits, units, or per-resource breakdown). An agent deciding whether this endpoint answers a specific quota question would still lack return-value semantics. More detail about the response would make it 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 and 100% schema description coverage, so the schema already provides complete parameter information. There is nothing for the description to add about parameters, and the baseline for a zero-parameter tool 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 states the resource ('Git quota') and the HTTP method (GET), and explicitly marks it as read-only. It is clear what the tool does, though it relies on the endpoint path and tool name for the verb rather than stating it directly. It does not explicitly differentiate from sibling quota endpoints like license quotas or resource quota, but the Git category provides enough 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 given on when to use this tool versus alternatives such as panelica_license_get_v1_license_quotas or panelica_resource_quota_get_v1_resource_quota. There are no preconditions, exclusions, or selection criteria beyond the required scope. The agent must infer the appropriate context from the name and path alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_repositoriesB
Read-onlyIdempotent

List repositories

HTTP: GET /v1/git/repositories Category: Git Required scopes: git:read Read-only.

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?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, and the description's 'Read-only' line is consistent with these rather than contradictory. It adds value beyond the annotations by stating the required scope (git:read) and the HTTP method/endpoint, giving the agent useful auth and transport context; however, it does not describe response contents or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose ('List repositories') followed by terse metadata lines (HTTP method, category, scope, read-only). Minor redundancy exists—'Read-only' restates readOnlyHint and the title duplicates the first line—but overall every line earns its place and there is 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-only collection listing, the description covers the essential context: purpose, endpoint, category, required scope, and non-destructive nature. The main gap is the absence of any note about the response shape (e.g., a list of repository objects) or pagination, though the absence of an output schema and the simplicity of the tool keep this gap minor.

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 schema, so there is nothing for the description to document; per the rubric, 0 params earns a baseline 4. The description correctly includes no parameter information because none 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 states a clear verb and resource ('List repositories') with the HTTP endpoint GET /v1/git/repositories, making the collection-level intent obvious. It is distinguishable from sibling tools like panelica_git_get_v1_git_repositories_id (single repository) by the plural 'repositories' and the path shape, though it does not explicitly name or contrast 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 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 panelica_git_get_v1_git_dashboard, panelica_git_get_v1_git_quota, or the per-repository GET tool. The plural 'List repositories' and the collection path imply usage, but the description provides no exclusions, preconditions, or routing hints, which matters given the large palette of git-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_repositories_idA
Read-onlyIdempotent

Get repository

HTTP: GET /v1/git/repositories/:id Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds 'Required scopes: git:read' and 'Read-only,' providing useful authentication and safety context beyond the annotations. No contradiction with annotations exists.

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 very short and front-loaded with the core action 'Get repository.' It contains no filler, though 'Read-only' and 'Category: Git' partly duplicate information already available in annotations and 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?

This is a simple single-parameter read-only tool, and the annotations plus schema provide strong context. However, there is no output schema and the description does not explain what repository data is returned, leaving the agent to infer the response format entirely from the resource name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the single 'id' parameter described as 'Path parameter: id.' The description adds no extra information about the parameter, so the schema carries the full semantic burden. Baseline of 3 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 states 'Get repository' and includes the HTTP path 'GET /v1/git/repositories/:id', making it clear that this fetches a single repository by ID. It is unambiguous about the resource, though it does not explicitly distinguish itself from sibling tools like repository stats, branches, or pipelines.

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 only implied: an agent can infer this tool is for retrieving a single Git repository by ID. The description provides category and scope information but no explicit when-to-use guidance or alternatives, and does not explain when this should be chosen over related repository subresource tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_repositories_id_branchesB
Read-onlyIdempotent

List branches

HTTP: GET /v1/git/repositories/:id/branches Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the required git:read scope and HTTP GET method, which are useful behavioral details, but omits response shape and pagination. No contradiction with 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?

The description is compact and front-loaded: purpose first, then method/path, category, required scope, and safety flag. Each line adds value with no filler, though the read-only line is slightly redundant with annotations.

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 list, the essentials for invocation are present: route and scope. However, there is no output schema, so the description should hint at the return format or lack of pagination/filtering, which it does not—an agent cannot predict whether the response is plain branch names or structured objects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the schema's parameter description ('Path parameter: id') is uninformative. The description's HTTP path 'GET /v1/git/repositories/:id/branches' adds the key meaning that id is the repository whose branches are listed.

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 opens with 'List branches,' a specific verb and resource, and the HTTP line anchors it to a git repository's branches. This is clear enough to distinguish from the branch create/delete siblings, though it never explicitly names 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 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. Among the many git read siblings (commits, pipelines, stats, files, keys), nothing indicates when 'list branches' is the right choice, and 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.

panelica_git_get_v1_git_repositories_id_commitsB
Read-onlyIdempotent

List commits

HTTP: GET /v1/git/repositories/:id/commits Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false). The description adds useful context beyond those: the HTTP method, the required scope 'git:read', and it explicitly restates 'Read-only.' It does not disclose pagination, ordering, or response shape, but for a read-only list endpoint the annotations keep the bar low. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, starting with 'List commits' followed by terse metadata lines for endpoint, category, scope, and read-only flag. It is appropriately sized, though 'Category: Git' and 'Read-only.' add little beyond what the tool name and annotations already convey.

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 low-complexity tool (1 param, read-only), the description covers the call mechanics: endpoint, method, scope, and one path parameter. With no output schema, the description carries the burden of describing return values, and it is silent on what a commit list contains (e.g., hash, message, author, date) or whether pagination applies. This is a meaningful but non-fatal 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 coverage is 100% but the parameter description 'Path parameter: id' is circular and uninformative. The description partially compensates via the endpoint '/v1/git/repositories/:id/commits', which strongly implies id is the git repository ID. However, the description never explicitly defines the parameter's meaning, so it stays at the baseline of 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 a specific verb and resource: 'List commits' for a git repository, and the HTTP line confirms the exact endpoint. The operation is clear and consistent with the annotation title. However, it does not explicitly distinguish itself from near-siblings like panelica_git_get_v1_git_repositories_id_commits_hash_diff, relying on the tool name to differentiate.

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 through the endpoint 'HTTP: GET /v1/git/repositories/:id/commits' and category 'Git', so an agent can infer it lists commits for a specific repository. There is no explicit when-to-use/when-not-to-use guidance, and no mention of alternatives such as the commits_hash_diff endpoint when a diff is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_repositories_id_commits_hash_diffA
Read-onlyIdempotent

Get commit diff

HTTP: GET /v1/git/repositories/:id/commits/:hash/diff Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
hashYesPath parameter: hash

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the operation read-only, idempotent, and non-destructive; the description adds the required git:read scope, which is useful invocation context. It does not describe response shape, but for a simple GET diff this 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 compact and front-loaded with the core action, followed by endpoint, category, scope, and read-only status. Every line earns its place with 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 two-parameter GET endpoint with no output schema, the description covers the endpoint, required scope, and safety profile. It does not describe the diff return format, but the operation is simple enough that an agent can invoke it correctly from this definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter is documented as a path parameter. The description reinforces that id is the repository identifier and hash is the commit hash via the URL pattern, but adds little 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 the operation as "Get commit diff" and the explicit HTTP path makes the target resource unambiguous. It is clear, but it does not explicitly differentiate this from sibling tools such as the commits list endpoint or mention when this resource should be chosen.

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 for when to use this tool versus related Git repository tools. An agent must infer from the endpoint name that it is for retrieving a specific commit's diff; there is no context around workflow or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_repositories_id_deploymentsA
Read-onlyIdempotent

List deployments

HTTP: GET /v1/git/repositories/:id/deployments Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the GET method, required git:read scope, and read-only confirmation, which are useful, but it does not cover response shape, pagination, or deployment status semantics. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the action. The HTTP path, category, scope, and read-only lines are useful, though 'Category: Git' and 'Read-only.' are largely redundant with the tool name and annotations, preventing a perfect score.

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, read-only list endpoint with strong safety annotations, this is sufficient for selecting and invoking the tool correctly. The main gap is the absence of any response or pagination detail, but the low complexity and lack of output schema keep this gap minor.

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 only parameter, id, has 100% schema coverage as 'Path parameter: id.' The description repeats the path placeholder but adds no additional semantics beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb and resource: 'List deployments,' and the included HTTP path narrows it to deployments of a specific Git repository. This distinguishes it from sibling tools like the deployment-logs and pipeline/stat subresources 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by 'List deployments' plus the repository-scoped route, but the description gives no explicit when-to-use guidance or alternatives. There is no mention of related tools such as deployment logs or deployment cancellation, so an agent must infer the choice from the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_repositories_id_environmentsA
Read-onlyIdempotent

List environments

HTTP: GET /v1/git/repositories/:id/environments Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the required scope (git:read), which is useful authorization context beyond the annotations. It does not mention pagination or response shape, but for a simple list operation the main behavioral traits 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded with the purpose ('List environments'), followed by endpoint, category, scope, and read-only status. Every line carries useful information and there is 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 single-parameter, read-only list operation with strong annotations, the description is largely complete: it names the resource, gives the exact route, states the required scope, and confirms safety. The main gap is that it does not describe what fields the returned environment list contains, but the absence of a complex output schema and the simplicity of the operation keep this from being a major deficiency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single 'id' path parameter. The description's route line also shows ':id' in the path, but adds no additional semantic detail about the format, constraints, or meaning of the id beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly names the verb ('List') and resource ('environments'), and the HTTP route pins the resource to a specific Git repository by id. It distinguishes itself from create/update/delete environment siblings by the GET verb, though it does not explain what an 'environment' is or explicitly contrast itself with other Git list endpoints such as pipelines or webhooks.

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 listing branches, commits, deployments, or creating/updating environments. The read-only note and route imply a listing use case, but there are no explicit context cues or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_repositories_id_filesA
Read-onlyIdempotent

List repository files

HTTP: GET /v1/git/repositories/:id/files Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds the required scope 'git:read' and the HTTP GET method, which are useful behavioral/auth details. It does not contradict the 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?

The description is compact and front-loaded with the core action 'List repository files', followed by structured metadata (HTTP method, category, scopes, read-only). Every line serves a purpose with 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 simple read-only list endpoint with one path parameter and rich annotations, the description provides essential context: endpoint, required scope, and read-only nature. It does not describe the response shape or pagination, but the absence of an output schema makes this 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?

The schema covers the only parameter 'id' at 100% (as 'Path parameter: id'), so the baseline is 3. The description adds no further meaning to the parameter, which is acceptable given the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List repository files'. This is clear and distinguishes from sibling endpoints like files_content at a basic level, but it does not explicitly call out that 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 on when to use this tool versus related git or file manager tools. It does not mention alternatives, exclusions, or conditions, so an agent must infer usage from the name and endpoint path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_repositories_id_files_contentB
Read-onlyIdempotent

Get file content

HTTP: GET /v1/git/repositories/:id/files/content Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the required scope (git:read), the HTTP GET method, and an explicit read-only statement, which go slightly beyond what annotations alone state. This gives an agent useful authorization and safety context. It does not mention response details or error behavior, but those are less critical for a one-shot read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the action, and uses five short lines that each add something useful, such as the HTTP path, category, and required scope. The only redundancy is the 'Read-only' line, which mostly mirrors the readOnlyHint annotation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should at least hint at what is returned, such as raw file content or an encoded response, but it stays silent. It also leaves ambiguous how the file is selected: id could be a repository id, a file id, or something else. This makes correct invocation uncertain despite the single parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the only parameter, id, so the schema already documents it as a path parameter. The HTTP template in the description confirms this, but neither the schema nor description clarifies what entity the id refers to, so no extra meaning is added.

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 opens with a clear verb+resource pair ('Get file content') and reinforces the domain with the HTTP path and Category: Git. This distinguishes it from git stats, pipelines, and webhooks siblings, though it does not explicitly differentiate it from the file_manager_get_v1_files_content sibling.

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 the sibling file content endpoint or the other git repository tools. The use case is only implied by the tool name and path, 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.

panelica_git_get_v1_git_repositories_id_keysA
Read-onlyIdempotent

List deploy keys

HTTP: GET /v1/git/repositories/:id/keys Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile with readOnlyHint, idempotentHint, and destructiveHint=false. The description adds the required scope and HTTP method, but does not disclose response format or pagination behavior; acceptable for a simple read-only GET endpoint.

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, front-loaded with the core action, and includes useful endpoint and scope metadata. A few lines like 'Read-only' and 'Category: Git' are partly redundant with annotations and the tool name, but there is minimal wasted space.

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, read-only GET endpoint, the description provides the operation, endpoint path, category, scope, and read-only nature. There is no output schema, but the return value is reasonably implied by 'List deploy keys'; pagination and response details are not mentioned, which 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?

The input schema fully documents the single required 'id' parameter as 'Path parameter: id'. The description's endpoint path reinforces that it is a repository ID, but adds no deeper semantics or format guidance. With 100% schema coverage, baseline 3 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 states a specific action and resource: 'List deploy keys' for a git repository, reinforced by the HTTP method and path. It is clear, but it does not explicitly differentiate this from sibling tools such as the POST or DELETE deploy-key endpoints.

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 tool is for retrieving deploy keys and provides the prerequisite scope 'git:read' and read-only behavior. However, it does not explicitly state when to use this tool instead of creating or deleting deploy keys, or mention any alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_repositories_id_pipelinesA
Read-onlyIdempotent

List pipelines

HTTP: GET /v1/git/repositories/:id/pipelines Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the description's 'Read-only' line mostly restates those. It does add a useful authorization precondition, 'Required scopes: git:read', which is beyond the annotations. There is no mention of pagination, filtering, or response shape, so the behavioral context is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the action 'List pipelines' first, followed by the endpoint, category, scope, and safety note. There is no filler or redundant explanation beyond the harmless repetition of 'Read-only.' It is appropriately sized for a simple GET list endpoint.

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?

All essential invocation details are present: HTTP method, path, required repository id, and required scope. The annotations cover the read-only and idempotent behavior, so the absence of an output schema is not critical for such a simple list operation. It could add pagination or response-shape hints, but the core contract is complete enough 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?

The schema only describes the single parameter as 'Path parameter: id', which is low-value on its own. The description's full endpoint path, '/v1/git/repositories/:id/pipelines', clarifies that 'id' is the Git repository identifier, adding real semantic meaning beyond the schema. With 100% schema coverage and one required parameter, the agent has enough to invoke the tool correctly.

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 opens with 'List pipelines' and includes the exact HTTP path 'GET /v1/git/repositories/:id/pipelines', making the verb, resource, and repository scope clear. It is distinguishable from sibling git endpoints (branches, commits, webhooks, stats) because it names pipelines as the resource. It stops short of a 5 because it never explains what a pipeline is or explicitly contrasts itself with any sibling.

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 instead of related pipeline tools such as creating, updating, or deleting a pipeline. It only states the HTTP method, required scope, and read-only nature, which imply retrieval but do not provide explicit use cases, exclusions, or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_repositories_id_statsB
Read-onlyIdempotent

Repository stats

HTTP: GET /v1/git/repositories/:id/stats Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds limited behavioral insight. It does add the required scope 'git:read' and the HTTP method, which are useful beyond the annotations, but it does not disclose response shape, pagination, or other runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose and endpoint. All lines are short and relevant, though 'Read-only' partially duplicates the existing readOnlyHint annotation, which is a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple GET operation with one fully documented parameter and read-only annotations, the description is mostly adequate. However, because there is no output schema and the description does not clarify what statistics are reported, an agent may not know whether this endpoint fits its actual need without calling 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 100% coverage for the single 'id' parameter, so the description does not need to elaborate much. The URL pattern '/v1/git/repositories/:id/stats' reinforces that 'id' identifies a repository, but the description adds no extra meaning beyond the schema-provided 'Path parameter: id'.

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 resource (repository) and operation (get stats) clearly, and the HTTP path pins it down to a specific endpoint. However, 'Repository stats' does not specify which metrics or statistics are returned, so it is clear but somewhat vague about what 'stats' includes.

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 other repository-related tools, such as commits, branches, or pipelines. The description provides endpoint and scope information but no context or exclusions that would help an agent choose between closely related Git tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_get_v1_git_repositories_id_webhooksA
Read-onlyIdempotent

List webhooks

HTTP: GET /v1/git/repositories/:id/webhooks Category: Git Required scopes: git:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, and the description repeats the read-only nature. It adds useful context with the required 'git:read' scope and HTTP method, but it does not describe pagination, response shape, or any list-specific behavior beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: action first, then HTTP method, category, required scope, and safety hint. Every line carries useful information and none is wasted.

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 read-only list operation, the description provides enough invocation context: HTTP method, resource path, required scope, and read-only safety. It does not explain the return format, but no output schema exists and the annotations cover the operational profile well.

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 describes 'id' as a path parameter, which is thin. The description's endpoint '/v1/git/repositories/:id/webhooks' adds the key semantic that this id is a Git repository identifier, helping an agent supply the correct value. This exceeds the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action and resource: 'List webhooks', and the HTTP line '/v1/git/repositories/:id/webhooks' explicitly scopes it to webhooks on a Git repository. This distinguishes it from the global webhooks siblings and the create/delete git webhook 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 endpoint and 'Category: Git' imply this is for listing webhooks on a specific repository, but the description gives no explicit when-to-use guidance or contrast with alternatives like the global webhooks list. Usage context is present only by inference from the path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_deployments_id_cancelA

Cancel deployment

HTTP: POST /v1/git/deployments/:id/cancel Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It explicitly states 'Mutating: changes server state' and 'Required scopes: git:write', adding useful behavior and auth context beyond the annotations. It does not explain side effects of cancellation, such as whether the deployment is stopped in place or partially rolled back, so transparency is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action, followed by short labeled facts: HTTP path, category, required scope, and mutation behavior. There is no filler or redundant 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?

For a simple cancel operation, the essential invocation details are present: endpoint, required id, scope, and mutating nature. However, cancellation semantics, expected response, and the open-ended body parameter are not explained, so the description is functional but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the id parameter is described as the path parameter, matching the endpoint shown in the description. The body parameter is essentially undocumented ('Schema not statically declared — see API docs'), and the description adds no further meaning for it, so it stays at the baseline of 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 a clear verb and resource: 'Cancel deployment' with the explicit HTTP path POST /v1/git/deployments/:id/cancel. This makes the operation unambiguous, though it does not explicitly contrast with related sibling tools such as deploy or rollback.

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: use this when a deployment should be cancelled. Additional context like 'Category: Git' and 'Required scopes: git:write' provides a prerequisite, but there is no when-not-to-use guidance or reference to alternative tools like rollback.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_oauth_callbackC

OAuth callback

HTTP: POST /v1/git/oauth/callback Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, so the statement 'Mutating: changes server state' mostly restates the annotation. The description adds the git:write scope requirement and a generic mutation warning, but does not disclose what state changes occur (e.g., storing OAuth credentials) or whether a redirect/response is involved. No contradiction with annotations 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 compact and uses line breaks to separate endpoint, category, scope, and mutation facts, with no filler. The opening 'OAuth callback' repeats the title, but the rest of the metadata is useful and quickly 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?

With no output schema and an opaque body schema, the agent is left without enough context to invoke the callback correctly: the body format is punted to API docs and the return/redirect behavior is unspecified. For a state-changing flow endpoint, omitting what happens during the callback and what the caller should pass is a significant 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?

The schema has 100% description coverage for its single 'body' parameter, so the baseline is 3; the description itself adds no parameter-level meaning. The schema defers body content to API docs with additionalProperties allowed, and the description does not compensate by explaining what fields (e.g., code, state) the callback body should contain.

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 is essentially 'OAuth callback', which is a tautology of the tool name/title and does not say what operation the endpoint performs. It gives the HTTP method and route but does not explain that this completes the OAuth handshake or which provider/credential flow it resolves. It also does not distinguish itself from sibling endpoints like git_oauth_init or git_oauth_token.

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 endpoint versus the OAuth init/token siblings or any other Git tool. The description does not mention the surrounding OAuth flow or any prerequisites/redirect conditions, so an agent cannot determine the correct invocation context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_oauth_initB

Init OAuth flow

HTTP: POST /v1/git/oauth/init Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate this is not read-only and is not idempotent; the description adds 'Required scopes: git:write' and 'Mutating: changes server state', which is useful but minimal. It does not disclose what server state is changed, whether a redirect or authorization URL is returned, or what side effects 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose. Some lines, such as 'Category: Git' and 'Mutating: changes server state,' overlap with annotations and the tool name, but the overall structure remains efficient with no substantial fluff.

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 the description does not explain the response format or the subsequent OAuth steps (callback, token). The body parameter is essentially undocumented beyond 'see API docs,' leaving an agent without enough information to know what to send or expect.

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 reported as 100%, so the parameter is at least documented, but the body schema only says 'Schema not statically declared — see API docs.' The tool description adds no parameter-level meaning, so it relies on the baseline of 3 for adequate schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Init OAuth flow') and resource, and includes the HTTP endpoint and category. It is specific enough to identify the tool's purpose, though it does not explicitly distinguish this from sibling OAuth tools like git_oauth_callback or git_oauth_token.

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 say when to use this tool versus the related OAuth callback or token endpoints, nor does it explain the expected OAuth flow sequence or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_oauth_tokenB

Save OAuth token

HTTP: POST /v1/git/oauth/token Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only, and the description adds concrete auth and side-effect context: 'Required scopes: git:write' and 'Mutating: changes server state.' This gives an agent useful behavioral signals beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the purpose, followed by endpoint, category, scopes, and mutating behavior. A couple of lines partly repeat annotation or naming info, preventing a perfect score, but there is no meaningful 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 simple and annotations cover the safety profile, but the body schema is not statically declared and the description does not clarify what the OAuth token payload should contain or what the response looks like. It is adequate for selection but incomplete for invoked correctly without external API docs.

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 a single free-form 'body' parameter with a generic description, and schema description coverage is 100%. The description itself adds no field-level meaning, so it provides only the baseline value expected when the schema is already documented.

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 ('Save') and resource ('OAuth token'), and adds the HTTP endpoint and Git category. However, 'save' is somewhat generic and it does not explicitly distinguish this from the sibling OAuth endpoints like oauth_init or oauth_callback.

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 related Git OAuth tools, nor any explanation of the expected OAuth flow or prerequisites. The scopes and mutating flag are useful metadata, but they do not constitute usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_repositoriesB

Clone repository

HTTP: POST /v1/git/repositories Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states 'Required scopes: git:write' and 'Mutating: changes server state', which adds useful behavioral context beyond the annotations that already mark it as not read-only and not idempotent. However, it does not describe consequences such as where the clone lands, whether existing data is overwritten, or what side effects occur. With openWorldHint=true and no output schema, more transparency would be valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action. The HTTP line and category repeat what is already encoded in the tool name, which is mildly redundant, but the scopes and mutation warning earn their place. Overall it wastes little space, though it sacrifices important detail.

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 POST operation with an undeclared request schema, no output schema, and openWorldHint=true, this description is severely incomplete. An agent cannot correctly invoke the tool because it does not know what fields to include (e.g., repository URL, name, target directory) or what the response will look like. The pointer to API docs lives in the schema, not the description, and does not make the tool self-sufficient.

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 declares one 'body' parameter but only says 'Schema not statically declared — see API docs', which provides no actual semantic meaning. The tool description adds nothing about required request fields or body structure. Although schema coverage is technically 100%, the coverage is empty of content, so the description fails to compensate and the agent cannot determine what to send.

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-resource pair 'Clone repository', which clearly identifies the operation. This distinguishes it from the many sibling git tools (e.g., fetch, pull, deploy, branches) and from read-only repository listing tools. No other sibling shares this exact 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?

The description provides no guidance on when to use this tool versus alternatives like fetch, pull, or creating a repository. It states the HTTP method, category, and scopes, but these are not usage conditions. An agent has no basis for deciding between cloning and other git operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_repositories_id_branchesB

Create branch

HTTP: POST /v1/git/repositories/:id/branches Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Mutating: changes server state' and lists required scopes, adding context beyond the annotations. It aligns with annotations (readOnlyHint=false, idempotentHint=false). It could disclose more about failure conditions (e.g., branch already exists, repo not configured) but provides solid behavioral baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: operation, endpoint, scope, and mutating flag. No filler. It loses one point because the body schema gap is a significant omission that could have been addressed with a brief note about required body fields.

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 create operation with no output schema and an undocumented body, the description is incomplete. It provides the endpoint and scope but leaves the most critical information—what the request body needs to contain—entirely unresolved. An agent cannot reliably call 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?

The body parameter is described as 'Schema not statically declared — see API docs', providing no semantic meaning. The description does not explain what fields the body should contain (e.g., branch name, source branch), so an agent cannot construct a valid request from the available information.

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 explicitly states 'Create branch' and includes the HTTP endpoint, making the verb and resource clear. However, it doesn't distinguish itself from sibling tools like checkout, pull, or deploy, which are also git operations that interact with branches.

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 indicates this is a mutating POST that requires git:write scope, which implies it should be used when creating a branch. But it doesn't explicitly state when to use it vs alternatives, and there are many git-related sibling tools that could be confused with this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_repositories_id_checkoutB

Checkout branch

HTTP: POST /v1/git/repositories/:id/checkout Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark this as non-read-only and non-idempotent; the description adds the required git:write scope and states that server state changes, which is consistent but not deeply informative. It does not describe side effects on the working tree or current branch position beyond what the annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: one-line action followed by HTTP verb/path, category, scope, and mutation flag. No filler sentences.

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 an opaque request body and no output schema, the description is incomplete: it never says what the body payload must contain or what the response conveys. An agent cannot reliably construct a correct checkout request from this definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline applies, but the body parameter is described only as an open object with no statically declared schema. The description adds no further meaning about what fields the body needs (e.g., branch name), leaving the agent to consult external API docs.

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 resource: 'Checkout branch' on a Git repository. It is direct and distinct from the many git list/fetch/pull/deploy siblings, although it does not explicitly contrast itself 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when a branch needs to be checked out and provides prerequisites (git:write scope, mutating operation). However, it gives no explicit guidance on when to prefer this over related git tools such as fetch, pull, or branch creation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_repositories_id_deployC

Trigger deployment

HTTP: POST /v1/git/repositories/:id/deploy Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal readOnly=false, destructive=false, and idempotent=false. The description adds a generic 'Mutating: changes server state' note which is consistent with the annotations, but it does not disclose side effects such as async deployment behavior, production impact, or the ability to cancel. It adds some context but not rich behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief and front-loaded with the core action 'Trigger deployment'. HTTP method, category, required scope, and mutation flag are compactly listed with 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 non-idempotent, state-changing operation with an open body schema and no output schema, the description leaves too much unspecified: what the body should contain, how the deployment behaves, and what response to expect. An agent cannot confidently construct a correct request or understand the outcome from this description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the two properties, so the baseline is 3. The description itself adds no parameter detail; the id is self-explanatory, while the body is explicitly described as having no statically declared schema. The body's meaning is left wholly to API docs, which is a real gap but not compensated by the description.

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 'Trigger deployment' names a verb and resource, so it is not a pure tautology, but it closely mirrors the tool name and title and gives no detail on what a deployment entails. It also fails to distinguish this from sibling git actions like triggering pipelines or rolling back a deployment.

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 fetch, pull, rollback, or pipeline triggers. It states required scopes and that it is mutating, but these are authentication and effect notes, not usage selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_repositories_id_environmentsB

Create environment

HTTP: POST /v1/git/repositories/:id/environments Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal readOnlyHint=false and idempotentHint=false. The description adds the required scope 'git:write' and explicitly says 'Mutating: changes server state,' which reinforces the mutation behavior. It does not describe side effects or what the new environment affects, but it does not contradict the annotations.

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 no fluff. Endpoint, category, critical scope, and mutation flag each earn their place. It could have used slightly more room to explain the body requirements, but as written it is appropriately compact.

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 creation endpoint with no output schema and a body whose schema is explicitly 'not statically declared,' the description does not provide enough to reliably construct the request. It lists endpoint, scope, and mutation status, but omits what environment fields are expected, what the response will be, and any creation constraints or side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema_description_coverage is 100%, so the baseline is 3. The description adds no per-parameter meaning itself. The body parameter is described only as an open JSON object with 'Schema not statically declared,' leaving an agent without the field level information needed to construct a valid request body.

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 environment') and the resource via the HTTP path (/v1/git/repositories/:id/environments), which distinguishes it from the many GET, PUT, and DELETE environment siblings. It is clear but does not explicitly name or contrast 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 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 such as the PUT or DELETE environment endpoints, or when creating an environment is appropriate. The required scope and mutating flag provide context but not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_repositories_id_fetchB

Fetch repository

HTTP: POST /v1/git/repositories/:id/fetch Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description states the required scope (git:write) and explicitly flags that the call mutates server state, which is useful invocation-relevant context. It does not detail what state changes or side effects occur (e.g., which refs get updated), but with annotations present this 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?

The description is four short, front-loaded lines with no filler: the action, the route, category, auth, and mutating flag. Every line carries information an agent needs.

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 opaque body schema, no output schema, and the existence of the closely related pull sibling, this is not enough for an agent to invoke the tool correctly with confidence. It omits what fetch changes, when it is preferable to pull, and any response or error semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents id as the path parameter and body as an opaque JSON object, so the description does not need to repeat them; however, the description also adds no meaning about what the body should contain or whether it is required for a fetch. With 100% schema coverage the baseline is 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 opens with the specific action 'Fetch repository' and gives the full HTTP route POST /v1/git/repositories/:id/fetch, so the verb and resource are clear. However, it doesn't explain the Git-specific effect or contrast it with the sibling pull operation, so it stops 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?

There is no guidance about when to choose fetch over the closely related git_post_v1_git_repositories_id_pull, deploy, or checkout tools. The lines about scopes and mutation are prerequisites, not usage heuristics.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_repositories_id_keysA

Create deploy key

HTTP: POST /v1/git/repositories/:id/keys Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description explicitly discloses the required auth scope 'git:write' and states that the operation is mutating and changes server state. The annotations already set readOnlyHint=false, but the description adds concrete operational context about permission requirements and side effects. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose before the technical metadata. Each line carries useful information: HTTP method, category, required scope, and mutation status. The 'Category: Git' line is mildly redundant with the name but not distracting, so this is strong conciseness rather than maximal.

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 a deploy key, the agent still lacks critical information: what fields the request body should contain (e.g., key name, public key content, read-only flag), what the response format is, and any idempotency or error semantics beyond 'protocol not statically declared'. The description and schema together do not provide enough for an agent to construct a correct request body confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no parameter-specific meaning beyond what the schema states: id is a path parameter and body is a JSON request body. However, the body schema is explicitly marked as not statically declared with additionalProperties true, leaving the actual required deploy key payload undocumented, and the description does not compensate for this 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 opens with 'Create deploy key', a specific verb and resource, and the HTTP line confirms the exact endpoint. This clearly distinguishes it from sibling tools like panelica_git_get_v1_git_repositories_id_keys (list) and panelica_git_delete_v1_git_repositories_id_keys_keyid (delete) by signaling the create operation. 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 implies usage: use this when you need to create a deploy key on a Git repository. It gives category, required scope, and mutating status, which helps an agent understand the context, but it never explicitly says when not to use it or points to alternatives for listing or deleting keys. The guidance is present but only 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.

panelica_git_post_v1_git_repositories_id_pipelinesB

Create pipeline

HTTP: POST /v1/git/repositories/:id/pipelines Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states 'Mutating: changes server state' and 'Required scopes: git:write'. While annotations already indicate readOnlyHint: false (mutating), the description adds the scope requirement, which is useful. However, it does not disclose idempotency or other side effects beyond creating a pipeline.

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 highly concise and front-loaded with 'Create pipeline'. It efficiently conveys the HTTP method, path, scopes, and mutation status in a few lines with no unnecessary verbiage.

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 creates a pipeline, but the description lacks essential details about the request body structure (it says 'see API docs') and provides no information about the response or constraints. Since there is no output schema and the body is open, an agent cannot reliably construct a valid request, making this a significant gap for a creation operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes both parameters (id as a path parameter and body as an open object). The description adds no extra meaning for these parameters—it only restates the HTTP path. With 100% schema coverage, the baseline of 3 applies, and the description offers no further clarification.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create pipeline' and provides the HTTP POST endpoint. This precisely identifies the action (creating a pipeline for a git repository) and distinguishes it from sibling tools like the GET pipelines endpoint (listing) and DELETE pipelines endpoint (deleting).

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 prerequisites (e.g., a valid repository ID) or when to use an existing pipeline action. It only states the action without context on selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_repositories_id_pipelines_pipe_2eabd6e9B

Run pipeline

HTTP: POST /v1/git/repositories/:id/pipelines/:pipelineId/run Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
pipelineIdYesPath parameter: pipelineId

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry readOnlyHint=false, idempotentHint=false, and destructiveHint=false, and the description adds the required scope (git:write) and an explicit 'Mutating: changes server state' statement that aligns with the readOnlyHint. However, it omits key run-specific behavior such as whether execution is synchronous or fire-and-forget and what side effects or response the agent should expect.

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?

Five short lines, each carrying distinct information, with the core action front-loaded ('Run pipeline'). The HTTP route and mutating flag are slightly redundant with the tool name and annotations, but the format is tight 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?

For a tool that triggers pipeline execution with an opaque request body and no output schema, the description is thin: it never explains what the body should contain, whether the run is asynchronous, or what the response represents. An agent would need external API docs to call this confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, and the description adds no parameter-level meaning beyond the schema. The critical gap is the body parameter, whose schema is not statically declared; the description does nothing to clarify what the request body should contain.

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 ('Run pipeline') and the exact HTTP route (POST /v1/git/repositories/:id/pipelines/:pipelineId/run), making the operation identifiable. This distinguishes it from sibling pipeline tools that create, update, list, or delete pipelines, though it never names them 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?

The description provides no guidance on when to use this tool versus alternatives — it does not mention that pipelines are created with POST /pipelines, updated with PUT, or that other 'run' operations exist (e.g., cron job run). It only supplies context (category, scopes) rather than differential selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_repositories_id_pullB

Pull repository

HTTP: POST /v1/git/repositories/:id/pull Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true), and the description adds the explicit 'Mutating: changes server state' and 'Required scopes: git:write' context, which is useful. However, it does not disclose what a pull does to the repository (e.g., updating the working copy, potential conflicts or overwriting local changes, effects on deployments), which would matter for a mutating git 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 compact and well-structured: purpose first, then HTTP method/path, category, scopes, and mutation status. Each line carries some information; the only minor waste is that 'Pull repository' restates the title.

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 POST with an unconstrained body parameter and no output schema, the definition leaves an agent without guidance on what to send in the body, how pull differs from the fetch sibling, or what the operation will do to the repository state. The open-ended body is the main gap and the description does nothing to close 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 100%, so the baseline of 3 applies: the schema already documents id as a path parameter and body as an open JSON object. The description adds nothing about parameters, notably failing to clarify what the free-form body may contain (e.g., branch, depth) despite the schema explicitly punting to 'see API docs'.

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 ('Pull repository') reinforced by the explicit HTTP path POST /v1/git/repositories/:id/pull. However, it does not differentiate pull from the close sibling fetch (panelica_git_post_v1_git_repositories_id_fetch) — git pull semantics (fetch + merge) versus plain fetch are left to the agent's domain knowledge.

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 fetch, checkout, deploy, or rollback. With a large sibling set of git POST operations, an agent receives no selection criteria and must infer usage from git conventions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_repositories_id_rollbackC

Rollback deployment

HTTP: POST /v1/git/repositories/:id/rollback Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and idempotentHint=false, and the description adds 'Mutating: changes server state' and 'Required scopes: git:write', which is useful but partly redundant with the mutation flag. There is no explanation of consequences, prerequisites, or rollback behavior beyond the fact that it changes state; this is consistent with the annotations and not contradictory.

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 action, followed by route, scope, and mutation metadata. Most lines earn their place, though 'Category: Git' adds little beyond what the endpoint path already conveys.

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 endpoint with an open body schema and no output schema, this description is too sparse. It does not explain what rollback does to the deployment, what body fields an agent should supply, what successful or failed outcomes look like, or any caveats an agent must know before invoking 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?

The schema has only two parameters, and the description adds no meaning beyond the id path parameter shown in the HTTP route. The body parameter is described in the schema as 'not statically declared — see API docs', but the description does not compensate by hinting at what a rollback request body might contain, making correct invocation difficult.

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 opens with the specific verb+resource pair 'Rollback deployment' and reinforces it with the HTTP path POST /v1/git/repositories/:id/rollback, so an agent can identify the action and target resource. It is distinguishable from deploy, pull, and fetch siblings by the rollback verb, though it does not elaborate on what rollback actually entails.

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 alternatives such as deploy, fetch, pull, or the Laravel rollback endpoint. The scopes and mutating flag describe the operation but do not help an agent choose it over sibling Git operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_post_v1_git_repositories_id_webhooksA

Create webhook

HTTP: POST /v1/git/repositories/:id/webhooks Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description usefully discloses the required authorization scope ('git:write') and explicitly states that the call mutates server state. Annotations already cover read-only, idempotency, and destructive hints, so this additional scope and mutation context adds meaningful 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 compact, front-loaded with the core action, and each subsequent line adds a distinct operational fact: HTTP method, category, required scope, and mutability. There is no filler or redundant prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

As a creation tool, the description leaves the request body effectively unspecified—the schema only says 'Schema not statically declared — see API docs' and the description does not fill that gap with common webhook fields such as URL, events, or secret. There is also no output schema or response expectation, so an agent cannot confidently construct or validate a complete call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes 'id' as a path parameter and 'body' as an application/json request object, so the description adds no parameter-level meaning. Schema coverage is high, so the baseline of 3 applies, but the body schema is explicitly undocumented, meaning the agent still lacks details on required webhook 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 opens with a clear verb and object ('Create webhook') and includes the exact endpoint ('POST /v1/git/repositories/:id/webhooks'), so an agent can identify that it creates a webhook on a Git repository. It is clear, but it does not go beyond the minimal statement to explain what the webhook does or how it differs from the generic webhooks endpoints.

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 operational context—HTTP method, category, required scope 'git:write', and the fact that it mutates server state—so the intended use is inferable. However, it does not explicitly contrast with sibling tools such as the GET/DELETE webhooks endpoints or the generic webhooks creation tool, leaving some selection burden on the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_put_v1_git_repositories_idB
Idempotent

Update repository

HTTP: PUT /v1/git/repositories/:id Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds 'Required scopes: git:write' and 'Mutating: changes server state,' which are useful beyond annotations. However, annotations already convey readOnly=false, idempotentHint=true, and destrutiveHint=false, and the description does not elaborate on side effects, reversibility, or body consequences. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, with key metadata (HTTP method, scopes, mutability) in separate bullet lines. It earns most lines, though 'Category: Git' is redundant given the tool name and sibling 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?

Although the update action and scopes are clear, the tool has no output schema and an open-ended request body with no field guidance in description or schema. An agent would not konw what to include in the body or what result to expect, which is a significant gap for a write operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even though the tool description does not explain parameters. The body parameter is declared as an open schema ('Schema not statically declared — see API docs'), and the description does not compensate by describing likely body fields or structure, leaving meaningful ambiguity for the open-world body.

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 ('Update repository') and includes the HTTP method (PUT /v1/git/repositories/:id), which aligns with the tool name. It distinguishes from read/create/delete git operations, though it does not enumerate which repository fields can be updated.

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 sibling git operations (e.g., post/delete/get repository, branch operations, deployments). It identifies required scopes and mutating behavior, but not the decision context that would help an agent route to this tool vs alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_put_v1_git_repositories_id_environments_envidA
Idempotent

Update environment

HTTP: PUT /v1/git/repositories/:id/environments/:envId Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
envIdYesPath parameter: envId

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly discloses that the tool is mutating and changes server state, which adds meaningful caution beyond the annotations' readOnlyHint=false. It also states the required scope git:write, providing auth context not present in the annotations. It does not detail side effects or reversibility, but the annotations already mark it non-destructive and idempotent, so the additional disclosure is useful and consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, then provides the HTTP method, canonical path, category, required scopes, and mutation status in four terse lines. Every line contributes operational value and there is 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 mutation tool with an open request body and no output schema, the description is incomplete: it does not explain what fields the body should contain, what response to expect, or how to discover the environment update schema beyond the generic 'see API docs' note in the input schema. The annotations carry safety information, but the agent is left without enough detail to construct a valid update call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the declared parameters, so the baseline is 3. The description does not add meaningful parameter-level detail beyond the schema; id and envId are already described as path parameters and body is explicitly marked as an open request body with no static schema. The phrase 'Update environment' weakly implies the body carries environment settings, but that is not elaborated.

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-resource pairing ('Update environment') and reinforces it with the HTTP PUT method and the specific path /v1/git/repositories/:id/environments/:envId. It is distinct from sibling GET/POST/DELETE environment tools, though it does not explicitly name alternatives or enumerate what fields can be changed.

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 HTTP method 'PUT' and the phrase 'Update environment' imply this is for modifying an existing environment, but the description does not state when to prefer this over panelica_git_post_v1_git_repositories_id_environments or panelica_git_get_v1_git_repositories_id_environments. No exclusions or alternative routing are provided, though the required scope and mutating flag give some operational context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_git_put_v1_git_repositories_id_pipelines_pipelineidB
Idempotent

Update pipeline

HTTP: PUT /v1/git/repositories/:id/pipelines/:pipelineId Category: Git Required scopes: git:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
pipelineIdYesPath parameter: pipelineId

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description explicitly discloses 'Required scopes: git:write' (auth need) and 'Mutating: changes server state.' These add useful behavioral context and are consistent with readOnlyHint=false, idempotentHint=true, and destructiveHint=false.

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 scannable, with the HTTP line, category, scopes, and mutation flag each on its own line. Slight redundancy: 'Update pipeline' duplicates the annotation title and 'Category: Git' restates the tool's domain.

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 an open body schema and no output schema, the description leaves key operational gaps: no request body structure, no response expectations, and no hint about what fields can be updated. Endpoint and auth are covered, but an agent lacks enough to craft a correct body.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three parameters have descriptions (id, pipelineId, body). The description itself adds no extra parameter meaning, and the body is left as an open schema with no field details; baseline 3 applies since the schema carries the load.

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 'Update pipeline' and gives the HTTP PUT path, clearly identifying a modification action on a specific pipeline resource. The verb distinguishes it from GET/POST/DELETE pipeline siblings, though it doesn't explicitly name alternatives or scope the update beyond 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 about when to use this versus create, get, run, or delete pipeline tools. The only implied context is the word 'Update' and the path, with no prerequisites, exclusions, or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ip_addresses_delete_v1_ip_addresses_idA
DestructiveIdempotent

Delete IP address

HTTP: DELETE /v1/ip-addresses/:id Category: IP Addresses Required scopes: server:write WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint annotation, the description explicitly warns 'permanently removes the resource' and specifies the required scope 'server:write'. This adds meaningful behavioral context about auth requirements and irreversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and every line carries useful information: the verb, HTTP method, category, required scope, and a destructive warning. No filler or redundancy is present.

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 delete operation with annotations already declaring idempotency and destructiveness, the description covers the essential invocation details: endpoint, scope, and permanent impact. The lack of response details is acceptable given no output schema and low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the id described as 'Path parameter: id'. The description's HTTP example restates the path structure but does not add new meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the operation ('Delete IP address') with an explicit HTTP DELETE endpoint. This uniquely distinguishes it from sibling tools like GET/PATCH/POST operations on IP addresses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the verb 'Delete' and the HTTP method, but it does not explicitly state when to use this tool versus alternatives or when not to use it. The scope requirement adds context but not direct guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ip_addresses_get_v1_ip_addressesA
Read-onlyIdempotent

List IP addresses

HTTP: GET /v1/ip-addresses Category: IP Addresses Required scopes: server:read Read-only.

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?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false. The description adds the required scope 'server:read' and the HTTP method GET, which is useful authorization context, but it does not describe pagination, filters, or response shape beyond the 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?

Four short lines, with the action front-loaded: 'List IP addresses'. HTTP method, category, scope, and read-only flag are each presented compactly with no meaningful 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 zero-parameter read-only list endpoint, the description carries the essential invocation details: endpoint, HTTP method, required scope, and read-only nature. It lacks an explicit statement of what the response contains or how it differs from available/primary endpoints, but the overall complexity is low.

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 there is no parameter documentation burden. A baseline of 4 is appropriate because no parameters need semantic elaboration.

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 opens with a concrete verb+resource action: 'List IP addresses' and repeats the endpoint GET /v1/ip-addresses. It clearly identifies the operation and resource, and is distinguishable from sibling IP-address endpoints like available, primary, and id, though it does not explicitly explain those boundaries.

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 list endpoint versus sibling IP-address tools. It mentions no alternatives, exclusions, or preconditions, so an agent must infer selection from endpoint names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ip_addresses_get_v1_ip_addresses_availableA
Read-onlyIdempotent

Get available IPs

HTTP: GET /v1/ip-addresses/available Category: IP Addresses Required scopes: server:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description explicitly echoes 'Read-only.' It also adds the required scope 'server:read' and the HTTP method GET, which are useful operational details beyond the annotations. With no output schema, it would have been beneficial to describe the response shape, but for a zero-parameter read call, the provided info 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?

The description is extremely concise: five lines covering purpose, HTTP method, category, scopes, and read-only nature. It is front-loaded with the main purpose and contains no redundant text. Every line contributes to the agent's understanding.

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, parameterless, read-only endpoint, the description provides essential information: what it does, the HTTP path, required scopes, and its read-only nature. However, it does not clarify what 'available' means (e.g., free IPs not assigned to any resource) or what the response format is. Since there is no output schema and the distinction from sibling tools could matter, a bit more explanation would be beneficial, but it is not severely lacking.

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 no parameters, so the baseline is 4. The schema coverage is 100% (empty object), and the description does not need to explain parameters. The lack of any parameter documentation is irrelevant 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 starts with 'Get available IPs', a specific verb and resource, and the HTTP path '/v1/ip-addresses/available' is explicit. It clearly distinguishes from siblings like 'get_v1_ip_addresses' (which likely returns all IPs) by focusing on 'available' ones. The category line (IP Addresses) adds context without confusion.

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 the other IP address tools (e.g., when to get all IPs, primary IP, or available IPs). The description does not mention prerequisites, typical use cases, or when not to use it. It simply states what it does without routing to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ip_addresses_get_v1_ip_addresses_idA
Read-onlyIdempotent

Get IP address

HTTP: GET /v1/ip-addresses/:id Category: IP Addresses Required scopes: server:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, and the description reinforces this with 'Read-only'. It adds useful context by specifying the required scope 'server:read' and the exact HTTP endpoint, going beyond what the annotations alone provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the core action comes first, followed by HTTP method, category, scopes, and safety status. Every line carries useful information with 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 simple one-parameter read operation, the description provides sufficient invocation context: HTTP method, resource path, required scope, and read-only behavior. There is no output schema, and while return shape is not described, the tool is simple enough and annotations cover the safety profile adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single 'id' parameter. The description only repeats the parameter's role through the URL template and adds no additional type, format, or semantic detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get IP address') and pins it to an exact HTTP endpoint with an :id path parameter. The singular resource and endpoint clearly distinguish it from sibling list/available/primary IP address operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context clues like the HTTP method, endpoint, category, and required scope, making the intended use reasonably clear. However, it never explicitly states when to use this tool versus alternatives such as listing all IP addresses or retrieving available/primary IPs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ip_addresses_get_v1_ip_addresses_primaryA
Read-onlyIdempotent

Get primary IP

HTTP: GET /v1/ip-addresses/primary Category: IP Addresses Required scopes: server:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark the tool as readOnlyHint, idempotentHint, and destructiveHint false. The description adds the concrete required scope 'server:read' and explicitly repeats read-only, giving useful authorization and safety context beyond the structured annotations. There is no contradiction or implied side effect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: operation, HTTP method/path, category, required scope, and safety all in four short lines. Every line 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.

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, idempotent GET endpoint, this is complete: it names the resource, gives the invocation path, states the required scope, and confirms no side effects. The response shape is not described, but the resource ('primary IP') and simple semantics make the return value sufficiently predictable even without an 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 input schema is empty, with zero parameters and no enums, so there is nothing to document. The description appropriately includes no parameter details, and the baseline for a zero-parameter endpoint is 4.

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 operation ('Get primary IP') and gives the exact HTTP endpoint (/v1/ip-addresses/primary). The word 'primary' clearly distinguishes this from sibling IP-address tools that list all IPs, fetch available IPs, or fetch by ID.

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 choose this tool over sibling endpoints such as panelica_ip_addresses_get_v1_ip_addresses or panelica_ip_addresses_get_v1_ip_addresses_id. Required scopes and read-only are prerequisites, not usage routing, so an agent gets no explicit 'use this instead of that' context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ip_addresses_patch_v1_ip_addresses_idB

Update IP address

HTTP: PATCH /v1/ip-addresses/:id Category: IP Addresses Required scopes: server:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false, and the description reinforces mutability with 'Mutating: changes server state.' It adds the useful required scope server:write, but does not disclose side effects, partial-update behavior, or other constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the action, and the scope and mutability lines are relevant. Minor redundancy with annotations slightly reduces 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 unstructured body parameter and no output schema, the description is too thin: it does not say what an update can contain, how partial updates behave, or what a successful response looks like. The pointer to API docs lives only in the schema, not the description.

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 covers both id and body with descriptions, and the body description acknowledges its schema is not statically declared. The tool description itself adds no parameter-level meaning, such as which IP address fields can be changed, so it stays at baseline.

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 clear verb and resource ('Update IP address') and the HTTP method PATCH. It is distinguishable from sibling IP-address tools by the update operation, though 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?

No guidance is given on when to use this tool versus create, delete, get, or other IP-address sibling operations. The agent must infer that PATCH means modifying an existing IP address.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ip_addresses_post_v1_ip_addressesC

Create IP address

HTTP: POST /v1/ip-addresses Category: IP Addresses Required scopes: server:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds a scopes requirement and explicitly states 'Mutating: changes server state,' which is consistent with the readOnlyHint:false annotation. It does not go much further—no effect on existing IPs, idempotency caveats, or response behavior—so the value added beyond the annotations is modest. No contradiction with annotations.

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 definition is compact and structured: action, HTTP route, category, scope, and mutation flag each on their own line with no filler. It is slightly redundant with the title/name, but the brevity is appropriate for this endpoint.

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 create operation with an undeclared open body and no output schema, the definition lacks the body contract that would let an agent call it correctly. It covers authentication and side-effect framing but leaves the most important detail—what constitutes a valid IP-address creation payload—to external documentation.

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 is a generic application/json body whose schema is not statically declared and whose description merely points to API docs. The tool description adds no field names, required properties, or example shape, so an agent cannot construct a valid request from this definition 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 opens with a clear action and object ('Create IP address') and reinforces it with the HTTP method and endpoint, so an agent can tell this is the creation tool for IP addresses. It does not explicitly contrast with the sibling 'detect' variant, but the verb-plus-resource is unambiguous enough for selection.

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, and no alternative tool is named (e.g., the detect or set-primary IP endpoints). The only usage signal is implicit in the word 'Create' and the scopes line, which leaves the routing decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ip_addresses_post_v1_ip_addresses_detectC

Detect IP addresses

HTTP: POST /v1/ip-addresses/detect Category: IP Addresses Required scopes: server:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly says the operation is mutating and changes server state, which adds behavioral context beyond the readOnlyHint=false annotation. It also states required scopes, but it does not describe what state changes occur, whether the operation is reversible, or what side effects 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, structured, and easily scannable, with the main purpose stated up front. It omits important semantic content, but what it does include is presented without wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the dynamic body parameter, no output schema, and no usage guidance, the description is not sufficient for an agent to invoke this tool correctly. The endpoint, scope, and mutability are useful, but the core semantic questions—what 'detect' does, what payload to send, and what the response looks like—are unanswered.

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 provides a 'body' object whose schema is explicitly 'not statically declared — see API docs', so the description needed to compensate but does not mention the request payload at all. An agent has no way to know what to send in the body to perform IP detection.

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-resource pair ('Detect IP addresses') and gives the exact HTTP endpoint, so an agent can tell it is an IP-address operation. However, it does not explain what 'detect' means in this API or how it differs from the many sibling IP-address tools, such as the 'available' or 'set_primary' endpoints.

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 statement about when to use this tool versus the alternative IP-address tools. The only contextual clues are the category and required scope, which do not help an agent choose this endpoint over a sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ip_addresses_post_v1_ip_addresses_id_set_primaryB

Set primary IP

HTTP: POST /v1/ip-addresses/:id/set-primary Category: IP Addresses Required scopes: server:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses the required OAuth scope (server:write) and explicitly states that the call mutates server state, which are useful behavioral signals for an agent. It does not detail side effects such as which previous primary is demoted, but annotations already indicate it is not destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose, endpoint, category, required scope, and mutation flag are conveyed in five short lines. Minor redundancy exists between the opening summary and the endpoint/name, and the category line adds little, but there is no wasteful 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?

For a mutating action with no output schema, the definition gives the essentials—endpoint, required id, and required scope—and annotations cover the safety profile. It omits details about what happens to the previously primary IP and leaves the request body undocumented, so an agent cannot fully predict the call's consequences or payload options.

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 descriptions cover both parameters: id is a path parameter and body is an open JSON object whose schema is deferred to API docs. The description adds no parameter-level meaning, and with high schema coverage the baseline of 3 applies; the opaque body remains an API-documentation limitation rather than a description omission.

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—'Set primary IP'—with an explicit HTTP endpoint and category, so an agent can tell it is the operation that designates an address as primary. It does not explicitly contrast it with sibling operations like get_v1_ip_addresses_primary or patch_v1_ip_addresses_id, so differentiation is left to the name and endpoint.

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 alternative guidance is provided; the description does not say, for example, to prefer get_v1_ip_addresses_primary for reading the current primary or when re-assignment is allowed. Usage is only implicit in the action name and is not stated as guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_delete_v1_laravel_apps_idA
DestructiveIdempotent

Delete Laravel app

HTTP: DELETE /v1/laravel/apps/:id Category: Laravel Apps Required scopes: apps:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the annotations by explicitly warning that the operation is destructive and permanently removes the resource, and by stating the required scope 'apps:delete'. This gives an agent the safety-critical behavioral context needed before invoking an irreversible deletion.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: action, HTTP method, category, required scope, and a destructive warning. Every line earns its place 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter destructive delete with no output schema and no nested objects, the description is complete: it provides the endpoint, the required id, the required scope, and an explicit irreversibility warning. No additional information is necessary for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents the only parameter 'id' as a path parameter at 100% coverage. The description reinforces that id is used in the path via '/v1/laravel/apps/:id', but it does not add meaningful semantics beyond what the schema provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Delete Laravel app' — a specific verb and resource — and reinforces it with the exact HTTP method and path (DELETE /v1/laravel/apps/:id). This clearly distinguishes it from sister GET/PUT/POST Laravel app tools and from delete tools for other app types.

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 rather than explicit: the category and HTTP DELETE make clear this tool is for removing a Laravel app, but the description does not state when to prefer it over alternatives or mention any exclusions. No direct alternative delete tool exists for the same resource, so implied usage is reasonably acceptable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_get_v1_laravel_appsA
Read-onlyIdempotent

List Laravel apps

HTTP: GET /v1/laravel/apps Category: Laravel Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint false, and the description reinforces with 'Read-only.' Beyond that, it adds required scopes 'apps:read' and exact endpoint specifics. It does not describe response shape, but the annotations already cover the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the core action in its first line. It includes useful endpoint, category, scope, and read-only information; the only slight redundancy is repeating the read-only safety hint already present in annotations.

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, collection-level listing, the description supplies the endpoint, category, required scope, and safety behavior. The verb 'List' and plural resource communicate the return concept, and sibling tools cover single-app or stats retrieval. Nothing needed 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 input schema has zero parameters and 100% schema description coverage, so there is no parameter ambiguity to resolve. Baseline 4 applies; the description appropriately adds no param-specific content.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the specific action 'List Laravel apps,' naming the exact resource and HTTP GET path. The plural resource and category distinguish it from sibling tools like get_v1_laravel_apps_id (specific app) and get_v1_laravel_stats (aggregated stats).

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 enumerating all Laravel apps, and it includes required scopes, but it does not explicitly say when to choose this over get_v1_laravel_apps_id or get_v1_laravel_stats. No alternative tools are mentioned, so usage guidance is 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.

panelica_laravel_apps_get_v1_laravel_apps_idA
Read-onlyIdempotent

Get Laravel app

HTTP: GET /v1/laravel/apps/:id Category: Laravel Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the required scope 'apps:read', which is useful authentication context beyond the annotations. It does not describe response shape, error behavior, or any other operational details, but for a simple read operation the added context is sufficient for a mid-range score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action, followed by HTTP method, category, required scopes, and read-only status. Each line adds useful operational context, though 'Category: Laravel Apps' is somewhat redundant with the tool name. Overall it is well-structured and efficient for such a simple endpoint.

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, one fully documented parameter, and rich annotations (read-only, idempotent, non-destructive), the description is largely complete. It does not describe the return payload, but 'Get Laravel app' plus the path makes the expected outcome reasonably clear. A slightly richer description of what fields are returned would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the only parameter 'id' is documented as a path parameter. The description does not add new parameter semantics beyond the schema, but it does reflect the path template containing ':id'. With full schema coverage, the baseline of 3 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 states a specific verb and resource ('Get Laravel app') and provides the exact HTTP path. It clearly identifies this as a single-app retrieval endpoint, distinct from the list endpoint and from subresource getters like composer, env, or logs. However, it does not explicitly name sibling alternatives, so it stops short of full differentiation.

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 by the verb, resource, and path: an agent should use this when it has a Laravel app ID and needs the app's core details. It does not explicitly state when to prefer this over sibling endpoints such as list or subresource getters, and it provides no exclusions. This is acceptable for a simple read-by-id tool but not explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_get_v1_laravel_apps_id_composerA
Read-onlyIdempotent

Get composer packages

HTTP: GET /v1/laravel/apps/:id/composer Category: Laravel Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful context beyond the annotations by specifying 'Required scopes: apps:read', which is a meaningful access constraint. It does not contradict the annotations and adds some operational 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 compact and front-loaded: the core action appears first, followed by essential HTTP, category, scope, and read-only metadata. Every line is informative and there is no redundant or filler content beyond a harmless repetition of the read-only status already present in annotations.

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 GET endpoint with strong annotations, the description is nearly complete. It identifies the resource, endpoint, required scope, and read-only nature. It would be slightly stronger if it explicitly described what kind of data is returned, but the phrase 'composer packages' is sufficient for a competent agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents the single 'id' path parameter. The description repeats the path pattern with ':id' but does not add semantic meaning such as what the id represents or expected format. Baseline 3 is appropriate given the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get composer packages', and the HTTP line confirms the exact endpoint. This clearly distinguishes it from sibling Laravel app operations like env, logs, or composer require/remove/update, especially with the explicit 'Read-only' qualifier.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through 'GET' and 'Read-only', but it does not explicitly say when to choose this over alternatives such as composer require, remove, or update. An agent can infer the retrieval use case, but there is no direct routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_get_v1_laravel_apps_id_envA
Read-onlyIdempotent

Get app environment

HTTP: GET /v1/laravel/apps/:id/env Category: Laravel Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description reinforces this with 'Read-only.' It adds useful context beyond annotations by stating the exact GET path and the required scope 'apps:read', which are invocation-relevant details. It does not describe the response payload or note that env values may be sensitive, but this is a simple read operation with strong annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: the main action is front-loaded, followed by the HTTP endpoint, category, required scopes, and read-only status. Every line carries useful information and there is 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 one-parameter read-only endpoint, the description covers the essential invocation facts: HTTP verb and path, required scope, and read-only nature, while the schema covers the id parameter. It is slightly thin on what exactly is returned and on when to prefer it over sibling Laravel app endpoints, but this is a simple GET with no output schema and the annotations cover the safety profile.

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 100% description coverage for the single id parameter, so the baseline is 3. The description adds only marginal semantic value by showing id in the path context '/v1/laravel/apps/:id/env', indicating it identifies a Laravel app, but it does not explain id format or any additional constraints.

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 opens with a specific verb and resource, 'Get app environment', and includes the explicit HTTP endpoint so an agent can see it targets a Laravel app's env. It does not explicitly differentiate itself from sibling Laravel app subresource getters, but the path '/v1/laravel/apps/:id/env' makes the target 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 call this tool versus the many sibling Laravel app endpoints such as get_v1_laravel_apps_id, composer, logs, queues, or scheduler. The description only states category, required scopes, and that it is read-only, which implies safety but not selection context. There are no 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.

panelica_laravel_apps_get_v1_laravel_apps_id_logsB
Read-onlyIdempotent

Get app logs

HTTP: GET /v1/laravel/apps/:id/logs Category: Laravel Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnly, idempotent, and non-destructive hints, and the description adds the required scope 'apps:read' and the HTTP method. While this is useful and consistent, the description does not reveal much about the response shape, potential log volume, or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action, followed by useful metadata lines for method, category, scopes, and safety. Minor redundancy exists with 'Read-only,' but it is short and does not detract from 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?

For a simple one-parameter read-only endpoint, the description gives enough to attempt a call: the resource ID, HTTP path, and required scope are present. However, without an output schema, it does not clarify what the returned logs look like, whether they are paginated, or how they differ from other log sources.

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?

There is only one parameter, 'id', and the schema description already identifies it as a path parameter. The description repeats the path pattern but adds no extra detail about ID format, constraints, or accepted values, so it does not go beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation as retrieving app logs via an HTTP GET on a specific Laravel app resource, and the category identifies the domain. It is functional and specific, but it does not explicitly differentiate itself from the sibling 'logs' tools for Node.js, Python, or cron jobs beyond the path and category.

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?

Some usage context is implied by 'Category: Laravel Apps' and the path /v1/laravel/apps/:id/logs, so an agent can infer it is for Laravel app logs. However, the description does not explicitly state when to use this tool instead of the many related logging endpoints 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.

panelica_laravel_apps_get_v1_laravel_apps_id_queuesB
Read-onlyIdempotent

Get queue workers

HTTP: GET /v1/laravel/apps/:id/queues Category: Laravel Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is well covered. The description adds the required scope 'apps:read', which is useful auth context beyond the annotations, but it does not describe response contents or other 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 compact and front-loaded: a clear one-line purpose, followed by the endpoint, category, required scope, and read-only flag. Each line carries practical information with no filler or repetition beyond the minor redundancy of 'Read-only' with the annotation.

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-only GET with no output schema, the description provides the essential call details: endpoint, category, auth scope, and safety classification. It could mention what the response contains or that the id refers to a Laravel app, but the tool is simple enough that an agent can invoke it correctly with the given 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 100%, and the only parameter 'id' is documented as a path parameter. The description adds no additional meaning about what the id refers to, though the HTTP path context implies it is the Laravel app id. Baseline of 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Get queue workers', a specific verb and resource that clearly identifies the operation. The HTTP path further clarifies the resource context, though it does not explicitly distinguish this from sibling queue-related tools like restart or update.

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. There is no mention of sibling operations such as restarting queues or updating queue configuration, leaving the agent to infer the appropriate context from the tool name and HTTP method alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_get_v1_laravel_apps_id_schedulerB
Read-onlyIdempotent

Get scheduler

HTTP: GET /v1/laravel/apps/:id/scheduler Category: Laravel Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful auth context with 'Required scopes: apps:read', and reinforces the read-only nature. This goes beyond the structured annotations, though it does not describe response contents or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose. The HTTP line, category, scopes, and read-only note are useful, though 'Read-only' partially duplicates the annotation, and the category line provides limited selection 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?

For a simple one-parameter GET endpoint, the description includes enough to invoke the tool correctly: endpoint, required scope, and safety profile. However, with no output schema, it does not describe what the scheduler resource contains or what the response will look like, leaving some ambiguity about the returned data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single parameter id is already documented as 'Path parameter: id'. The description does not add additional semantic meaning beyond restating the endpoint path, so the baseline of 3 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 clearly states the action and resource: 'Get scheduler' for a specific Laravel app via GET /v1/laravel/apps/:id/scheduler. It is not a tautology and identifies the exact endpoint, though it does not explicitly differentiate itself from sibling Laravel app tools such as get_v1_laravel_apps_id_logs or get_v1_laravel_apps_id_queues.

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 provides metadata such as category and required scopes, but it does not explain the intended scenario, when not to use it, or how it relates to the sibling POST /v1/laravel/apps/:id/scheduler endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_get_v1_laravel_ownersA
Read-onlyIdempotent

List app owners

HTTP: GET /v1/laravel/owners Category: Laravel Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar for additional disclosure is lower. The description adds a useful auth requirement ('Required scopes: apps:read') and confirms the read-only nature, which helps safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the main action, followed by endpoint, category, scope, and read-only flag. It is efficient, though some details such as 'Read-only' and Category duplicate information already present in the annotations and tool structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list endpoint, the description covers the essential invocation facts: resource, HTTP path, category, required scope, and safety profile. Since no output schema exists, the agent may not know the exact owner fields returned, but the description is otherwise complete enough for correct invocation.

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 there is nothing left undocumented and the description cannot add parameter-level meaning. The zero-parameter baseline of 4 applies, with no further parameter explanation 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 opens with the concrete verb+resource pair 'List app owners' and reinforces it with the exact endpoint /v1/laravel/owners and Category: Laravel Apps. This clearly distinguishes it from analogous Node.js and Python owner-listing siblings such as panelica_node_js_apps_get_v1_nodejs_owners.

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 useful context like the HTTP endpoint, category, and required scope, but it does not explicitly state when to use this tool versus alternatives or when not to use it. Intended usage is implied by the name and category rather than directly explained.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_get_v1_laravel_php_versionsA
Read-onlyIdempotent

List PHP versions

HTTP: GET /v1/laravel/php-versions Category: Laravel Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds useful auth context with 'Required scopes: apps:read', which goes beyond the annotations. The 'Read-only' line is redundant with readOnlyHint, so full credit is not warranted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the action, followed by concise HTTP, category, and scope metadata. Minor redundancy exists because 'Read-only' duplicates the annotation and the title repeats 'List PHP versions', preventing 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 read-only list, the description covers the essential facts: endpoint, category, required scope, and safety. However, it does not distinguish this Laravel-specific PHP versions listing from the global panelica_php_get_v1_php_versions sibling, which is a meaningful selection risk for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and schema description coverage is 100%, so there is no parameter ambiguity for the description to resolve. With 0 params, 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 states a specific verb and resource, 'List PHP versions', and includes the HTTP endpoint so the operation is clear. However, it does not explicitly clarify whether these are Laravel-specific PHP versions, which creates possible confusion with the similarly named sibling panelica_php_get_v1_php_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 gives no explicit guidance on when to use this tool versus alternatives, and does not mention panelica_php_get_v1_php_versions at all. The 'Category: Laravel Apps' line and path imply a Laravel context, but the lack of explicit routing or exclusions leaves the agent to infer the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_get_v1_laravel_statsC
Read-onlyIdempotent

Laravel stats

HTTP: GET /v1/laravel/stats Category: Laravel Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description's 'Read-only' adds little. It does add the 'Required scopes: apps:read' auth requirement, which is useful, but it discloses nothing about response shape, aggregation scope, or other runtime 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 compact and easy to scan, with endpoint, category, scope, and safety information laid out clearly. However, the opening line 'Laravel stats' merely restates the tool name, and 'Read-only' duplicates the annotation, so not every line 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?

The invocation is trivially simple because there are no parameters and annotations cover safety, but the description does not explain what data the stats contain or whether they are account-wide or per-app. With no output schema, this lack of return-value context makes the tool hard to select confidently among the many stats-related 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 tool has zero parameters and the input schema is empty, so there is no parameter ambiguity for the agent. With 0 parameters, the baseline is 4, and the description does not need to compensate for any missing parameter documentation.

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 identifies the resource ('Laravel stats') and HTTP GET operation, so an agent can tell it retrieves some kind of statistics. However, it never says what stats are included or what they represent, leaving the purpose vague and indistinguishable from many other stats endpoints in the 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 Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives category, endpoint, and required scopes, but provides no guidance on when to use this tool versus alternatives. There is no mention of exclusion conditions, prerequisites beyond scopes, or a named sibling to prefer in different situations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_post_v1_laravel_appsB

Create Laravel app

HTTP: POST /v1/laravel/apps Category: Laravel Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and idempotentHint=false, so the description's 'Mutating: changes server state' is somewhat redundant. It does add the useful authentication requirement 'Required scopes: apps:write', which is not present in annotations. No behavioral contradiction is present, but deeper side effects or response behavior are not 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 purpose. Lines like HTTP method and required scopes are directly useful. 'Category: Laravel Apps' and 'Mutating: changes server state' are somewhat redundant with structured fields, but the overall text remains efficient and 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 mutating creation tool with an open-ended body schema and no output schema, the description is incomplete. It does not explain what fields the request body should contain, what prerequisites must exist, or what the caller should expect after creation. An agent would likely have to consult external API docs to invoke this 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 coverage is 100%, but the only parameter's description says 'Schema not statically declared — see API docs', which provides no real semantics. The tool description adds nothing about what the body should contain. The baseline of 3 applies because coverage is high, but the description misses the opportunity to help the agent construct a valid request body.

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 action and resource: 'Create Laravel app'. It is not vague or misleading, and the HTTP line reinforces the exact endpoint. However, it does not explicitly differentiate this creation operation from sibling Laravel app operations such as deploy or rollback, so it stops short of full sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Create Laravel app' implies the tool is used when creating a Laravel app, and 'Required scopes: apps:write' gives a prerequisite. But there is no explicit guidance about when to prefer this over related tools, no exclusions, and no mention of alternatives among the many sibling Laravel and app-management endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_post_v1_laravel_apps_id_artisanB

Run artisan command

HTTP: POST /v1/laravel/apps/:id/artisan Category: Laravel Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Mutating: changes server state,' which reinforces the readOnlyHint=false and idempotentHint=false annotations and adds a useful side-effect warning. It also discloses required scopes (apps:write). However, it does not warn that arbitrary artisan commands can have broad or destructive effects, which is a notable gap for an open-world command runner.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the key action before metadata. It contains no filler, though it could be considered too terse given that the body schema is open.

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 an open-world, mutating command runner with no output schema and an undocumented body shape, the description is not complete enough for an agent to call it correctly. It does not explain how to specify the command/arguments, what responses look like, or what safety considerations apply.

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 high: 'id' is documented as a path parameter and 'body' is described as a JSON request body whose schema is not statically declared. The tool description adds no further meaning about how to format the artisan command inside the body, so the agent is left to consult API docs.

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 exact operation ('Run artisan command') and ties it to a specific resource via the HTTP path '/v1/laravel/apps/:id/artisan'. This is specific enough to distinguish it from sibling Laravel app operations like deploy, composer, or scheduler. It is slightly broad because it does not enumerate which artisan commands are valid, 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?

No guidance is provided about when to use this tool versus alternatives such as composer update, deploy, rollback, or scheduler operations on the same app. The metadata gives category and scopes but no 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.

panelica_laravel_apps_post_v1_laravel_apps_id_composer_removeC

Composer remove

HTTP: POST /v1/laravel/apps/:id/composer/remove Category: Laravel Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a mutating, non-idempotent operation; the description adds the required apps:write scope and explicitly says it changes server state. It does not disclose consequences such as composer.json or composer.lock modifications, but it does not contradict the 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?

The description is compact, front-loaded with the operation name, and uses short metadata lines for endpoint, category, scopes, and mutation. Every line adds useful context and there is 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?

For a mutating tool with no output schema, the agent learns the endpoint, auth scope, and that it changes server state, but cannot determine the request payload or the effects of removing a package. The body schema is explicitly unspecified, and the description does not compensate by documenting expected content or return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline applies, and the id parameter is self-explanatory. However, the body is only described as 'Schema not statically declared — see API docs', and the description adds no field names or example for specifying which package to remove. This leaves the most important parameter under-documented, but the description itself does not actively mislead.

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 opens with 'Composer remove', which merely restates the tool name/title and does not say what is removed (a Composer package from the app's dependencies). The HTTP path and category add metadata but do not clarify the operation's full scope. Sibling tools like composer_require and composer_update imply the distinction, but the description never states it.

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 explains when to call remove versus require or update, nor what prerequisites apply. The scopes and mutating flag are useful but do not provide decision guidance. The reader must infer usage from the endpoint name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_post_v1_laravel_apps_id_composer_requireC

Composer require

HTTP: POST /v1/laravel/apps/:id/composer/require Category: Laravel Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is non-read-only and non-idempotent; the description reinforces this with 'Mutating: changes server state' and adds the required apps:write scope. It does not disclose specific side effects, such as changes to composer.json or composer.lock, but there is no contradiction with annotations.

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 short and easily scannable, with no verbose filler. However, it front-loads a title repetition and mostly lists metadata that is already present in the tool name or annotations, providing little substantive explanation.

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 mutating operation with an opaque body schema and no output schema, yet the description never explains what payload is needed, what effect the require has on the Laravel app, or when to use it relative to related Composer tools. An agent can identify the endpoint but cannot reliably construct a correct request or anticipate consequences.

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 high per the metadata, so the baseline is 3, but the body parameter is explicitly 'Schema not statically declared — see API docs.' The description adds no information about expected body fields such as package name or version, leaving the agent to guess the request payload.

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?

'Composer require' conveys the type of operation and the Laravel Apps resource category, but it is a terse label rather than a full action statement. It does not explicitly say that a Composer package is being added/required for the app, nor does it distinguish itself from composer_remove or composer_update beyond the verb.

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 choose this tool over siblings like composer_remove or composer_update, and no prerequisites are stated. The category and scope metadata do not help an agent decide between alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_post_v1_laravel_apps_id_composer_updateC

Composer update

HTTP: POST /v1/laravel/apps/:id/composer/update Category: Laravel Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The line 'Mutating: changes server state' merely restates what readOnlyHint=false and idempotentHint=false already convey in the annotations. The description does not disclose meaningful behavioral traits of this operation: it modifies composer.lock and the vendor directory, is non-idempotent, may take a long time, can break the app if dependency resolution fails, and has no automatic rollback. For a mutation with real side effects, this 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and the metadata lines (HTTP endpoint, category, scopes, mutation flag) are cleanly structured and scannable. However, the only substantive sentence is a tautology, so brevity here reflects under-specification rather than efficient communication. It is not bloated, but it earns no credit for substance.

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 an opaque request body, no output schema, and no explanation of what 'composer update' does to the application, the description is not complete enough for an agent to invoke it confidently. It provides the endpoint, scope requirement, and mutation warning, but leaves the request body semantics, execution behavior, and response unknown. The agent is forced to guess or look elsewhere.

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 documents id as a path parameter, but the body property is explicitly opaque ('Schema not statically declared — see API docs', additionalProperties true). The description adds nothing to compensate: it never says whether the body is required, optional, or should be empty, nor what options (e.g., --no-dev) might be expected. With a 100% schema description coverage claim that actually hides the critical parameter, the tool description fails to fill the gap.

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 opens with 'Composer update', which is a verbatim restatement of the title in the annotations and effectively the tool name. It never states in plain terms that this runs the Composer dependency-update command against the identified Laravel app or what that accomplishes (updating PHP packages per composer.json/composer.lock). The HTTP path and category metadata add context, but the core purpose line is 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?

There is no guidance on when to invoke this tool versus closely related siblings such as composer_require, composer_remove, artisan, deploy, or rollback. The description provides no decision criteria, no mention of prerequisites (e.g., a valid composer.json), and no warning about situations where composer update would be inappropriate. An agent must guess which operation fits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_post_v1_laravel_apps_id_deployC

Deploy Laravel app

HTTP: POST /v1/laravel/apps/:id/deploy Category: Laravel Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states 'Mutating: changes server state' and lists the required `apps:write` scope, which adds useful context beyond the annotations. However, it does not disclose whether deployment is reversible, long-running, or what side effects beyond 'changes server state' 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 short and front-loaded with the core purpose, then adds HTTP method, category, scope, and side-effect information in compact lines. The category line is redundant with the endpoint, but the overall structure 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?

For a mutating deploy operation with no output schema and an undeclared request body, the description is under-specified. It lacks details about expected body fields, deployment behavior, completion indicators, and failure modes, leaving an agent to guess how to 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?

Although schema description coverage is nominally 100%, the `body` parameter is effectively undocumented: 'Schema not statically declared — see API docs' tells the agent nothing about expected fields. The description itself adds no meaning for the `id` or `body` parameters, so the agent cannot reliably construct a valid request body.

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, 'Deploy Laravel app', and the HTTP path identifies the target as a Laravel app by id. This distinguishes it from Laravel action siblings like rollback, artisan, composer, and scheduler, though it does not explain what deploying actually entails.

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 related alternatives such as git repository deploy or Laravel rollback. The description provides authentication scope and mutation context, but no decision criteria, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_post_v1_laravel_apps_id_queues_restartB

Restart queue workers

HTTP: POST /v1/laravel/apps/:id/queues/restart Category: Laravel Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly says 'Mutating: changes server state' and lists required scopes, which adds some behavioral context beyond the annotations. However, it does not explain the operational impact of restarting workers (e.g., in-flight jobs, downtime, synchronous vs asynchronous) beyond the generic mutation statement; annotations already covered read-only/destructive hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the action, followed by useful HTTP, scope, and mutation metadata. The category and HTTP lines are somewhat redundant with the tool name/path, but the overall size is appropriate.

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 action taking only a required id, the call is understandable from the description and schema. However, with no output schema, the description does not indicate the expected response or any side effects beyond 'changes server state,' and the optional body is not explained in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: id is documented as a path parameter and body is described as an open request body. The description adds no parameter-level meaning, but because the schema already documents both parameters, the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the specific action 'Restart queue workers' and the HTTP path makes the resource explicit (/v1/laravel/apps/:id/queues/restart). The action is distinct from sibling queue tools (get/put queues) and the category helps scope it to Laravel 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?

No when-to-use or when-not-to-use guidance is provided. The description does not mention alternatives such as get/put queue endpoints or explain under what circumstances a restart is appropriate; it only states the action and required scopes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_post_v1_laravel_apps_id_rollbackB

Rollback deployment

HTTP: POST /v1/laravel/apps/:id/rollback Category: Laravel Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring readOnlyHint=false and idempotentHint=false, the description adds minimal but useful context via 'Mutating: changes server state' and the required scope 'apps:write'. However, it does not disclose what the rollback actually does to the deployment, whether it is reversible, or what side effects may occur, so the behavioral disclosure remains thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the core action ('Rollback deployment') followed by the HTTP route, category, scope, and mutation flag. There is little wasted text, though the available space could have been used to explain body semantics or rollback behavior.

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 mutating operation with no output schema, an open-ended body schema, and a sibling deploy/rollback pair that creates real ambiguity; the description does not define what the request body may contain, what a successful rollback returns, or what deployment state is affected. An agent has enough to identify the tool but not enough to invoke it confidently beyond the required id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both parameters, including the path id and a free-form body, so description-level parameter explanation is not strictly necessary. The body parameter is intentionally open-ended and the description provides no clarification about what fields or payload shape the rollback endpoint expects, which limits agent confidence in constructing a valid request.

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 'Rollback deployment' and includes the explicit HTTP route and Category: Laravel Apps, so an agent can tell this is about rolling back a Laravel app deployment. It does not explicitly contrast with similar sibling tools like git repository rollback or the Laravel deploy tool, but the category and endpoint make the resource 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?

There is no guidance on when to use this tool versus alternatives such as panelica_git_post_v1_git_repositories_id_rollback or the Laravel deploy endpoint. The description only lists required scopes and mutating behavior, leaving the agent to infer appropriate usage from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_post_v1_laravel_apps_id_schedulerB

Set scheduler

HTTP: POST /v1/laravel/apps/:id/scheduler Category: Laravel Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses required scopes ('apps:write') and explicitly marks the operation as mutating server state, which adds useful context beyond the annotations. It does not describe the actual side effects of setting the scheduler, but the readOnlyHint=false and idempotentHint=false annotations already partially cover the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is short, front-loaded with the action, and uses labeled metadata lines (HTTP, Category, Required scopes, Mutating) that are all pertinent. It earns the 4 for efficiency, though it omits a sentence about the scheduler payload that would make it fully 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 mutating endpoint whose body is an open object ('additionalProperties': true, 'Schema not statically declared'), yet the description gives no hint of the expected scheduler configuration and there is no output schema. An agent still cannot confidently know what to send, which is a material gap for a write 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 coverage is 100%, so the schema documents 'id' as a path parameter and describes 'body' as a request body, giving the baseline a 3. The tool description adds no additional meaning about what fields the scheduler body should contain, and the body's own schema explicitly defers to API docs.

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-resource pair ('Set scheduler') and repeats the HTTP POST path, which identifies the mutate endpoint for a Laravel app's scheduler and separates it from the GET scheduler sibling. It is slightly terse about what 'setting' the scheduler entails (schedule expression, enable/disable, etc.), so it stops 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?

There is no guidance about when to choose this tool over alternatives; the GET /v1/laravel/apps/:id/scheduler sibling is not mentioned, and no conditions or exclusions are stated. The action is implied by the name and POST method but not made explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_laravel_apps_put_v1_laravel_apps_id_queuesB
Idempotent

Update queue workers

HTTP: PUT /v1/laravel/apps/:id/queues Category: Laravel Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey readOnly=false and destructive=false; the description adds that it is mutating and changes server state and requires apps:write. It does not elaborate on side effects such as whether workers are restarted or how the update is applied, and idempotentHint=true is not explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short, front-loaded lines with no filler: action, HTTP path, category, scope, and side-effect flag each add quickly accessible 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 mutating tool with an undeclared request body and no output schema, the definition is too thin: it gives auth and path but omits the request payload shape and the observable result of updating queue workers.

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 covers id as a path parameter but declares the body as an open additionalProperties:true object with 'Schema not statically declared — see API docs'. The description does not compensate by listing expected fields, examples, or queue-worker options, so an agent cannot construct a correct body from this definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening phrase 'Update queue workers' names a concrete action and resource, and the HTTP line pins it to PUT /v1/laravel/apps/:id/queues. It is distinguishable from the GET and restart queue siblings by verb, but it does not explicitly call those siblings out.

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 PUT over the sibling GET /queues or POST /queues/restart. The description only supplies HTTP, category, scope, and mutating metadata, leaving the selection decision to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_license_get_v1_license_featuresA
Read-onlyIdempotent

Returns all 27 license features with their enabled/disabled status.

HTTP: GET /v1/license/features Category: License Required scopes: license:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral context beyond the annotations: the exact HTTP endpoint, required OAuth scope 'license:read', and the explicit read-only nature. It also specifies the exact count of returned items and their enabled/disabled status, which helps an agent anticipate the response shape. There is no contradiction with the readOnlyHint, idempotentHint, or destructiveHint 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?

The description is compact and front-loaded with the most important behavior: what is returned and in what form. The remaining lines supply endpoint, category, scope, and read-only status without redundancy. Every line 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 parameterless read-only list endpoint with rich annotations, the description is complete: it states the output content, the HTTP path, required authorization, and safety profile. No output schema exists, so the explicit mention of status fields helps fill that gap. An agent has enough information 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.

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 nothing unexplained and the baseline is 4. The description does not need to elaborate on parameter semantics because there are none. It still usefully clarifies what the response covers.

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 returns all 27 license features with enabled/disabled status, giving a specific verb and resource. It implicitly differentiates from the sibling feature-level tool via the 'all 27 license features' phrasing, but does not explicitly name or distinguish 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 usage context is implied: an agent would call this when it needs the full set of license features and their statuses. The description provides the HTTP method, category, and required scope, but does not state when to prefer this over related license tools such as the singular feature, plan, or quota endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_license_get_v1_license_features_featureA
Read-onlyIdempotent

Check if a specific license feature is enabled. Returns 404 if feature not found.

HTTP: GET /v1/license/features/:feature Category: License Required scopes: license:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
featureYesFeature key (e.g. email_support, waf_modsecurity)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds beyond those: it reveals response behavior (404 if feature not found), the required OAuth scope, and explicitly says 'Read-only.' The only minor gap is not describing the enabled/disabled response payload 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?

Four short lines: action, 404 behavior, HTTP path, category/scope/read-only. No filler, front-loaded with the key purpose. 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?

This is a trivial one-parameter GET tool, and the description plus schema fully cover the input. The output schema is absent, but for a boolean feature check the meaning is fairly clear without it. Only the response format (e.g., enabled:true) is not spelled out, which 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?

The schema covers 100% of parameters with a description and examples ('email_support, waf_modsecurity'). The description repeats the feature-path pattern but adds no new semantic meaning. Baseline 3 is appropriate because the schema already documents the only 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?

States a specific verb ('check if'), a specific resource ('a specific license feature'), and the success/failure semantics: Returns 404 if feature not found. The sibling list includes panelica_license_get_v1_license_features (list features) and panelica_license_get_v1_license_status, so it clearly identifies this as the per-feature existence/enabled 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?

The description gives the HTTP method and path (GET /v1/license/features/:feature) and required scopes (license:read), which clarifies how to invoke it. It does not explicitly contrast with sibling license endpoints or state when to choose this over panelica_license_get_v1_license_features, so there's no explicit exclusion guidance, but the operation is self-evident enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_license_get_v1_license_planA
Read-onlyIdempotent

Returns detailed license plan information including plan slug, name, status, and expiry.

HTTP: GET /v1/license/plan Category: License Required scopes: license:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and openWorldHint. The description adds the required license:read scope, the HTTP endpoint, and the expected response fields, which are not in annotations. 'Read-only' is redundant with the annotations but not contradictory.

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 main purpose sentence first followed by labeled endpoint, category, scope, and read-only lines. It loses half a point because 'Read-only.' repeats what annotations already convey.

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 GET, the description covers purpose, endpoint, auth scope, and key return fields. It does not explicitly clarify that this is the current account's plan versus a catalog of plans, a minor ambiguity given the plans_* sibling tools.

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 there is nothing for the description to explain. The baseline of 4 applies because 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?

States a specific verb ('Returns') and resource ('license plan information') plus a concrete list of fields (slug, name, status, expiry), making the tool's core function clear. However, it does not differentiate itself from sibling tools like license_status or plans_*, which could overlap in an agent's view.

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 described return content ('license plan information'), but there is no explicit guidance on when to prefer this over panelica_license_get_v1_license_status or panelica_plans_get_v1_plans, nor any when-not/alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_license_get_v1_license_quotasA
Read-onlyIdempotent

Returns all 6 resource quotas with current limits (domains, databases, ftp, email, subdomains, users).

HTTP: GET /v1/license/quotas Category: License Required scopes: license:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the bar is lower. The description adds the required `license:read` scope and the exact HTTP endpoint, which are useful invocation details beyond the annotations.

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 main sentence is front-loaded and informative, followed by compact metadata lines. The 'Read-only' line is redundant with the annotations, but this is a minor inefficiency.

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 GET with no output schema, the description gives the endpoint, required scope, and the list of quota types returned. It does not describe the exact response shape, but the simplicity of the operation and the annotation coverage make this acceptable.

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 the description does not need to explain parameter semantics. The parameterless nature is consistent with the description of a simple list-all endpoint.

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: 'Returns all 6 resource quotas with current limits' and enumerates them by name. The phrase 'all 6' also helps distinguish this from the singular sibling `panelica_license_get_v1_license_quotas_resource`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its use case (retrieve the complete license quota set) and provides useful context like category and read-only scope. However, it does not explicitly contrast with alternatives such as the singular quota endpoint or the `resource_quota` sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_license_get_v1_license_quotas_resourceA
Read-onlyIdempotent

Check quota limit for a specific resource. Returns 404 if resource not found.

HTTP: GET /v1/license/quotas/:resource Category: License Required scopes: license:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceYesResource key (e.g. max_domains, max_databases)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds useful context beyond annotations: required scope license:read, explicit "Read-only." confirmation, and the 404-on-missing-resource behavior. This is meaningful operational guidance.

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?

Description is compact and front-loaded: purpose first, then error behavior, then endpoint, category, required scopes, and read-only status. There is no filler and every line 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 one-parameter read-only GET with strong annotations, the description covers the HTTP method, path, required scope, and 404 behavior. It does not state the exact response body shape, but no output schema is provided; the phrase "quota limit" makes the return intent reasonably clear. This is complete enough for a simple quota lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the resource parameter is already well-described with examples like max_domains and max_databases. The description only restates the idea of a specific resource and shows the path placeholder, adding little semantic value beyond the schema. Baseline 3 is appropriate because the schema carries the parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb and resource: "Check quota limit for a specific resource." It also clarifies the scope by saying "specific resource," distinguishing it from list-style sibling tools like panelica_license_get_v1_license_quotas. The 404 behavior and endpoint path reinforce 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes it clear this is for checking a single resource's quota, which implies when to use it. It does not explicitly name alternatives or exclusion criteria, but the "specific resource" framing gives an agent enough context to select it over broader quota or resource-usage tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_license_get_v1_license_statusA
Read-onlyIdempotent

Returns current license validity, plan name, expiry date, and grace period info.

HTTP: GET /v1/license/status Category: License Required scopes: license:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds useful context beyond those annotations: the required scope 'license:read', the explicit 'Read-only' mention, and the HTTP endpoint. This is helpful for a safe, side-effect-free status call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the first sentence states exactly what the tool returns, followed by endpoint, category, required scope, and read-only nature. There is no filler or redundant content.

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 read-only status endpoint, the description is adequate: it lists the key returned information and provides endpoint and auth requirements. There is no output schema, but the described return fields are sufficient for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no parameter semantics to document. The schema is empty and additionalProperties is false; the baseline of 4 applies for a parameterless tool.

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 ('Returns') and identifies the resource: current license validity, plan name, expiry date, and grace period info. It is clear and specific, though it does not explicitly differentiate itself from sibling license tools like license_plan or license_features.

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 license_plan or license_features. The description gives the endpoint and required scope but does not state exclusions or selection conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_delete_v1_logs_logrotate_nameA
DestructiveIdempotent

Delete logrotate config

HTTP: DELETE /v1/logs/logrotate/:name Category: Logs Required scopes: logs:write WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPath parameter: name

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry destructiveHint=true, and the description adds concrete context by warning 'destructive — permanently removes the resource' and stating the required scope logs:write. This goes beyond the structured fields and clarifies the consequence of calling the 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?

Every line is useful: the action, the HTTP verb/path, category, required scope, and the destructive warning. It is compact, front-loaded, and contains 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 simple one-parameter delete operation, the description covers the essential details: what is deleted, the HTTP endpoint, authentication scope, and irreversibility. It does not mention response codes, but with no output schema and a straightforward delete this 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 coverage is 100%, and the single parameter 'name' is documented as 'Path parameter: name'. The description's endpoint path echoes this without adding deeper semantic meaning, such as the format or purpose of the name value. The schema carries the burden 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?

Description states the specific action 'Delete logrotate config' with the HTTP method and exact endpoint path. The delete verb plus resource clearly distinguishes it from sibling logrotate tools like get, post, put, rotate, and test.

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 HTTP DELETE method and the verb 'Delete' make the operation obvious, but there is no explicit when-to-use guidance, exclusions, or mention of alternatives. The description implies usage rather than stating that this is for removing an existing logrotate config that should first be listed with panelica_logs_get_v1_logs_logrotate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_accessA
Read-onlyIdempotent

Get access logs

HTTP: GET /v1/logs/access Category: Logs Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false; the description adds the required 'logs:read' scope and confirms the GET method, which is useful auth context. It does not describe response format or pagination, but for a zero-parameter read operation this is a minor gap. There is no contradiction with the 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?

The description is short, front-loaded with the core purpose, and each line contributes either the endpoint, category, required scope, or read-only status. It avoids unnecessary prose and is appropriately sized for a simple parameterless endpoint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, read-only, zero-parameter GET endpoint, the definition includes the essential invocation details: HTTP method, path, required scope, and read-only behavior. It could be slightly more complete by stating what the response contains or clarifying that this returns global access logs versus domain-specific ones, but the name and endpoint largely convey this.

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 100% schema description coverage, so there are no parameter semantics for the description to clarify. The baseline for zero-parameter tools is 4, and the description adds no misleading or unnecessary parameter information.

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: 'Get access logs', and reinforces it with the exact HTTP path 'GET /v1/logs/access'. It is immediately clear what the tool operates on, though it does not explicitly differentiate itself from related siblings such as per-domain access logs or logs/access_tail.

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 the many similar log-related siblings, such as panelica_logs_get_v1_logs_access_tail, panelica_logs_get_v1_logs_access_stats, or the domain-specific access log endpoint. The description provides the required scope and category, but not selection criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_access_statsB
Read-onlyIdempotent

Access log stats

HTTP: GET /v1/logs/access/stats Category: Logs Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, and the description's 'Read-only' mostly repeats that. It does add useful auth context (Required scopes: logs:read) and the HTTP method, but it does not describe what the stats contain, how they are scoped, or whether any time filter applies. With no output schema, the agent gets limited insight into the response.

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 very brief and front-loads the core concept, followed by structured metadata. Nothing is excessive, though the read-only line duplicates an annotation and the title line repeats the schema title. For a simple endpoint this is appropriately compact.

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 stats endpoint, the description plus annotations cover invocation safety and method. However, it never states what aggregate statistics are returned (e.g., requests, bandwidth, time window), and there is no output schema to fill that gap, leaving an agent to guess at the response shape. It is functional but not fully self-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?

There are zero parameters and the schema is fully covered at 100%, so there is nothing for the description to explain. Per the baseline for 0-param tools, this is sufficient; no additional 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 'Access log stats' is a noun phrase rather than a full verb statement, but it clearly identifies the resource (access logs) and the operation kind (stats), and the HTTP GET line reinforces retrieval. It is distinguishable from siblings like logs_access and logs_access_tail because 'stats' signals aggregated data, and from logs_errors_stats because it is scoped to access logs. However, no explicit verb like 'retrieve' or 'list' is present.

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. There is no mention of sibling tools such as logs_access, logs_access_tail, or logs_errors_stats, nor any condition like 'when you need aggregate metrics' versus raw log entries. The Category and scope lines provide context but not selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_access_tailA
Read-onlyIdempotent

Tail access logs

HTTP: GET /v1/logs/access/tail Category: Logs Required scopes: logs:read Read-only.

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?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description's 'Read-only' is consistent with them. The description adds the required scope and endpoint but does not disclose tail behavior such as streaming, bounded output, or line limits; annotations cover the safety profile, so this is acceptable but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with 'Tail access logs,' followed by endpoint, category, scope, and read-only status. There is no filler, and the redundant read-only line does not bloat the definition.

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 endpoint, the description plus annotations cover the essentials needed to invoke it: method, path, scope, and safety. It does not describe response format or tail/termination behavior, and there is no output schema, so it is not fully complete, but the tool is simple enough that this is 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 input schema has zero properties, so there are no parameters for the description to clarify. Schema description coverage is 100%, and for a zero-parameter tool 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 opens with 'Tail access logs,' which names a specific action and resource, and includes the exact HTTP endpoint and Category: Logs. This is enough to identify the tool within the large sibling set, but it does not explicitly distinguish 'tail' from panelica_logs_get_v1_logs_access or clarify what 'tail' means.

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 practical invocation context: HTTP GET, required scope logs:read, and read-only status, which implies when the tool is appropriate. However, it provides no explicit when-to-use versus when-not-to-use guidance and does not name alternatives among the many log-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_category_idB
Read-onlyIdempotent

Log category details

HTTP: GET /v1/logs/category/:id Category: Logs Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds the required 'logs:read' scope and confirms the safe GET access pattern, which is useful operational context beyond the annotations. No contradiction exists.

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, front-loaded with the main purpose, and includes only the essential operational details: HTTP method, path, category, scopes, and read-only status. Some lines like 'Category: Logs' are redundant with the tool name, but 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?

For a one-parameter GET with rich annotations, the invocation context is present: path, id, scopes, and safety. However, the description does not explain what a log category is, what 'details' the response will include, or how to discover valid category IDs, and there is no output schema to fill the 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?

The single 'id' parameter is fully described in the schema as a path parameter and coverage is 100%. The description adds no extra semantic meaning about the id or its format, so the baseline of 3 applies.

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 is only 'Log category details' with no explicit verb; the HTTP GET line implies retrieval. This is vague about what a 'log category' is and does not differentiate it from the many logs_* siblings (dashboard, errors, sites, sources), so it barely avoids being 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 for when to use this tool versus alternative log endpoints. It states the endpoint, scopes, and read-only nature, but provides no selection criteria, exclusions, or hints about which sibling is appropriate in which scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_dashboardB
Read-onlyIdempotent

Log dashboard stats

HTTP: GET /v1/logs/dashboard Category: Logs Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description's 'Read-only' adds no new safety information. It does add useful context beyond annotations: the HTTP method and the required auth scope (logs:read). However, it does not disclose response characteristics, content shape, or any other behavior, so it provides only modest added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, with each line carrying a distinct piece of metadata (title, HTTP method, category, scope, read-only flag). It is not bloated, though the opening line 'Log dashboard stats' largely repeats the tool name and could be more informative.

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 no-parameter, read-only GET endpoint, the description covers the basics: endpoint, category, auth scope, and safety. However, there is no output schema, and the description does not describe what the dashboard stats response contains, what time ranges or aggregations apply, or how it differs from other stats endpoints, leaving meaningful gaps for an agent deciding whether this tool satisfies a user request.

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 an empty object with 100% coverage. There is nothing for the description to explain, so the baseline of 4 applies. The description appropriately adds no redundant 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 identifies a specific resource ('Log dashboard stats') and the HTTP endpoint (GET /v1/logs/dashboard), making it clear this retrieves the log dashboard statistics. It is distinguishable from sibling log endpoints like logs_get_v1_logs_errors_stats or logs_get_v1_logs_access_stats by the 'dashboard' resource, but it lacks an explicit verb and does not specify what metrics the dashboard includes.

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 states the category (Logs), required scope (logs:read), and that it is read-only, but gives no guidance on when to use this tool versus the many related log/statistics endpoints. There are no mentioned alternatives, exclusions, or conditions that would help an agent decide between this and sibling stats tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_download_fileA
Read-onlyIdempotent

Download log file

HTTP: GET /v1/logs/download-file Category: Logs Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful auth context by stating 'Required scopes: logs:read', and the GET method reinforces that this is a safe read operation. It does not go into response details, but the safety profile is well covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the action. Each line is short and scannable. Minor redundancy exists because 'Read-only' repeats the annotation and 'Category: Logs' is largely derivable from the endpoint path, but there is no significant wasted text.

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 no-parameter, read-only endpoint, the essential invocation facts are present: HTTP method, category, required scope, and safety. However, the description does not clarify which log file is being downloaded or how this endpoint differs from the sibling 'logs_download_id' tool, and with no output schema the return representation is left implicit.

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 description coverage is 100%, so there are no parameter semantics to explain. With no parameters, the baseline is 4 and the description does not need to compensate for any missing parameter documentation.

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 and resource: 'Download log file', and includes the HTTP method and category. It is clear at a basic level, but it does not differentiate this endpoint from the sibling 'logs_download_id' tool or explain what 'log file' means in this context, so it stops 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?

The description provides no guidance on when to use this tool versus related log endpoints such as 'logs_download_id' or 'logs_category_id'. It lists category, scopes, and read-only status, but gives no use-case, exclusions, or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_download_idB
Read-onlyIdempotent

Download log category

HTTP: GET /v1/logs/download/:id Category: Logs Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive, and open-world behavior. The description adds the required logs:read scope and the exact GET endpoint, which is useful context, but it does not disclose response behavior, download format, or failure modes. No contradiction with annotations 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 compact and front-loaded with the core purpose, followed by endpoint, scope, and safety metadata. It loses a point because 'Read-only' and 'Category: Logs' mostly repeat information already available via annotations and the endpoint structure.

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-only endpoint, the description provides the essential route and authorization requirement. However, with no output schema, it does not state what a successful download returns, and the meaning of the id parameter is left largely to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single required 'id' parameter, so the baseline applies. The description only implies that id refers to a log category; it does not specify the id format, source, or accepted values beyond the schema's minimal 'Path parameter: id' note.

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 and resource: 'Download log category'. It makes the core operation clear, though it does not differentiate itself from sibling tools like panelica_logs_get_v1_logs_download_file or clarify precisely what a log category is.

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 choose this tool over alternatives. It lists the required scope and marks the operation read-only, but it does not mention sibling download/log tools or explain when this endpoint should be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_errorsB
Read-onlyIdempotent

Get error logs

HTTP: GET /v1/logs/errors Category: Logs Required scopes: logs:read Read-only.

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?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds the required scope 'logs:read' and the explicit HTTP endpoint, which is useful context. It does not describe return format, pagination, or what 'error logs' contains, but this is acceptable given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose, followed by metadata lines that are easy to scan. The 'Category: Logs' and 'Read-only' lines add limited value since they are inferable from the name and annotations, but they do not make the description bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter read-only endpoint, the description is largely complete: it gives the purpose, HTTP method, category, and required scope. It does not explain how this endpoint differs from errors_stats or errors_tail, which would be the main practical gap for an agent deciding which logs endpoint to call.

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 is trivially complete at 100% coverage. Per the baseline for zero-parameter tools, a score of 4 is appropriate since there are no parameter semantics to describe.

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: 'Get error logs' with endpoint GET /v1/logs/errors. This is clear and actionable. However, it does not differentiate itself from closely related siblings such as logs_errors_stats and logs_errors_tail, so the agent must infer distinctions from the tool names alone.

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 its siblings (e.g., errors_stats for summaries, errors_tail for streaming, access logs for HTTP access). The description provides only factual metadata (HTTP method, category, scope) and no contextual selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_errors_statsC
Read-onlyIdempotent

Error log stats

HTTP: GET /v1/logs/errors/stats Category: Logs Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive traits. The description adds the required scope 'logs:read', which is useful auth context beyond the annotations, but otherwise repeats 'Read-only' and does not describe what the stats contain or how they are computed.

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 compact and easy to scan, with endpoint, category, and scope lines earning some value. However, the opening phrase is just the title, and the overall structure is a metadata block rather than a genuine prose description. It is not overly verbose, but it is 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?

There is no output schema, so the description must convey what the stats endpoint returns, but it only says 'Error log stats'. The agent has no idea whether the result is a count, time series, or per-domain breakdown, nor how this endpoint relates to sibling log tools. This leaves the tool behavior largely opaque.

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?

This endpoint has zero parameters and the input schema is complete (100% coverage), so the description carries no parameter burden. The baseline for a zero-parameter tool is 4, and the description does not conflict with or obscure that.

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's main text 'Error log stats' simply restates the annotation title and the tool name without using a verb, making it effectively a tautology. The HTTP line supplies the method but not the operation's meaning or scope. It also fails to distinguish this endpoint from closely related siblings like errors and errors_tail.

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 guidance is provided. The description does not mention typical use cases, exclusions, or alternatives among the many log-related sibling endpoints, so an agent cannot tell when to pick this over panelica_logs_get_v1_logs_errors or panelica_logs_get_v1_logs_errors_tail.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_errors_tailB
Read-onlyIdempotent

Tail error logs

HTTP: GET /v1/logs/errors/tail Category: Logs Required scopes: logs:read Read-only.

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?

Annotations already disclose read-only, idempotent, non-destructive, and open-world behavior. The description adds the required scope 'logs:read' and confirms read-only, but it does not clarify the key behavioral trait of 'tail'—whether it streams, returns recent lines, or behaves like a Unix tail command. It does not contradict the 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?

The description is compact and well-structured, with each line carrying useful information: what it does, the HTTP verb and path, category, required scope, and read-only status. There is no filler or redundancy beyond the harmless repetition of the title.

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 no-parameter read-only GET endpoint, the description provides enough to make the call, especially with annotations covering safety. However, with no output schema and no explanation of what 'tail' returns or whether the endpoint streams data, the agent must infer an important part of the tool's actual 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?

The tool has zero parameters and the input schema is an empty object, so schema description coverage is effectively complete. There is nothing for the description to add about parameter meaning, so 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: 'Tail error logs', and reinforces the target with the HTTP path and category. It is reasonably distinguishable from sibling log tools by the word 'Tail', though it does not explicitly differentiate its exact behavior from plain error-log retrieval.

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 panelica_logs_get_v1_logs_errors or panelica_logs_get_v1_logs_errors_stats. 'Tail error logs' implies a usage context, but there is no explicit condition, exclusion, or alternative mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_logrotateB
Read-onlyIdempotent

List logrotate configs

HTTP: GET /v1/logs/logrotate Category: Logs Required scopes: logs:read Read-only.

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?

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful auth and endpoint context via 'Required scopes: logs:read' and 'HTTP: GET', but it does not disclose operation-specific behavior such as response shape, pagination, or filtering.

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, front-loaded with the core purpose, and organized into scannable lines. The only mild redundancy is restating 'Read-only' when the annotations already declare readOnlyHint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter read-only endpoint, the description is sufficient to invoke correctly: it provides the resource, endpoint, category, and required scopes. It does not describe the return payload, but 'List...' implies a list and no output schema exists to clarify further.

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 input schema is complete, so there is no parameter ambiguity for the description to resolve. This is the appropriate baseline for a no-parameter tool.

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 operation with a specific verb and resource ('List logrotate configs') and gives the HTTP path and category. However, it does not distinguish this endpoint from closely related siblings such as logs_logrotate_summary or logs_rotation_settings.

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 related logrotate endpoints or give any selection criteria, leaving the agent to infer the right choice 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.

panelica_logs_get_v1_logs_logrotate_summaryB
Read-onlyIdempotent

Logrotate summary

HTTP: GET /v1/logs/logrotate/summary Category: Logs Required scopes: logs:read Read-only.

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?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds 'Required scopes: logs:read' which is useful context beyond the annotations, and confirms HTTP method and read-only nature. It does not contradict annotations, but it provides little additional behavioral detail such as return format or aggregation scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose 'Logrotate summary', followed by minimal metadata lines. It has no fluff, though much of the content repeats structured fields like the title, endpoint, and annotations. It is concise but not maximally information-dense beyond structured data.

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 zero parameters, no output schema, and a simple read-only GET operation, the description provides the essential invocation details: method, path, category, required scope, and read-only nature. It lacks a description of what the summary contains or return shape, but for a trivial no-argument read-only call this is sufficient for an agent to select and invoke 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 and schema coverage is 100%, so the schema leaves nothing undocumented. The description does not need to elaborate on parameters; the baseline for a zero-parameter tool is 4, and the description adequately supports that.

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 resource and operation: 'Logrotate summary' with HTTP GET to /v1/logs/logrotate/summary. It clearly indicates this returns a summary for logrotate, distinguishing it from sibling tools like the detailed logrotate listing or rotation settings. However, it does not explicitly differentiate itself from similar log summary endpoints.

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 context (Category: Logs, Required scopes: logs:read, Read-only) but no guidance on when to use this tool versus alternatives such as panelica_logs_get_v1_logs_logrotate or logs_sites_id. There is no 'use this when...' or 'instead of...' guidance, leaving the agent to infer when summary data is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_rotation_settingsC
Read-onlyIdempotent

Rotation settings

HTTP: GET /v1/logs/rotation-settings Category: Logs Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered. The description adds the required scope 'logs:read' and identifies the HTTP method, which are useful but not deep behavior. It does not contradict annotations.

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 text is short, but it is fragmentary, with 'Read-only.' as a sentence fragment and no actionable verb. The HTTP line and scopes are useful, but the fragment style hurts readability. It earns a middle score for compactness without clutter.

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 read-only settings endpoint, the essential info is mostly present, but the description gives no sense of what the returned rotation settings are, what they control, or how rotation settings relate to the logrotate family. Given that no output schema exists and siblings are numerous, this is a notable gap for an agent deciding whether results fit the task.

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 there is no parameter information to be missing. With no parameters, this baseline is high; the description's focus on the settings resource is sufficient for a parameterless 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 'Rotation settings' identifies the resource but lacks a verb and does not state what action is performed. The HTTP line and Category add context, but they are structural facts already in the name; an agent still has to infer that this returns current rotation-settings. Among sibling log-rotation tools (logrotate, logrotate_summary), it does not distinguish 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?

No guidance on when to use this tool over sibling log-rotation tools such as logrotate_summary or logrotate. The description only states basic facts (HTTP method, category, scopes, read-only) without any context about typical usage scenarios or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_sitesB
Read-onlyIdempotent

List per-site logs

HTTP: GET /v1/logs/sites Category: Logs Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly, idempotent, and non-destructive behavior. The description adds useful auth context with 'Required scopes: logs:read' and the HTTP method, but it does not disclose behavior beyond that, such as how logs are grouped, limited, or returned.

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, scannable, and front-loaded with the core action. Some lines, such as 'Read-only' and the HTTP method, are redundant with annotations or the endpoint name, but the overall structure is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only endpoint, the description is mostly adequate, but with no output schema it leaves the return semantics vague. An agent knows it can safely call this endpoint, but may not know whether the response contains raw log lines, per-site summaries, or file metadata.

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 with 100% coverage, so there is nothing for the description to explain. The baseline of 4 for zero-parameter tools 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 opens with 'List per-site logs', which is a clear verb + resource statement and correctly identifies the tool's read-only listing nature. It is distinguishable from likely siblings like logs_sites_id, but it does not explicitly acknowledge or contrast those sibling variants.

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 choose this tool over the many related log endpoints such as logs_sites_id, logs_dashboard, or logs_access. It only states what the endpoint does and the required scope, leaving the agent to infer selection criteria 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.

panelica_logs_get_v1_logs_sites_idA
Read-onlyIdempotent

Tail site log

HTTP: GET /v1/logs/sites/:id Category: Logs Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds a required scope (logs:read) and confirms read-only behavior, but otherwise does not disclose additional behavioral details such as output format, streaming behavior, or limits. This is consistent with annotations and adds a small amount of useful context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action, followed by brief, useful metadata lines. No redundant or low-value sentences are present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple single-parameter, read-only log tool with strong annotation coverage, so the description is nearly sufficient. It could be more complete by describing what 'tail' produces or how output might be represented, but for an agent choosing and invoking the tool, the essential information is 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 coverage is 100% for the single id parameter, so the schema already documents it. The description's endpoint path implies that id is a site identifier, but it does not add further meaning such as format constraints or where to obtain the site ID. Baseline of 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Tail site log') and identifies the exact resource via the HTTP path GET /v1/logs/sites/:id. It is clear which log category is involved, though it does not explicitly contrast itself with sibling tools like access_tail or errors_tail.

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 a site log for a given site ID. It provides operational context like HTTP method, category, and required scopes, but it does not explicitly state when not to use it or which sibling tool should be preferred for other log types.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_sourcesA
Read-onlyIdempotent

List log sources

HTTP: GET /v1/logs/sources Category: Logs Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark it read-only, idempotent, non-destructive, and open-world. The description adds the logs:read scope requirement and restates read-only behavior, which aligns with the annotations and introduces no contradiction. For a zero-parameter GET, this is adequate behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded in a short phrase, and the metadata lines are compact. HTTP and Category slightly duplicate information already visible in the name and namespace, but the description remains efficient, scannable, and free of 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 endpoint with annotations covering safety and idempotence, the description supplies the required scope and endpoint. 'List log sources' sufficiently conveys the return intent, and nothing needed to invoke the tool correctly 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 input schema is empty and no parameters are required, so there is nothing for the description to document. This matches the zero-parameter baseline and does not need further 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 states 'List log sources,' which is a specific verb and resource, and the endpoint path makes the resource explicit. This distinguishes it from sibling log endpoints such as logs_sites, logs_errors, or logs_dashboard, so an agent can identify this as the source-enumeration call.

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 choose this call instead of a sibling logs endpoint. It supplies HTTP method, category, and scope, but no when-to-use/when-not-to-use context, exclusions, or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_get_v1_logs_storageA
Read-onlyIdempotent

Log storage overview

HTTP: GET /v1/logs/storage Category: Logs Required scopes: logs:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful context beyond those annotations by specifying the required 'logs:read' scope and the HTTP GET method, which helps the agent understand authentication and side-effect 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 compact and front-loaded with the core purpose. Every line adds operational information: the overview, the HTTP method, the category, required scope, and read-only nature. 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?

For a zero-parameter, read-only endpoint with strong annotations, this is minimally sufficient. However, without an output schema, the description does not clarify what an 'overview' includes — e.g., total storage, per-site usage, or log retention. An agent could select this tool correctly but would not know precisely what data to expect.

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 description coverage is 100%, so there is nothing for the description to clarify. The baseline of 4 applies because 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 states the resource ('log storage') and the operation type ('overview'), along with the exact HTTP endpoint. It is clear enough to identify this as a read-only summary of log storage, though 'overview' is somewhat vague about what data is actually returned.

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 the many other log-related tools, such as logs_dashboard or logs_sources. The description only lists the endpoint, category, and scope, leaving the selection decision entirely to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_post_v1_logs_clear_allC

Clear all logs

HTTP: POST /v1/logs/clear-all Category: Logs Required scopes: logs:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Mutating: changes server state,' which is consistent with readOnlyHint=false, but the operation itself — clearing all logs — is destructive and irreversible, directly conflicting with destructiveHint=false. The description also fails to warn that all log data is affected globally. This is an annotation 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 short, front-loaded with the action, and includes endpoint/scopes/mutation facts without rambling. Minor redundancy ('Mutating: changes server state' restates what readOnlyHint=false already implies) keeps it from a 5.

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 output schema, the description should stress irreversibility and global scope. It only says 'Clear all logs' and 'mutating,' leaving the agent unaware of the full impact and of the relationship to sibling clear/truncate 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?

Schema coverage is 100% and there are no required parameters, so the baseline is 3. The single 'body' parameter is described only as an open arbitrary JSON object ('Schema not statically declared'), and the description adds no further meaning; however, a clear-all call plausibly requires no body.

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 phrase 'Clear all logs' names a specific action and resource, and the description adds the HTTP endpoint and category. It is clear enough to identify the operation, but it does not state the precise scope of 'all logs' (global vs account-level) or explicitly differentiate from sibling tools like panelica_logs_post_v1_logs_clear_id and panelica_logs_post_v1_logs_sites_id_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 gives a prerequisite ('Required scopes: logs:write') but no guidance about when to choose this tool over related log-clearing or truncation tools. No alternatives or exclusions are mentioned, so the agent must infer selection 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.

panelica_logs_post_v1_logs_clear_idA

Clear log category

HTTP: POST /v1/logs/clear/:id Category: Logs Required scopes: logs:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral context beyond annotations by stating 'Mutating: changes server state' and 'Required scopes: logs:write'. It does not disclose irreversibility, what log data is lost, or expected response behavior, but annotations already indicate readOnlyHint=false and idempotentHint=false; no contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the action is the first phrase, followed by endpoint, category, required scope, and mutation flag. There is no filler or repeated schema content, so it is easy to scan quickly.

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 provides enough to attempt a call with an id: method, path, required scope, and mutation behavior. It is incomplete around body semantics, category-id sourcing, and return/error information, and since there is no output schema, those gaps leave moderate uncertainty for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high and the endpoint line /v1/logs/clear/:id reinforces that the id parameter selects the category to clear. However, the description adds nothing about the body parameter, whose schema is explicitly not statically declared, so an agent cannot tell whether a body is expected, optional, or ignored.

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, 'Clear', and a resource, 'log category', backed by the endpoint POST /v1/logs/clear/:id. It is not a tautology, but it does not explicitly differentiate from siblings such as clear_all or truncate, or clarify whether it deletes log entries or the category itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when a single log category should be cleared by id and provides the required scope logs:write. It gives no explicit when-not guidance or alternatives, so an agent is not directly told how this differs from panelica_logs_post_v1_logs_clear_all or related log-clearing endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_post_v1_logs_logrotateB

Create logrotate config

HTTP: POST /v1/logs/logrotate Category: Logs Required scopes: logs:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already marking readOnlyHint=false and idempotentHint=false, the description adds a useful auth requirement ('Required scopes: logs:write') and an explicit state-change note ('Mutating: changes server state'). It does not go further to describe side effects like whether an existing config is replaced, but the annotation coverage lowers the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the primary action. Each subsequent line (HTTP route, category, scopes, mutation warning) carries a distinct piece of operational information without fluff.

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?

Although the description includes HTTP, scopes, and mutation semantics, it omits the request body shape needed to actually create a logrotate config and there is no output schema or return-value note. Since the body schema is explicitly not statically declared, the description should have compensated by pointing to concrete fields or example payloads.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for its single 'body' parameter, so the baseline is 3; the description itself adds no parameter-level details. The schema's own note that the body schema is 'not statically declared' leaves the agent dependent on external API docs, and the description does not compensate for that.

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 action 'Create logrotate config', pairing a clear verb with the resource being acted on. The HTTP method and path (POST /v1/logs/logrotate) reinforce that this is a creation operation rather than the sibling get/update/delete/rotate/test 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?

The description states what the tool does but gives no guidance on when to prefer it over sibling tools such as panelica_logs_put_v1_logs_logrotate_name or panelica_logs_post_v1_logs_logrotate_name_rotate. It does not mention prerequisites, exclusions, or conditions that should route an agent to an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_post_v1_logs_logrotate_name_rotateB

Force log rotation

HTTP: POST /v1/logs/logrotate/:name/rotate Category: Logs Required scopes: logs:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
nameYesPath parameter: name

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description explicitly states 'Required scopes: logs:write' and 'Mutating: changes server state,' which are material disclosures for an agent deciding whether to call it. It does not detail side effects, but the annotations already declare it non-destructive and non-idempotent, lowering the burden on the text.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the action appears first, followed by endpoint, category, scope, and mutating flag with no filler. It loses a point only for repeating title and endpoint information that is already visible in the tool name and annotations.

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 mutating endpoint this is mostly sufficient: endpoint, scope, and mutating behavior are present. However, it omits what the 'name' parameter refers to, whether the optional body is commonly needed, and any distinction from the logrotate test operation, so an agent is left with small but real gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline applies; both parameters have at least basic descriptions. The prose adds nothing about what 'name' refers to or what the optional body should contain, and the body description defers to API docs, but the schema already carries the load.

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 opens with a specific verb and object, 'Force log rotation,' and gives the exact HTTP endpoint, so an agent can see it triggers rotation for a named logrotate entry. It is clear on its own but does not explicitly contrast itself with the closely related sibling panelica_logs_post_v1_logs_logrotate_name_test, so it misses the extra differentiation that would earn 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 for when to choose this tool over the nearby logrotate siblings such as create, update, delete, or test. The word 'Force' implies manual or immediate rotation, but no conditions, prerequisites, or exclusions are stated, leaving the agent to infer the right scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_post_v1_logs_logrotate_name_testC

Test logrotate config

HTTP: POST /v1/logs/logrotate/:name/test Category: Logs Required scopes: logs:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
nameYesPath parameter: name

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds a few useful behavioral facts: it requires logs:write scope and explicitly says the operation changes server state. However, readOnlyHint=false already implies mutating behavior, and the description does not disclose what server-side effects testing the config actually has.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by concise HTTP, category, scope, and mutation metadata. The opening line duplicates the title, but there is no meaningful 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?

The tool has no output schema and an opaque body parameter, yet the description does not explain what the test does, what the body may contain, or what a successful response looks like. An agent can construct the request path from the autogenerated details, but cannot reason about side effects or expected outcomes.

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 nominally high because both parameters have descriptions, but the body description says the schema is not statically declared and the name description is tautological ('Path parameter: name'). The tool description adds no additional meaning to either parameter, so value stays at the baseline level.

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 the action ('Test') and resource ('logrotate config') and includes the HTTP path, so the basic purpose is identifiable. However, it never explains what testing actually does, and it does not distinguish this operation from the closely related sibling panelica_logs_post_v1_logs_logrotate_name_rotate.

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 the rotate, put, delete, or get logrotate endpoints. The description provides scope and mutation metadata but no selection criteria or contextual prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_post_v1_logs_sites_id_clearA

Clear site log

HTTP: POST /v1/logs/sites/:id/clear Category: Logs Required scopes: logs:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds the required logs:write scope and explicitly states 'changes server state', which is useful, but it does not disclose consequences such as whether cleared log data is permanently lost or whether the action is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by endpoint, category, scopes, and mutation behavior. Every line carries useful information and 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?

For a simple clear operation, the description provides the endpoint, required scope, and mutation hint, which is enough to attempt a call with the required id. However, it lacks guidance on the optional body, what data is affected, return behavior, and how this differs from sibling log-clear 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?

Schema description coverage is 100%, so the baseline is 3 even without extra parameter details. The description adds minimal value by showing the id in the endpoint path, but it does not explain what the optional body should contain despite the body being an open, undocumented object.

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 and resource: 'Clear site log', reinforced by the endpoint POST /v1/logs/sites/:id/clear. This makes the basic purpose clear, though it does not explicitly distinguish itself from related log-clearing siblings like clear_all, clear_id, or truncate.

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 clearing a site's log and provides relevant context such as required scopes and mutation semantics. However, it gives no guidance on when to choose this tool over sibling alternatives like clear_all, clear_id, or truncate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_post_v1_logs_truncateB

Truncate log file

HTTP: POST /v1/logs/truncate Category: Logs Required scopes: logs:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Mutating: changes server state' and 'Required scopes: logs:write', adding auth context beyond the annotations. However, it does not clarify the actual destructive impact of truncation, such as whether log contents are irreversibly cleared or which log file is targeted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, with each line serving a clear purpose: action, HTTP method, category, required scope, and mutating status. No filler or redundancy beyond the expected summary line.

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 an open-ended body parameter, no output schema, and no usage guidance, yet the description does not explain what request body to send, what the response contains, or what exactly gets truncated. This is insufficient for an agent to confidently invoke the 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?

There is only one 'body' parameter, and the schema description already covers it with 'Request body (application/json). Schema not statically declared — see API docs.' The tool description adds no additional parameter meaning, leaving the agent to consult external documentation for any body 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 states a clear verb and resource: 'Truncate log file' with the HTTP endpoint POST /v1/logs/truncate. It is unambiguous about the operation type, though it does not distinguish this from sibling log-clearing tools like panelica_logs_post_v1_logs_clear_all.

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 lists required scopes and category, which are prerequisites, but never explains the intended scenario or contrasts with other log mutation endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_logs_put_v1_logs_logrotate_nameB
Idempotent

Update logrotate config

HTTP: PUT /v1/logs/logrotate/:name Category: Logs Required scopes: logs:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
nameYesPath parameter: name

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds 'Mutating: changes server state' (consistent with annotations) and required scopes (logs:write), which is useful. However, it does not disclose idempotency behavior beyond the annotation, nor what happens to existing settings. Minimal additional behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise—one summary line followed by essential metadata (HTTP, category, scopes, mutating flag). No redundant text. It is front-loaded, though it could have used a sentence to clarify the body format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of having an untyped body parameter and no output schema, the description is incomplete. An agent cannot determine what fields to include in the request body, making correct invocation difficult. The description does not compensate for the missing schema 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?

The 'name' parameter is clearly described as a path parameter. However, the 'body' parameter is defined only as 'Schema not statically declared — see API docs' in the schema, and the description itself gives no guidance on what the request body should contain. This is a significant gap for the agent to correctly invoke the tool.

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: 'Update logrotate config'. The HTTP PUT method and path provide specificity. It is distinguishable from POST (create) and DELETE siblings through the verb, 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The HTTP method and path imply this is for updating an existing logrotate config by name, but the description does not explicitly differentiate from sibling tools like POST /v1/logs/logrotate (create) or DELETE /v1/logs/logrotate/:name. No exclusions or alternative guidance are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_mailing_lists_delete_v1_mailing_lists_idA
DestructiveIdempotent

Delete mailing list

HTTP: DELETE /v1/mailing-lists/:id Category: Mailing Lists Required scopes: email:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly warns that the tool is destructive and permanently removes the resource, going beyond the destructiveHint annotation to state the consequence. It also discloses the required scope. There is no contradiction with the annotations.

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 purpose. The HTTP line, required scopes, and destructive warning are all useful. The 'Category: Mailing Lists' line adds little value, but the overall structure is efficient 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 one-parameter delete operation with no output schema, the description plus annotations cover the purpose, authentication requirement, destructive behavior, and the sole parameter. Nothing critical is missing for an agent to invoke this 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?

Schema description coverage is 100%, and the only parameter `id` is fully described as 'Path parameter: id'. The description adds no additional parameter meaning beyond what the schema already provides, which matches the baseline for high 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 the action and resource clearly: 'Delete mailing list'. The HTTP method/path reinforces the operation. It does not explicitly contrast with sibling tools like the GET/POST mailing list variants, so it loses the top score, but the delete operation 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the verb 'Delete' and the warning that the operation permanently removes the resource. Required scopes are provided, which is useful prerequisite context. However, there is no explicit guidance on when to choose this 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.

panelica_mailing_lists_get_v1_mailing_listsA
Read-onlyIdempotent

List mailing lists

HTTP: GET /v1/mailing-lists Category: Mailing Lists Required scopes: email:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, and the description reinforces 'Read-only.' It adds a useful behavioral detail beyond annotations: the required scope 'email:read,' which helps an agent know the authorization prerequisite.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the action 'List mailing lists.' The HTTP method, category, scope, and read-only note are useful, though 'Category: Mailing Lists' is somewhat redundant with the resource name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter list operation, the description provides enough context: the HTTP method, required scope, and read-only nature. It does not describe the response shape, but 'list' semantics plus the simple schema make the picture reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty schema, so there is no parameter meaning for the description to convey. Per the baseline for zero-parameter tools, this 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?

'List mailing lists' names a specific verb and resource, clearly indicating a read-oriented collection operation. It is distinguishable from the sibling get-by-id operation by the 'List' wording, though it does not explicitly contrast itself with that sibling.

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 the sibling detail endpoint or the create/delete mailing-list tools. It only states what the operation does, not when it is the appropriate choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_mailing_lists_get_v1_mailing_lists_idB
Read-onlyIdempotent

Get mailing list

HTTP: GET /v1/mailing-lists/:id Category: Mailing Lists Required scopes: email:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds required scope (email:read) and confirms read-only, but provides no additional behavior like response shape or error handling. It aligns with annotations and adds modest 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?

Extremely concise with all key metadata (HTTP method, category, scopes, read-only) in a compact block. Each line earns its place, though 'Get mailing list' repeats the obvious from the name/title. Efficient and 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 simple one-parameter read tool, the description is adequate: it identifies endpoint, auth scope, and safety. However, with no output schema, it doesn't hint at response structure, and it lacks any note on list-vs-detail distinction—though the path makes that clear. Minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already fully documents the sole parameter (id as path parameter). The description does not add format details beyond the schema, so this is a baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get mailing list') with the exact HTTP endpoint and path parameter, clearly indicating a single-resource fetch by ID. This distinguishes it from list/delete/create mailing list siblings through the HTTP path and resource 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 explicit guidance on when to use this tool vs alternatives. It provides the endpoint and category but doesn't mention listing-all or other reading tools; the agent must infer from the path that this is for a single mailing list. Missing exclusions or when-to-use statements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_mailing_lists_post_v1_mailing_listsA

Create mailing list

HTTP: POST /v1/mailing-lists Category: Mailing Lists Required scopes: email:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description explicitly discloses the required scope ('email:write') and states that the operation changes server state. These are useful behavioral signals, though it does not describe side effects, failure modes, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core action, and organized into useful metadata lines. Some redundancy exists with the title and annotations, but there is no meaningful fluff.

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 creation endpoint with no output schema and no declared body schema, the description is incomplete. It identifies the endpoint and auth requirement but does not explain what the mailing-list creation request should contain or what the caller should expect in response.

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 is an opaque 'body' object whose schema is explicitly not statically declared. The description does not add field names, required payload members, formats, or examples, so an agent has very little guidance for constructing a valid request body.

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 mailing list') and gives the exact HTTP method and path ('POST /v1/mailing-lists'). This distinguishes it from the sibling GET and DELETE mailing-list tools without requiring schema inspection.

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 being a create operation, and the endpoint is clear, but it does not explicitly explain when to prefer this over sibling tools or mention alternatives like retrieving or deleting mailing lists. Usage context is present only by inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_mail_queue_get_v1_mail_queue_statsA
Read-onlyIdempotent

Get mail queue stats

HTTP: GET /v1/mail-queue/stats Category: Mail Queue Required scopes: server:read Read-only.

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?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false. The description adds the required server:read scope and the HTTP method/path, which are useful auth and access details beyond the annotations. It does not mention rate limits or response format, but the bar is lower because annotations already cover the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the core purpose first followed by HTTP path, category, scopes, and read-only. 'Read-only' is redundant with the annotation, and 'Category: Mail Queue' is somewhat redundant with the name, but overall there is no meaningful 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 simple, zero-parameter, read-only stats endpoint, the description is complete enough to invoke correctly: it gives the HTTP method, path, category, required scopes, and safety profile. There is no output schema, so the returned stats fields are not enumerated, but this is not necessary for successful invocation.

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 schema, so there is no parameter documentation burden. The baseline of 4 applies since no parameter explanation 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 states a specific verb and resource ('Get mail queue stats'), and adds the concrete HTTP path and category. It is clearly distinguishable from the many sibling 'stats' tools (domain stats, git stats, server metrics) because it names the mail queue resource explicitly.

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 intended usage context clear through the category 'Mail Queue', the read-only flag, and required scope. It does not explicitly name alternative tools or exclusion cases, but the resource is unique enough that an agent can select it when mail queue statistics are needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_metrics_get_v1_metrics_nativeA
Read-onlyIdempotent

Returns system metrics collected directly from OS.

HTTP: GET /v1/metrics/native Category: Metrics Required scopes: server:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry readOnlyHint, idempotentHint, and destructiveHint=false. The description adds value by stating the required scope (server:read), HTTP method, and that data is collected directly from the OS.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the key behavior is the first sentence. The remaining lines (HTTP, category, scopes, read-only) are short and useful.

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 endpoint, the description covers invocation basics, but with no output schema it does not describe which system metrics are returned or how the response is structured. That leaves some ambiguity for tool selection, especially given overlapping server-metrics sibling tools.

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, which is the baseline-4 case. There are no parameter semantics to document, and the description does not need to add any.

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 clear verb ('Returns') and resource ('system metrics collected directly from OS'), so an agent knows what it does. It does not explicitly distinguish itself from metrics or server-metrics siblings, 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 when-to-use guidance or alternatives are given; the description only states what the endpoint returns and its authentication requirements. The agent must infer use cases from the tool name and category.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_metrics_post_v1_metrics_ws_ticketA

Returns a short-lived single-use ticket for GET /v1/metrics/ws. Browsers cannot send HMAC headers on a WebSocket handshake, so streaming auth is ticket-based.

HTTP: POST /v1/metrics/ws-ticket Category: Metrics Required scopes: server:read Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states 'Mutating: changes server state,' which goes beyond the annotations (readOnlyHint: false, destructiveHint: false) to clarify the behavioral effect. It also discloses that the ticket is 'short-lived single-use,' matching the idempotentHint: false. This adds valuable detail beyond the structured 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?

The description is compact and efficient. It front-loads the core purpose, then lists essential metadata (HTTP method, category, scopes, mutation status) in a structured format. Every line provides useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple ticket-minting tool, the description covers the purpose, auth requirement, mutation flag, and ticket characteristics. It does not describe the response payload (e.g., the ticket string), but no output schema is provided, so this may not be critical. It also omits instructions on how to use the ticket with GET /v1/metrics/ws, but the purpose is implied. Overall, it is fairly complete but could mention the response format.

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 one 'body' parameter described only as 'Schema not statically declared — see API docs.' The description does not explain what this body is for, whether it is needed, or its contents. Although schema description coverage is 100% in the sense that the field has a description, that description is non-informative. The tool description adds nothing about parameters, 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 clearly states the tool's purpose: 'Returns a short-lived single-use ticket for GET /v1/metrics/ws.' It identifies the exact resource and action, and the annotation title 'Mint a WebSocket streaming ticket' reinforces it. It also distinguishes this from the terminal ticket tool by specifying the metrics WebSocket endpoint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains why this tool is needed: 'Browsers cannot send HMAC headers on a WebSocket handshake, so streaming auth is ticket-based.' This implies the use case for streaming metrics via WebSocket. It does not explicitly name alternatives (e.g., native metrics) or exclusions, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_migrations_get_v1_migration_cloudflare_credentialsA
Read-onlyIdempotent

List cloudflare credentials

HTTP: GET /v1/migration/cloudflare-credentials Category: Migrations Required scopes: migrations:read Read-only.

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?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior, and the description is consistent with them. It adds useful context by stating the required migrations:read scope and the HTTP GET endpoint, though it does not describe pagination or response shape.

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 purpose, followed by endpoint, category, scope, and read-only status. The only mild redundancy is 'Read-only.', which duplicates the annotation, but every other line is compact and relevant.

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 listing endpoint with rich annotations, the description gives everything needed to invoke it: endpoint, category, required scope, and operation semantics. No output schema exists, but the simple 'List' behavior means an agent can call it correctly without further detail.

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 100% schema description coverage, so there are no parameter semantics for the description to compensate for. Per the zero-parameter baseline, this is fully adequate.

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 'List cloudflare credentials', a specific verb+resource pair that names the exact object type and operation. It also gives the HTTP endpoint, distinguishing it from sibling migration tools like mysql_root_password or sites_export.

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 defines a clear context: a read-only GET under the Migrations category requiring the migrations:read scope, so an agent knows the prerequisite and class of use. It does not name alternatives or exclusions, but there is no competing tool for listing cloudflare credentials, so the resource/verb pair is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_migrations_get_v1_migration_mysql_root_passwordA
Read-onlyIdempotent

List mysql root password

HTTP: GET /v1/migration/mysql-root-password Category: Migrations Required scopes: migrations:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose read-only, idempotent, open-world, and non-destructive behavior, so the description does not need to repeat those. It adds value beyond the annotations by stating the HTTP method, category, and especially the required scope `migrations:read`, which is authentication context not present in the annotation fields. It does not describe the response body or warn that a sensitive credential is returned, but the safety profile is already well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, beginning with the one-sentence summary before compact metadata. HTTP method, path, category, scope, and the read-only flag are each directly relevant to selecting and invoking the tool, with no meaningful 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 zero-parameter, read-only endpoint, the description gives enough to invoke it: method, path, category, required scope, and safety profile. The main omissions are a hint about the response body, such as whether the actual password is returned, and explicit handling guidance for a sensitive secret; these are minor gaps given the tool's simplicity and strong annotations.

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 empty input schema already tells the agent that no arguments are required. With 100% schema coverage and no parameters, the description has nothing meaningful to add, and the zero-parameter baseline is 4.

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 action and resource: 'List mysql root password', backed by the exact HTTP method and path. The 'Migrations' category and 'mysql-root-password' resource distinguish it clearly from sibling migration endpoints such as cloudflare credentials and site export, so an agent can identify it without guessing.

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 choose this tool over sibling migration endpoints, and it names no alternative or exclusion condition. The stated required scope is a useful prerequisite, but the 'when to use vs. when not to use' information is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_migrations_get_v1_migrationsA
Read-onlyIdempotent

List migrations

HTTP: GET /v1/migrations Category: Migrations Required scopes: accounts:read Read-only.

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?

Annotations already convey readOnlyHint, idempotentHint, and destructiveHint=false. The description adds the required scope 'accounts:read' and confirms 'Read-only', which is useful operational context beyond the annotations, but it does not disclose return shape, pagination, or what constitutes a migration in this 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 compact and front-loaded with the core purpose, 'List migrations', followed by a small amount of necessary context (HTTP path, category, required scope, read-only). Every line is minimal and free of unnecessary prose.

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, read-only list operation with robust annotations, the description covers the essential details: HTTP method, path, category, required scope, and safety profile. It lacks an explicit mention of the singular sibling endpoint and the expected response contents, but these do not prevent correct invocation.

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 schema, so the 100% schema coverage means the description has no parameter burden. No compensation is needed, and the baseline of 4 applies because there is nothing meaningful to add.

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 migrations' — and includes the explicit HTTP path 'GET /v1/migrations'. It is clear, but it does not explicitly distinguish itself from the sibling panelica_migrations_get_v1_migrations_id, relying on the 'list' verb and path shape to imply the difference.

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 HTTP method, category, required scope, and read-only status, but gives no guidance on when to use this tool versus alternatives such as get_v1_migrations_id or the other migration-related endpoints. There is no mention of filtering, pagination, or when a sibling should be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_migrations_get_v1_migrations_idA
Read-onlyIdempotent

Get migration

HTTP: GET /v1/migrations/:id Category: Migrations Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds the required scope 'accounts:read' and explicitly states 'Read-only,' providing useful auth context beyond what annotations supply. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at five short lines, with the core purpose front-loaded. Every line adds relevant information: HTTP method, category, required scope, and read-only status.

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 endpoint with strong annotations and full schema coverage, the description is mostly complete. It lacks only minor context about what a migration is or how to obtain its ID from the list endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the id parameter is documented as a path parameter. The description's HTTP path repeats that it is in the path but adds no new semantic meaning, so the schema carries the load.

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 'Get migration' with the HTTP path GET /v1/migrations/:id, clearly identifying it as a read operation to retrieve a single migration by ID. It is distinct enough from sibling migration endpoints like list or export, 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?

The description provides no guidance on when to use this tool versus listing migrations or other migration-related endpoints. It includes category and scope context but lacks any exclusion or alternative-selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_migrations_get_v1_migration_sites_exportA
Read-onlyIdempotent

List export

HTTP: GET /v1/migration/sites/export Category: Migrations Required scopes: migrations:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior; the description adds the useful auth requirement (`migrations:read`) and confirms the HTTP method. It does not describe response details, but the annotation coverage lowers the burden here.

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 compact and front-loaded: purpose first, then endpoint, category, required scope, and read-only nature. There is no filler or redundant prose.

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 list endpoint with robust annotations, the description contains the essential invocation facts: method, path, category, and required scope. It does not describe the response shape, but no output schema is provided and 'List export' reasonably implies a list of export results.

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 100% coverage, so there is no parameter gap for the description to fill. The 0-parameter baseline applies; no parameter explanation is necessary.

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?

'List export' names a clear verb and resource, and the HTTP path `/v1/migration/sites/export` plus category 'Migrations' identify it as the migration site export list endpoint. It is distinct enough from the migration list/id siblings, though it could more explicitly say it returns migration site exports.

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 endpoint versus sibling migration tools, and no alternatives or exclusions are mentioned. The scope and read-only notes are prerequisites, not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_mysql_users_delete_v1_mysql_users_idA
DestructiveIdempotent

Delete MySQL user

HTTP: DELETE /v1/mysql-users/:id Category: MySQL Users Required scopes: databases:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral context beyond the annotations by warning that the action is destructive and permanently removes the resource. This is consistent with the destructiveHint and readOnlyHint annotations. It also includes the required authorization scope, which helps agents understand the operational risk.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: purpose, HTTP endpoint, category, required scope, and a prominent warning. Every line carries useful information and the destructive warning is appropriately emphasized.

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 delete operation, the description provides enough operational context: the resource, endpoint, required scope, and permanence of deletion. Minor missing details such as cascading effects on grants or associated resources are not explicitly stated, but the warning sufficiently signals the risk.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the single 'id' parameter already described as 'Path parameter: id'. The description does not add further detail about the parameter, which is acceptable for a simple path identifier.

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 MySQL user'. It also gives the exact HTTP method and path, making the operation unambiguous. The delete action clearly distinguishes it from the related MySQL user get/patch/post 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 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 delete a MySQL user. The required scope 'databases:delete' provides a prerequisite, but there is no explicit guidance about when to prefer this tool over alternatives or what preconditions must be checked before deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_mysql_users_get_v1_mysql_usersA
Read-onlyIdempotent

List MySQL users

HTTP: GET /v1/mysql-users Category: MySQL Users Required scopes: databases:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive; the description adds useful required-scopes (databases:read) and the endpoint. This is meaningful auth context beyond the annotations, and there is no hint of hidden 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 compact and front-loaded with the operation, followed by useful HTTP, category, scope, and read-only lines. It is slightly redundant with the annotation metadata, but nothing is verbose or irrelevant enough to penalize heavily.

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 list operation, the description provides the endpoint, category, required scope, and safety indication. It does not describe response fields, but 'List MySQL users' adequately conveys what is returned, and an agent can invoke the tool correctly without additional information.

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 100% annotation/schema coverage, so the baseline of 4 applies. There are no parameters for the description to explain.

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 opens with 'List MySQL users', a specific verb and resource, and the HTTP line confirms GET /v1/mysql-users. It is clear but does not explicitly differentiate itself from the sibling tool that fetches a single MySQL user by ID.

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 list operation instead of the per-ID MySQL-user tool or related database/remote MySQL tools. The read-only and scope information is helpful context but does not tell an agent which alternative to select in different situations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_mysql_users_get_v1_mysql_users_idA
Read-onlyIdempotent

Get MySQL user

HTTP: GET /v1/mysql-users/:id Category: MySQL Users Required scopes: databases:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false; the description adds the required scope (databases:read) and the exact HTTP endpoint. It does not describe edge cases like 404s, but for a simple GET-by-ID this is sfficient.

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?

Very compact and well-structured: summary, HTTP method/path, category, required scopes, and read-only flag each occupy their own line with no filler. Every line 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 one-parameter GET with full annotation coverage, the description contains all needed invocation context: HTTP method, path, required scope, and read-only safety. No output schema exists, and return-value details are not necessary for selecting or calling this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'id' path parameter, so the schema carries the full parameter meaning. The description adds no extra parameter semantics, but none are needed here.

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 specific action and resource ('Get MySQL user') along with the exact HTTP method and path, so the agent knows what the tool does. It does not explicitly differentiate from the sibling list endpoint (panelica_mysql_users_get_v1_mysql_users), but the '/:id' in the path and the tool name make the by-ID intent 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?

Provides useful context such as category, required scopes, and read-only status, but gives no explicit when-to-use or when-not-to-use guidance against sibling endpoints. The intended usage is implied from the endpoint and name rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_mysql_users_patch_v1_mysql_users_idB

Update MySQL user

HTTP: PATCH /v1/mysql-users/:id Category: MySQL Users Required scopes: databases:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context by explicitly stating 'Mutating: changes server state' and 'Required scopes: databases:write', which goes beyond the annotations. It does not detail consequences like irreversibility or what happens to unspecified fields, but the annotations already carry the basic read/idempotency/destructive flags, and there is no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core operation. Every line adds value: HTTP method, category, required scopes, and mutation behavior. There is no filler or redundant repetition of schema details.

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 an opaque-body PATCH tool with no output schema, and the description does not explain what fields can be updated or even that the body is needed for a meaningful request. It covers auth and mutating behavior but leaves the agent unable to construct a correct request without consulting external API docs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes both parameters with 100% coverage, so the description does not need to repeat them. However, the body parameter is opaque ('Schema not statically declared'), and the description adds no field-level meaning. Baseline 3 applies because the schema carries the documented 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 specific verb and resource: 'Update MySQL user' with HTTP PATCH /v1/mysql-users/:id. This clearly separates it from GET/DELETE/POST MySQL-user tools, though it does not explicitly distinguish it from the sibling change-password tool, so it stops 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 create, delete, or change-password sibling tools. There are no exclusions, prerequisites, or alternative routing. The only usage signal is the implied 'use this to update a MySQL user' from the title.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_mysql_users_post_v1_mysql_usersB

Create MySQL user

HTTP: POST /v1/mysql-users Category: MySQL Users Required scopes: databases:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds 'Required scopes: databases:write' and explicitly states 'Mutating: changes server state,' which provides some context beyond the annotations. However, the mutating trait is already implied by readOnlyHint=false and idempotentHint=false, and no additional side effects or limitations 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 compact and front-loaded with the core action. Minor boilerplate such as 'Category: MySQL Users' and 'Mutating: changes server state' adds little value, but overall the content is easy to scan and free of unnecessary expansion.

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 and an underspecified body, the description does not explain expected request fields, whether the body is required, or what response to expect. It tells an agent this is a write operation but not how to 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?

The only parameter, body, is documented only as an untyped JSON object whose schema is 'not statically declared — see API docs.' The tool description adds no field names, required properties, formats, or examples, leaving an agent unable to determine what a valid create-user request must contain.

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 MySQL user.' The HTTP POST /v1/mysql-users line reinforces the action and clearly differentiates it from sibling tools like GET, PATCH, DELETE, and change-password operations on MySQL users.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage 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 patch or delete. 'Required scopes: databases:write' is an authorization requirement, not usage direction, and there are no prerequisites, exclusions, or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_mysql_users_post_v1_mysql_users_id_change_passwordB

Change MySQL password

HTTP: POST /v1/mysql-users/:id/change-password Category: MySQL Users Required scopes: databases:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds the required scope ('databases:write') and explicitly states 'Mutating: changes server state,' which reinforces the mutating nature but does not disclose deeper behavioral details such as the effect on existing sessions or password constraints.

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 compact: a clear action line followed by endpoint, category, scope, and mutation info. Every line adds useful context, and it front-loads the core purpose before technical details.

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 the body schema is not statically declared and there is no output schema, the description leaves a critical gap: an agent cannot tell what request body fields are required for changing the password (e.g., what the new password key is). The missing body contract and lack of response/effect details make this incomplete for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters at a surface level. The description adds only the endpoint path segment ':id' as an identifier hint. The body parameter remains an open, undeclared schema, and the description does not explain what fields (e.g., new password) the body should contain, though the baseline of 3 applies because static schema coverage is high.

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 ('Change MySQL password') and the resource ('/v1/mysql-users/:id/change-password'), so an agent knows what the tool does. However, it does not explicitly differentiate this from sibling tools like panelica_mysql_users_patch_v1_mysql_users_id, relying on the endpoint path and name to convey uniqueness.

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. It provides context such as required scopes and mutating behavior, but no exclusions, prerequisites, or comparison to related MySQL user tools, leaving the agent to infer usage from the tool's name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_delete_v1_nodejs_apps_idA
DestructiveIdempotent

Delete Node.js app

HTTP: DELETE /v1/nodejs/apps/:id Category: Node.js Apps Required scopes: apps:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive behavior, and the description adds concrete context: 'permanently removes the resource' and the required scope. This goes beyond the structured hints without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well organized, with the core action first followed by method, category, scope, and a clear destructive warning. Every line provides operational 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 one-parameter delete operation, the description includes the endpoint, category, required scope, and irreversibility. It is complete enough to invoke correctly; response details are not necessary without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers the single 'id' parameter with 100% description coverage. The HTTP path restates that id is a path parameter, but the description does not add extra detail about id format, validation, or where to find it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Delete Node.js app'. The HTTP method and path reinforce the exact operation, and the resource is distinct from sibling tools like deleting Node.js versions.

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 by the DELETE method and explicit destructive warning. It provides a required scope ('apps:delete'), but does not state when to choose this over alternatives such as stopping or restarting an app.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_delete_v1_nodejs_versions_majorA
DestructiveIdempotent

Remove Node.js version

HTTP: DELETE /v1/nodejs/versions/:major Category: Node.js Apps Required scopes: apps:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
majorYesPath parameter: major

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds meaningful context: 'WARNING: destructive — permanently removes the resource' and the required scope 'apps:delete'. This tells the agent that invocation has permanent consequences and requires authorization, going beyond what the annotations alone provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the purpose comes first, followed by the HTTP method/path, category, required scope, and the destructive warning. Every line provides useful operational information with no 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?

For a one-parameter, destructive delete operation, the description covers the purpose, endpoint, required auth scope, and destruction semantics. The annotations cover safety profiling, and no output schema is expected, so nothing essential is missing for an agent to invoke this 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?

There is a single required parameter 'major' with schema description 'Path parameter: major', giving 100% schema coverage. The tool description does not add any additional meaning about the parameter's format, valid values, or how it maps to the URL, so the schema carries the full burden and the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Remove Node.js version', which is a specific verb and resource, and the HTTP DELETE path clarifies exactly which endpoint is targeted. It distinguishes itself from sibling tools like install or set-default by clearly indicating this is the deletion 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 verb 'Remove' and the DELETE method make the intended use implied: call this when you need to permanently delete a Node.js major version. However, there is no explicit guidance about when not to use it or which alternative to choose (e.g., installing a version or setting a default instead), so the routing decision is left mostly to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_get_v1_nodejs_appsA
Read-onlyIdempotent

List Node.js apps

HTTP: GET /v1/nodejs/apps Category: Node.js Apps Required scopes: apps:read Read-only.

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?

The description adds the required scope 'apps:read' and the HTTP method, which is useful context beyond the annotations. However, the read-only and non-destructive nature is already fully covered by readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds limited new behavioral information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by endpoint, category, scope, and read-only status. Each line contributes useful information with no redundancy or 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 parameterless, read-only list endpoint with strong annotations, the description is largely complete: it identifies the resource, endpoint, required scope, and safety profile. It does not describe the response shape, but for a simple 'list apps' operation this is a minor gap, especially with no output schema provided.

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, which is the baseline 4 case. There is nothing for the description to explain about parameters, 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?

Description states the exact verb and resource: 'List Node.js apps'. It is clear and distinguishable from siblings like panelica_node_js_apps_get_v1_nodejs_apps_id (specific app) and Python/Laravel list tools, though it does not explicitly call out 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 conveys that this is a list operation via HTTP GET and required scope 'apps:read', which gives useful context. However, it provides no explicit guidance on when to use this tool versus the many related Node.js app tools, such as fetching a single app or its logs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_get_v1_nodejs_apps_idA
Read-onlyIdempotent

Get Node.js app

HTTP: GET /v1/nodejs/apps/:id Category: Node.js Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the required scope 'apps:read' and confirms HTTPS method GET, which provides useful authentication context beyond the annotations. It repeats 'Read-only' but that is a minor redundancy.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the purpose. Every line earns its place: HTTP path, category, required scope, and read-only indicator. There is no fluff or redundant prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only GET with one parameter, the description covers the essential invocation details: path, scope, and safety. It does not describe the response payload, but with no output schema and no nested objects, this omission is a minor gap rather than a blocking one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the only parameter 'id' is described as a path parameter. The description's HTTP line repeats ':id' but adds no additional format, type, or selection guidance beyond what the schema already provides. Baseline 3 is appropriate for complete schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('Node.js app'), and the HTTP path '/v1/nodejs/apps/:id' makes clear it retrieves a single app by ID. It does not explicitly distinguish itself from sibling tools like the list endpoint or logs/stats, but the resource and path are specific enough to infer the primary 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 provided about when to use this tool versus alternatives such as getting all Node.js apps, logs, or stats. Usage is only implied by the path and the word 'Get' — there is no explicit when-to-use or when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_get_v1_nodejs_apps_id_logsB
Read-onlyIdempotent

Get app logs

HTTP: GET /v1/nodejs/apps/:id/logs Category: Node.js Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the required scope 'apps:read' and restates 'Read-only.' but discloses no additional runtime behavior such as pagination, log format, tailing, or limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well structured: a one-line summary followed by HTTP method/path, category, scopes, and read-only flag. Every line earns its place, though 'Read-only.' is redundant with the readOnlyHint annotation.

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 low-complexity tool with one parameter and no output schema, and annotations cover its safety profile. However, the description leaves gaps: it does not describe the log response format or any filtering/tail behavior, and it does not help an agent choose between the many sibling log endpoints.

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 covers the single id parameter 100% and describes it as 'Path parameter: id'. The description adds no further meaning to the parameter, so the high-coverage baseline of 3 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 opens with a clear verb+resource ('Get app logs') and makes the exact scope unambiguous through 'HTTP: GET /v1/nodejs/apps/:id/logs' and 'Category: Node.js Apps'. It does not explicitly name sibling log endpoints to differentiate from, so an agent must rely on the path and category.

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 prefer this tool over the many sibling log tools (e.g., panelica_laravel_apps_get_v1_laravel_apps_id_logs, panelica_python_apps_get_v1_python_apps_id_logs, panelica_cron_jobs_get_v1_cron_jobs_id_logs). The intended use must be inferred solely from the Node.js app path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_get_v1_nodejs_apps_id_statsA
Read-onlyIdempotent

Get app stats

HTTP: GET /v1/nodejs/apps/:id/stats Category: Node.js Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, open-world, and non-destructive behavior. The description adds 'Required scopes: apps:read' and 'Read-only' but does not go beyond that to describe what the stats response contains, pagination, or other behavioral specifics. No contradiction with 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?

The description is compact and front-loaded with the action 'Get app stats'. The HTTP route, category, required scopes, and read-only note each add distinct useful information with no filler or repetition beyond the acceptable 'Read-only' marker.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only stats endpoint, the description, complete schema, and annotations provide enough information for an agent to select and invoke the tool correctly. The only minor gap is that the exact set of returned metrics is not described, since there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the single required `id` parameter completely with a type and description. The description does not add extra semantic meaning for `id` beyond what the schema already provides, so the baseline score of 3 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 clearly states 'Get app stats' and provides the HTTP GET endpoint, so the verb and resource are specific. However, it does not explicitly distinguish itself from sibling endpoints like nodejs app details or logs; it relies on the word 'stats' and the route to convey the distinction.

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 context ('Read-only', 'Required scopes: apps:read', Category) and implies the tool is for retrieving Node.js app statistics, but it does not explicitly say when to use this tool instead of a sibling or when not to use 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.

panelica_node_js_apps_get_v1_nodejs_ownersA
Read-onlyIdempotent

List app owners

HTTP: GET /v1/nodejs/owners Category: Node.js Apps Required scopes: apps:read Read-only.

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?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description's 'Read-only' line is consistent but redundant. It adds useful context beyond annotations by specifying the required scope 'apps:read' and the exact HTTP endpoint, which helps the agent understand auth and invocation requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly compact and front-loaded: the core action 'List app owners' appears first, followed only by essential invocation details. Every line earns its place, and there is no redundant or verbose wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, read-only list endpoint, the description is largely complete: it states the HTTP method and path, category, required scope, and read-only nature. It does not describe the response shape, but the lack of an output schema and the simplicity of the tool make this 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 input schema has zero parameters and the schema description coverage is 100%, so there are no parameter semantics left undocumented. The description does not need to add parameter detail because none exist.

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 opens with a specific verb and resource: 'List app owners', and the category line 'Node.js Apps' clarifies that this is scoped to Node.js app owners. It does not explicitly distinguish itself from the analogous Laravel and Python owner tools, but the tool name and category make the target resource 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 by identifying this as a Node.js Apps endpoint, which helps an agent choose it over related owner endpoints like Laravel or Python owners. However, it does not explicitly state when to use this tool instead of alternatives, so the guidance remains largely implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_get_v1_nodejs_versionsA
Read-onlyIdempotent

List Node.js versions

HTTP: GET /v1/nodejs/versions Category: Node.js Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds useful invocation context beyond annotations, specifically the required 'apps:read' scope and the GET HTTP method, while repeating the read-only trait consistently.

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 tightly structured with a purpose line, HTTP endpoint, category, scope requirement, and read-only flag. Every line provides a distinct piece of information with 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 zero-parameter, read-only list endpoint, the description provides sufficient invocation details: operation, endpoint, category, and scope. It could clarify whether the listed versions are installable or installed, but that omission is minor for such a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, and schema description coverage is 100%, so there is nothing for the description to add about parameters. 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 'List Node.js versions' with the HTTP path, giving a specific verb and resource. It clearly distinguishes this from sibling version-listing tools (PHP, Python) and from Node.js version management endpoints (install/default/delete).

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 read-only list intent is implied by the verb and required scope, but there is no explicit when-to-use guidance or comparison with alternatives like version install or default-major endpoints. The context is clear enough only through inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_post_v1_nodejs_appsB

Create Node.js app

HTTP: POST /v1/nodejs/apps Category: Node.js Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly=false, idempotent=false, and destuctive=false; the description adds required scope apps:write and explicitly states 'Mutating: changes server state,' which gives useful auth and side-effect context beyond the annotations. It does not describe the resource created or any cascading effects, but for a create operation the core behavioral trait is sufficiently 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 compact and front-loaded with the core action. The HTTP path, category, scope, and mutating lines are each informative and there is no filler, though the category line is somewhat redundant with the endpoint family.

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 create operation with an opaque request body and no output schema, yet the description provides no payload contract, return format, or configuration hints. It correctly flags scope and side effects, but an agent could not confidently construct a valid request without external API documentation.

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 single body parameter is described in the schema as JSON with no statically declared schema, and the tool description adds no field-level meaning beyond that. Since schema description coverage is 100%, the baseline of 3 applies even though the opaque body leaves agents without concrete 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 states a specific verb (Create) and resource (Node.js app), and the POST endpoint makes the operation discernible from read/update/delete/control siblings in the same family. It does not, however, elaborate on what the created app encompasses or contrast with sibling create tools for other app types, so it is clear but not deeply 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?

There is no guidance on when to use this tool versus alternatives, nor any mention of prerequisites or exclusions. The scope and mutating lines describe authorization and side effects, not usage context that would help an agent choose this tool correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_post_v1_nodejs_apps_id_npmC

Run npm command

HTTP: POST /v1/nodejs/apps/:id/npm Category: Node.js Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds two facts beyond annotations: 'Required scopes: apps:write' and 'Mutating: changes server state', both useful for an agent weighing side effects and authorization. But it omits important behavior: whether the app restarts after the command, whether package.json is modified, and which commands are permitted. openWorldHint=true aligns with the free-form body, and there is no contradiction with annotations.

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 tightly written: purpose first, then compact metadata lines (HTTP, category, scopes, mutating). There is no filler. The one criticism is that the saved space was not reinvested in the most urgent content — the request body format.

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 a free-form body, openWorldHint, and no output schema, the description is materially incomplete. It never specifies which npm commands are allowed, how to structure the body, or what side effects to expect. It punts body details to 'see API docs', leaving the agent unable to construct a correct invocation from the 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?

Although schema description coverage is reported at 100%, the body parameter is effectively undocumented ('Schema not statically declared — see API docs'). The description should compensate by explaining the expected body shape — e.g., a command string, a command name plus args, or a working directory — but it says nothing. The agent has no way to know how to format the npm command it is supposed to run.

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?

'Run npm command' is a clear verb+resource statement, and the HTTP line nails down the exact operation. It is distinguishable from the Node.js siblings (restart, start, stop, upload_code) because no other sibling covers npm command execution. However, it never states which npm subcommands are supported (install, run, uninstall), leaving a partial identification gap.

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 when-to-use guidance at all. It does not explain when this tool beats the Node.js lifecycle siblings, nor does it contrast with the analogous artisan (Laravel) and pip (Python) command tools. There are no exclusions, prerequisites, or decision criteria for an agent to select it correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_post_v1_nodejs_apps_id_restartB

Restart app

HTTP: POST /v1/nodejs/apps/:id/restart Category: Node.js Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the contextual disclosure 'Mutating: changes server state,' which goes beyond the raw annotations by naming the specific effect. However, it does not mention potential downtime, impact on running processes, or other side effects that would be valuable for a restart 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 compact and front-loaded: it opens with the action, then gives the HTTP method, category, required scope, and mutation effect. Every line carries useful metadata and nothing is wasted.

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 mutation endpoint, the description provides the essential call information (HTTP method, exact path, scope, mutating flag). However, it falls short by not explaining the optional body, expected response, or when to choose restart over start/stop, leaving a moderate gap for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both the 'id' path parameter and the 'body' parameter. The description adds no parameter-level meaning, and the body parameter's open schema remains unexplained, so the baseline score of 3 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 clearly identifies a restart operation on a Node.js app via the endpoint 'POST /v1/nodejs/apps/:id/restart' and the Category 'Node.js Apps'. It is unambiguous about the verb and resource, though it does not explicitly distinguish itself from sibling start/stop 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?

There is no guidance on when to use this tool versus alternatives like start, stop, or the Python restart sibling. No scenarios, prerequisites beyond scopes, or exclusions are provided, leaving usage entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_post_v1_nodejs_apps_id_startB

Start app

HTTP: POST /v1/nodejs/apps/:id/start Category: Node.js Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and idempotentHint=false; the description adds the explicit 'Mutating: changes server state' line and the required scope, which is useful context. However, it does not disclose side effects, error behavior, or whether starting an already-running app has any 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 concise and front-loaded with the core action, followed by useful metadata. It wastes little space, though it is somewhat template-like and 'Mutating: changes server state' partially duplicates what annotations already convey.

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 start operation, the essential endpoint, scope, and mutation context are present. Still, there is no mention of the response, whether a body is expected, or what the start operation does beyond changing server state, leaving minor but real gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even though the description itself adds no parameter explanation. The body parameter remains opaque ('Schema not statically declared — see API docs'), and the description does not compensate for that 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 ('Start app') and the exact resource via the HTTP path 'POST /v1/nodejs/apps/:id/start'. It identifies the tool as operating on a Node.js app, making the purpose reasonably clear, though it does not explicitly differentiate from sibling start/stop/restart tools beyond the action verb.

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 this tool should be used versus alternatives like stop or restart. It includes category and required scopes, but no conditions like 'use when the app is stopped' and no exclusions or alternative-tool comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_post_v1_nodejs_apps_id_stopB

Stop app

HTTP: POST /v1/nodejs/apps/:id/stop Category: Node.js Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal a read/write mutation via readOnlyHint=false; the description adds that the action 'changes server state' and requires the apps:write scope, which is useful access-control context. It does not go into consequences such as whether running processes are terminated or whether a stopped app can be restarted, but it does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact — four short lines covering action, endpoint, category, scope, and mutation. The 'Stop app' and 'Category' lines partially repeat information already present in the tool name and endpoint, but overall there is little waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter action, the description gives the endpoint, required scope, and mutation flag, which is enough to identify the operation. It leaves the body parameter unexplained and does not specify expected outcomes or side effects, so an agent may not know whether a request body is needed or what a successful stop returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description itself adds no parameter-level meaning beyond the schema: id is a path parameter and body is an unspecified JSON payload. The baseline of 3 applies because the schema already documents the two 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 leads with 'Stop app' and specifies the exact HTTP endpoint POST /v1/nodejs/apps/:id/stop under Category Node.js Apps, so it clearly identifies a state-changing stop action on a Node.js app. It is distinct from the sibling start/restart tools by its action and resource path, although it does not 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 Guidelines3/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, and no alternatives are named. The expected usage is only implied by the verb 'Stop' and the Node.js Apps category, leaving an agent to infer from sibling names that start/restart are the contrasting actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_post_v1_nodejs_apps_id_upload_codeC

Upload app code

HTTP: POST /v1/nodejs/apps/:id/upload-code Category: Node.js Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds required scopes (apps:write) and explicitly states 'Mutating: changes server state', which is consistent with the annotations. However, it does not disclose whether uploading code overwrites existing code or other 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 compact and front-loads the core action. Lines for HTTP method, category, scopes, and mutating status add useful metadata, though 'Category: Node.js Apps' is somewhat redundant with 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 mutating operation with no output schema and an undeclared body, the description leaves out essential information: request body format, code packaging requirements, response behavior, and side effects. The scopes and route help, but the central invocation details are missing.

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 describes id as a path parameter, but the body is an open object with 'Schema not statically declared — see API docs', providing no meaningful parameter semantics. The description also fails to indicate what the body should contain, so an agent cannot determine how to construct a valid request.

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 starts with a specific verb and resource, 'Upload app code', and the HTTP path '/v1/nodejs/apps/:id/upload-code' clearly identifies the operation on an existing Node.js app. It is distinguishable from siblings like app creation or start/stop operations, though it does not elaborate on what 'app code' means exactly.

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 creating an app, updating an app, or deploying via git. The description provides the endpoint and scopes but leaves the agent to infer the context from the path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_post_v1_nodejs_exampleC

Deploy example app

HTTP: POST /v1/nodejs/example Category: Node.js Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the required scope 'apps:write' and states 'Mutating: changes server state,' which gives some context beyond the annotations. However, it does not disclose whether deployment creates a new app, overwrites an existing one, requires prior setup, or what side effects actually occur. The annotations already indicate readOnly is false and idempotent is false, so the mutation claim adds limited new information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well structured: a short purpose statement followed by HTTP method, category, scope, and mutation status. Every line earns its place, though the purpose line could be slightly more descriptive.

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 the request body schema is undeclared and there is no output schema, the description is incomplete for a mutating deploy operation. It omits the request body requirements, expected effects, prerequisites, and any guidance for choosing this tool among the many Node.js app siblings. The provided metadata helps but does not make the tool safely callable.

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, 'body', has a schema description that explicitly says 'Schema not statically declared — see API docs,' providing zero semantic information about what fields to send. Although schema coverage is nominally 100%, the description is a placeholder rather than actual parameter guidance, and the tool description offers no compensation. An agent cannot determine how to construct a valid request.

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?

"Deploy example app" plus the HTTP path and category clearly identifies a deploy action on a Node.js example resource, using a specific verb and resource rather than restating the tool name. However, it does not explain what "example app" means or distinguish itself from siblings like panelica_node_js_apps_post_v1_nodejs_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?

The description provides no guidance on when to use this tool versus alternatives such as creating a regular Node.js app or deploying an existing app. No exclusions, prerequisites, or sibling comparisons are mentioned, so the agent must infer usage from the name and HTTP path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_post_v1_nodejs_versions_installA

Install Node.js version

HTTP: POST /v1/nodejs/versions/install Category: Node.js Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is not read-only and not idempotent. The description adds useful context by explicitly stating the required scope 'apps:write' and confirming that the call mutates server state, which helps with authorization and side-effect assessment.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action, followed by concise HTTP, category, scope, and mutation details. Every line contributes meaningful information with no redundant prose.

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 request body is opaque ('Schema not statically declared — see API docs') and the tool description gives no hint about what payload is required to install a Node.js version. The output schema is also absent, so an agent cannot reliably construct a correct invocation without consulting external API documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the sole body parameter is described as an open JSON object whose schema is not statically declared. The tool description adds no information about what fields the body should contain, so it does not improve on the schema's 'see API docs' instruction. Baseline 3 applies due to high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Install Node.js version', and the HTTP path /v1/nodejs/versions/install matches the tool name. This clearly distinguishes it from sibling tools like retrieving Node.js versions or setting a default major version.

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 exclusions. The description only restates the HTTP method, category, and mutation status, leaving the agent to infer when an install is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_post_v1_nodejs_versions_major_defaultB

Set default version

HTTP: POST /v1/nodejs/versions/:major/default Category: Node.js Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
majorYesPath parameter: major

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states 'Mutating: changes server state' and 'Required scopes: apps:write', adding auth and side-effect context beyond the annotations. It does not describe specific consequences, failure modes, or what happens to existing apps, but the annotations already cover read-only, idempotency, and destructiveness. This is adequate 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, with the core action front-loaded and metadata lines for HTTP method, category, scope, and mutation effect. Every line carries useful information and there is no padding. It earns high marks for brevity, though it is slightly skeletal.

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 mutation endpoint, the description includes the essential call information: route, required scope, and mutation behavior. However, it does not explain the request body or what response to expect, and the body schema is explicitly non-static. An agent could likely invoke it, but it must consult external API docs for meaningful details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even though the description adds little parameter detail. The HTTP line shows that 'major' is a path parameter, matching the schema. The body parameter remains opaque, with the schema itself deferring to API docs, so no additional semantic value is provided.

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, 'Set default version', and supplies the HTTP route, category, and mutation flag, so an agent knows this sets a Node.js major version as the default. It is distinctive among the many sibling tools: the endpoint and category narrow it to Node.js version management. It could be stronger by explaining exactly what 'default' affects, but the core 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended usage is implied by the title and endpoint: use this when you want to set the default Node.js version for a major version. However, there is no explicit statement of when to choose this over alternatives like installing a version or deleting one, nor any exclusions. The required scope and mutating flag provide useful operational context but not selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_node_js_apps_put_v1_nodejs_apps_idA
Idempotent

Update Node.js app

HTTP: PUT /v1/nodejs/apps/:id Category: Node.js Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a mutating, idempotent, non-destructive operation, and the description adds useful behavioral context by stating the required scope 'apps:write' and explicitly warning 'Mutating: changes server state.' This goes beyond what the structured annotations alone provide. There is no contradiction with readOnlyHint, idempotentHint, or destructiveHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the action appears first, followed by HTTP method, category, scope, and side-effect warning. Each line earns its place and there is no repetitive or irrelevant text. This is an appropriately sized definition for an update endpoint.

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 two-parameter update call with no output schema, the description is functional but lean: it does not say what fields can be changed, what the response contains, or how to shape the body. The opaque 'body' parameter means an agent will likely need external API documentation to construct a valid request. Annotations cover safety traits and idempotency, which helps, but payload details are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema carries the primary parameter burden. The description adds no specific parameter-level meaning: it does not enumerate which Node.js app fields can be updated or how to structure the free-form request body. The body remains opaque, with the schema saying only 'Schema not statically declared — see API docs.'

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 ('Update') and resource ('Node.js app'), and the HTTP method PUT reinforces this. Among the Node.js app sibling tools, this is the only update/PUT endpoint, so it is distinguishable from create, delete, start, and stop variants. The phrase 'Update Node.js app' is somewhat generic but still 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 intended use is implied by the HTTP method and resource category: this is for modifying an existing Node.js app. However, the description does not explicitly say when to use this tool versus alternatives such as creating, deleting, restarting, or deploying an app. No when-not-to-use guidance or sibling tool references are present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_notifications_get_v1_notificationsA
Read-onlyIdempotent

Get notifications

HTTP: GET /v1/notifications Category: Notifications Required scopes: : Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds useful context beyond the annotations: the exact HTTP method/path and required scope '*:*', while restating read-only. There is no 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 compact and front-loads the core action, followed by concise metadata. The Category line is somewhat redundant, but the entry is otherwise free of wasted sentences.

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 GET with read-only and idempotent annotations, the endpoint, required scope, and read-only label are enough to invoke the tool correctly. The lack of output schema information is a minor gap, but the operation is simple enough that an agent can proceed safely.

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 with zero parameters, so the baseline is 4. There are no parameter semantics for the description to clarify, and nothing is lost by omitting 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 the action and resource: 'Get notifications', backed by the explicit HTTP GET /v1/notifications endpoint. It is clear that this is a retrieval operation, though it does not explicitly distinguish itself from the related notification-read sibling.

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 read-only label and required scopes provide some context, and 'Get notifications' implies the obvious use case. However, the description does not explicitly state when to use this tool versus other notification-related actions or give any exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_notifications_post_v1_notifications_id_readA

Mark notification read

HTTP: POST /v1/notifications/:id/read Category: Notifications Required scopes: : Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds 'Required scopes: *:*' and 'Mutating: changes server state,' which reinforces and slightly extends the annotation profile with authorization context. No contradiction, though it does not describe response behavior or side effects beyond state change.

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 five short lines with the core action first, followed by routing, category, scope, and mutation metadata. No filler; every line 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 mark-as-read mutation, the description is adequate, but it leaves the open-world 'body' parameter unexplained and does not describe the expected response or error behavior. With no output schema, some expectation-setting would help, and the missing guidance on whether to send a body is a notable 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 coverage is 100%, so the baseline is 3. The description adds no parameter-level meaning; 'id' is only documented as a path parameter, and 'body' is an open object with no declared schema. The description does not clarify whether a body is needed or what it should contain.

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: 'Mark notification read.' The HTTP line 'POST /v1/notifications/:id/read' reinforces the exact operation, and it is clearly distinguishable from the sibling GET /v1/notifications listing tool. No tautology or 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 context (category, required scopes, mutating behavior) but does not explicitly state when to use this tool vs alternatives, nor does it reference the sibling get_notifications tool. Usage is implied from the action and path rather than explicitly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_panel_settings_get_v1_panel_settingsB
Read-onlyIdempotent

Get panel settings

HTTP: GET /v1/panel-settings Category: Panel Settings Required scopes: : Read-only.

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?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the required scope '*:*', which is useful auth context, and redundantly repeats that the operation is read-only. For a zero-parameter GET this is nearly adequate, but other behavioral traits such as response shape or absence of side effects are not disclosed beyond annotations.

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, presenting the verb, endpoint, category, required scope, and read-only nature in four compact lines. It is efficient, though 'Category' and 'Read-only' add little beyond what the name and annotations already convey.

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 no-parameter GET with rich annotations, the description provides the essential operational details: endpoint, required scope, and read-only behavior. It lacks an output schema and a description of the returned settings payload, but the self-evident nature of 'get panel settings' makes this adequate for a basic getter.

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 with 100% coverage, so there are no parameters for the description to document. The zero-parameter baseline applies; no additional semantic explanation is needed or expected.

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 ('Get panel settings') with the HTTP GET method, making the retrieval purpose obvious. It is distinguishable from the sibling patch_v1_panel_settings tool by direction (read vs write), though 'panel settings' remains a broad category with no detail on which settings 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 on when to use this tool versus alternatives. The existence of a PATCH sibling implies a read-vs-write distinction, but the description never states it or provides any contextual cue such as 'use this to view current settings before modifying them'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_panel_settings_patch_v1_panel_settingsA

Update panel settings

HTTP: PATCH /v1/panel-settings Category: Panel Settings Required scopes: : Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and idempotentHint=false, but the description adds useful context by stating the required scope '*:*' and explicitly warning that it mutates/changes server state. This discloses authorization and impact beyond what the annotations alone convey, with no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the action appears first, followed by HTTP method, category, required scope, and mutation warning. Every line delivers distinct information with 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?

For a mutating tool with no output schema and an opaque body whose schema is not statically declared, the description omits what fields the body may contain, whether any settings are required, and what response to expect. It also provides no link to the referenced API docs, so an agent cannot reliably construct a valid PATCH body from the definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% because the single body parameter has a description, so the baseline is 3. The description adds no body-field semantics; the schema only states the body schema is not statically declared and refers to API docs. The agent still lacks concrete knowledge of valid update 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 first line names a specific resource ('panel settings') and a mutating verb ('Update'), reinforced by the HTTP method PATCH. It is distinguishable from the same-resource sibling panelica_panel_settings_get_v1_panel_settings, though it does not specify exactly which panel settings can be changed.

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 tool is used when panel settings need to be modified, and it labels the operation as mutating. However, it provides no explicit when-to-use guidance, no mention of the read-only GET alternative, and no exclusions or preconditions beyond the required scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_php_get_v1_php_versionsA
Read-onlyIdempotent

List PHP versions

HTTP: GET /v1/php/versions Category: PHP Required scopes: domains:read Read-only.

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?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds one genuinely useful piece of context beyond annotations: "Required scopes: domains:read", which an agent needs to know before calling. The "Read-only" line is redundant with annotations but consistent, and no contradiction exists.

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 five short lines, each earning its place: the action, the endpoint, the category, the required scope, and the read-only flag. It is front-loaded with the core purpose and contains zero 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 parameterless, read-only list operation with annotations covering the safety profile and the description providing the auth scope, little is missing. The only gap is clarifying its relationship to the Laravel-specific PHP versions endpoint, which is a minor omission given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty input schema, so the baseline is 4. There is nothing for the description to explain about parameters; it correctly remains silent.

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 PHP versions" is unambiguous, and the HTTP endpoint GET /v1/php/versions reinforces the target. It is distinct from the closest sibling panelica_laravel_apps_get_v1_laravel_php_versions by naming the generic PHP endpoint, though it does not explicitly call out 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 when-to-use or when-not-to-use guidance is provided. The endpoint path and Category: PHP tag imply context, but the description never tells the agent to prefer this over the Laravel-specific PHP versions sibling or explains the difference between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_plans_delete_v1_plans_idA
DestructiveIdempotent

Delete plan

HTTP: DELETE /v1/plans/:id Category: Plans Required scopes: plans:write WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true and readOnlyHint=false, and the description adds value by explaining the operation 'permanently removes the resource' and listing the required 'plans:write' scope. This gives the agent concrete behavioral and authorization context beyond the structured 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?

The description is compact and well-ordered: purpose first, then HTTP method, category, required scope, and a clear destructive warning. Every line contributes essential information 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 simple one-parameter delete operation, the description covers the critical aspects: what is deleted, how to call it, the required scope, and the permanent destructive nature. It omits response details and alternative-tool guidance, but this is a relatively low-complexity operation with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter has 100% schema coverage with 'Path parameter: id'. The description's HTTP line reinforces that id is a path parameter but adds no new semantic meaning. With full schema coverage, the baseline score of 3 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 states 'Delete plan' with HTTP DELETE /v1/plans/:id, clearly identifying the verb and resource. It also adds 'permanently removes the resource,' which sharpens the purpose. It does not explicitly distinguish from sibling plan operations, but the verb and resource are 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 use this tool instead of alternatives like panelica_plans_patch_v1_plans_id or panelica_plans_post_v1_plans. The destructive warning implies caution, but there are no explicit conditions, prerequisites, or exclusion scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_plans_get_v1_plansA
Read-onlyIdempotent

List plans

HTTP: GET /v1/plans Category: Plans Required scopes: plans:read Read-only.

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?

Annotations already declare readOnlyHint and idempotentHint, and the description reinforces this with 'Read-only' and the HTTP GET method. It adds useful context beyond annotations by specifying the required OAuth scope (plans:read), which helps an agent know whether it can call the tool 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: 'List plans' appears first, followed by concise metadata lines for HTTP method, category, required scopes, and read-only behavior. Every line adds useful information without redundancy or 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 list operation, the description covers the essential invocation details: endpoint, category, scopes, and safety profile. It does not describe the response shape or paging, but in the absence of an output schema 'List plans' by itself reasonably implies a list of plan objects is returned.

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 with zero parameters, so there are no parameter semantics for the description to clarify. Per the baseline rule for zero-parameter tools, the description does not need to compensate for schema gaps, and it provides no misleading parameter information.

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 plans') and documents the HTTP endpoint, making the core action clear. It does not explicitly differentiate itself from the sibling get_v1_plans_id endpoint, though the collection-vs-single distinction is fairly implied by the name and path.

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 naming the action and required plan:read scope, but it gives no guidance on when to prefer this tool over related siblings like get_v1_plans_id, post_v1_plans, or patch_v1_plans_id. There are no explicit alternatives or exclusions, so the agent has to infer the intended use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_plans_get_v1_plans_idB
Read-onlyIdempotent

Get plan

HTTP: GET /v1/plans/:id Category: Plans Required scopes: plans:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description mostly restates 'Read-only'. It does add one useful non-structured detail, 'Required scopes: plans:read', which helps an agent understand authorization needs. However, it says nothing about not-found behavior, response shape, or other runtime behavior beyond the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the essential 'Get plan' action, followed by the HTTP route, category, scope, and read-only flag. It contains very little waste, though 'Category: Plans' is arguably redundant with the tool's resource namespace.

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 single-ID GET endpoint, the description provides the route, required scope, and safety profile, which is enough to attempt invocation. However, there is no output schema to explain return values, and the description does not describe what a 'plan' contains or how errors are signaled, so an agent has to infer the result structure from surrounding 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?

The input schema already documents the single required 'id' parameter as 'Path parameter: id', so schema coverage is 100%. The description's HTTP path also shows ':id' but supplies no additional meaning about the parameter's format, constraints, or semantics beyond that it is the plan identifier.

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 ('Get plan') and reinforces it with the HTTP line 'GET /v1/plans/:id', so an agent can see this fetches a single plan by ID. It is distinguishable from the sibling list endpoint 'panelica_plans_get_v1_plans' by the ':id' path segment, though it does not explicitly contrast itself with that sibling.

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 such as listing plans, creating, updating, or deleting plans. The read-only flag and required scope imply safe retrieval use, but the description does not state the natural trigger condition, e.g., 'when you already have a plan ID'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_plans_patch_v1_plans_idB

Update plan

HTTP: PATCH /v1/plans/:id Category: Plans Required scopes: plans:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, and the description reinforces this with 'Mutating: changes server state' and adds the required scope plans:write. It does not cover partial-update semantics, validation, or return behavior, but the annotations carry the core safety profile, so this level 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?

The description is appropriately short and front-loaded: 'Update plan' first, then the HTTP endpoint, category, required scope, and mutation effect. Every line carries operational information and there is 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?

For an update endpoint with an opaque request body and no output schema, the description is incomplete: it gives no hints about valid plan fields, whether PATCH is partial or full replacement, or what response to expect. An agent has enough to know this mutates a plan but not enough to construct a correct update body.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the id parameter is documented as the path parameter and body as a JSON request body. The tool description adds no extra parameter-level meaning, so baseline 3 applies; however, the body is an opaque additionalProperties object with no statically declared schema, leaving the agent without concrete field names for the update.

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 opens with 'Update plan' and specifies HTTP PATCH to /v1/plans/:id, making clear this modifies an existing plan rather than creating, reading, or deleting one. It distinguishes itself from sibling tools by verb and resource, though it does not describe which plan attributes are affected.

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 guidance or alternative routing is provided; the description only states HTTP method, category, required scopes, and mutating behavior. The agent has to infer from the HTTP verb and sibling names when to select this instead of plans_post or plans_delete. There are no explicit exclusions or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_plans_post_v1_plansB

Create plan

HTTP: POST /v1/plans Category: Plans Required scopes: plans:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Mutating: changes server state,' which is consistent with readOnlyHint=false but does not go much beyond it. It does add the required plans:write scope, an auth detail not present in the annotations, though it omits side effects beyond generic state change.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the purpose, endpoint, scopes, and mutating effect. 'Category: Plans' and the mutating line are somewhat redundant with existing metadata, but the overall footprint is appropriately small.

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 create operation with no output schema and an undeclared request body, the definition is not complete enough to invoke correctly: no plan fields, constraints, response, or conditions are described. It covers endpoint, scopes, and general safety, but leaves the core payload unknown.

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 is an opaque body object whose schema is explicitly 'not statically declared — see API docs.' The tool description adds nothing about required fields, example payloads, or what a plan consists of, so the agent gets little help constructing a valid request.

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 'Create plan' and gives the exact endpoint POST /v1/plans, so the action and resource are unambiguous. This is distinct from sibling operations on plans (get, patch, delete) and from other create tools by resource 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?

It never says when to prefer this over the plan get/patch/delete siblings or what conditions require creating a plan. The category, HTTP method, and scopes provide context but not when-to-use guidance or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_delete_v1_python_apps_idA
DestructiveIdempotent

Delete Python app

HTTP: DELETE /v1/python/apps/:id Category: Python Apps Required scopes: apps:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral context beyond the annotations by stating 'WARNING: destructive — permanently removes the resource' and listing required scopes 'apps:delete.' While destructiveHint is already true, the permanence warning and auth requirement add real value. It does not contradict the 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?

The description is compact and front-loaded: a one-line purpose, HTTP method, category, scope requirement, and a clear warning. Every line 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-path-parameter delete operation with no output schema, the description plus annotations are sufficient: method, endpoint, required scope, and irreversible destructive effect are all covered. No significant missing information prevents 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 coverage is 100% and the only parameter, id, is described as 'Path parameter: id.' The description adds no deeper semantic detail about id format or constraints, so the schema carries the burden and the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Delete Python app,' reinforced by the explicit HTTP endpoint 'DELETE /v1/python/apps/:id' and category 'Python Apps.' This clearly distinguishes it from other delete tools such as deleting Python versions or Laravel/Node.js 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?

No explicit guidance is given about when to use this tool versus alternatives, such as the Python version delete tool or update/get tools for the same resource. The intent is implied by the verb and resource, but no alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_delete_v1_python_versions_majorA
DestructiveIdempotent

Remove Python version

HTTP: DELETE /v1/python/versions/:major Category: Python Apps Required scopes: apps:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
majorYesPath parameter: major

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint, but the description adds concrete behavioral context: 'WARNING: destructive — permanently removes the resource' and 'Required scopes: apps:delete'. This goes beyond the structured annotations, though it stops short of explaining consequences for existing Python apps that may rely on the removed version.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: action, HTTP method/path, category, required scope, and a destructive warning. Every line earns its place and there is no redundant phrasing.

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 delete operation with no output schema, the description is mostly complete: method, path, required scope, and permanence are all covered. The main gap is the lack of guidance on what happens if the Python version is currently used by an application, which is material for a destructive tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter, so the baseline is 3. The description adds no real semantic detail about `major`: it only repeats the path placeholder via /v1/python/versions/:major, and the schema itself only says 'Path parameter: major'. No value format or example is provided.

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 'Remove Python version', a specific verb and resource, and the HTTP line pins it to DELETE /v1/python/versions/:major. This clearly distinguishes it from sibling tools such as python_versions_install and python_versions_major_default.

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 HTTP method, resource path, and required scope imply the intended use case, but the description never explicitly states when to use this instead of alternatives or warns against removing a version that is still in use. The 'Required scopes' line adds a useful prerequisite, so this is implied guidance rather than no guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_get_v1_python_appsA
Read-onlyIdempotent

List Python apps

HTTP: GET /v1/python/apps Category: Python Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description echoes 'Read-only' consistently. It adds the required scope 'apps:read' and the HTTP GET verb, providing useful auth context beyond the annotations. No behavioral ambiguity or contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action, followed by three metadata lines. Every line carries information (endpoint, category, scopes, read-only) with no redundancy beyond the acceptable echo of the annotation.

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 zero-parameter list endpoint the description is adequate for invocation, but there is no output schema and the description does not describe the returned payload, pagination, or any filtering semantics. It also does not clarify how this list endpoint relates to the per-ID Python app endpoint. Some additional context about what the response contains or when to use the list versus detail endpoint would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero properties and 100% description coverage, so there are no parameter semantics to clarify. The baseline for a zero-parameter tool is 4, and the description adds nothing needed about inputs.

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 'List Python apps' with a specific verb and resource, and the HTTP path clarifies it targets the collection endpoint. It is clear what the tool does, though it does not explicitly differentiate itself from sibling tools like get_v1_python_apps_id or the logs/stats endpoints.

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 such as the per-ID getter or the stats/logs endpoints. The description only provides endpoint metadata and scopes, leaving selection 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.

panelica_python_apps_get_v1_python_apps_idA
Read-onlyIdempotent

Get Python app

HTTP: GET /v1/python/apps/:id Category: Python Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description meaningfully adds the required OAuth scope 'apps:read' and repeats 'Read-only,' which reinforces safe usage without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by HTTP method, category, scopes, and read-only status. Minor redundancy exists with 'Read-only' duplicating the readOnlyHint annotation, but overall it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter GET-by-id endpoint with rich annotations, the description provides enough invocation context: resource, HTTP path, required scope, and safety profile. No output schema exists, but the basic return intent is clear from 'Get Python app.'

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers the only parameter ('id') with a clear description, and schema description coverage is 100%. The tool description adds no extra parameter detail, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get Python app' with the full HTTP path GET /v1/python/apps/:id, making the verb and resource explicit. This clearly differentiates it from sibling list, logs, and stats endpoints for Python 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?

The description provides no explicit guidance on when to use this tool versus alternatives, and it does not name any sibling tools or exclusions. The intended usage is only implied by the GET-by-id endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_get_v1_python_apps_id_logsB
Read-onlyIdempotent

Get app logs

HTTP: GET /v1/python/apps/:id/logs Category: Python Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description repeats 'Read-only.' It adds the required scope apps:read, which is useful context beyond the annotations, but it does not describe response shape, pagination, or any log-specific behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose, followed by endpoint, category, scopes, and safety hint. No unnecessary prose, though some lines, like 'Read-only' and the HTTP method, partially duplicate annotations and 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 single-parameter read-only endpoint, the description is adequate for selecting and invoking the tool: it provides the path, required scope, and safety profile. However, there is no output schema and no description of what the returned logs contain or any limits, which leaves some ambiguity for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the only parameter, id, is already documented as a path parameter. The description does not add additional meaning about what the id refers to or how it is used, so the baseline score 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 states 'Get app logs' and gives the explicit HTTP path GET /v1/python/apps/:id/logs, so a specific verb and resource are clear. The 'Category: Python Apps' line helps distinguish it from other app log tools like Node.js or Laravel, though the main phrase 'app logs' alone would be 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?

The description gives no guidance on when to use this tool versus the many sibling log-related tools. It does not mention alternatives, exclusions, or conditions that would direct an agent here instead of, say, cron job logs or domain logs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_get_v1_python_apps_id_statsA
Read-onlyIdempotent

Get app stats

HTTP: GET /v1/python/apps/:id/stats Category: Python Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the required scope apps:read, which is useful auth context, but otherwise mostly repeats the read-only nature already captured by annotations.

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 primary action. The HTTP method, category, required scope, and read-only status are each on their own line, making it scannable. Minor redundancy exists because 'Read-only.' duplicates the readOnlyHint annotation and the endpoint largely repeats the tool name.

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 GET operation, the description is nearly complete: it gives the path, category, required scope, and read-only nature. It does not state what metrics or fields the stats response contains, but since no output schema exists this is a minor gap for an otherwise low-complexity read 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?

With 100% schema description coverage for the single id parameter, the schema already documents 'Path parameter: id'. The description adds no additional parameter semantics, such as what the id represents or how it should be formatted, so the baseline of 3 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 'Get app stats' identifies the operation with a specific verb and resource, and the endpoint /v1/python/apps/:id/stats plus Category: Python Apps disambiguate it from stats tools for other resources. It stops short of fully describing what kind of stats are returned, which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The category and endpoint imply this tool is for retrieving stats about a specific Python app, but the description does not explicitly state when to use it instead of related tools like get_v1_python_apps_id_logs or stats endpoints for other resources. No alternatives or exclusion criteria are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_get_v1_python_examplesA
Read-onlyIdempotent

List example apps

HTTP: GET /v1/python/examples Category: Python Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint false), and the description adds a useful auth prerequisite: 'Required scopes: apps:read'. It does not describe response shape or pagination, but for a zero-parameter safe GET the annotations carry most of the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the first line states the operation, followed by a short metadata block with endpoint, category, scopes, and read-only flag. The 'Category' and 'Read-only' lines are partly redundant with the tool name and annotations, but the overall length is appropriate.

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, read-only listing endpoint, the essential invocation facts are present: HTTP method, resource path, required scopes, and read-only behavior. The lack of an output schema is mitigated by the verb 'List' and the empty input schema, though a brief return-shape note would have made it fully self-contained.

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 with zero parameters, so there are no parameter semantics to explain. No additional parameter detail is needed, and the description does not omit anything relevant.

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-resource pair, 'List example apps', and names the HTTP GET /v1/python/examples endpoint. The word 'example' helps distinguish this from listing live Python apps or from the sibling POST endpoint that creates an example, but the description does not explicitly contrast 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose and read-only nature imply when to use it: whenever example apps need to be listed. However, there is no explicit guidance about choosing this over alternatives like panelica_python_apps_post_v1_python_example for creating an example or panelica_python_apps_get_v1_python_apps for listing real apps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_get_v1_python_ownersA
Read-onlyIdempotent

List app owners

HTTP: GET /v1/python/owners Category: Python Apps Required scopes: apps:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the required scope 'apps:read' and explicitly states 'Read-only', which provides useful operational context without contradicting the 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?

The description is short, front-loaded with the core action, and every line provides factual value: endpoint, category, required scope, and read-only status. There is no redundant 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 parameterless read-only listing tool with strong annotations, the description is nearly complete. It covers the endpoint, category, auth scope, and safety. A minor gap is that it does not describe the shape of the returned owner list, but that is not critical for selecting and invoking this simple 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, so the baseline is 4. The description correctly focuses on the action and context rather than parameter details, and nothing about parameters is missing.

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 clear verb and resource: 'List app owners'. The endpoint path '/v1/python/owners' and 'Category: Python Apps' make it unambiguous that this is the Python-specific owner list, distinguishing it from the Laravel and Node.js owner endpoints among the siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The category and endpoint imply the tool is for listing owners within Python Apps, but there is no explicit statement about when to prefer this over related tools like laravel_owners or nodejs_owners. Usage context is apparent but not directly articulated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_get_v1_python_versionsA
Read-onlyIdempotent

List Python versions

HTTP: GET /v1/python/versions Category: Python Apps Required scopes: apps:read Read-only.

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?

Annotations already declare readOnly, idempotent, and non-destructive behavior, so the description only needs to add extra context. It does so by specifying the required 'apps:read' scope and the exact HTTP GET endpoint, which are useful beyond the annotations.

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 purpose, followed by useful endpoint, category, and scope metadata. The 'Read-only' line is redundant with the annotations, but the overall structure is efficient 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 list endpoint, the description provides enough context: purpose, endpoint, category, and required scope. It does not describe the response shape, but the tool name and purpose make the returned list of Python versions clear enough for invocation.

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 there are no parameter semantics to document. Per the zero-parameter baseline, this is adequately handled.

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: 'List Python versions'. It additionally provides the exact HTTP endpoint and category, which distinguishes it from sibling version-listing tools like the PHP, Node.js, or Laravel version endpoints.

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 select this tool versus sibling version-listing endpoints. The description states required scopes and read-only behavior, but those are operational constraints, not usage direction or explicit alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_post_v1_python_appsA

Create Python app

HTTP: POST /v1/python/apps Category: Python Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, but the description adds useful context beyond that: 'Mutating: changes server state' and 'Required scopes: apps:write'. This helps the agent understand the safety and authorization profile, though it does not detail idempotency, payload effects, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by useful HTTP, scope, and mutation details. 'Category: Python Apps' is somewhat redundant with the tool name and title, but the overall structure is clean with almost no wasted 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?

This is a creation endpoint with no output schema and a body parameter whose schema is explicitly not statically declared. The description provides auth and mutation context but no payload shape, prerequisites, or expected response, leaving the agent without enough information to correctly construct a valid call without external documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% per the context signal, and the only parameter 'body' has a description, albeit one that says the schema is not statically declared. The tool description adds no field-level meaning beyond the schema, so baseline 3 is appropriate; the agent must still consult API docs for actual body structure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action and resource with 'Create Python app' and the HTTP endpoint POST /v1/python/apps. It unambiguously identifies the purpose, though it does not explicitly differentiate this tool from related Python app management siblings such as start/stop/upload/pip.

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 'Create' verb and 'Category: Python Apps' imply the tool is used to create a new Python app. However, there is no explicit when-to-use guidance, no exclusions, and no reference to alternatives such as managing existing apps or creating Node.js/Laravel apps, so usage must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_post_v1_python_apps_id_pipB

Run pip command

HTTP: POST /v1/python/apps/:id/pip Category: Python Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the required scope 'apps:write' and explicitly notes 'Mutating: changes server state', which are useful. Annotations already communicate readOnlyHint=false and openWorldHint=true, so the bar is lower; however, the description does not warn about the potentially wide-ranging side effects of running arbitrary pip commands.

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 stated first. The HTTP method, category, required scope, and mutation flag are compactly included, though 'Category: Python Apps' is redundant with the endpoint.

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 executes an arbitrary pip command, and the body schema is explicitly not statically declared, but the description gives no request-format guidance, examples, or link to API docs. Without output schema and with a completely opaque body, the agent lacks critical information needed to invoke it 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 coverage is 100%, so the baseline is 3 even without parameter details in the description. The description does not add meaning beyond the schema; notably, the body is described only as undocumented, which leaves the agent without concrete guidance on how to specify the pip command.

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 identifies the action as 'Run pip command' against a Python app, with the HTTP endpoint and category adding useful context. It is distinguishable from related sibling operations like start/stop/restart/upload_code because those are different actions. However, it does not specify what a 'pip command' means in terms of request body or examples.

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 restarting the app, uploading code, or installing via a different package manager. The description gives no conditions, exclusions, or sibling comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_post_v1_python_apps_id_restartA

Restart app

HTTP: POST /v1/python/apps/:id/restart Category: Python Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as non-readonly and non-idempotent; the description adds value by stating 'Mutating: changes server state' and the required apps:write scope. It doesn't disclose the operational side effect of a restart (e.g., brief app downtime) or any asynchronous behavior, so transparency 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 four short lines with the action front-loaded. Every line (HTTP path, category, scope, mutation flag) carries useful information, with no repetition or 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 simple endpoint it covers method, path, category, required scopes, and mutation, and the schema covers the required id parameter. But there is no output schema and the description does not explain what response to expect or what a restart actually does beyond 'changes server state,' leaving it minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: id is described as the path parameter and body as an optional JSON request body, so the schema carries the parameter meaning. The description adds no further parameter detail and leaves the body schema unresolved.

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 explicitly says 'Restart app' and reinforces it with the HTTP method/path and 'Category: Python Apps,' so an agent can identify this as a Python-app restart action. It does not explicitly distinguish itself from sibling start/stop or Node.js restart tools, which keeps it one step below full differentiation.

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 Category line and the /python/apps/:id/restart endpoint imply when the tool should be used, and 'Required scopes: apps:write' conveys a prerequisite. However, there is no explicit guidance about when to prefer this over the sibling restart/start/stop tools 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.

panelica_python_apps_post_v1_python_apps_id_startB

Start app

HTTP: POST /v1/python/apps/:id/start Category: Python Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds that the call is mutating ('changes server state') and requires the apps:write scope, which provides context beyond the annotation flags. However, it does not disclose edge-case behavior such as what happens if the app is already running or whether the call is asynchronous. No contradiction with annotations.

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 definition is compact and front-loads 'Start app', then presents route, category, scopes, and mutation flag as tight metadata lines. The opening line is slightly redundant with the title, but 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?

For a simple start action, the definition plus schema gives the required id and confirms mutating behavior and scopes. It does not explain the optional body, return/error behavior, or preconditions, so the tool is workable but not fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool-level description says nothing about the id or body parameters. The schema describes id only as 'Path parameter: id' and body as an open object with no static schema, so the description adds no extra semantic help. Baseline 3 applies because schema coverage is technically 100%.

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 the action ('Start app') and provides the exact HTTP route and category, so an agent can identify it as the start operation for Python apps. It does not explicitly distinguish this tool from sibling start/stop/restart operations, but the verb and category make the purpose 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?

No guidance is given about when to invoke this tool instead of sibling operations such as stop, restart, or the analogous Node.js start endpoint. There are no prerequisites, preconditions, or exclusions, leaving the agent to infer context from the route and name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_post_v1_python_apps_id_stopA

Stop app

HTTP: POST /v1/python/apps/:id/stop Category: Python Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description explicitly states 'Mutating: changes server state' and lists the required 'apps:write' scope, which is useful authorization and side-effect context. It does not contradict the annotations, though it could elaborate on consequences such as interruption of running requests.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: action, HTTP endpoint, category, required scope, and mutation flag are each presented on their own line with no filler. Every line 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 mutation with annotations available, the description provides enough to invoke the tool correctly: method, path, required id, scopes, and state-change warning. Minor gaps remain around what the optional body should contain and the expected response, but these are not critical for this action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the required 'id' path parameter and optional body are already documented in the schema. The description adds no significant parameter semantics, which is acceptable under the baseline for fully covered schemas.

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 ('Stop app') and the resource category ('Python Apps'), reinforced by the explicit endpoint 'POST /v1/python/apps/:id/stop'. It is clear what the tool does and distinguishable from obvious siblings like start/restart, though it does not explicitly contrast itself 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?

There is no guidance about when to use this tool versus alternatives such as start, restart, or delete. The description provides operational constraints (required scope, mutation flag) but not selection criteria or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_post_v1_python_apps_id_upload_codeB

Upload app code

HTTP: POST /v1/python/apps/:id/upload-code Category: Python Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds "Mutating: changes server state" and "Required scopes: apps:write", which is useful beyond the annotations. However, readOnlyHint=false already signals mutation, so most of this is redundant; it does not explain what happens to existing code, whether uploads are idempotent, size limits, or other 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 compact and front-loaded with the core action, followed by structured metadata. Every line carries information such as HTTP method/path, category, required scope, or mutation flag, with 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?

The description is too thin for a mutation endpoint whose body schema is not statically declared. It gives no indication of what the body should contain, whether this is an archive, file content, multipart upload, or something else. An agent could infer the resource but not reliably construct a correct request.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% by count, so the baseline is 3. The id parameter is only described as "Path parameter: id" and the body explicitly defers to API docs with "Schema not statically declared". The description adds little beyond the word "code", leaving the payload format essentially undefined.

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: "Upload app code", reinforced by the HTTP endpoint and "Category: Python Apps". It is clear this targets Python app code, and the category helps separate it from the similar Node.js upload-code sibling. However, it does not explicitly contrast itself with sibling tools, so it stops short of full 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 guidance about when to use this tool versus alternatives such as the Node.js upload-code endpoint, Git deployment, or file-manager upload. The category line only implies the Python app context; no conditions, exclusions, or alternative routing are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_post_v1_python_exampleB

Deploy example app

HTTP: POST /v1/python/example Category: Python Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the required scope (apps:write) and explicitly warns that it mutates server state, which is useful beyond the annotations' readOnlyHint=false. However, it does not disclose what resource is created or changed, whether the operation is reversible, or what side effects the deploy has.

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 action, followed by compact routing and scope lines. Some lines duplicate the tool name/endpoint, but they still serve as explicit reference information 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?

The description is incomplete for correct invocation because the request body schema is explicitly not statically declared and the description gives no hint about its expected contents. It also does not mention the sibling GET /v1/python/examples endpoint, which could help an agent verify what examples exist or what the deploy produces.

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 for the only parameter is 100%, so the baseline is 3, but the description adds no field-level meaning. The body parameter is documented only as an untyped JSON object with additionalProperties true, and the tool description does not compensate by explaining what an example-app deployment request should contain.

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 ('Deploy example app') and reinforces it with the HTTP method, path, and category. It clearly identifies the resource being acted on, though it does not explicitly contrast itself with the related POST /v1/python/apps or GET /v1/python/examples endpoints.

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. It does not mention the GET /v1/python/examples listing endpoint, the main Python app creation endpoint, or any condition that would favor this example deployment tool. The required-scopes and mutating notes provide context but not decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_post_v1_python_versions_installC

Install Python version

HTTP: POST /v1/python/versions/install Category: Python Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=false; the description adds 'Mutating: changes server state' and the apps:write scope requirement, which is useful authorization context. It does not disclose likely side effects such as download duration, existing version replacement, or failure modes, but given annotation coverage this is a reasonable mid score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded with the core verb and resource, and avoids filler. The HTTP path, category, scope, and mutating flag are each compact and useful, though the mutating line partly restates the readOnlyHint annotation.

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 state-changing install endpoint with no output schema and an opaque request body, the description is incomplete. It does not tell the agent what the body must contain, how to discover available versions, whether the install is synchronous/asynchronous, or what response 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?

The only parameter is a free-form body whose schema is explicitly 'not statically declared — see API docs'; the tool description adds no field names or example values such as which Python version identifier to send. Despite the reported 100% schema coverage, that coverage is a placeholder and leaves the agent without enough information to construct a correct request.

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 ('Install Python version') with resource and HTTP endpoint, and the Category 'Python Apps' distinguishes it from the analogous Node.js install sibling. It could be stronger by explicitly contrasting with related Python version settings, 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?

No guidance is given about when to call this tool versus alternatives such as panelica_python_apps_post_v1_python_versions_major_default or listing versions before install. The only context is the required scope and a mutating warning, which are operational facts, not usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_post_v1_python_versions_major_defaultA

Set default version

HTTP: POST /v1/python/versions/:major/default Category: Python Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
majorYesPath parameter: major

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish non-read-only and non-idempotent behavior, and the description adds the explicit 'Mutating: changes server state' plus required scope 'apps:write', which provides useful context beyond the annotations. It does not detail what specific state changes occur, but the annotation coverage lowers the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the primary action stated first followed by HTTP, category, scope, and mutating status. Every line serves a purpose with no filler, though some content, like 'Set default version', duplicates the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

As a mutating endpoint with no output schema and an arbitrarily structured body ('Schema not statically declared'), the description is incomplete for correct invocation. It does not explain what the request body should contain, what 'default' affects, or what kind of response the agent should expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema nominally covers both the 'major' path parameter and the body object, though the body is explicitly marked as not statically declared. The description adds no additional parameter meaning, which is acceptable under the high-coverage baseline but does not compensate for the opaque body.

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 'default version', with the HTTP path explicitly showing 'POST /v1/python/versions/:major/default' and Category 'Python Apps'. This distinguishes it from related tools like the Node.js versions default endpoint and Python version install/delete tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as when setting a default compared to installing or deleting a Python version. The description includes scopes and mutating status but these are authorization/safety facts, not usage selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_python_apps_put_v1_python_apps_idA
Idempotent

Update Python app

HTTP: PUT /v1/python/apps/:id Category: Python Apps Required scopes: apps:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the description does not need to restate those basics. It adds value by disclosing the required OAuth scope 'apps:write' and explicitly warning that this is a mutating operation that 'changes server state', which goes beyond the structured annotation data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action, followed by concise metadata lines for HTTP method, category, scopes, and mutability. It avoids padding, though some lines like 'Category: Python Apps' are partially redundant with the tool name and path.

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 PUT endpoint with an open 'body' object ('Schema not statically declared — see API docs') and no output schema, the description is materially incomplete. It tells the agent the operation mutates state and requires apps:write, but not what fields the body should contain, what the update affects, or where to find the actual API contract beyond a vague reference in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level detail, and the schema itself only says 'id' is a path parameter and 'body' is an untyped JSON object with no statically declared schema. The description does not compensate for the body's lack of field documentation.

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 'Update Python app', a specific verb plus resource, and reinforces it with the HTTP method and path 'PUT /v1/python/apps/:id'. This clearly distinguishes the tool from the many sibling GET/POST/DELETE endpoints for Python apps and from update endpoints for other app types like Node.js or Laravel.

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 creating, deleting, restarting, or installing packages on a Python app. It provides context like 'Required scopes: apps:write' and 'Mutating', but no explicit when-to-use or when-not-to-use direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_redirects_delete_v1_redirects_idA
DestructiveIdempotent

Delete redirect

HTTP: DELETE /v1/redirects/:id Category: Redirects Required scopes: domains:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry destructiveHint=true and readOnlyHint=false, so the description isn't required to cover basic safety, but it adds value by warning that the resource is permanently removed and by stating the required domain:delete scope. This goes beyond the structured annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the core purpose ('Delete redirect') before the HTTP path, category, scopes, and destructive warning. Every line conveys necessary metadata with 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 single-parameter delete endpoint, the description covers the operation, endpoint, required authorization scope, and irreversible nature. It doesn't describe response or error behavior, but that is not essential for this simple destructive tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the only parameter id is described as a path parameter. The description doesn't add any semantics beyond the schema, so the baseline 3 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 states a specific verb and resource ('Delete redirect') and adds the HTTP DELETE path, making the action unambiguous. It doesn't explicitly differentiate from sibling redirect tools (e.g., get/create redirects), but no other sibling performs this exact operation, so the 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 intended use is implied by 'Delete redirect' and the DELETE path, but there is no explicit when-to-use guidance or mention of alternatives. Required scopes are listed, which helps a caller know prerequisites, but exclusions or sibling comparisons are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_remote_mysql_delete_v1_remote_mysql_hosts_idA
DestructiveIdempotent

Delete remote MySQL host

HTTP: DELETE /v1/remote-mysql-hosts/:id Category: Remote MySQL Required scopes: databases:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already include destructiveHint and readOnlyHint false; the description reinforces this with a WARNING that the resource is permanently removed and adds the required scope 'databases:delete'. It also clarifies irreversibility. No contradiction.

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?

Each line delivers distinct information: action, HTTP method, category, required scope, and destructiveness warning. No filler. Well structured 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?

For a simple one-parameter delete with destructiveHint annotation, the description covers the essential operational facts: endpoint, scope, and permanence. It does not mention behavior for missing IDs or return codes, but no output schema exists and idempotency is covered by annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the only parameter `id` fully described as a path parameter. The description adds no further parameter information, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Delete remote MySQL host') and includes the HTTP DELETE method. The category and endpoint make it distinct from the sibling get/post operations. The 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 on when to use this tool versus alternatives (e.g., GET to list, POST to create) or any prerequisites/exclusions. The verb implies usage, but there is no explicit context or condition. This is a clear gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_remote_mysql_get_v1_remote_mysql_hostsA
Read-onlyIdempotent

List remote MySQL hosts

HTTP: GET /v1/remote-mysql-hosts Category: Remote MySQL Required scopes: databases:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds useful context beyond those annotations by stating 'Required scopes: databases:read' and the HTTP method, which helps an agent understand authentication needs and confirm the operation is non-mutating.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action. Every line contributes useful information: the operation, HTTP endpoint, category, required scopes, and read-only nature, with no filler or repetition beyond the minimal annotation overlap.

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 endpoint, the description covers the essential invocation facts: endpoint, category, required scope, and safe read-only nature. It does not describe response shape or pagination, but given the simplicity and absence of an output schema, this is not a significant 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 has zero parameters and schema description coverage is 100%, so there are no parameter semantics for the description to clarify. The baseline of 4 applies because no parameter documentation burden exists.

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 'List remote MySQL hosts', a specific verb and resource that clearly states the operation. It is further reinforced by the HTTP GET endpoint and the read-only designation, which distinguishes it from the sibling POST and DELETE remote MySQL host tools 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: it is a GET, read-only operation for listing hosts, so an agent can infer it is for viewing rather than creating or deleting. However, it does not explicitly name alternative tools such as panelica_remote_mysql_post_v1_remote_mysql_hosts or specify 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.

panelica_remote_mysql_post_v1_remote_mysql_hostsB

Create remote MySQL host

HTTP: POST /v1/remote-mysql-hosts Category: Remote MySQL Required scopes: databases:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states 'Required scopes: databases:write' and 'Mutating: changes server state', adding auth and side-effect context beyond the annotations. However, it largely restates the readOnlyHint=false signal and does not disclose idempotency consequences or error/response behavior, so it adds moderate but limited value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the purpose comes first, followed by HTTP method, category, required scopes, and mutating behavior. Every line carries distinct operational information and there is 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?

For a creation tool, the description omits the actual request body structure, required fields, and any return details. The only parameter is explicitly unschemaed, so an agent cannot reliably construct a valid create request from the MCP definition alone.

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?

There is only one 'body' parameter and the schema describes it as application/json with no statically declared schema, so the description adds no field-level meaning. Since schema description coverage is 100%, the baseline is 3, but the opaque 'see API docs' body leaves the agent without concrete payload 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 opens with 'Create remote MySQL host', which is a specific verb and resource, and also gives the HTTP POST endpoint. It clearly identifies the action but does not explicitly distinguish itself from sibling GET/DELETE remote MySQL tools beyond the 'create' verb.

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 choose this tool over alternatives such as listing or deleting remote MySQL hosts. The description implies creation but never states exclusions, prerequisites, or conditions that would route an agent here instead of a sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_resource_quota_get_v1_resource_quotaA
Read-onlyIdempotent

Get resource quota

HTTP: GET /v1/resource-quota Category: Resource Quota Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful context beyond those: the HTTP method, endpoint path, and required OAuth scope 'accounts:read', which helps the agent ensure it has proper authorization. The 'Read-only.' line is redundant with annotations but not harmful.

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. Minor redundancy exists: 'Category: Resource Quota' is already clear from the tool name, and 'Read-only.' repeats the readOnlyHint annotation. Still, it remains appropriately compact and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only GET, the description is adequate, but it leaves gaps. It does not clarify the scope of the quota being fetched (e.g., current account vs global) nor does it describe the return payload, and there is no output schema to compensate. Given the sibling per-user quota endpoint exists, a one-line clarification would meaningfully improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty input schema, so no parameter documentation is needed. The description appropriately adds no parameter detail because there is nothing to explain. Baseline 4 applies for tools with 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 clearly identifies the action and resource: 'Get resource quota' with HTTP GET /v1/resource-quota. However, it does not explicitly distinguish itself from the sibling tool panelica_resource_quota_get_v1_resource_quota_users_user_id, which appears to be the per-user variant of the same quota 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?

There is no guidance about when to use this tool versus the sibling per-user resource quota endpoint or other quota-related tools. The description provides context like scopes and read-only status, but no exclusions, alternatives, or decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_resource_quota_get_v1_resource_quota_users_user_idA
Read-onlyIdempotent

Get user resource quota

HTTP: GET /v1/resource-quota/users/:user_id Category: Resource Quota Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesPath parameter: user_id

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description's 'Read-only' restates this. It adds useful context with 'Required scopes: accounts:read' and the exact HTTP method, but it does not describe response contents or other behavioral details. No contradiction with 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?

The description is compact and front-loaded: the operation, HTTP path, category, required scope, and read-only nature are each stated in one short line. There is no filler or repetition beyond the harmless restatement of read-only behavior.

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, read-only GET, the description plus annotations are nearly sufficient for selection and invocation. The main gap is the absence of any indication of the response shape, which is more noticeable because no output schema is provided, but the endpoint name makes the result reasonably predictable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with user_id documented as a path parameter. The description's HTTP path confirms that user_id is a path variable but does not add meaningful semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Get user resource quota', a specific verb and resource, and reinforces it with the explicit HTTP path 'GET /v1/resource-quota/users/:user_id'. This clearly distinguishes it from the sibling panelica_resource_quota_get_v1_resource_quota, which targets the overall quota rather than a specific user's quota.

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 guidance is provided relative to alternatives such as panelica_resource_quota_get_v1_resource_quota or other quota-related endpoints. The description only states the HTTP method, category, and required scopes; an agent must infer that this endpoint is for retrieving a single user's resource quota.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_security_delete_v1_security_blocked_ips_idA
DestructiveIdempotent

Unblock IP

HTTP: DELETE /v1/security/blocked-ips/:id Category: Security Required scopes: security:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and readOnlyHint=false, and the description does not contradict them. It adds useful context beyond the annotations: 'Required scopes: security:delete' covers the auth need, and 'WARNING: destructive — permanently removes the resource' clarifies what gets destroyed and that the action is permanent.

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 definition is tight and front-loaded: action first, then endpoint, category, required scope, and warning. Each line carries distinct information, though 'Category: Security' adds little beyond what the resource path already conveys.

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 delete, the description covers the essential call facts: endpoint, required scope, and destructive consequence. Minor gaps are the absence of any response/return description (no output schema exists) and no pointer to the GET /v1/security/blocked-ips sibling for retrieving the id to unblock.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% since the single 'id' parameter is described as 'Path parameter: id', matching the ':id' placeholder in the HTTP path. The description adds no further meaning about what the id refers to or how to obtain it, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Unblock IP', paired with the concrete HTTP path 'DELETE /v1/security/blocked-ips/:id'. This clearly distinguishes it from sibling tools like panelica_security_post_v1_security_blocked_ips (block an IP) and panelica_security_get_v1_security_blocked_ips (list blocked IPs).

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 by the verb 'Unblock' and the DELETE method on the blocked-ips endpoint, but the description never explicitly states when to choose this tool over the sibling POST (block) or GET (list) tools. No alternatives are named and no exclusions are given, so the agent must infer the selection from the resource path alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_security_delete_v1_security_firewall_rules_idA
DestructiveIdempotent

Delete firewall rule

HTTP: DELETE /v1/security/firewall-rules/:id Category: Security Required scopes: security:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds an explicit warning that deletion permanently removes the resource, going beyond the destructiveHint annotation. It also discloses the required scopes, which are not present in the annotations and are operationally important for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by the HTTP route, category, required scopes, and destructive warning. Every line is useful and none are redundant.

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 delete operation, the description provides the HTTP route, required scopes, and a destructive-removal warning. The agent has enough information to call the tool correctly without needing an output schema or nested-object details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'id' parameter, described as a path parameter. The description does not add additional parameter semantics beyond what the schema already states, so the baseline score 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 begins with a clear verb and resource: 'Delete firewall rule,' matching the title and resource path. The HTTP DELETE method and resource path remove any 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 HTTP method and resource clearly imply deletion of a firewall rule by ID, and the required scopes note when authorization is needed. However, there is no explicit comparison to sibling tools such as listing or creating firewall rules, so the 'when to use' guidance is mostly 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.

panelica_security_get_v1_security_advisorB
Read-onlyIdempotent

Run security advisor checks

HTTP: GET /v1/security/advisor Category: Security Required scopes: security:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is established. The description adds the required security:read scope and HTTP GET method, which is useful, but it repeats 'Read-only' and gives no detail about what checks are performed or what the response will contain.

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 a clear one-line purpose, followed by compact metadata. Minor redundancy exists: 'Read-only' duplicates the annotations, and 'Category: Security' is largely implied by the endpoint path.

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 GET, the description covers the endpoint, category, required scope, and read-only nature. However, there is no output schema, so the description should clarify what the advisor returns, such as a status report, a list of findings, or recommendations, for an agent to judge whether this tool is relevant.

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 schema, so there is nothing the description needs to explain about parameters. Baseline 4 applies for a no-parameter tool.

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 specific action and resource ('Run security advisor checks') and includes the HTTP path and category. However, 'checks' is vague: it does not explain what the security advisor covers, such as hardening, TLS, exposed services, or other audit areas. It also does not differentiate the tool from sibling security endpoints like blocked_ips, firewall_rules, or login_history beyond its 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 provides no guidance on when to use this tool versus its security-related siblings. An agent must infer from the name and category that this runs a security advisor check, but there is no stated context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_security_get_v1_security_blocked_ipsB
Read-onlyIdempotent

List blocked IPs

HTTP: GET /v1/security/blocked-ips Category: Security Required scopes: security:read Read-only.

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?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds a useful authorization requirement ('Required scopes: security:read') and the HTTP method, but it does not disclose other behavioral traits like pagination, ordering, or what scope of IPs is considered 'blocked.' This adds some value but is not rich 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 compact and front-loads the core purpose ('List blocked IPs') followed by brief, scannable metadata. The only redundancy is repeating 'Read-only,' which is already present in annotations, but overall the structure is efficient and every line 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, read-only GET with no output schema, the description provides the endpoint, required scopes, and safety profile, which is largely sufficient for an agent to invoke it correctly. It leaves minor ambiguity about the exact scope of 'blocked IPs' and doesn't describe the response format, but these are low-risk gaps given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and schema coverage is 100%, so there is nothing the description needs to compensate for. The 0-parameter baseline of 4 applies because parameter documentation is unnecessary here.

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 the action 'List' and the resource 'blocked IPs' clearly, giving a specific verb+resource pairing. It is not a tautology and reads naturally. However, it does not differentiate this from related security tools like firewall rules or login history, so it stops short of a 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 provided about when to use this tool versus alternatives. It only offers static metadata (HTTP method, scopes, category) and does not mention exclusions, preconditions, or related tools, leaving an 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.

panelica_security_get_v1_security_firewall_rulesA
Read-onlyIdempotent

List firewall rules

HTTP: GET /v1/security/firewall-rules Category: Security Required scopes: security:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful auth context ('Required scopes: security:read') and the HTTP method, but does not describe response format, pagination, or scope of returned rules.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core operation, followed only by essential metadata. There is no filler or redundant explanation.

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 list operation, the description plus annotations are sufficient. It states the endpoint, required scope, and behavior, so an agent can invoke it correctly without missing information.

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 100% schema description coverage, so there is nothing for the description to add. Per baseline for zero-parameter tools, this is adequate.

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 operation: 'List firewall rules' with the HTTP endpoint. It is specific about the verb and resource, but it does not explicitly differentiate itself from similar security-list siblings like blocked IPs or the security advisor.

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 provides category and scope information but no context for choosing it over related security endpoints or excluding it in favor of others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_security_get_v1_security_login_historyA
Read-onlyIdempotent

Get login history

HTTP: GET /v1/security/login-history Category: Security Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already communicate readOnlyHint, idempotentHint, and destructiveHint=false. The description adds the required OAuth scope 'accounts:read', which is auth-relevant context not present in the annotations, and repeats 'Read-only' consistently. No conflicts with the annotations 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?

The description is compact and front-loaded: it opens with the core action 'Get login history', then provides endpoint, category, required scope, and read-only status in a few short lines. No filler or unnecessary prose is present.

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 GET operation, the description is mostly sufficient, providing endpoint, category, and auth requirement. It does not describe the response shape or contents beyond 'login history', but there is no output schema and the tool is simple enough that this is 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 takes zero parameters, so there are no parameter semantics to explain; the schema is empty and all optional/required counts are zero. The description therefore does not need to compensate for undocumented parameters, and the baseline 4 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?

States a clear verb and resource: 'Get login history', reinforced by the explicit HTTP endpoint GET /v1/security/login-history. It does not explicitly contrast itself with sibling tools like audit logs or session management, but the resource is specific enough to stand apart.

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 for when to use this tool instead of related logging/security tools such as panelica_audit_get_v1_activity_log or panelica_sessions_get_v1_sessions. The description lists category and required scope, but not selection criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_security_post_v1_security_blocked_ipsC

Block IP

HTTP: POST /v1/security/blocked-ips Category: Security Required scopes: security:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already encode readOnlyHint=false, so 'Mutating: changes server state' adds little new behavioral information. The description does contribute the security:write scope requirement, but it does not explain side effects, permanence, or what changes to the blocked-IP list actually 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 short, front-loaded with 'Block IP', and then gives endpoint, category, scope, and mutating flag in a scannable structure. The 'Category: Security' line is somewhat redundant with the endpoint path, but overall there is no fluff.

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 security endpoint with an opaque request body and no output schema, the description is not complete enough to invoke correctly. It omits the required body shape and any return/error behavior, and only says to see API docs via 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?

The only parameter is an open 'body' object whose schema is explicitly 'not statically declared' and defers to API docs, so an agent cannot determine what fields to send. The tool description adds no parameter meaning, making this effectively a 0%-semantic-coverage case despite the 100% schema-description signal.

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 opens with 'Block IP' and gives the exact endpoint, so the action and resource are clear. It distinguishes this mutation from the GET/DELETE blocked-IP siblings by verb, though it does not explicitly contrast it with the firewall-rules 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?

There is no when-to-use guidance, no mention of alternatives, and no exclusion criteria. The scope requirement is authentication context, not usage guidance, so an agent gets no help choosing between this and related security endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_security_post_v1_security_firewall_rulesA

Create firewall rule

HTTP: POST /v1/security/firewall-rules Category: Security Required scopes: security:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states 'Mutating: changes server state' and required scope 'security:write', which adds meaningful context beyond the annotations. The annotations already flag readOnlyHint=false and idempotentHint=false, and the description is consistent with those, with no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, purpose-first, and contains no filler. Every line adds useful operational context: HTTP method, category, required scope, and mutation effect. This is appropriately concise for a single-purpose create 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 definition covers the essential invocation facts: endpoint, scope, and mutating behavior. But there is no output schema, no response description, and the body contents are undefined, so an agent could not reliably construct a valid firewall rule payload without external documentation.

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?

There is a single body parameter and schema coverage is 100%, so the baseline applies. However, the body schema is not statically declared and the description adds no field-level detail about firewall rule properties, leaving the agent dependent on external API docs for the actual request body structure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Create firewall rule', supplemented by HTTP POST, category, scopes, and mutating behavior. It is easily distinguishable from sibling firewall GET/DELETE tools by the create/post framing, though it does not 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?

The description gives no guidance on when to choose this tool over alternatives, nor any exclusions. The verb 'Create' implies the obvious use case, but there is no mention of checking existing rules via GET, avoiding duplicates, or prerequisites beyond the scope line.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_server_get_v1_server_metricsB
Read-onlyIdempotent

Get server metrics

HTTP: GET /v1/server/metrics Category: Server Required scopes: server:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context by stating the required scope 'server:read' and repeating 'Read-only', but it doesn't describe what metrics are returned or any behavioral caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by endpoint, category, scopes, and read-only status. It is well-structured, though 'Read-only' is redundant with the readOnlyHint annotation.

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 endpoint, the description covers invocation essentials like route and required scope. However, with no output schema and no mention of what specific server metrics are included, an agent has limited understanding of the response content.

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 input schema is complete, so no parameter documentation is needed. The description doesn't add parameter information, but none is required here.

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: 'Get server metrics' with the HTTP path GET /v1/server/metrics. It is unambiguous about what the tool does, though it doesn't differentiate it from closely related siblings like server_get_v1_server_status or metrics_get_v1_metrics_native.

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 server status or native metrics endpoints. The description provides context like category and required scopes, but no conditional or exclusionary language to help an agent choose between related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_server_get_v1_server_servicesA
Read-onlyIdempotent

Get services status

HTTP: GET /v1/server/services Category: Server Required scopes: server:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description does not contradict them. It adds an actionable auth prerequisite ('Required scopes: server:read') and confirms the GET method, which goes beyond the structured fields. It does not describe the response shape, but that is less critical for a zero-parameter read call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action; HTTP method, category, scope, and read-only flag follow in short lines. Minor redundancy exists ('Read-only' and 'Category: Server' overlap with annotations/name), but the overall structure is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only endpoint, the description supplies the essentials: endpoint, method, required scope, and safety profile. The only notable omission is a fuller description of the returned status payload, but no output schema exists and invoking the tool requires no input decisions.

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 an empty object with 0 parameters and 100% schema coverage, so the 0-parameter baseline of 4 applies. There are no parameter semantics for the description to add.

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 ('Get services status') and includes the HTTP endpoint and category, making the target of the tool clear. It does not explicitly contrast with sibling server_status or server_metrics, but 'services' is specific enough to distinguish it.

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 choose this tool over siblings like panelica_server_get_v1_server_status or panelica_server_get_v1_server_metrics. The description provides context such as required scope and read-only nature, but no when-to-use or when-not-to-use direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_server_get_v1_server_statusA
Read-onlyIdempotent

Get server status

HTTP: GET /v1/server/status Category: Server Required scopes: server:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the required scope 'server:read' and the explicit HTTP GET method, which are behavioral details beyond the annotations' readOnlyHint/idempotentHint/destructiveHint. It consistently reinforces the read-only nature rather than merely repeating annotations. It does not disclose what the response payload contains, but for a read-only status call the key safety and auth context is covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, opening with the core purpose ('Get server status') followed by essential metadata (endpoint, category, scope, read-only flag). Every line earns its place and there is no filler or duplicated annotation 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, read-only status endpoint, the description covers purpose, endpoint, category, required scope, and safety profile. The only notable gap is that without an output schema, the description does not hint at what fields the status response contains, leaving the agent to discover the payload shape at call time.

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 schema, so the baseline is 4. There are no parameter semantics for the description to clarify; nothing is missing. The description correctly implies the tool is callable without arguments.

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 ('Get server status') and reinforces it with the HTTP endpoint 'GET /v1/server/status'. However, it does not elaborate on what 'status' encompasses (e.g., health, uptime, version), and it fails to differentiate this from closely named siblings like panelica_server_get_v1_server_metrics and panelica_server_get_v1_server_services.

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. The description offers no hint about which sibling tool to prefer for related needs (e.g., server_metrics for resource usage, server_services for service states), so an agent gets no routing help despite the large sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_server_post_v1_server_services_name_restartB

Restarts a specific service (nginx, apache, mysql, postgresql, redis, bind, proftpd, etc.).

HTTP: POST /v1/server/services/:name/restart Category: Server Required scopes: services:restart, server:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
nameYesService name

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnly false and idemotent false; the description reinforces with 'Mutating: changes server state.' and lists required scopes (services:restart, server:write), adding auth context beyond the schema. No contradiction with annotations.

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 main sentence is front-loaded and the metadata lines (route, category, scopes, mutating) are concise and informative. No wasteful repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers action, route, examples, auth, and mutation, which is enough to call with a name. However, it does't address the body parameter's role, expected response, or error behavior, and there is no output schema to fill that gap. Therefore slightly below 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 already describes both name and body at 100% coverage. The description adds useful example values for name, but leaves the body paramter completely unexplained beyond the schema's 'see API docs' note. Baseline 3 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?

Description opens with a specific verb+resource ('Restarts a specific service') and enumerates common system services, making the target clear. It is distinguishable from sibling start/stop tools by the action and service list, though it doesn't explicitly contrast with app-level restarts.

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 choose this tool over sibling start/stop tools, nor any exclusions. The only implicit cue is the verb 'restart', so an agent gets no explicit decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_server_post_v1_server_services_name_startA

Starts a specific service that was previously stopped.

HTTP: POST /v1/server/services/:name/start Category: Server Required scopes: services:start, server:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
nameYesService name

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context beyond annotations by stating the required scopes (services:start, server:write) and explicitly saying 'Mutating: changes server state.' This is useful for an agent deciding whether to invoke the 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 compact and front-loaded with the core action. The additional lines for HTTP method, scopes, and mutating effect are useful, though the Category line adds limited value beyond the endpoint.

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 action endpoint with one required parameter, the description covers the action, precondition, auth requirements, and mutating effect. It does not explain the optional body parameter's purpose, but this is a minor gap given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema documents both parameters, so the description does not need to repeat them. However, the 'body' parameter is only described as having no statically declared schema, and the description does not clarify whether or when a body is needed. This leaves a moderate ambiguity despite the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Starts a specific service that was previously stopped.' This clearly differentiates it from sibling stop/restart operations, and the HTTP path reinforces the exact endpoint.

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 precondition 'previously stopped' provides clear context for when to use this tool, and the path name distinguishes it from restarting or stopping services. It does not explicitly name the sibling alternatives, but the usage context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_server_post_v1_server_services_name_stopA

Stops a specific service. Use with caution.

HTTP: POST /v1/server/services/:name/stop Category: Server Required scopes: services:stop, server:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
nameYesService name

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as mutating and non-idempotent, but the description adds valuable context beyond those flags: 'Mutating: changes server state' makes the consequence explicit, and 'Required scopes: services:stop, server:write' discloses authorization requirements. 'Use with caution' further signals operational risk. No contradiction with annotations exists.

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 tightly structured and efficient: a one-line purpose, a warning, the HTTP endpoint, category, scopes, and mutation note. Every line adds distinct information without redundancy or 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 straightforward service-stop operation, the description covers endpoint, category, required scopes, and the state-changing effect. The body parameter's purpose is not explained, but the schema acknowledges it is not statically declared. No output schema exists, so return-value details are absent, but they are not critical for invoking this action 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 100%, so the schema already documents both parameters: 'name' as the service name and 'body' as an optional request body. The tool description adds no parameter-level meaning, but the agent can rely on the schema. The body parameter remains vague, though the schema itself defers to API docs.

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: 'Stops a specific service.' This clearly identifies the action and target, and the verb 'stop' inherently differentiates it from sibling tools like start and restart. The tool name and title reinforce the same meaning without adding confusion.

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 start or restart. 'Use with caution' is a warning, not usage context, and no preconditions, effects on dependent services, or when-not-to-use scenarios are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_sessions_delete_v1_sessions_idA
DestructiveIdempotent

Revoke session

HTTP: DELETE /v1/sessions/:id Category: Sessions Required scopes: accounts:write WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds a 'WARNING: destructive — permanently removes the resource' warning, which reinforces and expands on the destructiveHint annotation. It also discloses the required scope 'accounts:write', giving useful auth context beyond the 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?

The description is compact and front-loaded: the purpose appears first, then the HTTP method, category, required scope, and a clear destructive warning. Every line contributes useful information with no waste.

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 a single self-explanatory parameter and annotations that already indicate destructiveness and idempotency, the description is nearly complete. It could add a note about the effect or success response, but nothing critical is missing for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers the only parameter with 100% coverage, describing it as 'Path parameter: id'. The description adds minimal semantic value beyond confirming the id refers to a session, so the baseline of 3 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 opens with 'Revoke session', which is a specific verb and resource, and confirms it with the HTTP DELETE /v1/sessions/:id path. This clearly identifies the tool as revoking a single session, though it does not explicitly contrast with the sibling revoke_all tool.

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 panelica_sessions_post_v1_sessions_revoke_all. The description implies usage through the endpoint and id parameter, but it never states when to choose single-session revocation over bulk revocation or lists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_sessions_get_v1_sessionsA
Read-onlyIdempotent

List sessions

HTTP: GET /v1/sessions Category: Sessions Required scopes: accounts:read Read-only.

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?

Annotations already cover the safety profile with readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds the required scope 'accounts:read' and HTTP method, which are useful, but it does not disclose response format, pagination, or scope of which sessions are returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core purpose, and contains only relevant lines: endpoint, category, required scope, and read-only note. It can be scanned quickly with no wasted prose.

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 GET endpoint with rich annotations, the description provides endpoint, required scope, and safety profile, which is enough to invoke the tool correctly. It could say whose sessions are listed and describe the response shape, but the low complexity and absent parameters make those gaps minor.

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 with zero parameters and 100% schema coverage, so there are no parameter semantics for the description to clarify. The zero-parameter baseline applies and the description does not introduce any 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?

The description states a specific verb-resource combination ('List sessions') and provides the exact HTTP endpoint GET /v1/sessions. This clearly distinguishes the tool from the sibling session tools, which are delete and revoke operations, especially combined with 'Read-only.'

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, aside from the implicit read-only GET semantics. There are no explicit exclusions, use-case conditions, or references to sibling tools like session deletion or revocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_sessions_post_v1_sessions_revoke_allB

Revoke all sessions

HTTP: POST /v1/sessions/revoke-all Category: Sessions Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry readOnlyHint=false and idempotentHint=false; the description adds a required scope ('accounts:write') and confirms 'Mutating: changes server state', which is consistent with the annotations. It does not disclose the most operationally relevant behavior — that revoking ALL sessions likely invalidates the caller's own current session — nor any side effects. No annotation contraidiction.

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?

Five short labeled lines with the action front-loaded; each line carries one fact (action, HTTP method, category, scope, mutation). The HTTP POST line mildly duplicates the tool name's 'post_v1_sessions_revoke_all', but it is cheap and aids routing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a no-required-param mutating action: it gives the endpoint, category, required scope, and mutation flag. Gaps include no warning about the caller's own session being affected, no body expectations, and no indication of the response (and since no output schema exists, the description is the only place that could be 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?

Schema description coverage is 100%, so the description need not compensate per the baseline. However, the sole param's description is a stub ('Schema not statically declared — see API docs'), so the agent learns nothing about what the body should contain; the tool description adds no parameter info either.

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 'Revoke all sessions' states a specific verb and resource, and the scope word 'all' distinguishes it from the key siblings panelica_sessions_get_v1_sessions (list sessions) and panelica_sessions_delete_v1_sessions_id (revoke a single session). However, the description never names those siblings explicitly, so differentiation is implied rather than stated.

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 its alternatives. It never mentions that a single session can be revoked with panelica_sessions_delete_v1_sessions_id or that listing sessions uses panelica_sessions_get_v1_sessions, so an agent choosing between scoped and bulk revoke gets no decision support beyond the word 'all'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_smtp_relay_get_v1_smtp_relayA
Read-onlyIdempotent

Get SMTP relay config

HTTP: GET /v1/smtp-relay Category: SMTP Relay Required scopes: : Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, and the description mostly repeats this by saying "Read-only." It adds the HTTP endpoint and required scopes as operational context, but does not describe the response contents or any edge behavior, so it adds limited value beyond the annotations.

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 purpose, followed by endpoint, category, scopes, and safety profile in compact lines. It is slightly redundant with the annotations and includes a low-value category line, so it is not a perfect 5.

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 read-only configuration getter, the description is essentially complete for invocation: it identifies the resource, endpoint, auth scope requirement, and read-only nature. The lack of an output schema means return fields are not detailed, but the tool's intended response is clear from its name and description.

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 100% schema coverage, so there is nothing for the description to clarify. Baseline 4 applies because 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?

States a specific verb and resource: "Get SMTP relay config." The HTTP GET method and "Read-only." line make it easy to distinguish from the sibling patch tool, 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the action verb and resource: call this when you need the current SMTP relay configuration. It does not state when not to use it or explicitly route to panelica_smtp_relay_patch_v1_smtp_relay for modifications.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_smtp_relay_patch_v1_smtp_relayB

Update SMTP relay config

HTTP: PATCH /v1/smtp-relay Category: SMTP Relay Required scopes: : Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the description's 'Mutating: changes server state' adds limited new information. It does contribute 'Required scopes: *:*' and explicitly flags that this is not a read operation, but it does not describe side effects, partial-update behavior, or irreversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the core action before metadata. 'Mutating: changes server state' is somewhat redundant with the annotations, but the overall structure is clear and free of 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?

There is no output schema and the request body is opaque, yet the description does not explain what an SMTP relay config update can contain, whether an empty body is valid, or what response to expect. The 'see API docs' pointer partially compensates, but the description alone is not enough to invoke the tool confidently.

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 one body parameter with 100% description coverage by the stated metric, but that description only says the schema is not statically declared and to see API docs. The tool description adds no field-level semantics, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and resource: 'Update SMTP relay config', reinforced by 'HTTP: PATCH /v1/smtp-relay'. This clearly distinguishes it from the read-only sibling panelica_smtp_relay_get_v1_smtp_relay.

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 the SMTP relay GET sibling, nor are prerequisites or alternative tools mentioned. The HTTP method and 'Update' wording imply the use case, but the description leaves the routing decision entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_snapshots_delete_v1_snapshots_idA
DestructiveIdempotent

Delete snapshot

HTTP: DELETE /v1/snapshots/:id Category: Snapshots Required scopes: backups:restore WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly warns 'destructive — permanently removes the resource', which adds concrete behavioral context beyond the annotations' destructiveHint=true. It also discloses the required scope 'backups:restore' and the HTTP method, giving the agent actionable information about authorization and 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 compact and front-loaded, starting with the purpose and followed by HTTP, category, scope, and a warning. Each line serves a distinct purpose with 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 one-parameter delete operation with strong annotations, this description is nearly complete: it covers the endpoint, required scope, and destructive nature. It does not describe response status codes or error behavior, but for a simple destructive action this is a minor omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents 'id' as 'Path parameter: id' with 100% coverage, so the description adds little semantic value. The HTTP path '/v1/snapshots/:id' confirms where the id fits, but no additional detail about format, constraints, or behavior is provided.

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 'Delete snapshot', a clear verb+resource statement, and is reinforced by the HTTP line 'DELETE /v1/snapshots/:id'. This distinguishes it from sibling operations like creating snapshots, getting a snapshot, or restoring from a snapshot.

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 by 'Delete snapshot' and by the destructive warning, so an agent can infer this is the tool for permanently removing a snapshot. However, there is no explicit guidance contrasting it with alternatives such as restore, nor any statement of when deletion should be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_snapshots_get_v1_snapshotsA
Read-onlyIdempotent

List domain snapshots

HTTP: GET /v1/snapshots Category: Snapshots Required scopes: backups:read Read-only.

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?

The annotations already declare readOnlyHint=true and destructiveHint=false, and the description repeats 'Read-only', but it also adds the required scope 'backups:read' and the HTTP GET method. This auth context goes beyond the annotations and is valuable for an agent deciding whether it is permitted to call the tool. No contradiction with 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?

The description is four compact lines with the core purpose front-loaded. Every line adds a meaningful piece of metadata (HTTP method, category, scopes, read-only) and there is 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?

For a zero-parameter, read-only list endpoint, the description plus annotations are sufficient. It covers what the tool does, the HTTP method, the required auth scope, and the safe read-only nature of the call. No output schema exists, but the simple semantics make correct invocation possible without further detail.

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 nothing for the description to explain beyond what the empty schema already communicates. The baseline score of 4 for zero-parameter tools applies; no additional parameter meaning 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 opens with 'List domain snapshots', which names a specific verb and resource. The HTTP method GET and category 'Snapshots' reinforce the operation, and it is easily distinguished from sibling snapshot tools like get_v1_snapshots_id, post_v1_snapshots, and delete_v1_snapshots_id.

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 only implied by the verb 'List' — there is no explicit statement about when to choose this over the single-snapshot endpoint get_v1_snapshots_id or the create/restore/delete snapshot endpoints. The description provides no alternative routing or exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_snapshots_get_v1_snapshots_idA
Read-onlyIdempotent

Get snapshot

HTTP: GET /v1/snapshots/:id Category: Snapshots Required scopes: backups:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful context beyond the annotations by specifying the required scope 'backups:read' and explicitly confirming 'Read-only'. No contradiction exists.

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 well-structured: purpose, HTTP endpoint, category, required scope, and safety flag. It is front-loaded and easy to scan, though the opening 'Get snapshot' largely repeats the title.

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 read-only GET with rich annotations, the description is nearly complete: it provides the endpoint, category, required scope, and read-only behavior. It does not describe the response shape, but the absence of an output schema is a minor gap for such a simple fetch 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 documents 'id' as 'Path parameter: id' with 100% coverage, and the description adds no further parameter meaning. Baseline 3 is appropriate because the schema already carries the full parameter documentation.

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 'Get snapshot' and gives the HTTP endpoint GET /v1/snapshots/:id, so the verb and target resource are clear. It does not explicitly differentiate from the list or other snapshot sibling tools, so it is clear but not fully distinguishing.

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 about when to use this tool versus alternatives. It lists category, required scope, and read-only behavior, but never mentions that this retrieves a single snapshot by ID or that list/delete/restore endpoints exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_snapshots_post_v1_snapshotsA

Create domain snapshot

HTTP: POST /v1/snapshots Category: Snapshots Required scopes: backups:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states 'Mutating: changes server state' and 'Required scopes: backups:write', adding useful side-effect and authorization context beyond the annotations. It aligns with readOnlyHint=false and does not contradict any annotation, though it does not elaborate on reversibility or timing.

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 five short structured lines with the core purpose front-loaded. Every line — HTTP path, category, required scope, and mutating behavior — carries useful information without repetition or 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?

This is a mutating POST with no output schema and an explicitly undeclared request body schema. The description does not explain what fields the body should contain, what a domain snapshot entails, or what response/behavior to expect, so an agent cannot construct a correct request from this definition alone.

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 only parameter is a free-form body described as 'Schema not statically declared — see API docs', so the description adds no field-level meaning. Since schema coverage is 100% for the wrapper property, baseline 3 applies, but the body remains opaque and the agent gets no concrete payload guidance.

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 'Create domain snapshot', stating a clear verb and resource. The HTTP method/path and 'Category: Snapshots' further distinguish it from sibling list, restore, and delete snapshot operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb 'Create' and the endpoint context, but the description never explicitly names alternatives or says when not to use this tool. There is no guidance such as 'use restore for existing snapshots' or 'list snapshots before creating'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_snapshots_post_v1_snapshots_id_restoreB

Restore snapshot

HTTP: POST /v1/snapshots/:id/restore Category: Snapshots Required scopes: backups:restore Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the safety profile is partially covered. The description adds value by stating the required scope (backups:restore) and confirming mutability with 'Mutating: changes server state—a generic trait for a restore operation. It does not disclose what a restore actually entails (e.g., overwriting current files/databases, temporary downtime, irreversibility of current-state changes), which would be the most valuable behavioral context here. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: action line, HTTP endpoint, category, scopes, and mutability flag each on their own line with no wasted words. Minor redundancy exists since 'Restore snapshot' repeats the tool name and title, but overall the format is efficient and 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 two-parameter tool with an open body schema and no output schema, the description covers the action, endpoint, category, scopes, and mutability—adequate but with clear gaps. It gives no guidance on what the body parameter should contain, what the restore actually changes beyond 'server state', or what the agent should expect in the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. However, the schema descriptions are weak: 'Path parameter: id' is tautological and the body is described only as 'Schema not statically declared — see API docs' with additionalProperties true. The description adds only marginal meaning by implying id identifies the snapshot to restore; it does not help the agent understand what the open body should contain.

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 ('Restore snapshot') and reinforces it with the HTTP endpoint POST /v1/snapshots/:id/restore and Category: Snapshots. It is clear and unambiguous, though it does not explicitly name sibling restore tools (backups restore, file-manager trash restore, wordpress restore) to differentiate from 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 versus alternatives such as creating a snapshot (panelica_snapshots_post_v1_snapshots), deleting one, or using panelica_backups_post_v1_backups_filename_restore. The only prerequisite mentioned is 'Required scopes: backups:restore', which is an auth constraint rather than usage context. Nothing tells an agent when restore is appropriate (e.g., after data loss) or what conditions should route to a different tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_spam_delete_v1_spam_blacklist_idA
DestructiveIdempotent

Remove from blacklist

HTTP: DELETE /v1/spam/blacklist/:id Category: Spam Required scopes: email:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as destructive, and the description adds a human-readable warning that the resource is permanently removed, going slightly beyond the annotation. It also discloses the required OAuth scope (email:delete). No contradiction exists between the description and 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?

The description is compact and front-loaded with the core action, followed by only useful metadata: HTTP method, category, required scope, and a destructive warning. No filler or redundant restatement of the tool name is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple: one required path parameter, no output schema, and a destructive action already covered by annotations. The description supplies the endpoint, category, auth scope, and permanence warning. It could mention the response format or explicitly state irreversibility in more detail, but for this complexity it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single id parameter already described as a path parameter. The description adds no additional format, constraints, or semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Remove from blacklist') with a clear resource, and the HTTP DELETE path /v1/spam/blacklist/:id reinforces the scope. It also distinguishes this from the sibling whitelist deletion tool, so an agent can identify the intended target.

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: this tool removes an entry from the spam blacklist. However, it does not explicitly mention when to prefer it over the whitelist deletion sibling, nor does it point to the add-to-blacklist counterpart. The endpoint and category give some context, but no exclusions or alternatives are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_spam_delete_v1_spam_whitelist_idA
DestructiveIdempotent

Remove from whitelist

HTTP: DELETE /v1/spam/whitelist/:id Category: Spam Required scopes: email:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful context beyond annotations: the operation permanently removes the resource and requires the 'email:delete' scope. The destructive warning reinforces the destructiveHint annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: purpose first, then HTTP method, category, required scope, and a clear destructive warning. Every line adds useful information with 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 simple one-parameter DELETE operation, the description is nearly complete: it states the endpoint, required scope, and permanent destructive nature. It does not describe response behavior, but no output schema exists and such detail is not essential here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'id' parameter is documented as a path parameter. The description adds no additional parameter meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Remove from whitelist', backed by the HTTP DELETE path. This clearly distinguishes it from sibling tools like the spam blacklist delete 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 intended use is implied by the verb/resource and HTTP method, but there is no explicit guidance about when to use this instead of related spam whitelist tools such as adding or listing whitelist entries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_spam_get_v1_spam_blacklistA
Read-onlyIdempotent

List spam blacklist

HTTP: GET /v1/spam/blacklist Category: Spam Required scopes: email:read Read-only.

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?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description reinforces this with 'Read-only.' It adds useful behavioral context beyond annotations by specifying the HTTP method (GET), the category (Spam), and the required scope (email:read). This is adequate for a no-parameter read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely compact: a one-line purpose statement followed by four short metadata lines. Every line adds value, and no words are wasted.

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 no-parameter GET list operation, the description covers the endpoint, category, required scope, and read-only nature. There is no output schema, so a brief note about the response shape would have been a small enhancement, but the action is clear enough that an agent can invoke it correctly without further detail.

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 input schema is empty, so there is no parameter burden for the description to carry. With 0 params, the baseline is 4, and the description appropriately does not introduce nonexistent 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 phrase 'List spam blacklist' is a specific verb+resource statement, and the HTTP path '/v1/spam/blacklist' makes the target unambiguous. The resource name clearly differentiates it from the sibling tool panelica_spam_get_v1_spam_whitelist without needing to open 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 provides clear context: it is a read-only GET endpoint in the Spam category requiring the email:read scope. While it does not explicitly say 'use this instead of the whitelist tool,' the resource name and endpoint leave little room for confusion. It lacks explicit exclusion guidance, but context is sufficient for a simple list tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_spam_get_v1_spam_statisticsA
Read-onlyIdempotent

Get spam statistics

HTTP: GET /v1/spam/statistics Category: Spam Required scopes: email:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds the required scope 'email:read', which is auth-relevant context not present in annotations, and confirms the read-only nature without contradicting structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by minimal operational details (HTTP method, category, scope, read-only). Every line adds necessary context and there is no redundant 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?

Operationally, a zero-parameter read-only GET is simple to invoke with the provided endpoint and method. However, the absence of an output schema means the description does not clarify what 'spam statistics' actually return (global vs per-account, time ranges, counts), which weakens selection confidence among similar stats tools.

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 100% coverage, so there is no parameter meaning to explain. The no-parameter 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?

Description states a clear verb and resource: 'Get spam statistics', reinforced by the HTTP path GET /v1/spam/statistics and Category: Spam. It is distinguishable from sibling spam blacklist/whitelist endpoints, though it does not detail what the statistics contain.

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 over the many other statistics endpoints in the sibling list, such as mail queue stats, access stats, or domain stats. The description only provides endpoint and auth details, leaving selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_spam_get_v1_spam_whitelistA
Read-onlyIdempotent

List spam whitelist

HTTP: GET /v1/spam/whitelist Category: Spam Required scopes: email:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint false. The description adds useful behavioral/access context beyond the annotations by stating the required scope 'email:read' and explicitly calling it read-only, which helps the agent understand auth and side-effect expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core action 'List spam whitelist'. The HTTP method, category, required scope, and read-only note are all useful, though 'Read-only' and 'Category: Spam' add modest value beyond the name and annotations.

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 GET endpoint, the definition provides the essential invocation details: method, path, required scopes, and safety profile. It does not describe response contents or explicitly distinguish from the blacklist sibling, but those are minor gaps for such a simple list 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 accepts zero parameters, and the schema has 100% coverage with no properties. With no parameters to document, the description does not need to explain parameter meanings; 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 specific verb and resource: 'List spam whitelist'. This clearly distinguishes it from siblings like the spam blacklist and the POST/DELETE whitelist tools, even without explicitly naming 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 provides relevant context such as HTTP GET, category, required scopes, and read-only status, which implies this is the safe listing operation. However, it does not explicitly state when to prefer this tool over the blacklist or whitelist mutation endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_spam_post_v1_spam_blacklistB

Add to blacklist

HTTP: POST /v1/spam/blacklist Category: Spam Required scopes: email:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly discloses the required OAuth scope (`email:write`) and states that the operation mutates server state, which goes beyond the annotations' readOnlyHint=false. This gives the agent important auth and side-effect context, though it does not describe duplicate-entry behavior or return payload.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: action first, then HTTP method/path, category, required scope, and mutation flag. Every line carries useful operational information and there is 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?

The description is too incomplete to support a correct invocation: the request body is completely undocumented, no example is provided, and no alternative/usage guidance is given. An agent would likely need external API documentation to construct the request, which undermines the purpose of the tool 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's only parameter is a free-form body whose description explicitly says the schema is not statically declared, and the tool description adds no field names, shape, or example payload. Despite the nominal 100% schema coverage signal, actual semantic coverage is near zero: an agent still does not know what fields to send to add an address to the blacklist.

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 names the operation ('Add to blacklist') and gives the exact HTTP endpoint, category, and required scope, so an agent can identify the resource being affected. It does not explicitly contrast it with the sibling spam whitelist tool, but the blacklist resource is unambiguous from the endpoint and category.

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 such as panelica_spam_post_v1_spam_whitelist or panelica_spam_delete_v1_spam_blacklist_id. The description implies 'when you want to blacklist something' but provides no context, prerequisites, or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_spam_post_v1_spam_whitelistB

Add to whitelist

HTTP: POST /v1/spam/whitelist Category: Spam Required scopes: email:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description discloses required scopes (email:write) and explicitly says 'Mutating: changes server state, which adds behavioral info beyond the annotations readOnlyHint=false. However, it does not describe side effects, idempotency behavior, or the nature of whitelisted entries. No contradiction with 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?

The description is compact and front-loaded with the action, then provides essential metadata (HTTP method, category, scopes, mutating flag) on separate lines. Every line carries information and nothing is fluffed.

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 an open, undeclared body schema and no output schema, the description is insufficient. It gives no indication of what the request body should contain, what a whitelist entry looks like, or what response/outcome to expect. An agent would likely be unable to invoke it correctly without external documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the body parameter, so the baseline is 3. The description adds no further parameter meaning: it does not describe expected body fields, formats, or examples. The schema itself only says 'Schema not statically declared — see API docs, leaving the agent without usable payload 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?

Description clearly states the action 'Add to whitelist' with the HTTP endpoint POST /v1/spam/whitelist, which distinguishes it from sibling spam tools like get/delete whitelist and add blacklist. It is a specific verb+resource, though it does not explain what a whitelist entry consists of.

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 vs alternatives is provided. The description does not mention when adding to whitelist is preferable over blacklist, nor does it reference any related tool such as panelica_spam_post_v1_spam_blacklist or delete whitelist. Selection would depend only on the tool name and endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ssh_users_delete_v1_ssh_users_idA
DestructiveIdempotent

Delete SSH user

HTTP: DELETE /v1/ssh-users/:id Category: SSH Users Required scopes: accounts:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true and readOnlyHint=false. The description adds value by stating 'WARNING: destructive — permanently removes the resource,' which explicitly clarifies that deletion is irreversible, and by naming the required auth scope. There is no contradiction with the annotations, though idempotency is left to the annotation.

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 compact: four short lines each carry distinct useful information (action, HTTP route, category, required scope, and destructive warning). No unnecessary words, and the warning is front-loaded after the action statement.

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 destructive delete with no output schema, the description sufficiently covers the endpoint, the required scope, and the permanent nature of the operation. It does not explain response behavior or side effects on related resources, but those are not strictly necessary for a low-complexity delete 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 coverage is 100% and the only parameter is clearly described as 'Path parameter: id'. The description repeats the path with ':id' but adds no further semantic detail about the id, such as how to obtain it or any format constraints. This matches the baseline for fully covered schemas.

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 'Delete SSH user', a specific verb and resource, and reinforces it with the HTTP DELETE path '/v1/ssh-users/:id' and category. Among siblings for SSH users (get, patch, post, suspend, unsuspend), this unambiguously identifies the destructive removal 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 verb 'Delete' and the destructive warning imply when to use this tool, and the 'Required scopes: accounts:delete' line provides a precondition. However, there is no explicit guidance contrasting it with sibling operations such as suspend or patch, nor any when-not-to-use conditions. Usage is implied rather than directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ssh_users_get_v1_ssh_usersA
Read-onlyIdempotent

List SSH users

HTTP: GET /v1/ssh-users Category: SSH Users Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the 'Read-only' line only restates existing metadata. However, the description adds a meaningful auth requirement not present in annotations — 'Required scopes: accounts:read' — and specifies the GET endpoint, giving the agent extra context about access and mechanics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact at four short lines and front-loads the core purpose: 'List SSH users'. Minor redundancy exists because 'Read-only' and the title restate annotation values, but the overall size is still efficient and scannable.

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 collection endpoint, the description covers endpoint, category, auth scope, and safety, and the annotations complete the safety profile. It does not describe the response shape or pagination, but for a simple SSH-user listing this is a modest gap rather than a blocking one.

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?

This tool accepts zero parameters and has 100% schema description coverage, so there is no parameter information missing. With no parameters to document, the description appropriately needs no param-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 starts with the specific verb 'List' and the exact resource 'SSH users', making the operation immediately clear. It is naturally distinguished from the sibling panelica_ssh_users_get_v1_ssh_users_id, which fetches a single SSH user rather than enumerating all of 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 gives useful context such as HTTP method, category, and required scope, but it does not explicitly state when to use this tool versus alternatives. An agent must infer from the verb 'List' that this is for enumerating SSH users rather than fetching, creating, or modifying a specific one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ssh_users_get_v1_ssh_users_idA
Read-onlyIdempotent

Get SSH user

HTTP: GET /v1/ssh-users/:id Category: SSH Users Required scopes: accounts:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive behavior; the description adds meaningful context by specifying the required OAuth scope (accounts:read) and the HTTP method. This gives the agent the authorization information needed before calling the tool. There is no contradiction between the description and 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?

The description is compact and front-loaded: it states the core purpose first, then gives the HTTP path, category, scope, and read-only nature in a few structured lines. Every line carries usable information without unnecessary prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only fetch by ID with a single documented parameter and strong annotations, the description is complete enough for an agent to select and invoke the tool correctly. It includes the endpoint, required scope, and resource category; no additional return-format details are necessary because the operation is straightforward.

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 100% schema description coverage, the schema already documents the only parameter, id, as a path parameter. The description adds no new param detail beyond the HTTP path notation, so it meets the baseline but does not go beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the exact verb and resource ("Get SSH user") and includes the HTTP path GET /v1/ssh-users/:id, making it clear this retrieves a single SSH user by ID. This differentiates it from list-type SSH user tools and other resource-specific getters.

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 usage is implied by the endpoint and read-only description, but there is no explicit guidance about when to prefer this over alternatives, such as listing SSH users or using other SSH user management endpoints. The required scope is stated, but no when-to-use or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ssh_users_patch_v1_ssh_users_idB

Update SSH user

HTTP: PATCH /v1/ssh-users/:id Category: SSH Users Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states the call is mutating and changes server state, and it adds the accounts:write scope requirement. This adds some context beyond the annotations, though it stops short of describing side effects, reversibility, or failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the operation name and HTTP details. The scopes and mutating flags are useful; the category line is mildly redundant but not harmful.

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 PATCH with an undocumented request body and no output schema, the description leaves the most essential detail—what fields are updatable—to the schema's 'see API docs' note. An agent cannot construct a well-formed update request from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents id as a path parameter and the body as an open JSON object whose schema is not statically declared. The description itself adds no field-level meaning, so it meets the baseline but doesn't help an agent learn which SSH user fields can actually be updated.

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 names the operation ('Update SSH user') and the HTTP method/path (PATCH /v1/ssh-users/:id), telling an agent this modifies an existing SSH user. It doesn't explicitly contrast with sibling POST/DELETE tools, but the PATCH verb and ':id' strongly differentiate it.

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 creating, deleting, suspending, or unsuspending an SSH user. The 'Required scopes' line is a prerequisite, not a selection guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ssh_users_post_v1_ssh_usersB

Create SSH user

HTTP: POST /v1/ssh-users Category: SSH Users Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral context beyond the annotations: it specifies the required OAuth scope accounts:write and explicitly states that the operation mutates server state. This is useful for an agent deciding whether it is permitted and what side effects 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?

The description is compact and front-loaded, with each line providing distinct information: purpose, endpoint, category, required scope, and mutation effect. There is no wasted text or unnecessary 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 description is sufficient for tool selection but not for correct invocation. The body is completely undocumented, no output schema exists, and there are no details about required fields, defaults, or constraints, leaving a critical gap for an agent trying to make a real API call.

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's only parameter, body, is opaque: it merely says 'Schema not statically declared — see API docs' with additionalProperties allowed. The description adds no field names, required fields, or payload examples, so an agent cannot determine what a valid SSH user creation payload should contain.

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 resource: 'Create SSH user', with the endpoint and category reinforcing what the tool does. It does not explicitly distinguish this from the SSH user suspend/unspend/patch siblings, but the create 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?

There is no guidance on when to use this tool versus alternatives such as suspend, unsuspend, patch, or delete. 'Create SSH user' implies the basic use case, but 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.

panelica_ssh_users_post_v1_ssh_users_id_suspendA

Suspend SSH user

HTTP: POST /v1/ssh-users/:id/suspend Category: SSH Users Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly notes 'Mutating: changes server state' and 'Required scopes: accounts:write'. The mutating note aligns with readOnlyHint=false, but the scope requirement is useful information not present in annotations. However, it doesn't disclose potential side effects like whether active sessions are terminated or if the action is reversible, which would add more transparency. Given annotations already convey the non-read-only nature, the description adds only marginal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with each line adding distinct value: action, HTTP endpoint, category, required scopes, and mutation status. No filler or redundancy. It front-loads the action and efficiently conveys essential metadata.

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 simple tool with only two parameters (one optional body with no static schema) and no output schema. The description covers the core action and security requirements but lacks guidance on when to use it versus the unsuspend sibling, and does not explain what the body parameter is used for or what the response contains. For its simplicity, it 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meeting the baseline of 3. However, the schema descriptions are minimal ('Path parameter: id' and 'Request body...'). The description itself adds no parameter-specific guidance, such as what the id represents or what the body should contain. Since the baseline is met and the description doesn't improve it, a 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Suspend SSH user', a specific verb and resource that clearly distinguishes it from sibling tools like unsuspend, delete, and create. It also provides the HTTP method and endpoint, reinforcing the action. This is unambiguous and easily understood.

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 unsuspend or delete. There is no mention of prerequisites, typical use cases, or scenarios where a different action would be more appropriate. The description only states the action and metadata, without helping the agent decide between similar operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ssh_users_post_v1_ssh_users_id_unsuspendA

Unsuspend SSH user

HTTP: POST /v1/ssh-users/:id/unsuspend Category: SSH Users Required scopes: accounts:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false; the description reinforces this with 'Mutating: changes server state' and adds an auth requirement 'Required scopes: accounts:write'. It does not describe deeper behavioral details such as what changes on the user account, but the scope and explicit mutation flag provide useful context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the action, followed by endpoint, category, scopes, and mutation flag. 'Category: SSH Users' is redundant with the tool's namespace, but the overall length is appropriate and each other line adds some information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward unsuspend action with no output schema, the description covers the HTTP method, scopes, and mutating nature, which is largely sufficient. However, the body parameter is intentionally underspecified in the schema and the description does not clarify whether a request body is expected or what it should contain, which could confuse an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% nominally, with id documented as 'Path parameter: id' and body described only as 'Request body (application/json). Schema not statically declared — see API docs.' The tool description itself adds no parameter-level meaning, so the agent is left with the schema's minimal guidance. Baseline 3 applies since both parameters have some description.

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 opens with 'Unsuspend SSH user', a specific verb and resource, and includes the exact HTTP endpoint 'POST /v1/ssh-users/:id/unsuspend'. This is clear and distinct from the sibling 'panelica_ssh_users_post_v1_ssh_users_id_suspend', though it does not explicitly contrast the two actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for re-enabling a suspended SSH user, and the 'Mutating: changes server state' line signals side effects. However, it does not state when to choose this over the suspend tool or other SSH-user operations, nor does it offer any alternative-routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ssl_get_v1_ssl_domains_domain_idB
Read-onlyIdempotent

Get SSL info

HTTP: GET /v1/ssl/domains/:domain_id Category: SSL Required scopes: ssl:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_idYesPath parameter: domain_id

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety profile is covered. The description adds the HTTP method and required scope, but doesn't describe what 'SSL info' includes (e.g., certificate details, expiry, status), pagination, or error behavior. No 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 extremely compact: one line of purpose, the HTTP method/path, category, required scope, and read-only flag. Every sentence earns its place, though the endpoint is redundant with 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 simple read-only GET with one parameter, this is mostly complete. Missing details: what fields are returned, possible error conditions, and whether domain_id refers to a domain name or internal ID. The output schema is absent, so the description could clarify expected return data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: the only parameter domain_id is described as 'Path parameter: domain_id'. The description repeats the path but adds no new semantics beyond the schema. Baseline 3 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 states 'Get SSL info' with the HTTP GET endpoint and 'Read-only' annotation. It identifies the resource (SSL domains) and the operation (retrieve info). It is distinguishable from sibling SSL tools like issue/renew/upload, though it doesn't explicitly contrast with other SSL-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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context that it is a read-only GET operation scoped to SSL domains, and the required scope ssl:read is mentioned. It does not explicitly state when to prefer this tool over alternatives or exclude other SSL operations (issue, renew, upload), so usage guidance is 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.

panelica_ssl_post_v1_ssl_domains_domain_id_issueB

Issues a Let's Encrypt SSL certificate for a domain.

HTTP: POST /v1/ssl/domains/:domain_id/issue Category: SSL Required scopes: ssl:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
domain_idYesPath parameter: domain_id

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only, so the description's explicit 'Mutating: changes server state' adds useful confirmation of side effects. It also states the required scope `ssl:write`, but it does not disclose potential validation delays, rate limits, or failure behavior of Let's Encrypt issuance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with each line adding distinct information: action, HTTP endpoint, category, required scope, and mutating behavior. It is slightly redundant with the tool name's endpoint, but there is 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?

The tool has no output schema and an open, undeclared request body, yet the description does not explain what the body should contain, whether issuance is synchronous or asynchronous, or what prerequisites must be satisfied. For a live certificate issuance action, this is a significant 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 100%, which sets the baseline at 3, but the actual descriptions are thin: `domain_id` is only identified as a path parameter and `body` is an open object with no declared schema. The description adds no further meaning about required body fields or their 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 opens with a specific verb and resource: 'Issues a Let's Encrypt SSL certificate for a domain.' This clearly states the action and target, and the word 'Issues' plus 'Let's Encrypt' distinguishes it from the sibling renew and upload endpoints.

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 when-to-use or when-not-to-use guidance. It does not mention alternatives such as renew or upload, nor does it explain prerequisites like domain validation or DNS setup before issuing a certificate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ssl_post_v1_ssl_domains_domain_id_renewB

Renew SSL certificate

HTTP: POST /v1/ssl/domains/:domain_id/renew Category: SSL Required scopes: ssl:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
domain_idYesPath parameter: domain_id

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds 'Mutating: changes server state' and 'Required scopes: ssl:write', which is useful context beyond the annotations. It does not contradict annotations, but it does not disclose side effects such as whether the existing certificate is replaced, whether the domain must already have a certificate, or any renewal-specific restrictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the action is stated first, followed by HTTP method, category, required scope, and mutation note. Every line carries useful operational information with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mutation with annotations covering read-only/idempotency semantics, the description covers the essentials. However, it lacks guidance on when renewal applies versus issuing a new certificate and does not clarify the role or optionality of the freestanding request body, leaving some ambiguity for an agent invoking it 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 coverage is 100%, so the schema already documents both parameters. The description adds no meaning beyond what the schema provides, and the body parameter remains opaque despite its 'see API docs' note.

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 ('Renew SSL certificate') on a clear resource (the SSL domain identified by domain_id). It is distinct from sibling SSL operations like issue and upload in its verb, though it does not explicitly call out the difference.

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 renew versus issuing or uploading a certificate, and names no alternatives or exclusions. The required scope and mutating nature are stated, but the tool's selection context is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_ssl_post_v1_ssl_domains_domain_id_uploadA

Uploads a custom SSL certificate and key.

HTTP: POST /v1/ssl/domains/:domain_id/upload Category: SSL Required scopes: ssl:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.
domain_idYesPath parameter: domain_id

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and idempotentHint=false, and the description adds 'Mutating: changes server state' to make the side effect explicit. The required scope ssl:write is also useful, but the description does not disclose whether the upload replaces an existing certificate or how the new certificate is activated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: one clear action sentence followed by concise metadata (HTTP path, category, scopes, mutation flag). Every line earns its place without 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 an open request body schema, no output schema, and a mutating operation, the description is not complete enough for an agent to construct the request. It identifies the payload generally as certificate and key but leaves the actual JSON structure, required fields, and any replacement behavior unspecified.

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 body parameter schema is explicitly open ('Schema not statically declared'), so the description's mention of 'certificate and key' adds meaningful semantic guidance about what the payload must contain. However, exact field names and formats are still missing, which prevents a higher score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Uploads'), a clear resource ('custom SSL certificate and key'), and the HTTP endpoint. It distinguishes this tool from the sibling SSL operations (issue, renew, get) by emphasizing the custom certificate upload.

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 for when to use this tool versus the sibling issue/renew tools. The word 'custom' implies a contrast, but the description never states that this is for bringing your own certificate rather than using an auto-issuance flow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_subdomains_delete_v1_subdomains_idA
DestructiveIdempotent

Delete subdomain

HTTP: DELETE /v1/subdomains/:id Category: Subdomains Required scopes: domains:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable context beyond the destructiveHint annotation by explicitly stating 'WARNING: destructive — permanently removes the resource' and 'Required scopes: domains:delete.' This communicates irreversibility and an authorization requirement that annotations do not fully cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: the core action leads, followed by endpoint, category, required scope, and a clear warning. Every line carries essential information with 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 one-parameter destructive delete operation, the description covers the required scope, the irreversible nature, and the endpoint. The lack of response details is not critical since no output schema exists and the operation is straightforward.

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 single parameter 'id' is fully documented by the schema as a path parameter. The description only confirms this by showing the endpoint template /v1/subdomains/:id, adding no new semantic information 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 the exact action ('Delete subdomain') and reinforces it with the HTTP method and a warning that it 'permanently removes the resource.' This is a specific verb+resource combination that clearly distinguishes it from get/patch 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 through the verb 'Delete' and the destructive warning, but it does not explicitly state when to use this tool versus alternatives or mention any prerequisites beyond scopes. An agent must infer that this is the tool for permanently removing a subdomain.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_subdomains_get_v1_subdomains_idA
Read-onlyIdempotent

Get subdomain

HTTP: GET /v1/subdomains/:id Category: Subdomains Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry readOnlyHint, idempotentHint, and destructiveHint=false, so the description needs to add context beyond them. It adds the required scope and HTTP method, which are useful, but it does not describe response contents, 404 behavior, or any other operational details. For a simple read-only GET, the added value is modest.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and structured, with clear metadata lines and no filler. Minor redundancy exists because 'Get subdomain' repeats the annotation title and 'Read-only' echoes the readOnlyHint, but overall it is appropriately short and scannable.

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, read-only GET, the description combined with annotations supplies the method, path, required scope, resource identity, and safety profile needed to invoke the tool. No output schema exists, so the description could have provided return-value context, but this is not critical for selecting or calling the tool. The main gap is not distinguishing this from subdomain-listing siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the single `id` parameter is already documented as a path parameter. The description's endpoint line reinforces that the ID lives in the path, but it adds no new format, type, or domain-specific meaning. The baseline of 3 applies because the schema already covers the parameter adequately.

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 ('Get subdomain') and includes the HTTP endpoint and category, making it clear this fetches a single subdomain resource by ID. However, it does not explicitly differentiate itself from the sibling list operation panelica_domains_get_v1_domains_id_subdomains, so it stops 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through 'Get subdomain' and the GET path, and it provides a prerequisite via 'Required scopes: domains:read' and 'Read-only'. It does not give explicit when-to-use vs. when-not-to-use guidance, nor does it mention alternatives such as listing subdomains via the domain endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_subdomains_patch_v1_subdomains_idB

Update subdomain

HTTP: PATCH /v1/subdomains/:id Category: Subdomains Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=false, so the line 'Mutating: changes server state' mostly restates that fact. The description does add useful context beyond annotations by declaring the required domains:write scope and confirming the operation is state-changing. It does not describe specific side effects or reversibility, but this is reasonable given destructiveHint=false and the PATCH semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-ordered: purpose first, followed by HTTP method, category, required scope, and mutation flag. Every line communicates something relevant, though 'Update subdomain' duplicates the title and 'Category: Subdomains' adds limited value. Overall, it is efficient without padding.

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 a simple id parameter, the description plus annotations cover the core needs: what the tool does, which endpoint it calls, the required scope, and that it mutates server state. The main gaps are the lack of any subdomain field guidance for the request body and no indication of the response shape, since no output schema exists. This is adequate for tool selection but not fully self-contained for constructing a meaningful update payload.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline of 3 applies even though the description adds little parameter-level detail. The HTTP path line confirms id is the path parameter, while the schema already documents body as the JSON payload. The body schema is explicitly opaque ('Schema not statically declared — see API docs'), and the description does not compensate with example fields or additional guidance about the body.

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 operation as 'Update subdomain' and maps it to HTTP PATCH /v1/subdomains/:id, so the verb and resource are unambiguous. It is categorized under Subdomains and is distinguishable from sibling get/delete subdomain tools by the PATCH verb, though it does not detail what aspects of a subdomain can be updated.

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 usage: it is the mutating endpoint for updating an existing subdomain, and it notes the required domains:write scope. However, it does not explicitly contrast itself with alternatives such as creating a subdomain via POST /v1/domains/:id/subdomains or deleting one via DELETE /v1/subdomains/:id, so the when-to-use guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_system_cron_get_v1_system_cron_jobsA
Read-onlyIdempotent

List system cron jobs

HTTP: GET /v1/system-cron-jobs Category: System Cron Required scopes: server:read Read-only.

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?

Annotations already carry readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about required scopes (server:read) and HTTP method, but doesn't describe response format or pagination. No contradiction with 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?

The description is compact — a one-line summary followed by three short metadata lines — with no redundant or wasted phrasing. It is front-loaded and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, no-parameter, read-only list operation, the description provides the essential invocation details: HTTP method, path, category, required scopes, and read-only intent. It could add a note about the distinction from user cron jobs or response contents, but with strong annotations and low complexity, this is 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 has zero parameters and 100% schema description coverage, so there is nothing for the description to add. Baseline 4 applies for no-parameter tools.

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 opens with 'List system cron jobs', a clear verb+resource pair that identifies the operation. The 'system' qualifier helps distinguish it from user-level cron job tools, though it could be more explicit about that contrast.

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 the user-level cron job listing tools or the system cron toggle tool. The description provides only factual metadata (HTTP, category, scopes, read-only) without any conditions, exclusions, or alternative tool recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_system_cron_post_v1_system_cron_jobs_id_toggleB

Toggle system cron job

HTTP: POST /v1/system-cron-jobs/:id/toggle Category: System Cron Required scopes: server:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is not read-only and not idempotent; the description adds that it requires server:write scope and that it mutates server state. It does not explain the actual toggle behavior, such as what state changes or whether the job becomes enabled or disabled, but the annotations lower the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, starting with the core action and then providing HTTP method, category, scopes, and mutation effect. It contains minimal filler, though 'Toggle system cron job' repeats the title rather than adding new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple toggle operation, the description provides the essential route, required scope, and mutation warning. However, it leaves the request body semantics unclear and provides no information about the response or the exact effect of toggling, which would help an agent invoke it with full confidence.

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?

Both parameters have schema descriptions, so baseline is 3. The id parameter is straightforward as a path parameter, but the body parameter is described only as an untyped object with additionalProperties, and the description does not clarify whether the body is needed or what it should contain. No extra parameter meaning is added beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action and resource, 'Toggle system cron job', and provides the HTTP route /v1/system-cron-jobs/:id/toggle. It does not explicitly contrast this with the sibling user-cron toggle, but the 'system cron job' wording and category make the intended target 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 gives context by listing the category, required scope, and that the call mutates server state, which implies it should be used when toggling a system cron job. However, it offers no explicit when/when-not guidance, nor does it mention the alternative panelica_cron_jobs_post_v1_cron_jobs_id_toggle for user cron jobs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_terminal_get_v1_terminalB
Read-onlyIdempotent

List terminal

HTTP: GET /v1/terminal Category: Terminal Required scopes: server:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds HTTP GET and the required scopes server:read, which is useful context beyond annotations. It does not disclose return format, pagination, or what the listed terminal entries represent, but it does not contradict annotations.

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 action, then method, category, scopes, and read-only status. It is efficient overall, though 'Category: Terminal' and 'Read-only' are somewhat redundant given the tool name and annotations.

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 zero-parameter read-only endpoint with rich annotations, the description is mostly sufficient: it states the method, category, required scopes, and read-only nature. However, with no output schema and no mention of the alternative terminal websocket endpoints, an agent may not know what 'List terminal' returns or when to choose a sibling tool instead.

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 input schema fully reflects that with 100% schema description coverage. With no parameters, the description does not need to explain parameter semantics; 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 opens with 'List terminal' and gives the HTTP method and endpoint (GET /v1/terminal), so the operation is identifiable as a read-only list action. It does not fully clarify what the listed items are or how this compares to the terminal websocket siblings, 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?

The description provides required scopes and read-only status, but does not state when to use this tool versus the terminal websocket or websocket-ticket siblings. No explicit alternatives or exclusion criteria are given, so an agent gets little routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_terminal_get_v1_terminal_wsA
Read-onlyIdempotent

WebSocket endpoint for terminal access. ROOT only. Send JSON messages: {type:'input',data:'command'}, {type:'resize',cols:80,rows:24}

HTTP: GET /v1/terminal/ws Category: Terminal Required scopes: terminal:access Read-only.

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?

Annotations already set readOnly, idempotent, openWorld, and non-destructive hints; the description adds the ROOT-only restriction, required scope, and message formats. It explicitly restates read-only, which agrees with the annotations, so there is no 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 endpoint purpose and constraints are front-loaded and the description is compact overall. Minor redundancy exists in 'Category: Terminal' and the repeated 'Read-only' line, but they do not meaningfully bloat the text.

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?

It covers direct request-side invocation and auth, but for a WebSocket tool it omits what the client receives, the connection lifecycle, and any need to first obtain a ws ticket from the sibling tool. Without an output schema, those gaps are material.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero properties, so the baseline is 4; the description goes further by documenting the WebSocket frame payloads (input command and resize with cols/rows). This is the only parameter-like guidance available and is genuinely useful.

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 a WebSocket endpoint for terminal access and provides the JSON message protocol, making it clearly distinct from the GET terminal and terminal ticket siblings. However, it never names or contrasts those siblings, so differentiation is implicit rather than explicit.

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 gives concrete operating context: ROOT-only, required scope terminal:access, and the exact message shapes to send. But it does not state when to prefer this tool over panelica_terminal_post_v1_terminal_ws_ticket or panelica_terminal_get_v1_terminal, and it omits any ticket prerequisite.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_terminal_post_v1_terminal_ws_ticketB

Create ws ticket

HTTP: POST /v1/terminal/ws-ticket Category: Terminal Required scopes: server:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey mutating and non-idempotent behavior; the description adds an explicit required scope (server:write) and states that it changes server state. However, it does not disclose ticket lifecycle details, whether existing tickets are invalidated, or what side effects beyond state change may occur. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and uses an efficient metadata format: endpoint, category, required scopes, and mutation status. The opening phrase repeats the title, but overall there is no fluff, and the most identifying details are 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?

With no output schema and a body schema that is intentionally not statically declared, an agent lacks enough information to validate a successful call or understand how the returned ticket is consumed. The description covers endpoint metadata but not the operational context needed for correct invocation in a terminal/WebSocket flow.

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 single body parameter is documented in the schema, so the high coverage baseline of 3 applies. However, the schema explicitly says 'Schema not statically declared — see API docs', and the description adds no field-level meaning. The description does not compensate for the inability to know the body shape, but it also does not contradict 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 and resource: "Create ws ticket", backed by the HTTP POST route and Terminal category. This is clear enough to identify the operation, though it does not explain what a ws ticket is or how it relates to the sibling terminal WebSocket endpoints, so it stops short of full 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 panelica_terminal_get_v1_terminal_ws. The description provides endpoint metadata and scope requirements but no context for choosing this tool over another or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_webhooks_delete_v1_webhooks_idA
DestructiveIdempotent

Delete webhook

HTTP: DELETE /v1/webhooks/:id Category: Webhooks Required scopes: webhooks:delete WARNING: destructive — permanently removes the resource.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds a prominent 'WARNING: destructive — permanently removes the resource' beyond the destructiveHint annotation. It also discloses required scopes and the resource path. While the annotation already flags destructiveness, the explicit permanence warning and scope requirement add practical detail not captured in structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the action, followed by essential metadata (HTTP, scopes) and an explicit warning. Every line earns its place, though the warning could arguably be redundant given the annotation.

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 destructive delete operation, the description covers key operational details: HTTP method, path, required scopes, and destructiveness. It omits response behavior or error codes, but with no output schema and a simple resource, this is acceptable. The description is sufficiently detailed for an agent to execute 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 schema describes the single 'id' parameter as 'Path parameter: id' with 100% coverage. The description does not elaborate on the parameter, but given its simplicity and the path template, the schema is sufficient. No additional semantic value is added beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: "Delete webhook" and provides the HTTP method and path. This unambiguous verb+resource combination differentiates it from sibling tools like panelica_webhooks_get_v1_webhooks_id, panelica_webhooks_patch_v1_webhooks_id, and panelica_webhooks_post_v1_webhooks 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 includes required scopes and HTTP method but offers no explicit guidance on when to use this tool versus alternatives. It does not mention conditions for deletion, nor does it contrast with patch or test operations. An agent is left to infer usage from the name and HTTP verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_webhooks_get_v1_webhooksA
Read-onlyIdempotent

List webhooks

HTTP: GET /v1/webhooks Category: Webhooks Required scopes: webhooks:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral context with 'Required scopes: webhooks:read' and 'Read-only', which complement the annotations rather than merely repeating them. It does not contradict the readOnlyHint/idempotentHint/destructiveHint annotations, and the auth requirement is valuable 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action 'List webhooks'. The HTTP endpoint, category, scopes, and read-only flag are all useful, though 'Category: Webhooks' is slightly redundant with the surrounding context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list operation with no parameters, the description plus annotations are sufficient for an agent to invoke it correctly. There is no output schema, so return-field details are absent, but that is not a blocker for selecting and calling 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 tool has zero parameters and the input schema is an empty object, so parameter-level documentation is unnecessary. The description correctly avoids inventing parameter details, which matches the baseline for a no-parameter tool.

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 opens with 'List webhooks', a specific verb and resource that clearly identifies the operation. It does not explicitly differentiate itself from sibling endpoints like panelica_webhooks_get_v1_webhooks_id or panelica_webhooks_post_v1_webhooks, 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?

The description provides no guidance on when to choose this tool over its alternatives. It does not mention that this lists all webhooks while a single webhook would require panelica_webhooks_get_v1_webhooks_id, and it gives no exclusions or contextual triggers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_webhooks_get_v1_webhooks_idB
Read-onlyIdempotent

Get webhook

HTTP: GET /v1/webhooks/:id Category: Webhooks Required scopes: webhooks:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the required 'webhooks:read' scope and restates read-only behavior, but it does not disclose return shape, error behavior, or whether the webhook object is returned in full.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action 'Get webhook'. Every subsequent line provides a distinct fact: HTTP method/path, category, required scopes, and read-only nature, with no unnecessary 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 simple one-parameter GET with rich annotations, the definition is largely complete: it includes the endpoint, the id parameter, the required scope, and the read-only safety signal. It does not describe the response payload or failure cases, but that is a minor gap for such a straightforward retrieval operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'id' parameter is already documented as a path parameter. The description adds no meaning beyond what the schema provides, so the baseline score of 3 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 states a specific operation ('Get webhook') and the HTTP path GET /v1/webhooks/:id, making it clear this fetches an individual webhook resource. It does not explicitly contrast with sibling endpoints like the webhook list or test tools, so differentiation relies mostly on the :id path parameter.

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 the HTTP method, category, and required scopes but gives no explicit guidance on when to choose this tool over alternatives. An agent must infer from the singular ':id' path that this endpoint is for retrieving one existing webhook rather than listing, creating, updating, or testing webhooks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_webhooks_patch_v1_webhooks_idB

Update webhook

HTTP: PATCH /v1/webhooks/:id Category: Webhooks Required scopes: webhooks:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=false, and the description reinforces this with 'Mutating: changes server state' and adds the required webhooks:write scope. It does not discuss partial-update semantics, validation, reversibility, or response shape, but the annotation set plus the mutation warning cover the essential side-effect profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four terse, front-loaded lines: purpose, method/path, category, required scope, and mutation warning. There is no filler or repetition beyond the minimal 'Update webhook' summary line.

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 an update operation, the agent needs to know what fields the webhook body can contain, but the body schema is not statically declared and the description offers no field list or example. There is also no output schema, and the return value is not mentioned, leaving the central payload contract unresolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the id and body parameters are already described in structured form. The description does not clarify what fields the webhook body can carry, which matters because the body schema is explicitly not statically declared. With the schema carrying the parameter burden, the baseline of 3 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 opens with a specific verb and resource ('Update webhook') and states the HTTP PATCH method and path, so an agent can tell it modifies an existing webhook. It does not enumerate which webhook settings can be changed, but the core 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?

There is no guidance about when to choose this tool over sibling webhook tools such as create, get, delete, or test. The required scope and mutating flag are useful, but the conditions that should trigger an update versus a create or delete are left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_webhooks_post_v1_webhooksA

Create webhook

HTTP: POST /v1/webhooks Category: Webhooks Required scopes: webhooks:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly says 'Mutating: changes server state' and lists the required scope 'webhooks:write', which adds useful behavioral and auth context beyond the annotations. It does not contradict the annotations, though it could say more about 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose, followed by HTTP method, category, scopes, and mutation flag. Each line is scannable and earns its place, though the Webhooks category is somewhat redundant with the endpoint path.

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 create operation with an undeclared request body and no output schema, the description is too thin. An agent still does not know what fields the webhook body should contain, what the response looks like, or what failure semantics to expect. The schema's pointer to API docs shifts the burden to external documentation without bridging 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 tool description adds no parameter-level detail; the only input is a body property whose schema explicitly says it is not statically declared and to see API docs. Because schema description coverage is 100% for the declared parameter, the baseline of 3 applies, but the opaque body remains a real 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 opens with 'Create webhook', a specific verb and resource, and adds the HTTP method and category. This distinguishes it from the webhook get/patch/delete/test sibling tools. It is minimal but 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for creating a webhook, but it gives no explicit guidance about when to choose this over alternatives like panelica_webhooks_patch_v1_webhooks_id or panelica_webhooks_post_v1_webhooks_id_test. The choice is left to inference from the endpoint name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_webhooks_post_v1_webhooks_id_testA

Test webhook

HTTP: POST /v1/webhooks/:id/test Category: Webhooks Required scopes: webhooks:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and idempotentHint=false; the description adds the useful clarification 'Mutating: changes server state' and the required scope 'webhooks:write'. This confirms authorization needs and side effects without contradicting the 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?

The description is compact and well-structured: action, HTTP endpoint, category, required scope, and mutation flag each occupy one short line. There is no filler, repetition, 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?

The definition supplies the core routing information and warns about state mutation, which is useful, but it leaves out what a test invocation actually does, whether a request body is expected, and what success or failure looks like. Since there is no output schema and the body schema is explicitly deferred to API docs, the agent still has gaps in its full picture.

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 no parameter-level meaning. The schema already covers both parameters: id is described as the path parameter and body as an open application/json object with a pointer to API docs. With 100% schema description coverage, the baseline score of 3 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 uses a short verb-resource phrase, 'Test webhook', backed by the explicit path POST /v1/webhooks/:id/test, which makes it distinguishable from sibling webhook create/update/delete tools. It is clear about the action and resource, though it does not elaborate on what 'test' concretely does (e.g., sending a sample delivery).

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 the alternative webhook management tools. 'Category: Webhooks' and the required scope are prerequisites, not usage criteria, so the agent is left to infer that 'test' means exercising an existing webhook.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_wordpress_get_v1_wordpressA
Read-onlyIdempotent

List wordpress

HTTP: GET /v1/wordpress Category: WordPress Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description appropriately repeats 'Read-only' without contradiction. It adds the required scopes 'domains:read', which is useful auth context, and the HTTP method. It does not disclose response format or pagination, though with strong annotations the safety profile is already clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the core action 'List wordpress' before adding HTTP method, category, scopes, and read-only status. Each line adds some operational detail with no filler, though the title-like first line could have been slightly more descriptive.

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 list operation, the description provides the endpoint, method, scopes, and safety profile, which is enough for an agent to invoke it correctly. The lack of an output schema is a minor gap, but the intended behavior is straightforward and the sibling context does not introduce 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 the schema is empty, so there is nothing the description needs to explain. Per the calibration baseline for 0-parameter tools, this is fully adequate.

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 wordpress' with HTTP GET /v1/wordpress. It is differentiated from the only WordPress sibling, panelica_wordpress_get_v1_wordpress_id_backups, by referring to the base wordpress collection rather than per-installation backups. However, it does not specify what is listed (e.g., WordPress installations) beyond the resource name.

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 list of WordPress resources is needed, given the 'List wordpress' phrase and GET method. It does not explicitly state when not to use it or mention alternatives, but there is no competing 'list wordpress' sibling that would require routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_wordpress_get_v1_wordpress_id_backupsA
Read-onlyIdempotent

List backups

HTTP: GET /v1/wordpress/:id/backups Category: WordPress Required scopes: domains:read Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds an actionable requirement beyond annotations: the domains:read scope needed to call the endpoint. It does not describe response shape or pagination, but for a safe read operation with annotations present, the auth context is enough to earn above baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action, followed by useful endpoint, category, scope, and safety metadata. The 'Read-only' line is redundant with annotations but harmless.

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 (one required id, no nested objects, no output schema) and annotations establishing safety and idempotency, the description provides enough context to select and invoke it. It does not describe the returned backup list shape, but this is a minor gap for a simple GET endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the only parameter, id, is documented as a path parameter. The description adds no extra semantics for id beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a clear action and resource: it lists backups, and the endpoint path /v1/wordpress/:id/backups makes the WordPress-specific resource unambiguous. It distinguishes from the create/restore backup siblings, but does not explicitly differentiate from the generic panelica_backups_get_v1_backups listing tool.

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 HTTP path and 'Category: WordPress' imply this is for listing backups of a WordPress installation. However, there is no explicit guidance about when to choose this over sibling backup-listing or backup-management tools, so selection is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_wordpress_post_v1_wordpress_id_auto_loginB

Create auto login

HTTP: POST /v1/wordpress/:id/auto-login Category: WordPress Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the required scope 'domains:write' and explicitly states 'Mutating: changes server state,' which is useful beyond the annotations. However, it discloses no further behavioral traits such as what kind of session/URL is created, whether prior logins are invalidated, 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?

The description is compact and front-loaded: purpose, HTTP method/path, category, required scope, and mutating behavior. There is no filler or redundant prose.

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 POST tool with an opaque body schema and no output schema, the description is incomplete. It does not explain what the auto-login is, what body fields are accepted, what side effects occur, or what the caller receives, making it hard for an agent to invoke correctly without external API documentation.

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 descriptions for both parameters, so the baseline is 3, but the description itself adds no parameter meaning. The body parameter is described only as 'Schema not statically declared — see API docs,' leaving the actual request payload undocumented from the agent's perspective.

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 and resource: 'Create auto login' for a WordPress site, reinforced by the HTTP endpoint /v1/wordpress/:id/auto-login. It is clear at a basic level but does not explain what an auto-login is or the mechanism, and it does not explicitly distinguish itself from the many WordPress-management 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?

No guidance is given about when to use this tool instead of alternatives such as wordpress_post_v1_wordpress_id_update_core or wordpress_post_v1_wordpress_id_backup. The intended scenario is only barely implied by the endpoint name and category.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_wordpress_post_v1_wordpress_id_backupB

Create backup

HTTP: POST /v1/wordpress/:id/backup Category: WordPress Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds useful context by explicitly stating 'Mutating: changes server state' and declaring the required scope 'domains:write', but it does not disclose other behavioral details such as whether backup creation is asynchronous or whether existing backups are affected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action 'Create backup', followed by useful routing and permission metadata. Every line earns its place, though a bit more explanatory content about behavior or parameters would improve completeness without harming 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?

There is no output schema, and the request body is declared as an opaque JSON object with no statically declared schema. The description does not explain what the body may contain, what a successful backup returns, or how this relates to backup schedules and restore operations, leaving an agent without enough context to invoke it confidently beyond the required id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with 'id' documented as a path parameter and 'body' described as a JSON request body whose schema is not statically declared. The description itself adds no parameter-level meaning beyond the schema, which is the baseline case for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action 'Create backup' with a specific HTTP endpoint and WordPress category, making the resource and operation clear. It does not, however, explicitly contrast itself with related backup operations like scheduled backups or restores, 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?

The description provides no guidance on when to use this tool versus alternatives such as backup schedules, snapshots, or the restore endpoint. It only includes metadata like category and scopes, with no contextual or exclusionary guidance for an agent deciding between related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_wordpress_post_v1_wordpress_id_backups_bid_restoreB

Create restore

HTTP: POST /v1/wordpress/:id/backups/:bid/restore Category: WordPress Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bidYesPath parameter: bid
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a mutating operation (readOnlyHint=false, idempotentHint=false), and the description adds the required domains:write scope and states that it changes server state. It does not disclose effects such as overwriting the current site, whether the restore is asynchronous, or what happens to the body payload, but it does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the operation, HTTP method, endpoint, category, required scope, and mutation flag. Each line earns its place, though the summary line 'Create restore' is somewhat redundant with the endpoint.

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 restore operation with no output schema and an open body, the description is too thin: it does not explain what the restore does, what body fields are expected, whether it returns a job/task, or in what situations the agent should invoke it. The endpoint and scope alone are not enough for 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?

The schema covers all three parameters with descriptions, so the baseline is 3; however, those descriptions are trivial ('Path parameter: id') and the body schema is explicitly undeclared. The description adds no detail about what the request body should contain, which is a notable gap for invoking this endpoint correctly.

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 a specific action (POST restore) and resource (WordPress backup via /v1/wordpress/:id/backups/:bid/restore), which distinguishes it from sibling backup/snapshot restore tools. However, the plain-language summary is just 'Create restore', which does not explicitly say what the operation does (restores a WordPress site from a backup).

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 related restores such as panelica_backups_post_v1_backups_filename_restore or snapshot restores. The scopes and category tags are factual, not selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_wordpress_post_v1_wordpress_id_update_coreC

Create update core

HTTP: POST /v1/wordpress/:id/update-core Category: WordPress Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and idempotentHint=false, and the description adds "Mutating: changes server state," which reinforces but does not substantially extend that signal. It does add a useful auth requirement (domains:write) not present in the structured metadata. However, it doesn't describe side effects such as whether the update is reversible, may cause downtime, or modifies files in place.

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 short and includes useful metadata lines for HTTP method, category, scopes, and mutability. However, the first line "Create update core" is a poor, ambiguous duplication of the title and does not earn its place. The structure is compact but not well front-loaded with a clear, accurate statement of 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 simple two-parameter mutating operation, the description provides enough routing information (endpoint, category, scopes) and the schema covers the required id. However, with no output schema and an opaque optional body, the description does not explain what the request body should contain or what response an agent should expect. It is minimally viable but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers both parameters: id is documented as a path parameter and body is documented as an optional JSON object with an explicit note that its schema is not statically declared. Because schema description coverage is 100%, the baseline is 3, and the description adds no additional parameter-level meaning. The opaque body may still confuse an agent, but that gap is in the schema, not the tool description.

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 opens with "Create update core," which is a near-verbatim restatement of the title and is not clear English for what the tool does. It never explicitly states that this updates the WordPress core installation for the site identified by id, nor does it differentiate from the sibling update_plugins operation. The HTTP path provides some signal, but the description itself fails to name the actual action and resource clearly.

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 the WordPress update_plugins tool or backup/restore operations. No conditions, prerequisites, or exclusions are given. The only context is the endpoint, category, and scopes, which do not help an agent decide between related WordPress mutation tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

panelica_wordpress_post_v1_wordpress_id_update_pluginsC

Create update plugin

HTTP: POST /v1/wordpress/:id/update-plugins Category: WordPress Required scopes: domains:write Mutating: changes server state.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPath parameter: id
bodyNoRequest body (application/json). Schema not statically declared — see API docs.

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly says 'Mutating: changes server state' and lists required scopes 'domains:write', which adds useful context beyond the annotations. However, it does not disclose what exactly changes, whether the operation is reversible, or any side effects such as plugin incompatibilities or downtime. With annotations already indicating non-read-only and non-idempotent behavior, this is adequate but shallow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the operation name, then presents HTTP method, path, category, scopes, and mutation flag in a scannable format. The only weakness is the misleading first line, but overall there is no unnecessary 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?

This is a mutating tool with an open-ended body schema and no output schema, yet the description does not explain the request body, plugin selection semantics, return values, or success/failure behavior. An agent would likely need external API documentation to invoke it correctly, which is a significant completeness 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?

The input schema already describes the 'id' path parameter and notes that the body schema is not statically declared. The description adds no further meaning about what the body should contain, what plugin updates are expected, or how the request should be shaped. Since schema description coverage is 100%, the baseline applies, but the opaque body still leaves real ambiguity.

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 opens with 'Create update plugin', which is ambiguous and reads like a title rather than a clear explanation of the operation. The HTTP path hints at updating plugins for a WordPress site, but the description never states the actual behavior, target, or scope, making it hard for an agent to distinguish from related operations like update_core.

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 includes HTTP metadata and required scopes, but it does not explain when updating plugins is appropriate, what prerequisites exist, or how this differs from updating WordPress core or performing backups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

C2.9/5.0
Disambiguation2/5

Many tools share generic descriptions like 'List stats', 'Get app logs', and 'Create change password', making it hard to distinguish between similar endpoints across categories. Overlapping concepts such as activity log vs audit logs and domain-level vs global access logs add further ambiguity. The unique long names help, but the sheer volume and terse descriptions make misselection likely.

Naming Consistency4/5

The naming pattern panelica_{category}_{http_method}_{path} is applied consistently across all 404 tools, which is impressive. Minor deviations like hash suffixes for some CloudFlare/git endpoints and inconsistent parameter naming (id vs key_id vs zone_id) prevent a perfect score.

Tool Count1/5

404 tools is an extreme mismatch for an MCP server, far exceeding any reasonable scope. Even though the underlying API genuinely covers a broad hosting panel domain, exposing this many tools overwhelms agent context and makes selection impractical.

Completeness4/5

The tool set is exceptionally comprehensive, covering CRUD and operational actions for accounts, domains, email, files, databases, DNS, SSL, backups, git, Docker, app deployment, logs, and security. Minor gaps exist, such as no update for mailing lists or autoresponders/forwarders, but these can be worked around with delete-and-recreate.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to manage cPanel hosting accounts including DNS, email, databases, SSL, files, security, and more through natural language using cPanel's UAPI and API2.
  • A
    license
    Not graded
    quality
    C
    maintenance
    Full-featured MCP server for 1Panel server management panel. Provides 490+ tools for managing websites, databases, containers, files, and more through natural language.
    MIT
  • 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
    19
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Panelica/panelica-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server