Skip to main content
Glama

fleet-mcp

A single MCP server that bundles the tools you use every day to run your hosting fleet — SSH/Plesk, WordPress (wp-cli), Cloudflare, MySQL, GitHub, Docker, and Coolify — so you can drive all of it from Claude with plain language.

Tools

Group

Tools

SSH

run_ssh

Sites

site_status, check_all_sites, ssl_expiry, disk_usage

WordPress

wp, wp_update_plugins, wp_purge_lscache, wp_health, wp_php_handler, wp_search_replace, wp_integrity, wp_core_update, wp_maintenance, wp_backup

Cloudflare

cf_zone_status, cf_dns_list, cf_dns_add, cf_toggle_proxy, cf_export_records, cf_zone_restore, cf_purge_cache

MySQL

mysql_query, mysql_table_sizes, mysql_create_user, mysql_dump

GitHub

gh, gh_pr_list, gh_create_issue

Docker

docker_ps, docker_logs, docker_restart, docker_raw

Coolify

coolify_servers, coolify_apps, coolify_deploy, coolify_resources

OJS

ojs_install, ojs_create_journal, ojs_status

Dev

dev_check, scaffold_nextjs, scaffold_go, scaffold_ts_lib, dockerize

Plesk

plesk_list_domains, plesk_domain_info, plesk_create_subdomain, plesk_set_php_handler, plesk_create_db, plesk_issue_le

fail2ban

f2b_status, f2b_check_ip, f2b_unban, f2b_ignore_add

Moodle

moodle_cron, moodle_purge_caches, moodle_maintenance, moodle_upgrade, moodle_cli

Resources: fleet://inventory — a live list of Plesk domains + available PHP handlers, readable by the model without a tool call.

Tests / CI: npm test runs the node:test suite (pure functions — creds, config, result helpers, OJS script builders); GitHub Actions runs build + tests on every push.

Related MCP server: cPanel MCP Server

Setup

cd fleet-mcp
npm install
cp .env.example .env   # then fill in your values
npm run build

Requirements on the machine that runs the server:

  • Node ≥ 18 (uses global fetch; --env-file needs Node ≥ 20.6).

  • ssh with key auth to the fleet server (recommended over passwords).

  • curl, openssl for the site/SSL tools.

  • gh CLI for GitHub tools (run gh auth login once, or set GITHUB_TOKEN).

  • docker locally, or set DOCKER_SSH_TARGET to run it over SSH.

Register with Claude Code

The easiest way to pass all the credentials is Node's --env-file:

claude mcp add fleet-mcp -- \
  node --env-file=/absolute/path/to/fleet-mcp/.env \
       /absolute/path/to/fleet-mcp/dist/server.js

Then in Claude:

  • "Check status of example.com, blog.example.com and shop.example.com"

  • "How many days until the SSL cert for journal.example.com expires?"

  • "List active plugins on shop.example.com and purge its LiteSpeed cache"

  • "Show DNS records for example.org on the secondary Cloudflare account"

  • "Back up the myapp_db database"

Installing an OJS journal

ojs_install runs the proven recipe end-to-end and returns the generated admin

  • DB credentials. Two modes:

  • provision: true — full from-scratch: create the Cloudflare A record (gray), create the Plesk subdomain, deploy files, create DB+user, CLI install, patch config.inc.php (allowed_hosts/base_url/trust_x_forwarded_for), set perms + PHP handler, issue a Let's Encrypt cert, then flip the record to proxied. Needs parentDomain + originIp.

  • provision: false (default) — install into an existing webspace (subdomain, docroot and DNS already set up).

"Install an OJS journal from scratch on journal.example.com (parent example.com, origin 203.0.113.10), create the journal too, English name 'New Journal', Arabic 'مجلة جديدة', acronym NJ"

It can optionally create the first journal in the same run (createJournal), applying the three known CLI gotchas (loadAllPlugins throw, missing default section, per-context theme enable) so the public frontend works immediately. ojs_create_journal does just the journal step on an existing install.

Dev tools (TypeScript / Go / Next.js)

  • dev_check — auto-detects the stack and runs vet/build/test (Go) or install/tsc/lint/build/test (Node/TS).

  • scaffold_nextjs, scaffold_go, scaffold_ts_lib — new project skeletons.

  • dockerize — writes a production multi-stage Dockerfile, ready to build with docker_* and deploy with coolify_*.

Running on a domain for your team (remote mode)

The same tools can run as a shared HTTP server behind a domain:

export MCP_AUTH_TOKEN="$(openssl rand -hex 32)"   # shared team secret
npm run build && npm run start:http               # serves POST /mcp on :8787

Or via the included Dockerfile — deploy it on your Coolify host, put it behind mcp.example.com (Cloudflare proxied, Full), and have each teammate add it as a remote MCP server with the bearer token:

claude mcp add --transport http fleet-mcp https://mcp.example.com/mcp \
  --header "Authorization: Bearer <MCP_AUTH_TOKEN>"

Security: HTTP mode refuses to start without MCP_AUTH_TOKEN. Anyone with the token can run every tool (including run_ssh) — treat it like a root password, keep the endpoint Cloudflare-proxied, and rotate the token to revoke access.

Configuration

All config is via environment variables — see .env.example. Nothing is required at startup; each tool validates its own settings when first called, so you can enable integrations one at a time.

Safety notes

  • run_ssh and mysql_query (with allowWrite=true) can change server state. mysql_query is read-only by default and blocks write/DDL statements unless you explicitly opt in.

  • Secrets live only in .env (git-ignored) — never hardcoded. Prefer SSH key auth and scoped Cloudflare API tokens (not the global key).

  • Some integrations have official MCP servers too (GitHub, Docker). This unified server trades that for one place to manage your whole fleet; swap individual groups out later if you prefer the official ones.

Project layout

src/
  createServer.ts    # builds + registers every tool group (transport-agnostic)
  server.ts          # local entry point (stdio)
  http.ts            # remote entry point (Streamable HTTP + bearer auth)
  config.ts          # env-based config + lazy require* helpers
  lib/
    exec.ts          # safe local + SSH command execution
    result.ts        # MCP response helpers + error wrapper
    creds.ts         # crypto-random passwords + label helpers
    cloudflare.ts    # CF API client
    coolify.ts       # Coolify API client
    ojs-scripts.ts   # OJS install + journal-creation script builders
  tools/
    ssh.ts  sites.ts  wordpress.ts  cloudflare.ts  mysql.ts
    github.ts  docker.ts  coolify.ts  ojs.ts  dev.ts

Add a tool by extending the relevant tools/*.ts file (or add a new one and call its register* from server.ts).

Available Tools

38 tools
cf_dns_addAdd DNS recordB

Create a DNS record in a zone.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesZone domain
typeYesRecord type, e.g. A, AAAA, CNAME, TXT, MX
nameYesRecord name, e.g. www or @ for root
contentYesRecord value, e.g. an IP or target host
proxiedNoProxy through Cloudflare (orange cloud)
ttlNoTTL in seconds (1 = automatic)
priorityNoPriority (MX/SRV only)
accountNoCloudflare account key from CF_ACCOUNTS (defaults to the first)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states 'Create a DNS record' without mentioning authentication requirements, rate limits, idempotency, error handling, or what happens on duplicate records.

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

Conciseness4/5

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

The description is a single sentence that is concise and front-loaded with the key action and resource. It is appropriately sized for a simple creation tool, though it could be slightly expanded.

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 8 parameters and no output schema or annotations, the description is too sparse. It does not mention the return value (e.g., created record ID) or error conditions, leaving gaps for the agent to understand the full 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?

The input schema has 100% description coverage, so the schema already explains each parameter. The description adds no extra semantic value beyond what is in the schema, meeting the baseline for this dimension.

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

Purpose5/5

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

The description clearly states the verb 'Create' and the resource 'DNS record', and it distinguishes the tool from siblings like cf_dns_list (listing) and cf_toggle_proxy (proxy toggling).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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. For example, it does not mention that cf_toggle_proxy is for toggling proxy on existing records, or that cf_export_records is for bulk operations. Prerequisites like zone existence are not mentioned.

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

cf_dns_listList DNS recordsB

List DNS records for a zone (by domain).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesZone domain
typeNoFilter by record type, e.g. A, CNAME, MX
accountNoCloudflare account key from CF_ACCOUNTS (defaults to the first)

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must carry full behavioral disclosure, but it only states the basic function. It omits details like pagination, rate limits, authentication requirements, or what happens if the zone is not found.

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

Conciseness5/5

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

The description is a single, focused sentence that immediately conveys the tool's purpose. There is no wasted text, and it is appropriately front-loaded.

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

Completeness3/5

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

For a simple list tool with one required parameter and no nested objects, the description is adequate but lacks hints about the return format or pagination. Without an output schema, additional context would be beneficial.

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

Parameters3/5

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

All three parameters have schema descriptions, so schema coverage is 100%. The description adds no additional semantics beyond what the schema already provides, meeting the baseline for this dimension.

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

Purpose5/5

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

The description clearly states the action (List) and resource (DNS records for a zone). It distinguishes itself from sibling tools like cf_dns_add and cf_toggle_proxy by specifying its read-only listing 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 on when to use this tool versus alternatives, such as cf_export_records for bulk export or cf_toggle_proxy for modifying records. No context on prerequisites or 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.

cf_export_recordsExport DNS (BIND)A

Export all DNS records for a zone as a BIND zone file (good for backups).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesZone domain
accountNoCloudflare account key from CF_ACCOUNTS (defaults to the first)

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavior. It mentions exporting as a BIND zone file, which implies a read-only operation, but does not explicitly state safety (e.g., no modifications). It lacks details on authentication requirements beyond the account key 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?

The description is a single, clear sentence that front-loads the main action and purpose. It is efficient, but it omits some useful context that could be added without bloat.

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

Completeness3/5

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

The tool is simple, and the description covers the main purpose and output format. However, without an output schema, it does not explain the structure of the zone file or any limitations (e.g., size). For a backup tool, this is somewhat adequate but not comprehensive.

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

Parameters3/5

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

The input schema has 100% coverage (both parameters have descriptions in schema: 'Zone domain' and 'Cloudflare account key'). The description adds context about the output format ('BIND zone file') but does not enhance parameter understanding beyond the schema, earning 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?

The description clearly states 'Export all DNS records for a zone as a BIND zone file', specifying the verb (Export), resource (DNS records), and output format (BIND zone file). This distinguishes it from siblings like cf_dns_list (list in different format) or cf_dns_add (add records).

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 'good for backups' implies a backup use case, but there is no explicit guidance on when not to use it or alternatives for other scenarios (e.g., individual record management). The guideline is implied but not fully explicit.

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

cf_toggle_proxyToggle record proxyB

Turn Cloudflare proxy (orange cloud) on or off for a specific record.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesZone domain
nameYesFull record name, e.g. www.example.com
proxiedYestrue = proxied (orange), false = DNS only (grey)
accountNoCloudflare account key from CF_ACCOUNTS (defaults to the first)

TDQS

B3.3/5.0
Behavior2/5

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

Without annotations, the description fails to disclose behavioral traits such as mutability, required permissions, error handling, or idempotency. It does not state whether toggling proxy changes other record attributes or if it can be reapplied safely.

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

Conciseness5/5

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

A single, front-loaded sentence efficiently communicates the tool's core functionality without extraneous words. Every part serves to clarify the action and target.

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 tool, the description is minimally adequate but lacks details on return values, error states, or effects on existing settings. With no output schema and no annotations, more context would improve completeness.

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

Parameters3/5

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

The input schema already provides clear descriptions for all 4 parameters (100% coverage). The description adds the 'orange cloud' visual metaphor but no additional semantic value beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Turn' and resource 'Cloudflare proxy' for a specific record, distinguishing it from sibling tools like cf_dns_add (adding records) and cf_export_records (exporting). It precisely conveys the action and 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?

No guidance on when to use this tool versus alternatives (e.g., editing DNS settings directly). The description does not specify prerequisites or context, leaving the agent to infer usage without direction.

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

cf_zone_statusCloudflare zone statusA

Show a zone's status, plan, and nameservers by domain name.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain, e.g. example.org
accountNoCloudflare account key from CF_ACCOUNTS (defaults to the first)

TDQS

A4.1/5.0
Behavior4/5

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

Without annotations, the description carries the burden. It uses 'Show' implying a read-only operation, which is clear. However, it does not explicitly state that it does not modify data or discuss authentication requirements beyond the account parameter.

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

Conciseness5/5

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

Single sentence with no wasted words, efficiently communicating the core function. The key 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 simple read-only tool with full schema coverage, the description is complete. It tells what the tool does, the key input (domain), and the outputs (status, plan, nameservers) implicitly. No output schema is present, so the description suffices.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The tool description adds 'by domain name' reinforcing the domain parameter's purpose, but does not significantly exceed the schema in explaining parameter meaning or usage.

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

Purpose5/5

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

The description clearly states the tool shows a zone's status, plan, and nameservers by domain name, using a specific verb and resource. It distinguishes from siblings like cf_dns_add or cf_dns_list which deal with DNS records, not zone info.

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

Usage Guidelines3/5

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

The description implies usage for checking zone details, but does not explicitly state when to use vs. alternatives or provide exclusion criteria. No guidance on prerequisites or context is given.

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

check_all_sitesCheck many sitesA

Check HTTP status for a list of URLs in parallel and return a summary table.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYesList of URLs

TDQS

A3.5/5.0
Behavior3/5

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

The description discloses parallel execution and a summary table output, which adds behavioral context beyond the schema. However, with no annotations provided, it lacks details on error handling, timeouts, rate limits, or side effects, leaving significant transparency gaps.

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

Conciseness5/5

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

The description is a single clear sentence with no wasted words. It is front-loaded and efficiently conveys the tool's core functionality.

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

Completeness3/5

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

Given the simple input and no output schema, the description covers the basic function but omits details on return format, error handling, and parallel execution constraints. It is adequate but not fully complete for an agent to anticipate all behaviors.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 'urls', and the schema already includes minItems, maxItems, and format. The tool description reinforces the purpose but adds no new semantic detail beyond the schema, resulting in baseline score.

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

Purpose5/5

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

The description clearly specifies the action: checking HTTP status for multiple URLs in parallel and returning a summary table. It is specific and distinguishes from siblings like site_status which likely checks a single site.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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. With many sibling tools, explicit usage context or exclusions are missing, leaving the agent to infer usage from the description alone.

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

coolify_appsList Coolify appsA

List applications managed by Coolify (name, status, uuid).

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?

No annotations provided. Description discloses basic behavior (lists apps, returns fields). For a simple read-only operation, this is sufficient; no hidden side effects or auth needs mentioned but none expected.

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

Conciseness5/5

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

Single sentence, 11 words, front-loaded with verb and resource, no fluff. Every word 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?

Given no parameters, no output schema, and no annotations, the description fully covers purpose and behavior. No additional context needed for this simple list 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?

Input schema has 0 parameters, so schema description coverage is 100%. Description adds value by indicating the returned fields beyond the schema, which is helpful despite no 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?

Description clearly states verb 'List', resource 'applications managed by Coolify', and specifies returned fields (name, status, uuid). Distinguishes from siblings like coolify_deploy and coolify_resources.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. Implied by name, but lacks context such as 'use this for initial listing; for details on a specific app, use coolify_resources'.

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

coolify_deployTrigger deploymentB

Trigger a deployment for an application by its uuid.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesApplication uuid (from coolify_apps)
forceNoForce rebuild without cache

TDQS

B3.1/5.0
Behavior2/5

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

Without annotations, the description must fully disclose behavioral traits. It only states 'trigger a deployment,' omitting critical details like whether the operation is synchronous or asynchronous, what side effects occur, or error handling. This is insufficient for an agent to understand the tool's behavior.

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

Conciseness4/5

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

The description is a single, succinct sentence with no wasted words. It could be slightly more informative while remaining concise, but it is efficient.

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

Completeness2/5

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

Considering the tool's simple parameters (uuid, boolean force) and no output schema, the description should provide more context to ensure correct usage, such as how to obtain the uuid or the implications of forcing a rebuild. The current description is insufficiently complete.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The description adds minimal value by restating the uuid as the identifier, but it does not provide additional context or usage hints beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (trigger a deployment) and the target resource (an application identified by uuid). It effectively distinguishes from sibling tools like coolify_apps, which list apps, and other management 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 whether to check if the application is already deploying or if there are prerequisites like a valid uuid. The description lacks any context about appropriate use cases.

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

coolify_resourcesList all resourcesA

List all Coolify resources (apps, databases, services) across projects.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the scope ('across projects') but lacks details on pagination, rate limits, authentication, or behavior when no resources 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 a single sentence with no waste, directly stating the purpose and scope.

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

Completeness4/5

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

For a simple list tool with no parameters and no output schema, the description adequately states that it returns all resources across projects. However, it does not specify the data returned (IDs, status) or how to interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 no parameters (schema coverage 100%), so baseline is 3. The description adds no parameter information, but it does mention resource types which informs the output rather than 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 title 'List all resources' and description 'List all Coolify resources (apps, databases, services) across projects.' clearly specify the action (list) and the resource (Coolify resources), distinguishing it from siblings like coolify_apps and coolify_servers which are more specific.

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 listing all resources across projects, but it does not explicitly state when to use this over siblings like coolify_apps, nor does it mention 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.

coolify_serversList Coolify serversB

List servers connected to your Coolify instance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the basic operation but does not disclose any behavioral traits such as whether authentication is needed, performance implications, or what happens if no servers exist.

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

Conciseness4/5

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

The description is a single, front-loaded sentence. It is concise, but given the simplicity, it could be slightly more informative without losing conciseness.

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

Completeness3/5

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

For a simple list tool with no parameters, the description is adequate but lacks details about the return format. Since there is no output schema, the agent must infer the structure. 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 schema coverage is 100% (since there are none). Per guidelines, 0 params gets a baseline of 4. The description adds no extraneous 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 clearly states the action ('List') and the resource ('servers connected to your Coolify instance'), making the purpose unambiguous. However, it does not differentiate from sibling tools like coolify_apps, but the name itself 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 provided on when to use this tool vs. alternatives. There is no mention of prerequisites or when it would not be appropriate.

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

dev_checkBuild / lint / test a projectA

Auto-detect the stack in a directory and run its checks. Go: vet, build, test. Node/TS: optional install, then tsc --noEmit, lint, build (whatever exists).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the project directory
installNoRun npm install first (Node projects)

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description must cover behaviors. It outlines steps for different stacks but does not disclose failure modes, side effects (e.g., file modification via install), or return behavior. Adequate but not comprehensive.

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

Conciseness5/5

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

Two sentences with no fluff, directly conveying core functionality and stack-specific actions. Highly concise.

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

Completeness4/5

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

Given moderate complexity and no output schema, the description covers key behavior but lacks details on output format or error handling. Still sufficient for a developer 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?

Input schema provides full descriptions for both parameters (path and install). The description adds minimal extra value (e.g., 'optional install' context). Baseline 3 due to high schema coverage.

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

Purpose5/5

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

The description clearly states 'Auto-detect the stack and run its checks' and provides specific examples for Go and Node/TS, distinguishing it from sibling tools like scaffold or dockerize.

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?

Implicitly indicates when to use (to check a project's build/lint/test) but lacks explicit when-not-to-use or alternatives. The context of auto-detecting stack helps but could be more directive.

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

disk_usageServer disk usageA

Show server disk usage (df -h /) and the largest vhost directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
vhostsPathNoBase path of vhosts to measure/var/www/vhosts

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It honestly describes a read-only shell command (df -h /) and directory listing, but does not explicitly state it is non-destructive or disclose any potential side effects.

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

Conciseness5/5

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

A single, front-loaded sentence that conveys the core functionality without any redundant words or phrases.

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

Completeness4/5

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

For a simple tool with one optional parameter and no output schema, the description adequately covers what the tool does and what it measures. It lacks detail on output format, but the core behavior is 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?

Schema coverage is 100% for the single parameter, and the description adds context beyond the schema's 'Base path' by mentioning 'largest vhost directories', clarifying the output's focus.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 ('Show') and resource ('server disk usage and the largest vhost directories'), clearly distinguishing it from siblings. No other sibling tool explicitly mentions disk or vhost directory measurement.

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 checking disk usage and large vhost directories, but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.

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

dockerizeGenerate a DockerfileA

Write a production multi-stage Dockerfile into a project. Pairs with the docker_* and coolify_* tools to build and deploy the result on your server.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesProject directory to write the Dockerfile into
stackYesProject stack

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states that it writes a file, but omits important behavioral details such as whether it overwrites existing files, permissions required, error conditions, or side effects. This is minimal transparency for a mutation tool.

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

Conciseness5/5

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

Two efficient sentences: the first states the purpose, the second provides usage context. No unnecessary words, front-loaded and clear.

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

Completeness3/5

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

Given the tool's simplicity (2 parameters, no output schema), the description covers the purpose and high-level workflow. However, it lacks behavioral details like overwrite behavior, idempotency, or success/failure indicators, making it minimally complete 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?

The input schema already describes both parameters (path and stack) at 100% coverage, so the description adds no additional parameter information. The description mentions 'production multi-stage' but that describes the output, not the parameters. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it writes a production multi-stage Dockerfile into a project, with a specific verb and resource. It distinguishes from sibling docker_* (management) and scaffold_* (project generation) tools by explicitly pairing with docker_* and coolify_* for build/deploy.

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 tells when to use this tool (to generate a Dockerfile for nextjs/node/go stacks) and pairs it with docker_* and coolify_* tools, implying a workflow. However, it does not explicitly state when not to use it or compare with scaffold tools that might also generate Dockerfiles.

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

docker_logsContainer logsC

Show the last N log lines for a container.

ParametersJSON Schema
NameRequiredDescriptionDefault
containerYesContainer name or id
tailNoLines to show

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description fails to disclose key behaviors: whether logs are from running containers only, if stderr is included, or whether the output follows or is static. The 'last N' hint is present but insufficient.

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

Conciseness4/5

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

One short sentence that is efficient and front-loaded. Could be slightly expanded without losing conciseness, but currently it is not wasteful.

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

Completeness3/5

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

The tool is simple with two parameters and no output schema. The description provides the core purpose but omits details like error handling or output format. 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 covers both parameters at 100% with clear descriptions. The tool description adds minimal value beyond confirming the tail parameter's purpose (N lines). 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 clearly states the tool retrieves the last N log lines and identifies the container as the target resource. It is specific enough, though it could distinguish from a hypothetical full-log 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?

No guidance is given on when to use this tool versus other Docker tools (e.g., docker_raw for raw output, docker_ps for listing). There is no mention of prerequisites or alternatives.

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

docker_psList containersA

List running containers (or all with all=true).

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoInclude stopped containers

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses basic behavior: lists running containers by default, all with parameter. It does not mention output format or non-destructive nature, which is acceptable for a simple read operation.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core purpose and key parameter usage.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description is adequate but minimal. It covers the essential behavior but does not detail output format or potential edge cases.

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

Parameters3/5

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

Schema coverage is 100% with the 'all' parameter already described as 'Include stopped containers'. The tool description adds no extra meaning beyond the schema, meeting the baseline.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'containers', and distinguishes between running and all containers with the 'all' parameter. It is specific and distinct from sibling tools like docker_logs or docker_restart.

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

Usage Guidelines4/5

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

The description implies usage for listing containers, and the sibling context (e.g., docker_logs for logs) provides differentiation. However, it does not explicitly state when not to use it or mention alternatives.

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

docker_rawRun docker commandA

Run any docker subcommand. Pass arguments as an array, e.g. ["compose", "up", "-d"].

ParametersJSON Schema
NameRequiredDescriptionDefault
argsYesdocker arguments as an array

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses the input format but does not mention potential destructive consequences, authentication requirements, or side effects of running arbitrary docker commands.

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

Conciseness5/5

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

The description is extremely concise: two sentences, front-loaded with the action, and no wasted words. Every sentence adds value.

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

Completeness3/5

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

Given the tool is a simple raw command with one parameter and no output schema, the description is adequate. However, it lacks warnings about destructive actions and instructions for help, which would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'args'. The description adds an example of how to pass arguments (e.g., ['compose', 'up', '-d']), which provides marginal additional clarity beyond the schema's description.

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

Purpose5/5

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

The description clearly states the verb 'Run' and the resource 'any docker subcommand', with an example. It is specific and distinguishes from sibling tools like docker_logs and docker_ps.

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 says 'Run any docker subcommand' which implies it can be used for any docker operation not covered by sibling tools, but it does not explicitly state when to use this vs other docker tools, nor does it provide prerequisites or exclusions.

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

docker_restartRestart containerC

Restart a container by name or id.

ParametersJSON Schema
NameRequiredDescriptionDefault
containerYesContainer name or id

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states 'Restart' without mentioning side effects (e.g., container state changes, data persistence, or required permissions). This is insufficient for a mutation tool.

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

Conciseness5/5

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

The description is a single, concise sentence with no unnecessary words. It is front-loaded and to the point, making it efficient for an AI agent to parse.

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

Completeness2/5

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

For a simple tool with one parameter and no output schema, the description is overly minimal. It lacks behavioral context (e.g., effect on container state) and usage guidance, which are critical 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?

The input schema has 100% description coverage for the single parameter 'container'. The tool description adds no extra meaning beyond the schema's 'Container name or id', so 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 clearly states the tool restarts a container by name or ID, with a specific verb ('restart') and resource ('container'). It is distinct from sibling tools like docker_logs or docker_ps, though no explicit differentiation is provided.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 (e.g., when to restart instead of using docker_logs or docker_raw). There is no context about prerequisites or scenarios.

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

ghRun gh CLIA

Run any GitHub CLI command. Pass arguments as an array (no shell parsing), e.g. ["repo", "view", "owner/name"].

ParametersJSON Schema
NameRequiredDescriptionDefault
argsYesgh arguments as an array

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided. Description mentions 'no shell parsing', which is a behavioral trait, but does not disclose authentication requirements, side effects, rate limits, or error handling for a generic CLI runner.

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

Conciseness5/5

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

One sentence plus example. No unnecessary words. Front-loaded with the action and resource.

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

Completeness3/5

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

Adequate for a simple command runner, but lacks details on working directory, environment, authentication setup, or return value structure. No output schema provided to compensate.

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

Parameters4/5

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

Schema covers the single parameter 'args' with 100% description (type array, minItems 1, strings). Description adds value by clarifying array style and the 'no shell parsing' behavior, plus an example.

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

Purpose5/5

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

Description clearly states it runs any GitHub CLI command with a specific verb 'Run' and resource 'GitHub CLI command'. Given sibling tools like gh_create_issue and gh_pr_list, this tool is the generic one, making it distinct.

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

Usage Guidelines3/5

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

Description implies use for any gh command not covered by specific sibling tools, but does not explicitly state when to use this tool versus alternatives like gh_create_issue or gh_pr_list. No 'when not to use' guidance.

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

gh_create_issueCreate issueC

Open a new issue in a repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesowner/name
titleYesIssue title
bodyNoIssue body (markdown)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as authentication requirements, rate limits, side effects, or return value. Minimal information beyond the schema.

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

Conciseness4/5

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

The description is extremely concise (one sentence, six words). While it could benefit from more detail, it is not verbose and front-loads the key action.

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

Completeness3/5

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

For a simple create tool with 3 parameters and no output schema, the description is adequate but incomplete. It does not mention the return value, but schema provides basic parameter info. Could elaborate on effects (e.g., issue number assigned).

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for all three parameters. The tool description adds no extra semantic 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.

Purpose4/5

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

The description clearly states the action ('open a new issue') and the resource ('repository'). The verb 'open' is slightly less explicit than 'create', but the resource is unambiguous. No sibling tools directly compete for issue creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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, prerequisites, or typical scenarios. The description only states the function.

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

gh_pr_listList pull requestsC

List open pull requests for a repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesowner/name
stateNoopen
limitNo

TDQS

C2.4/5.0
Behavior1/5

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

No annotations are present, so the description carries full burden. It fails to disclose any behavioral traits like being read-only, authentication requirements, rate limits, or pagination. The minimal description provides no transparency beyond the basic action.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks essential detail. It is front-loaded but insufficient for an agent to understand the tool's full capabilities.

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

Completeness2/5

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

For a tool with no output schema and low parameter coverage, the description should provide more context about the return format, default behavior, and limitations. It only covers the basic 'list open PRs' aspect, leaving significant gaps.

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

Parameters2/5

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

Schema description coverage is low (33%), with only the 'repo' property described as 'owner/name'. The description adds no additional meaning to the parameters beyond what the schema provides. It does not clarify the format of 'repo' or the meaning of the other parameters.

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

Purpose4/5

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

The description clearly states it lists pull requests for a repository, which is a specific action. However, it only mentions 'open' pull requests, while the schema allows filtering by other states (closed, merged, all). This inaccuracy slightly reduces 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?

No guidance is provided on when to use this tool versus alternatives. The description lacks context about prerequisites or situations where this tool is preferred over other tools (e.g., gh or other listing tools).

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

mysql_create_userCreate DB user + grantA

Create a MySQL user (if absent) and grant all privileges on one database. Useful when a migrated site has a DB but no registered user.

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseYesDatabase to grant on
userYesNew username
passwordYesPassword for the new user
hostNoAllowed hostlocalhost

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. It states the user is created 'if absent', implying idempotency, and grants 'all privileges' — a significant action. However, it doesn't mention security implications, required permissions (e.g., root access), or potential conflicts; transparency is moderate.

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

Conciseness4/5

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

The description is two sentences: the first states the action, the second provides a use case. It is front-loaded and concise, with no redundant information. Minor improvement could be integrating the use case into the first sentence, but overall 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?

Given no output schema and 4 well-documented parameters, the description covers the core action and a common use case. However, it omits details on return values, error conditions (e.g., user already exists), and prerequisites (e.g., database must exist). It is sufficient but not rich.

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

Parameters3/5

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

The input schema has 100% description coverage, so baseline is 3. The description adds only the conditional 'if absent', which slightly clarifies the creation logic, but does not elaborate on parameter constraints or formats beyond the schema.

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

Purpose5/5

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

The description clearly specifies the verb 'Create' and the resource 'MySQL user', and adds 'grant all privileges on one database'. It distinguishes from siblings like mysql_query or mysql_dump by focusing on user creation. The phrase 'if absent' adds precision.

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

Usage Guidelines4/5

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

The description provides a specific use case: 'when a migrated site has a DB but no registered user'. It does not explicitly exclude other scenarios or mention alternatives, but the context of siblings suggests no other tool performs this exact function, so guidance is adequate.

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

mysql_dumpBackup databaseB

Dump a database to a timestamped gzip file on the server and return its path.

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseYesDatabase name
dirNoDestination directory on the server/root/backups

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided. Description states output (file creation and path) but omits required permissions, potential overwrite behavior, or side effects like disk space usage. Minimal behavioral disclosure for a mutation 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?

Single sentence, no waste. Directly communicates action, output format, and behavior.

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

Completeness3/5

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

Tool is simple with 2 parameters. Description clarifies return value (path). However, it lacks details on error handling, directory creation, or file naming convention. Adequate but not robust.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 basic descriptions for both parameters. Description adds no extra meaning beyond the schema; baseline 3 is appropriate.

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

Purpose5/5

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

Description uses specific verb 'Dump' and resource 'a database' with output format (timestamped gzip file, returns path). Clearly distinguishes from siblings like mysql_query or mysql_table_sizes.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. Does not mention prerequisites (database existence, write permissions) or scenarios where this tool is inappropriate.

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

mysql_queryRun SQL queryA

Run SQL against a database on the fleet server over SSH. Read-only by default — write statements are blocked unless allowWrite is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseYesDatabase name
sqlYesSQL statement(s) to run
allowWriteNoSet true to permit INSERT/UPDATE/DELETE/DDL — use with care

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses critical behavioral traits: it runs over SSH, is read-only by default, and write operations require explicit opt-in. However, it does not mention error handling or timeout 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 a single sentence that front-loads the core action and safety constraint, with no superfluous words 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?

Given the simplicity of the tool (3 parameters, no output schema), the description adequately covers purpose and key behavior. While it does not describe the return format, that is acceptable 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?

Schema coverage is 100%, so baseline is 3. The description adds context for allowWrite (explaining its effect on write blocking) but does not add meaning beyond the schema for database and sql parameters.

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

Purpose5/5

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

The description clearly states the verb 'Run SQL' and the resource 'database on the fleet server over SSH'. It also distinguishes from sibling MySQL tools like mysql_dump and mysql_create_user by focusing on arbitrary SQL execution.

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 provides context on when to use the allowWrite parameter ('Read-only by default — write statements are blocked unless allowWrite is true') but does not explicitly mention alternatives among sibling tools.

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

mysql_table_sizesTable sizesA

List tables in a database ordered by size (MB), with row counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseYesDatabase name

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the results are ordered by size and include row counts, but does not explicitly state that the operation is read-only, non-destructive, or any authentication needs.

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

Conciseness5/5

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

The description is extremely concise, consisting of one sentence that front-loads the purpose. There is no wasted text, and every part 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 listing tool with one parameter, the description adequately conveys what the tool does and the output (list of tables with sizes and row counts). However, it could mention the output format (e.g., JSON or ASCII table) for completeness.

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

Parameters3/5

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

Schema coverage is 100% with a single parameter 'database' described as 'Database name'. The description adds no additional meaning beyond the schema's description, 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 the verb 'List', the resource 'tables in a database', and key details like ordering by size in MB and inclusion of row counts. It distinguishes itself from sibling tools like mysql_query or mysql_dump.

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 checking table sizes but provides no explicit guidance on when to use this tool versus alternatives, nor any context about prerequisites or exclusions.

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

ojs_create_journalCreate OJS journalA

Create the first (or another) journal on an existing OJS install via the CLI bootstrap recipe — handles the 3 known gotchas (loadAllPlugins throw, missing default section, per-context theme enable) so the frontend works immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesOJS subdomain, e.g. journal.example.com
urlPathYesJournal path segment, e.g. myjournal
nameEnYesEnglish journal name
nameArNoArabic journal name
acronymYesAcronym, e.g. MYJ
primaryLocaleNoen
localesNoSupported locales
docrootNoOverride docroot path

TDQS

A3.8/5.0
Behavior4/5

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

Without annotations, the description carries full disclosure burden. It proactively lists three known gotchas (loadAllPlugins throw, missing default section, per-context theme enable) and implies automatic handling, adding valuable context beyond a simple 'create journal'. However, it omits permissions or potential side effects on other journal data.

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

Conciseness5/5

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

The description is a single, information-dense sentence that front-loads the action and key benefits. Every component (action, context, gotchas, outcome) 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?

For a tool with 8 parameters, no output schema, and no annotations, the description fails to specify return values, success indicators, or error handling beyond the listed gotchas. It does not address whether the tool is idempotent or what happens if a journal already exists.

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

Parameters3/5

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

With 88% schema coverage, the parameters are already well-documented in the schema. The description adds no additional parameter details beyond mentioning 'domain' and 'urlPath' implicitly via examples. It does not compensate for the 12% uncovered parameters or explain parameter usage nuances.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 creates a journal on an existing OJS install via a CLI bootstrap recipe, specifying the resource ('journal') and method. It also distinguishes from siblings like ojs_install (which installs OJS) and ojs_status (checks status) by mentioning 'first (or another) journal'.

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 clarifies that the tool is for creating journals after OJS installation and includes handling of known gotchas. However, it does not explicitly state when not to use it (e.g., if OJS is not installed) or provide alternatives among siblings for related tasks.

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

ojs_installInstall OJS journalA

Provision a fresh OJS install on an EXISTING Plesk subdomain/webspace: deploy files, create DB + user, run the CLI installer, patch config.inc.php (allowed_hosts/base_url/trust_x_forwarded_for), set perms and PHP handler. Generates admin + DB passwords and returns the access details. Prerequisite: the subdomain, its docroot and DNS must already exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesFull subdomain, e.g. journal.example.com
pleskDomainNoPlesk subscription domain for DB commands — the PARENT for a subdomain (e.g. example.com); defaults to `domain`
adminEmailNoAdmin email (defaults to OJS_ADMIN_EMAIL)
docrootNoOverride docroot path
filesDirNoOverride OJS files dir (outside webroot)
primaryLocaleNoPrimary locale keyen
additionalLocalesNoComma-separated extra locale keysar
setPhpHandlerNoSet the Plesk PHP handler to OJS_PHP_HANDLER (php81 fastcgi)
createJournalNoAlso create the first journal after install (see ojs_create_journal args)
journalPathNourlPath for the journal when createJournal=true
journalNameEnNoEnglish journal name when createJournal=true
journalNameArNoArabic journal name when createJournal=true
acronymNoJournal acronym when createJournal=true

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries full burden and details the install steps, password generation, and return of access details. It does not explicitly mention whether existing files are overwritten, but 'fresh install' implies clean setup.

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

Conciseness4/5

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

The description is a single efficient paragraph, front-loaded with the main verb and steps, though it could be slightly tighter by removing redundant phrases like 'deploy files, create DB + user, run the CLI installer...' but still acceptable.

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 13 parameters and no output schema or annotations, the description covers the core process, prerequisites, and return value, which is sufficient for the tool's 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%, so baseline is 3. The description adds context about the overall process and return value (access details) but does not add per-parameter details beyond the schema.

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

Purpose5/5

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

The description clearly specifies the tool provisions a fresh OJS install on an existing Plesk subdomain/webspace, listing specific actions and distinguishing it from the sibling 'ojs_create_journal' which handles post-install journal creation.

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

Usage Guidelines4/5

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

The description explicitly states the prerequisite (subdomain, docroot, DNS must exist) and outlines the steps, but does not explicitly state when not to use the tool or compare to alternatives like 'ojs_status' or other install tools.

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

ojs_statusOJS status checkA

Quick health check of an OJS site: homepage HTTP code, whether config.inc.php exists and is installed, and the configured base_url / allowed_hosts.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesOJS subdomain
docrootNoOverride docroot path

TDQS

A3.7/5.0
Behavior3/5

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

Without annotations, the description reliably conveys that the tool performs read-only checks (health check). However, it doesn't detail behavioral traits like error handling, response structure, or any potential side effects. It adds minimal value beyond the purpose.

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

Conciseness5/5

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

The description is a single, clear, and complete sentence. Every word contributes to understanding the tool's purpose and scope. No extraneous information.

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

Completeness3/5

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

Given no output schema, the description lists what checks are performed but does not describe return values or error scenarios. It suffices for a simple health check but could be improved with output 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%, so the baseline is 3. The description adds no additional semantics for the parameters beyond what the schema already provides (domain: 'OJS subdomain', docroot: 'Override docroot path').

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

Purpose5/5

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

The description explicitly states the tool performs a health check of an OJS site, listing specific checks (homepage HTTP code, config file existence, base_url/allowed_hosts). This clearly distinguishes it from sibling tools like site_status and other OJS commands.

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 a 'quick health check' but provides no explicit guidance on when to use this tool versus alternatives like site_status or other OJS tools. No when-not-to-use or alternative recommendations are given.

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

run_sshRun SSH commandA

Run a shell command on the fleet server over SSH (FLEET_SSH_TARGET). Powerful and can change server state — prefer a specific tool when one exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesShell command to execute on the remote server

TDQS

A4.4/5.0
Behavior4/5

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

Warns that the tool is 'powerful and can change server state', which is appropriate for a generic command executor. No annotations exist, so description carries the burden adequately.

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

Conciseness5/5

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

Two concise sentences with front-loaded action and no wasted words.

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

Completeness4/5

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

Covers purpose, usage, and risks adequately for a simple one-param tool. Could mention output or return value but not necessary.

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

Parameters3/5

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

Schema provides full description for the single parameter 'command'. Description adds no extra semantic beyond schema, meeting baseline for 100% coverage.

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

Purpose5/5

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

Clearly states the action ('Run a shell command') and resource ('on the fleet server over SSH'), with explicit differentiation from siblings ('prefer a specific tool when one exists').

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

Usage Guidelines5/5

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

Provides explicit guidance to prefer specific tools when available, defining when to use this tool (fallback) and 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.

scaffold_goScaffold a Go moduleA

Create a new Go module with a minimal main.go and verify it builds.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFolder name
moduleYesGo module path, e.g. github.com/you/app
dirYesParent directory

TDQS

A4/5.0
Behavior4/5

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

The description discloses that the tool creates files and runs a build verification. Since no annotations are provided, the description carries the full burden and does so adequately, though it could mention overwrite behavior or error handling.

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

Conciseness5/5

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

The description is a single 12-word sentence that front-loads the main action. Every word adds value, with no fluff or repetition.

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

Completeness4/5

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

The description covers the essential action and verification step. However, it does not mention what happens if the directory already exists or if the build fails. Given no output schema, it provides sufficient context for a simple scaffold 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 provides 100% coverage with descriptions for each parameter. The tool description adds no additional parameter information beyond the schema, so baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the verb 'Create' and the resource 'Go module', and specifies 'a minimal main.go' and verification of the build. It distinguishes from sibling tools like scaffold_nextjs and scaffold_ts_lib by targeting Go.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. Usage is implied by the purpose, but there are no conditions or prerequisites mentioned, such as requiring Go to be installed.

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

scaffold_nextjsScaffold a Next.js appA

Create a new Next.js app (TypeScript, App Router) via create-next-app in the given directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesApp/folder name
dirYesParent directory to create the app in

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. States it uses create-next-app and creates in a given directory, but does not disclose overwrite behavior, network usage, or authentication requirements. Adequate but limited.

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

Conciseness5/5

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

Single sentence that is front-loaded with key information. No wasted words.

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

Completeness4/5

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

Simple tool with 2 required parameters and no output schema. Description sufficiently covers purpose and parameters for a typical scaffolding task.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 description adds minimal context ('in the given directory') beyond parameter descriptions. No additional details like naming conventions or constraints 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?

Description clearly states the verb 'Create', resource 'Next.js app', and specific characteristics 'TypeScript, App Router'. It distinguishes from sibling tools like scaffold_go and scaffold_ts_lib by focusing on Next.js.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance. Usage is implied by the tool name and sibling context, but no exclusions or alternatives are mentioned.

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

scaffold_ts_libScaffold a TypeScript libraryB

Create a minimal strict-TypeScript library (package.json, tsconfig, src/index.ts).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFolder + package name
dirYesParent directory

TDQS

B3.3/5.0
Behavior2/5

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

Lacks any behavioral details beyond the files created. No annotations exist, so the description should disclose side effects (e.g., overwrite behavior), permissions, or post-creation steps. The minimal description leaves important behavioral traits unspecified.

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

Conciseness5/5

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

Single sentence, concise, front-loaded, with no wasted words. Perfectly sized for the tool's simplicity.

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

Completeness3/5

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

Adequate for a simple tool with two parameters and no output schema, but missing usage context and behavioral transparency. Could mention that it initializes a minimal library structure and note any overwrite 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 coverage is 100% with both parameters described, so the baseline is 3. The description does not add further meaning beyond the property descriptions, but that 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?

Clearly states the verb 'Create' and the specific files produced (package.json, tsconfig, src/index.ts), distinguishing it from sibling scaffolding tools like scaffold_go and scaffold_nextjs.

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

Usage Guidelines2/5

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

Provides no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of typical use cases. With many sibling tools, this omission makes it harder for an agent to choose correctly.

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

site_statusSite HTTP statusA

Check one URL and return HTTP status code, total time, and the final URL after redirects.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL including https://

TDQS

A3.6/5.0
Behavior3/5

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

Although no annotations are provided, the description discloses that it follows redirects and returns final URL, total time, and status code. However, it does not mention timeouts, rate limits, or potential errors, leaving some behavioral aspects opaque for a simple read tool.

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

Conciseness5/5

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

The description is a single, clear sentence that immediately states the action and outputs. Every word is necessary, and the most important information is front-loaded.

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

Completeness4/5

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

Given the simplicity of the tool (one parameter, no output schema, no annotations), the description adequately covers its purpose and outputs. It does not mention error handling or connection issues, but for a status check tool this is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 covers the single parameter 'url' with a description ('Full URL including https://') and required status. The description adds only minor context ('Check one URL'), not significantly enhancing parameter understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the tool checks one URL and returns HTTP status code, total time, and final URL after redirects. It distinguishes itself from sibling tools like 'check_all_sites' which checks multiple sites, and 'ssl_expiry' which checks SSL certificates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 'check_all_sites' for batch checks or 'ssl_expiry' for SSL details. No exclusion criteria or prerequisites are mentioned.

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

ssl_expirySSL certificate expiryA

Return the TLS certificate expiry date and days remaining for a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain without protocol, e.g. example.com
portNoTLS port

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It discloses only the basic output (expiry date and days remaining) but omits behavioral traits like network calls, error handling, or authentication 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 a single concise sentence that front-loads the action and resource. No wasted words.

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

Completeness3/5

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

Given no output schema, the description does not specify the format of the expiry date or the structure of the return value. It mentions both date and days remaining but lacks detail. For a simple tool, this is adequate but not fully complete.

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

Parameters3/5

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

Schema description coverage is 100% (both domain and port have descriptions). The tool description does not add extra meaning beyond what the schema provides, 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 it returns TLS certificate expiry date and days remaining for a domain, using a specific verb and resource. It distinguishes from sibling tools (none appear to overlap).

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

Usage Guidelines3/5

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

The description implies when to use this tool (checking SSL expiry) but does not provide explicit guidance on alternatives or when not to use it. Among siblings, tools like site_status or dev_check might also check SSL, but no exclusions are given.

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

wpRun wp-cliA

Run an arbitrary wp-cli command for a site over SSH. site is a domain (mapped via WP_DOCROOT_TEMPLATE) or an absolute docroot path.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesDomain (example.com) or absolute docroot path
commandYeswp-cli arguments, e.g. "plugin list --status=active"

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It mentions SSH execution and site mapping, which adds essential behavioral context, but lacks details on return format, error handling, or potential side effects of running arbitrary commands.

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

Conciseness5/5

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

Two concise sentences: the first states the purpose, the second clarifies the site parameter. No wasted words.

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

Completeness3/5

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

The tool has moderate complexity with 2 required parameters and no output schema or annotations. The description covers purpose and param semantics but lacks usage guidelines and deeper behavioral transparency, leaving some gaps 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?

Both parameters have schema descriptions (100% coverage). The description adds value by explaining the site mapping via WP_DOCROOT_TEMPLATE and providing an example for the command parameter, going beyond the schema.

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

Purpose5/5

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

The description clearly states the tool runs an arbitrary wp-cli command for a site over SSH. It specifies the verb 'Run' and the resource 'wp-cli command', and distinguishes from siblings like run_ssh and wp_health 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 provides context that the tool executes over SSH and explains the site parameter mapping, but does not explicitly state when to use this tool versus alternatives like run_ssh or other wp_ tools.

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

wp_healthWordPress health checkB

Quick health snapshot: site URL, core version, active plugin count, and PHP version reported by wp-cli.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesDomain (example.com) or absolute docroot path

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, and description does not disclose behavioral traits such as non-destructive nature, required permissions, or rate limits. Only implies it's a 'quick snapshot' but doesn't explicitly state it's read-only.

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

Conciseness5/5

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

Single sentence, front-loaded with purpose, no redundant words. Perfectly concise.

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

Completeness4/5

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

No output schema, but description lists the return fields (site URL, core version, active plugin count, PHP version). Sufficient for a simple health check tool, though error handling not mentioned.

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

Parameters3/5

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

Input schema has 100% coverage describing the 'site' parameter as domain or docroot path. Description adds 'site URL' which aligns but doesn't significantly expand meaning. Baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states it provides a health snapshot with specific fields (site URL, core version, active plugin count, PHP version). The verb 'health check' plus listed outputs makes purpose unambiguous and distinct from sibling tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like site_status or wp. No context on prerequisites or exclusions. The description lacks any usage instructions.

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

wp_php_handlerShow Plesk PHP handlerB

Show the PHP handler configured in Plesk for a domain (FastCGI vs FPM, version).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain registered in Plesk, e.g. example.com

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state that the operation is read-only, safe, or what happens if the domain is not found in Plesk. Missing critical behavioral traits.

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

Conciseness5/5

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

Single sentence, no wasted words, front-loaded with the core action. Perfectly concise for the complexity.

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 info tool with one parameter and no output schema, the description is largely complete. It could mention that the domain must exist in Plesk or that it requires Plesk access, but overall it covers the essential purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 ('domain') adequately described. The description adds context about the return value (handler type, version) but does not explain parameter semantics beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: showing the PHP handler (FastCGI vs FPM, version) for a domain in Plesk. It uses a specific verb ('Show') and resource ('PHP handler'), and distinguishes from sibling tools like site_status or wp_health.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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., site_status or wp_health). It does not mention any prerequisites or exclusions, leaving the agent to infer context.

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

wp_purge_lscachePurge LiteSpeed cacheA

Purge the full LiteSpeed (LSCache) cache for a site. Note: restarting lsws is NOT the same as purging the cache.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesDomain (example.com) or absolute docroot path

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It describes the core action and a common misconception, but lacks details on side effects (e.g., temporary site slowdown) or required permissions.

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

Conciseness5/5

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

Two efficient sentences with no wasted words. The note is placed at the end for emphasis.

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

Completeness4/5

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

Given the simple tool (one parameter, no output schema), the description is sufficient. It could mention that only the specified site's cache is purged, but the context 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 baseline is 3. The description adds no additional meaning to the 'site' parameter 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 ('Purge'), the resource ('full LiteSpeed cache'), and the scope ('for a site'), making it distinct from sibling tools like 'wp' or 'wp_health'.

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 note distinguishes purging from restarting lsws, providing a key usage insight. However, it does not explicitly mention when to use this tool over alternatives (though no direct cache purge sibling exists).

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

wp_update_pluginsUpdate WordPress pluginsC

Update all plugins for a site (wp plugin update --all).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteYesDomain (example.com) or absolute docroot path
dryRunNoOnly report available updates

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided; description only states the command without disclosing behavioral traits like destructive nature (updates can break sites), permissions needed, or side effects. Lacks detail for a mutation tool.

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

Conciseness4/5

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

Single sentence, low word count, front-loaded with key action. However, it sacrifices completeness for brevity.

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

Completeness3/5

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

For a simple two-parameter tool with no output schema, description is minimally adequate but lacks context that site must be a WordPress site or that dryRun reports updates without 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 baseline is 3. Description adds no additional meaning beyond the schema; does not explain dryRun behavior or site format.

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

Purpose4/5

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

Description clearly states it updates all plugins for a site and includes the WP-CLI command for reference. It distinguishes from general wp tool but doesn't explicitly differentiate from other plugin-related tools like wp_health.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives (e.g., wp for granular control). No when-not-to-use or prerequisites mentioned.

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

TDQS

B3.2/5.0
Disambiguation4/5

Most tools have distinct purposes, but generic raw tools like 'run_ssh', 'docker_raw', and 'gh' overlap with the more specific tools, potentially causing an agent to misselect. The overlap is limited, so the score is still high.

Naming Consistency3/5

Tool names mix conventions: some use prefixes (cf_, coolify_, docker_), others don't (dev_check, disk_usage). The verb-noun pattern is common but not universal, and some names like 'dockerize' stand out. This inconsistency makes it harder to predict tool names.

Tool Count3/5

38 tools is on the high side. While the server covers many subsystems (DNS, Coolify, Docker, GitHub, MySQL, OJS, WordPress), the count borders on excessive. Some tools could be consolidated, and generic raw commands already provide flexible coverage.

Completeness4/5

The tool set covers essential operations for all domains (e.g., DNS CRUD, database management, WordPress health). Minor gaps like missing a dedicated GitHub PR creation tool are filled by raw commands, so common workflows are achievable.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/haydary1986/fleet-mcp'

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