fleet-mcp
The fleet-mcp server provides a unified interface for managing a hosting fleet, covering SSH, site monitoring, WordPress, Cloudflare, MySQL, GitHub, Docker, Coolify, Plesk, fail2ban, OJS, Moodle, and development tools.
SSH & Server Management
run_ssh— Run arbitrary shell commands on the fleet serverdisk_usage— Check disk usage and largest vhost directories
Site Monitoring
site_status— Check HTTP status, response time, and final URL for a single sitecheck_all_sites— Bulk-check HTTP status for up to 100 URLs in parallelssl_expiry— Get TLS certificate expiry date and days remaining
WordPress (wp-cli)
wp— Run any wp-cli commandwp_update_plugins— Update all plugins (with optional dry-run)wp_purge_lscache— Purge LiteSpeed cachewp_health— Snapshot of core version, plugin count, and PHP versionwp_php_handler— Show Plesk PHP handler for a domainwp_search_replace— Run search/replace in the databasewp_integrity— Check WordPress core file integritywp_core_update— Update WordPress corewp_maintenance— Toggle maintenance modewp_backup— Backup a WordPress site
Cloudflare DNS & CDN
cf_zone_status— Show zone status, plan, and nameserverscf_dns_list— List DNS records (with optional type filter)cf_dns_add— Create a new DNS recordcf_toggle_proxy— Toggle orange-cloud proxy on/off for a recordcf_export_records— Export DNS records as a BIND zone filecf_zone_restore— Restore a zone's DNS recordscf_purge_cache— Purge Cloudflare cache for a zone
MySQL
mysql_query— Run SQL queries (read-only by default; write opt-in)mysql_table_sizes— List tables by size and row countmysql_create_user— Create a MySQL user and grant privilegesmysql_dump— Dump a database to a timestamped gzip backup
GitHub
gh— Run any GitHub CLI commandgh_pr_list— List open (or filtered) pull requestsgh_create_issue— Open a new issue in a repository
Docker
docker_ps— List running (or all) containersdocker_logs— Fetch recent log lines for a containerdocker_restart— Restart a container by name or IDdocker_raw— Run any docker subcommand
Coolify
coolify_servers— List servers connected to Coolifycoolify_apps— List applications managed by Coolifycoolify_deploy— Trigger a deployment (with optional force rebuild)coolify_resources— List all resources (apps, databases, services)
Plesk
plesk_list_domains— List all domainsplesk_domain_info— Get info about a specific domainplesk_create_subdomain— Create a subdomainplesk_set_php_handler— Set the PHP handler for a domainplesk_create_db— Create a databaseplesk_issue_le— Issue a Let's Encrypt certificate
fail2ban
f2b_status— Show jail statusf2b_check_ip— Check if an IP is bannedf2b_unban— Unban an IP addressf2b_ignore_add— Add an IP to the ignore list
OJS (Open Journal Systems)
ojs_install— Full OJS installation (deploy files, create DB, CLI install, patch config, set permissions)ojs_create_journal— Create a journal on an existing OJS installojs_status— Quick health check of an OJS site
Moodle
moodle_cron— Run Moodle cronmoodle_purge_caches— Purge Moodle cachesmoodle_maintenance— Toggle maintenance modemoodle_upgrade— Run Moodle upgrademoodle_cli— Run arbitrary Moodle CLI commands
Developer Tools
dev_check— Auto-detect stack and run build/lint/test (Go or Node/TS)scaffold_nextjs— Create a new Next.js (TypeScript, App Router) projectscaffold_go— Create a new Go modulescaffold_ts_lib— Create a minimal strict-TypeScript library skeletondockerize— Generate a production multi-stage Dockerfile
Resources
fleet://inventory— Live readable list of Plesk domains and available PHP handlers (no tool call needed)
Provides tools to manage Cloudflare DNS records, zone status, and proxy settings.
Provides tools to manage Docker containers, including listing, logs, restarting, and raw commands.
Provides tools to interact with GitHub repositories and pull requests via the gh CLI.
Provides tools to query MySQL databases, manage users, and perform dumps.
Provides tools to manage hosting sites through Plesk integration, including status checks, SSL expiry, and disk usage.
Provides tools to manage WordPress sites via WP-CLI, including plugin updates, cache purging, and health checks.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fleet-mcpCheck SSL expiry for journal.example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
|
Sites |
|
WordPress |
|
Cloudflare |
|
MySQL |
|
GitHub |
|
Docker |
|
Coolify |
|
OJS |
|
Dev |
|
Plesk |
|
fail2ban |
|
Moodle |
|
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 buildRequirements on the machine that runs the server:
Node ≥ 18 (uses global
fetch;--env-fileneeds 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 loginonce, or setGITHUB_TOKEN).docker locally, or set
DOCKER_SSH_TARGETto 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.jsThen 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, patchconfig.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. NeedsparentDomain+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 withdocker_*and deploy withcoolify_*.
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 :8787Or 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_sshandmysql_query(withallowWrite=true) can change server state.mysql_queryis 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.tsAdd a tool by extending the relevant tools/*.ts file (or add a new one and call
its register* from server.ts).
Available Tools
38 toolscf_dns_addAdd DNS recordB
Create a DNS record in a zone.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Zone domain | |
| type | Yes | Record type, e.g. A, AAAA, CNAME, TXT, MX | |
| name | Yes | Record name, e.g. www or @ for root | |
| content | Yes | Record value, e.g. an IP or target host | |
| proxied | No | Proxy through Cloudflare (orange cloud) | |
| ttl | No | TTL in seconds (1 = automatic) | |
| priority | No | Priority (MX/SRV only) | |
| account | No | Cloudflare account key from CF_ACCOUNTS (defaults to the first) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Zone domain | |
| type | No | Filter by record type, e.g. A, CNAME, MX | |
| account | No | Cloudflare account key from CF_ACCOUNTS (defaults to the first) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Zone domain | |
| account | No | Cloudflare account key from CF_ACCOUNTS (defaults to the first) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Zone domain | |
| name | Yes | Full record name, e.g. www.example.com | |
| proxied | Yes | true = proxied (orange), false = DNS only (grey) | |
| account | No | Cloudflare account key from CF_ACCOUNTS (defaults to the first) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain, e.g. example.org | |
| account | No | Cloudflare account key from CF_ACCOUNTS (defaults to the first) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | List of URLs |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | Application uuid (from coolify_apps) | |
| force | No | Force rebuild without cache |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute path to the project directory | |
| install | No | Run npm install first (Node projects) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| vhostsPath | No | Base path of vhosts to measure | /var/www/vhosts |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Project directory to write the Dockerfile into | |
| stack | Yes | Project stack |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| container | Yes | Container name or id | |
| tail | No | Lines to show |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Include stopped containers |
TDQS
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.
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.
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.
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.
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.
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"].
| Name | Required | Description | Default |
|---|---|---|---|
| args | Yes | docker arguments as an array |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| container | Yes | Container name or id |
TDQS
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.
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.
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.
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.
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.
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"].
| Name | Required | Description | Default |
|---|---|---|---|
| args | Yes | gh arguments as an array |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | owner/name | |
| title | Yes | Issue title | |
| body | No | Issue body (markdown) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | owner/name | |
| state | No | open | |
| limit | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| database | Yes | Database to grant on | |
| user | Yes | New username | |
| password | Yes | Password for the new user | |
| host | No | Allowed host | localhost |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| database | Yes | Database name | |
| dir | No | Destination directory on the server | /root/backups |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| database | Yes | Database name | |
| sql | Yes | SQL statement(s) to run | |
| allowWrite | No | Set true to permit INSERT/UPDATE/DELETE/DDL — use with care |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| database | Yes | Database name |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | OJS subdomain, e.g. journal.example.com | |
| urlPath | Yes | Journal path segment, e.g. myjournal | |
| nameEn | Yes | English journal name | |
| nameAr | No | Arabic journal name | |
| acronym | Yes | Acronym, e.g. MYJ | |
| primaryLocale | No | en | |
| locales | No | Supported locales | |
| docroot | No | Override docroot path |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Full subdomain, e.g. journal.example.com | |
| pleskDomain | No | Plesk subscription domain for DB commands — the PARENT for a subdomain (e.g. example.com); defaults to `domain` | |
| adminEmail | No | Admin email (defaults to OJS_ADMIN_EMAIL) | |
| docroot | No | Override docroot path | |
| filesDir | No | Override OJS files dir (outside webroot) | |
| primaryLocale | No | Primary locale key | en |
| additionalLocales | No | Comma-separated extra locale keys | ar |
| setPhpHandler | No | Set the Plesk PHP handler to OJS_PHP_HANDLER (php81 fastcgi) | |
| createJournal | No | Also create the first journal after install (see ojs_create_journal args) | |
| journalPath | No | urlPath for the journal when createJournal=true | |
| journalNameEn | No | English journal name when createJournal=true | |
| journalNameAr | No | Arabic journal name when createJournal=true | |
| acronym | No | Journal acronym when createJournal=true |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | OJS subdomain | |
| docroot | No | Override docroot path |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | Shell command to execute on the remote server |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Folder name | |
| module | Yes | Go module path, e.g. github.com/you/app | |
| dir | Yes | Parent directory |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | App/folder name | |
| dir | Yes | Parent directory to create the app in |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Folder + package name | |
| dir | Yes | Parent directory |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL including https:// |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain without protocol, e.g. example.com | |
| port | No | TLS port |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Domain (example.com) or absolute docroot path | |
| command | Yes | wp-cli arguments, e.g. "plugin list --status=active" |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Domain (example.com) or absolute docroot path |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain registered in Plesk, e.g. example.com |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Domain (example.com) or absolute docroot path |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Domain (example.com) or absolute docroot path | |
| dryRun | No | Only report available updates |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Create, deploy, and operate MCP servers directly from your GitHub repositories.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Devopness MCP server for DevOps happiness! Empower AI Agents to deploy apps and infra, to any cloud.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI assistants to manage infrastructure, applications, databases, and services through the Coolify PaaS platform.164MIT
- AlicenseAqualityDmaintenanceA complete MCP server enabling AI assistants to manage cPanel hosting through natural language, including file, database, email, subdomain, and system operations.161MIT
- FlicenseBqualityCmaintenanceA comprehensive MCP server for managing cPanel hosting accounts through AI assistants. It supports DNS, email (DKIM/SPF), databases, domains, SSL, PHP, cron jobs, security, Git deployment, and more.10018
- AlicenseNot gradedqualityAmaintenanceMCP server for Coolify infrastructure management, providing 45 tools for servers, applications, databases, deployments, and diagnostics via natural language.22MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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