Skip to main content
Glama
pluglayer

PlugLayer MCP Server

Official
by pluglayer

PlugLayer MCP Server

Deploy and manage your infrastructure through natural language with any MCP-compatible AI assistant.

Installation

PLUGLAYER_API_KEY=your-pluglayer-api-token uvx pluglayer-mcp

This local command mode uses the MCP stdio transport by default, which is the right mode for Cursor, Claude Code, and other editor-launched command servers. The pluglayer-mcp command now always uses stdio so editor clients cannot accidentally switch it into HTTP mode.

Option 2: pip

pip install pluglayer-mcp
PLUGLAYER_API_KEY=your-pluglayer-api-token pluglayer-mcp

Related MCP server: Komodo MCP Server

Configuration

For editor installations, PlugLayer also reads ~/.pluglayer/credentials.env on every tool call. Saving or rotating PLUGLAYER_API_KEY (and optionally PLUGLAYER_API_URL) there takes effect on the next call without restarting the server. A client's OAuth or generic mcp_auth action does not configure credentials for a local stdio server.

Claude Desktop

Add to ~/.config/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "pluglayer": {
      "command": "uvx",
      "type": "stdio",
      "args": ["pluglayer-mcp"],
      "env": {
        "PLUGLAYER_API_KEY": "your-pluglayer-api-token"
      }
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "pluglayer": {
      "command": "uvx",
      "type": "stdio",
      "args": ["pluglayer-mcp@latest"],
      "env": {
        "PLUGLAYER_API_KEY": "your-pluglayer-api-token"
      }
    }
  }
}

Use either this manual registration or the PlugLayer Cursor plugin's bundled server, not both. If both appear in Cursor's Tools & MCP settings, disable or remove the manual copy so tool calls cannot land on servers with different authentication state.

Remote HTTP (hosted)

The remote MCP server runs at mcp.pluglayer.com. Pass your token as:

Authorization: Bearer your-pluglayer-api-token

If you intentionally want to run the package itself as an HTTP MCP server, use:

pluglayer-mcp-http

Release Checklist

Before publishing a new pluglayer-mcp build:

  1. Confirm local command mode still uses stdio by default.

  2. Confirm PLUGLAYER_API_URL override works when pointed at a dev API.

  3. Let the publish workflow stamp the package version from the UTC date/time, unique GitHub run ID, and run-attempt number. Do not reuse a published PyPI version or artifact filename.

  4. Publish from the public repo main branch after reviewing the dev -> main PR.

After publishing:

  1. Restart Cursor, Claude Code, or the MCP client you are testing.

  2. If the editor still behaves like an older MCP build, remove and re-add the MCP server entry, then restart the editor.

  3. Re-test with a simple command such as:

    • get_current_user

    • list_projects

    • get_compute_summary

    • list_my_feedback

Cursor Notes

  • For command-based MCP setup, use uvx pluglayer-mcp.

  • Do not force HTTP transport for local editor usage.

  • pluglayer-mcp always uses stdio, which is the correct transport for Cursor-launched command servers.

  • Only use pluglayer-mcp-http when you intentionally want to run the package itself as an HTTP MCP server.

Available Tools

The MCP calls the PlugLayer FastAPI backend instead of re-implementing backend business logic. Auth, roles, ownership, compute guards, and k3s orchestration remain in the backend. MCP and editor plugins should authenticate with a PlugLayer API token created in the PlugLayer Settings page, not the browser/session auth token.

Managed registries are configured by PlugLayer admins in the platform UI/API. When deploy_image uses mirroring, the backend picks a registry the current user is allowed to use and keeps Kubernetes pull secrets in sync automatically.

Databases are a first-class Data Layer workflow in MCP. When a user needs a new database, wants to know whether one already exists, asks for a connection string, or needs env vars to wire an app to a database, the preferred MCP path is:

  1. list_user_databases

  2. if needed, list_database_templates

  3. check_slug_availability

  4. optionally check_database_slug_availability

  5. create_database

    • the MCP tool resolves required deploy-time database env vars itself

    • password/secret/token/key fields are generated there when the template expects a random value

    • database-name placeholders are filled from the chosen app name

  6. get_task_status

  7. get_database_connection_details

  8. optionally get_database_logs when troubleshooting

  9. use update_database_access, restart_database, or remove_database for follow-up lifecycle actions

After provisioning a database, the assistant should proactively suggest or apply exact env var updates for dependent apps instead of leaving the user with only a raw connection string.

Marketplace template deployment through MCP now supports both:

  1. deploying into an existing project by project_id

  2. creating a new project inline by passing project_name

Tool

Description

get_current_user

Show the Authentik-backed user and roles

get_user_context

Load the caller's stored user memory/context

update_user_context

Update the caller's stored user memory/context

submit_feedback

Submit authenticated, redacted product feedback with optional affected-tool, expected/actual behavior, error, and page context

list_my_feedback

List the authenticated user's feedback tickets and statuses

get_feedback

Inspect one feedback ticket and its current resolution note

update_my_feedback

Update the title or description of an owned feedback ticket without changing its admin-managed status

list_projects

List authenticated user's projects

get_my_projects

Alias for listing the current user's projects

create_project

Create a new project namespace

rename_project

Rename a project's display name without changing its slug, namespace, or existing app URLs

update_project_metadata

Update a project's display name and/or description without changing routing identity or custom domains

get_project

Get project details, current apps in the project, and attached custom-domain state

remove_project

Remove one of the user's projects by deleting its apps first, requesting namespace cleanup, and then archiving the project record/history

delete_project

Alias for remove_project

get_compute_summary

Show account-level capacity, or pass project_id for attached-node recorded allocation plus live scheduler headroom; estimate first when sizing is unclear

get_my_available_compute

Show the current user's available compute capacity; pair with estimate first for planning

get_my_available_computes

Alias for available compute capacity

estimate_compute

Estimate required compute, monthly price, and a tailored offer link; preferred before purchase/allocation decisions

list_nodes

List accessible compute nodes

list_attachable_project_nodes

List owner-held dedicated nodes and their project attachment state; legacy records that duplicate another physical worker are explicitly blocked

attach_node_to_project

Attach an available dedicated node to one project (owner-only, idempotent)

detach_node_from_project

Detach an unused dedicated node after explicit confirmation; active apps block it

list_registries

List the registries currently available to the user

deploy_image

Mirror a Docker image into PlugLayer's managed Docker Hub namespace, then deploy it after backend compute checks; if a similar app already exists and the namespace is full, use update/replace flow instead of a brand-new app

upload_image_archive_and_deploy

Upload a locally built Docker or OCI tar archive from the user's machine; if the target app already exists, switch to the app upload-first redeploy flow, otherwise create and deploy a new app

upload_image_archive_and_redeploy_app

Upload a newly rebuilt Docker or OCI tar archive for an existing app, using retry-safe chunks for archives over 16 MiB; push it with a new tag, keep the slug unchanged, and queue that app's redeploy

deploy_compose

Analyze docker-compose.yml, split it into separate deploy units, route known databases through Data Layer templates, deploy remaining services as separate apps, and require uploaded archives for local-build services

analyze_compose_deploy_plan

Preview how PlugLayer will split a docker-compose stack into Data Layer databases, separate compose apps, and local-build image services

get_compose_local_build_commands

Generate exact docker buildx, smoke-test, and OCI export commands for local-build compose services before they are uploaded and deployed

list_deployments

List running apps/deployments

get_apps_by_project

List apps inside a specific project; use this before deploy when you need to clarify update vs replace vs separate new app, especially when a full namespace should block duplicate new-app deploys

check_slug_availability

Check whether a PlugLayer slug is free inside a project before deploy or rename

get_deployment_status

Check app status and URL

get_logs

Get app logs

get_app_logs

Alias for getting app logs

get_app_access_policy

Read saved IP allowlist, HTTP/TCP limits and exposure without env/connection secrets

update_app_access_policy

Replace a complete app ingress policy through backend permission checks; exact app name and all values required

get_app_connection_env_vars

Get concrete connection env vars and connection strings for an app/database so dependent apps can be updated correctly

apply_app_env_vars

Securely import arbitrary runtime env vars from dotenv/KEY=VALUE, JSON, YAML text, or a direct key/value object; merge or replace, then optionally restart/redeploy without returning values

list_marketplace_templates

List deployable marketplace templates before choosing one for a project

get_marketplace_template

Inspect one marketplace template, including its required env vars

deploy_marketplace_template

Deploy a marketplace template into an existing project or create a new project inline during the same MCP flow

exec_app_terminal

Execute a command in the caller's own deployed app container with a fixed 360-second timeout; keep terminal input at or below 10,000 characters and about 350 lines

redeploy

Redeploy an app after confirming the exact app name; the existing slug stays unchanged

restart_app

Restart an app through a verified rollout; completion requires the task's new pod-template revision to be live

rollback

Roll back to previous version

remove_app

Remove one of the user's apps, tear down its runtime workload, revoke active routing, and mark it as removed

delete_app

Alias for remove_app

delete_deployment

Alias for remove_app

list_database_templates

List ready-to-deploy database templates

list_user_databases

List the caller's provisioned databases, optionally by project

check_database_slug_availability

Check whether a Data Layer slug is free in a project before provisioning or renaming a database

create_database

Provision a database from a template after backend compute and project checks, resolving password-like env vars inside the MCP flow first

get_database_connection_details

Get connection strings, env vars, and docs for a provisioned database

sync_database_env_to_app

Patch one app's env vars from a provisioned database's concrete connection fields, then restart the existing app

get_database_logs

Read logs from a provisioned database app

update_database_access

Update the public TCP IP allowlist for a provisioned database

restart_database

Restart a provisioned database by queueing its restart flow

remove_database

Remove a provisioned database and tear down its runtime workload/routing

delete_database

Alias for remove_database

list_project_domains

List custom domains for a project

get_domains_by_project

Alias for project-domain lookup; use this before asking which domain the user wants so existing project domains can be offered as options

detect_custom_domain_provider

Detect the likely DNS provider and authoritative zone so the user can confirm them before DNS instructions are shown

add_custom_domain

Add a single or wildcard custom domain and return provider-friendly DNS records; explains that root and www need separate routing or an explicit redirect, and rejects GoDaddy apex CNAME attempts with a supported www + 301 forwarding path

verify_custom_domain

Verify TXT/CNAME DNS and activate if attached

attach_custom_domain

Attach a verified custom domain to an app

detach_custom_domain

Detach a domain while keeping verification

get_task_status

Poll async operation progress

inspect_local_github_repo

Check whether the local repo has git plus a GitHub origin configured

generate_github_actions

Get GitHub Actions YAML for a 3-step PlugLayer CI/CD flow: build OCI image, upload it to the same app id, then merge env vars and restart/redeploy

Example Conversations

Deploy your first app:

"I have a FastAPI app at ghcr.io/myorg/api:latest that runs on port 8000. Deploy it into my production project in my cloud."

Convert docker-compose:

"Here's my docker-compose.yml: [paste]. Deploy this to PlugLayer."

CI/CD setup:

"Generate a GitHub Actions workflow for my api app so every push rebuilds it, uploads it to PlugLayer, and redeploys the same app id."

The generated workflow expects:

  • public reusable actions from pluglayer/actions

  • required secrets:

    • PLUGLAYER_API_KEY

  • optional secrets:

    • PLUGLAYER_API_URL (defaults to https://api.pluglayer.com)

    • PLUGLAYER_BUILD_ENV_JSON (JSON object of build-time env vars/build args to inject during image build)

    • PLUGLAYER_ENV_JSON (JSON object of runtime env vars securely imported before the final restart)

Add a custom domain:

"Add api.example.com to my production project, detect the provider, show me the DNS records in a table, then verify it and attach it to my API app."

For a root/www website pair, say whether both hostnames must work. PlugLayer routes exact hostnames, so example.com is not automatically covered when only www.example.com is attached. Configure the root separately or redirect it to www, then test a nested path such as /page-1 on both names.

Provision a database and wire the backend to it:

"Create a Postgres database in my marketplace project, check whether the slug postgres is available first, and after it finishes show me the connection env vars so we can update my backend."

Reuse an existing database instead of creating a new one:

"Check whether I already have a Mongo or Postgres database in my project. If I do, show me the connection details and suggest the backend env vars I should update."

Getting Your API Key

  1. Go to PlugLayer Settings

  2. Create a PlugLayer API token

  3. Copy it once and store it safely

  4. Use it as PLUGLAYER_API_KEY for MCP, editor plugins, and the 3-step CI/CD actions flow

Template authoring

Use get_template_authoring_schema and preview_template_compose before saving with create_template_draft. The tools also list/read/update/clone/delete private drafts, submit for admin approval, expose launch context/planning/sessions, and update existing apps from templates. deploy_marketplace_template handles test deployments and accepts database_bindings. Public template tools do not publish or approve; those actions remain in the private Admin Center.

Run python scripts/test_local_template_mcp.py from this package for a focused read-only local stdio smoke using saved credentials. The new backend routes must be released before the corresponding MCP/plugin release can pass this check.

App security checks and traffic controls

“Check my apps” or “check my app security” starts with app inventory, status, recent runtime logs, and get_app_access_policy. The four public plugins bundle check-app-security and manage-app-access to distinguish abusive traffic from app faults, preserve legitimate clients, and carry authorized mitigations through verification. Check-only requests produce findings and concrete proposals.

update_app_access_policy uses PUT /v1/plugin/apps/{app_id}/access and the same backend workflow as the portal. Read the existing policy first and provide all values, including the unchanged ones. An empty allowlist opens source access; CIDRs must represent approved trusted clients, not suspected attackers. HTTP limits count requests per peer IP/route/Traefik instance; TCP limits cap concurrent connections. Neither replaces app authentication, and internal traffic bypasses public ingress controls. Saves need no restart.

Release the matching backend route before the MCP/plugins. Validate local stdio reads with python scripts/test_local_app_security_mcp.py; it uses saved public credentials and never changes live app settings or prints logs. This smoke does not prove policy writes or client enforcement; test those only on an explicitly authorized disposable app before releasing the update feature.

Available Tools

70 tools
add_custom_domainB

Add a custom domain after provider detection. Pass the confirmed provider_name and authoritative dns_zone. GoDaddy apex domains are rejected before API creation because GoDaddy cannot publish CNAME @; use www plus apex forwarding.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNosingle
app_idNo
domainYes
dns_zoneNo
project_idYes
provider_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It adds a useful behavioral detail about GoDaddy apex domains being rejected before API creation and suggests a workaround. However, it does not discuss other side effects, failure modes, or whether this is a mutating operation.

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

Conciseness4/5

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

The description is concise and front-loaded with the purpose. The GoDaddy caveat is useful but slightly extends length; overall it is efficient without fluff.

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

Completeness3/5

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

The description provides key workflow context and a notable edge case, but given the tool's complexity (6 params, no annotations), it omits guidance on several parameters and does not mention the output schema or post-add behavior. It is adequate but leaves gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only adds meaning for two of six parameters ('provider_name' and 'dns_zone'), leaving 'project_id', 'domain', 'mode', and 'app_id' unexplained. This is insufficient for a 6-parameter tool.

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

Purpose4/5

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

The description states a specific action ('Add a custom domain') and a temporal context ('after provider detection'), making the purpose clear. However, it does not differentiate from the sibling tool 'attach_custom_domain', which may overlap in function.

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

Usage Guidelines4/5

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

It clearly indicates when to use this tool ('after provider detection') and specifies required inputs ('confirmed provider_name and authoritative dns_zone'). It lacks explicit alternatives/exclusions, but the context is helpful.

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

analyze_compose_deploy_planA

Analyze a docker-compose.yml and show how PlugLayer will split it into marketplace databases, separate compose services, and local-build services.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
compose_yamlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden. It indicates a read-only analysis ('show how...'), but does not explicitly state that no changes are made, nor does it disclose any prerequisites like valid project_id or YAML parsing behavior. It is not misleading, but lacks explicit behavioral detail.

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

Conciseness5/5

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

The description is a single sentence that is concise, front-loaded with the verb, and contains no redundancy. Every word contributes to the meaning.

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

Completeness4/5

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

For a simple analysis tool with an output schema, the description covers the core purpose and the three specific output categories. It does not explain return values (covered by output schema) but lacks usage guidance and parameter format details. Overall, it is reasonably complete for its complexity.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only partially compensates. It implicitly maps compose_yaml to a docker-compose.yml, but does not specify the expected format (raw YAML string, file path, etc.) and project_id is entirely unexplained. The lack of parameter descriptions in the schema and minimal elaboration in the description leave significant ambiguity.

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

Purpose5/5

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

The description uses a specific verb 'analyze' and identifies the resource 'docker-compose.yml', clearly stating the output: 'show how PlugLayer will split it into marketplace databases, separate compose services, and local-build services.' This distinguishes it from siblings like deploy_compose (which deploys) and get_compose_local_build_commands (which returns commands).

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

Usage Guidelines3/5

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

The action is clear but there is no explicit guidance on when to use this tool versus alternatives. It implies a planning/preview use case, but doesn't mention exclusions or mention that it should be used before deploy_compose. Context is clear enough to infer usage, but no explicit alternatives are provided.

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

apply_app_env_varsA

Import runtime env vars into an existing app from dotenv/KEY=VALUE, JSON, YAML text, or a direct key/value object, then optionally restart it. Pass file content, never a local/server file path. Values are not returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
mergeNo
app_idYes
env_varsNo
env_contentNo
input_formatNoauto
restart_modeNorestart
redeploy_strategyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses that this is an import operation, may restart the app, does not return values, and expects content rather than paths. This is strong, though it doesn't mention merge/replace behavior or permissions.

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

Conciseness5/5

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

The description is only three sentences, front-loaded with the core purpose, and every sentence adds value. There is no fluff or repetition of schema defaults.

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

Completeness3/5

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

The tool has 7 parameters, no annotations, and a sparse schema. The description covers the essential import formats and critical warning about return values, but omits behavioral details for merge and restart modes. This makes it minimally viable but not comprehensive.

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

Parameters3/5

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

Schema coverage is 0% and there are 7 parameters. The description clarifies input_format by listing dotenv/KEY=VALUE, JSON, YAML, and direct object, and env_content by stressing content over paths. However, merge, restart_mode, and redeploy_strategy are not explained, leaving significant gaps.

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

Purpose5/5

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

The description uses a specific verb ('Import'), identifies the resource ('runtime env vars into an existing app'), and enumerates the accepted input formats. This clearly distinguishes it from siblings like get_app_connection_env_vars or sync_database_env_to_app, which have different objectives.

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

Usage Guidelines4/5

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

The description gives explicit guidance: pass file content, never a path, and notes that values are not returned, implying it shouldn't be used when output is needed. However, it doesn't name alternatives or explicitly state when to prefer another tool.

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

attach_custom_domainA

Attach a verified custom domain to an app. Set make_primary=true if you want it to become the app's main URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
domain_idYes
make_primaryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of disclosing side effects. It mentions the make_primary=true effect (becoming the app's main URL), which is useful. However, it does not disclose whether the operation is reversible, whether it replaces an existing primary domain, or any permission requirements. The mutation nature is implicit from 'attach', but deeper behavioral context is missing.

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

Conciseness5/5

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

Two short sentences, front-loaded with the primary action. Every word earns its place, and the description is efficient and clear.

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

Completeness4/5

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

Given the tool's simplicity and the presence of an output schema, the description covers the essential usage and the primary flag behavior. It could mention what happens to the existing primary domain when make_primary=true, but the description is largely complete for an experienced user.

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

Parameters3/5

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

The schema has 0% description coverage, so the description must compensate. It explains the make_primary parameter's effect ('become the app's main URL'), but does not elaborate on app_id or domain_id. These are self-explanatory from their names, but the description adds no additional meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the action with a specific verb and resource: 'Attach a verified custom domain to an app.' It also distinguishes from sibling tools like add_custom_domain, verify_custom_domain, and detach_custom_domain by emphasizing the 'attach' action and the 'verified' prerequisite.

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

Usage Guidelines4/5

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

The description provides clear context: use this tool to attach a domain that is already verified to an app, with an optional make_primary flag. It implies that unverified domains should be verified first (via another tool), but it does not explicitly name alternatives or state when not to use this tool.

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

attach_node_to_projectA

Attach one available dedicated node to a project. Owner-only and idempotent. After attaching, call get_compute_summary(project_id) before deploying.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idYes
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden and discloses two key behavioral traits: owner-only permission and idempotency. It also implies the node must be 'available dedicated,' adding meaningful context. It does not cover failure modes or return specifics, but the disclosed traits are valuable.

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

Conciseness5/5

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

Two concise, front-loaded sentences. The first sentence states the core action and constraints, the second gives a critical next step. No wasted words.

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

Completeness4/5

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

For a simple two-parameter attach operation, the description covers purpose, constraints, and a necessary follow-up. Given that an output schema exists, not detailing return values is acceptable. A minor gap in explicit parameter semantics prevents a perfect score.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It does not explicitly define node_id or project_id, but the phrase 'one available dedicated node' implies node_id must reference such a node, and the follow-up call reinforces project_id's role. This adds some semantic meaning beyond the bare parameter names.

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

Purpose5/5

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

The description clearly states the tool attaches one available dedicated node to a project, using a specific verb and resource. It naturally distinguishes itself from sibling tools like detach_node_from_project and list_attachable_project_nodes.

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

Usage Guidelines4/5

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

Provides clear usage context: owner-only restriction and an explicit follow-up action (call get_compute_summary before deploying). It does not explicitly mention alternatives or when not to use, but the guidance is sufficient for correct invocation.

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

check_database_slug_availabilityA

Check whether a database/Data Layer slug is available in a project before provisioning or renaming a database.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes
project_idYes
exclude_database_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. The verb 'Check' clearly implies a read-only, non-destructive operation, and 'before provisioning or renaming' signals it is a pre-validation step. It does not describe return format, but an output schema is present, so this is acceptable.

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

Conciseness5/5

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

A single, focused sentence that immediately states the purpose and context. No filler or redundancy; every word earns its place.

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

Completeness3/5

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

The description is brief but adequate for the core use case. However, it omits the important use case of excluding a database ID (relevant when renaming) and does not explain behavior when the slug is unavailable. Given the output schema, this is not critical, but the missing parameter context makes it incomplete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only hints at 'slug' and 'project' without explicitly mapping to parameters. The optional parameter 'exclude_database_id' is not mentioned at all, leaving a significant gap for agents to understand its purpose.

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

Purpose5/5

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

Description clearly states the verb ('Check'), the resource ('database/Data Layer slug'), and the scope ('in a project'), making it distinct from the sibling tool 'check_slug_availability' which appears generic. The phrase 'before provisioning or renaming a database' adds clear intent.

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

Usage Guidelines4/5

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

The description provides explicit usage context: 'before provisioning or renaming a database.' This tells the agent when to use this tool, but it does not name alternative tools or explicitly state when not to use it, so it falls short of a 5.

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

check_slug_availabilityA

Check whether a PlugLayer slug is available inside a project before deploying or renaming an app/database.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes
project_idYes
exclude_app_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. The verb 'check' implies a read-only operation, and the phrase 'inside a project' clarifies scope. However, it does not explicitly state that the tool is side-effect-free or describe what happens when the slug is unavailable, leaving some ambiguity in behavior.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the purpose and context. Every word contributes value, with no filler or redundancy.

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

Completeness3/5

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

Given the simplicity of the tool and the presence of an output schema, the description conveys the core purpose effectively. However, the under-explained exclude_app_id parameter and the lack of explicit guidance about the sibling database-specific tool leave gaps in completeness for an agent selecting and invoking the tool correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'slug' and 'project,' mapping conceptually to the slug and project_id parameters, but it fails to explain the exclude_app_id parameter entirely. Without explanation, the agent cannot know when to set exclude_app_id (e.g., for rename scenarios), making parameter usage incomplete.

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

Purpose5/5

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

The description clearly states the tool's function: 'Check whether a PlugLayer slug is available inside a project before deploying or renaming an app/database.' It uses a specific verb ('check') and resource ('slug availability'), and distinguishes itself from the sibling check_database_slug_availability by covering both app and database contexts.

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

Usage Guidelines4/5

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

The description provides a clear usage context: 'before deploying or renaming an app/database.' This implies when to use the tool, though it does not explicitly mention alternatives or exclusions. Since there is a sibling tool for database-specific checks, the description could have differentiated further, but the context is sufficient for most cases.

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

create_databaseA

Provision a database from a ready marketplace template. The MCP tool resolves required DB names and secret-like template fields here, including random password generation, before sending the deploy request.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes
cpu_limitNo
project_idNo
route_slugNo
storage_gbNo
template_idYes
memory_limitNo
project_nameNo
env_overridesNo
compute_placementNoauto
tcp_allowed_cidrsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses a significant behavioral trait: the tool automatically resolves DB names and secret-like fields, including random password generation, before sending a deploy request. This is useful, but it doesn't mention permissions, async behavior, reversibility, or error conditions, so it remains only partially transparent.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the main purpose, and contains no filler. Every word adds value, clearly stating what the tool does and a key behavioral nuance.

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

Completeness2/5

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

Despite having an output schema, the description is too sparse for a tool with 11 parameters. It does not explain how the template_id and app_name relate, what optional fields do, or how this tool connects to other database-related tools (e.g., list_database_templates). The overall context is underspecified for the tool's complexity.

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

Parameters2/5

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

The schema description coverage is 0%, and the description does not compensate. It vaguely refers to 'DB names and secret-like template fields' but does not map these to any of the 11 parameters. It fails to explain the meaning of template_id, app_name, cpu_limit, storage_gb, etc., leaving the agent without crucial parameter guidance.

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

Purpose5/5

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

The description clearly identifies the action ('Provision a database') and the resource ('from a ready marketplace template'), distinguishing it from generic deployment tools. It also highlights unique behavior (resolving DB names and generating random passwords) that separates it from siblings like deploy_marketplace_template.

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

Usage Guidelines4/5

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

The description implies when to use the tool: when provisioning a database from an existing marketplace template. It also hints at prerequisites ('ready marketplace template') and what the tool handles internally. However, it does not explicitly mention alternatives or when not to use it, so it stops short of a 5.

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

create_projectA

Create a PlugLayer project namespace. Project creation only requires authentication. Deployment still requires account-level compute; check get_compute_summary before deploying.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
descriptionNo
domain_typeNopluglayer

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It discloses the auth requirement and the compute prerequisite for deployment, but does not explain what happens on duplicate names, idempotency, or what the response contains. These gaps prevent a higher score.

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

Conciseness5/5

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

The description is two sentences with no filler. The first sentence states the core action, and the second adds a relevant caveat about deployment compute, earning its place.

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

Completeness4/5

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

An output schema exists, and the description covers the key contextual point: creation is auth-only while deployment requires compute. This is nearly complete for a simple create tool, though the absence of any parameter documentation slightly reduces completeness.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no information about the 'name', 'description', or 'domain_type' parameters. The agent receives no guidance on parameter meaning, defaults, or valid values beyond the raw schema, which is inadequate.

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

Purpose5/5

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

The description uses the specific verb 'Create' and clearly identifies the resource as a 'PlugLayer project namespace,' which distinguishes it from sibling tools like list_projects, get_project, rename_project, and delete_project. The action is unambiguous.

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

Usage Guidelines4/5

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

The description offers clear context by stating that project creation only requires authentication and that deployment still requires account-level compute, with a pointer to check get_compute_summary before deploying. This implies when to use the tool (before deployment) and highlights a prerequisite, though it does not explicitly contrast with other project-management tools.

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

delete_appD

Alias for remove_app() using app wording.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.8/5.0
Behavior1/5

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

No annotations are provided, and the description discloses no behavioral traits. It does not mention that deleting an app is destructive, irreversible, or requires permissions. The description is a single sentence with no behavioral detail.

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

Conciseness2/5

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

The description is extremely short, but this is under-specification rather than efficient conciseness. It provides minimal value and lacks necessary details about the tool's operation.

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

Completeness1/5

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

With only one parameter and an output schema, the description still needed to explain the purpose, side effects, and usage context. Instead, it merely references another tool, leaving the agent without essential information for correct invocation.

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

Parameters1/5

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

The schema has 0% description coverage for the app_id parameter, and the description does not mention the parameter at all. The agent gets no explanation of what app_id is or how to use it, leaving the parameter completely underspecified.

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

Purpose3/5

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

The description states it is an alias for remove_app(), implying the same functionality (deleting an app). However, it does not directly state what the tool does; it relies on the reader knowing remove_app. This is clearer than a pure tautology but still vague.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives. It merely notes it is an alias for remove_app() with 'app wording', which implies interchangeability but does not specify preferred contexts or prerequisites.

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

delete_databaseD

Alias for remove_database().

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.5/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It fails to mention that the tool deletes a database, any destructive side effects, permission requirements, or reversibility. The word 'delete' does not even appear in the description.

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

Conciseness2/5

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

The description is extremely short, but it is under-specified rather than concise. The single sentence merely notes the alias and provides no functional explanation, so it does not earn its place.

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

Completeness1/5

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

Given the lack of annotations and minimal description, this is completely inadequate. It does not explain the tool's purpose, behavior, or side effects, and relies entirely on the reader knowing what remove_database() does. The presence of an output schema doesn't compensate for the missing context.

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

Parameters1/5

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

The schema has one parameter 'database_id' with 0% description coverage. The description adds no meaning to this parameter, such as its format, purpose, or relation to the remove_database function it aliases.

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

Purpose2/5

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

The description only states 'Alias for remove_database()', which references another tool without explaining what the tool does. It does not specify the verb+resource or distinguish it from siblings beyond the alias relationship, making it essentially a tautological reference.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as remove_database or delete_project. The alias statement gives no context about preferred use cases or exclusion criteria.

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

delete_deploymentB

Alias for remove_app() for clients still using deployment wording.

ParametersJSON Schema
NameRequiredDescriptionDefault
deployment_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states that it is an alias for remove_app(), without disclosing that the operation is destructive, any side effects, authentication requirements, or the exact nature of the deletion. The agent cannot infer the behavioral profile from this description alone.

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

Conciseness5/5

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

The description is a single sentence with no wasted words. It front-loads the alias relationship and usage context, earning every word.

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

Completeness3/5

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

For a simple alias with an output schema, the description conveys the core fact (alias) and usage context, but it omits behavioral details and parameter semantics, instead relying on the agent knowing remove_app(). This is minimally viable but has clear gaps for safe and correct invocation.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not mention deployment_id or its relationship to remove_app()'s parameters. The parameter name is self-explanatory, but for an alias it is ambiguous whether deployment_id is an app ID or a deployment-specific ID, so the description adds little semantic value.

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

Purpose4/5

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

The description clearly states this is an alias for remove_app(), which implies deletion of a deployment, and distinguishes it as a compatibility wrapper for legacy terminology. It doesn't explicitly say 'deletes a deployment' but the tool name and alias make purpose clear.

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

Usage Guidelines4/5

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

The description gives explicit context for when to use: 'for clients still using deployment wording.' It implies that remove_app() is the canonical tool and this is for legacy compatibility, though it doesn't explicitly mention alternatives or exclusions.

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

delete_projectD

Alias for remove_project().

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.7/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does not mention that this action deletes a project, whether it is destructive or irreversible, or any required permissions or side effects.

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

Conciseness2/5

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

The description is extremely short, but it is under-specified rather than appropriately concise. It does not provide enough information to be useful, so the brevity is a defect, not a strength.

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

Completeness2/5

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

For a simple deletion tool with one parameter and an output schema, a complete description could be one sentence. This description omits the core semantics entirely, leaving the agent dependent on the sibling tool 'remove_project' for meaning.

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

Parameters1/5

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

The schema only lists 'project_id' as a required string without description, and the description adds zero meaning to the parameter. Since schema description coverage is 0%, the description should compensate but does not.

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

Purpose2/5

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

The description only states 'Alias for remove_project()', which does not actually say what the tool does. It requires the agent to infer behavior from the tool's name and the sibling tool 'remove_project', making the purpose indirect and vague.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. The alias relationship implicitly suggests using it interchangeably with remove_project, but no explicit context, conditions, or exclusions are given.

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

deploy_composeA

Analyze docker-compose.yml, split it into separate deploy units, provision known databases through Data Layer, and deploy the remaining services as separate apps. If any service uses a local Docker build, provide local_image_archives keyed by service name after building and exporting those images.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameNo
project_idYes
route_slugNo
compose_yamlYes
compute_placementNopersonal
redeploy_strategyNorecreate
local_image_archivesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and provides good transparency: it explains the multi-step process, mentions the Data Layer for databases, and specifies the local build behavior with local_image_archives. It doesn't cover idempotency or permissions, but the key side effects and conditional behavior are disclosed.

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

Conciseness5/5

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

The description is two sentences with every clause serving a purpose: the first sentence encloses the entire workflow, and the second adds a conditional instruction. No fluff or redundancy exists.

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

Completeness3/5

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

The description offers a good high-level overview and the local build nuance, but for a complex tool with 7 parameters, no annotations, and many sibling tools, it lacks context about prerequisites, idempotency, and relationship to planning/analyzing tools. The presence of an output schema mitigates return-value explanations but not these gaps.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only elaborates on local_image_archives and indirectly compose_yaml. Parameters like project_id, app_name, route_slug, compute_placement, and redeploy_strategy are not explained beyond their schema titles, leaving a significant gap for a tool with 7 parameters.

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

Purpose5/5

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

The description clearly states the tool's function: analyze docker-compose.yml, split into deploy units, provision databases, and deploy the remaining services as apps. This distinguishes it from sibling tools like deploy_image which handles single images, making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies use for docker-compose files by mentioning 'docker-compose.yml' and the deployment flow, but it does not explicitly mention alternatives or when not to use this tool. Sibling tools like analyze_compose_deploy_plan are not referenced, so guidance is only implied.

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

deploy_imageA

Deploy a pullable Docker image after PlugLayer mirrors it into a verified private managed repository. There is no public/direct-image bypass. For a local-only image built on the user's machine, use upload_image_archive_and_deploy() instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNolatest
nameYes
imageYes
portsNo
env_varsNo
replicasNo
cpu_limitNo500m
project_idYes
route_slugNo
registry_idNo
command_argsNo
memory_limitNo512Mi
compute_placementNopersonal
redeploy_strategyNorecreate

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the burden of disclosing behavior. It discloses a key non-obvious trait: the image is mirrored into a verified private managed repository, and there is no bypass. This is valuable context beyond the schema. However, it does not elaborate on side effects (e.g., creating a new deployment versus updating an existing app) or potential failure conditions, so it is not fully transparent.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core action, and includes a clear alternative reference. Every sentence earns its place with no redundancy or fluff, making it highly concise and well-structured.

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

Completeness2/5

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

Given the tool's complexity (14 params, no schema descriptions, no annotations), the description is too sparse to be fully contextual. It explains the conceptual model but does not cover parameter roles, required inputs beyond 'image', or runtime behavior expectations. While an output schema exists, the description alone leaves the agent with significant ambiguity about how to invoke the tool correctly.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not compensate. It only hints that 'image' must be pullable, but gives no explanation of the other 13 parameters (e.g., 'name', 'ports', 'env_vars', 'registry_id'). This is a significant gap for a tool with 14 parameters, leaving the agent without enough param-level meaning.

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

Purpose5/5

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

The description clearly states a specific verb and resource: 'Deploy a pullable Docker image' and explains the process (mirroring into a verified private managed repository). It distinguishes this from sibling tools by explicitly noting there is no public/direct-image bypass and naming an alternative for local-only images, which clarifies its scope.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use and when-not-to-use guidance: it is for pullable Docker images, not local-only images, and explicitly directs users to 'upload_image_archive_and_deploy()' for the local-only case. This directly addresses alternatives and exclusions, making it highly actionable.

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

deploy_marketplace_templateA

Deploy a marketplace template into an existing project or a brand-new project created during the same flow. Secret-like required env vars are auto-resolved here before the deploy request is sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes
cpu_limitNo
project_idNo
route_slugNo
storage_gbNo
template_idYes
memory_limitNo
project_nameNo
env_overridesNo
compute_placementNoauto
tcp_allowed_cidrsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses a key behavior (auto-resolving secret-like env vars) and the dual project-create/use scenario, adding value beyond the schema. However, it omits many other behavioral aspects such as whether the call is synchronous, error handling, or the effect of setting conflicting parameters like project_id and project_name.

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

Conciseness5/5

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

The description is compact and front-loaded, with exactly two sentences that convey the core purpose and a key behavioral nuance. Every word contributes value; there is no fluff or repetition.

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

Completeness2/5

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

Given the tool's complexity (11 parameters, no annotations), the description is too sparse. It does not explain when certain parameters are required, how project_id and project_name interact, or what the output schema will contain. While an output schema exists, the overall context for a multi-option deployment flow is left largely undefined.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate but fails to do so. It indirectly references env_overrides ('Secret-like required env vars') and project selection, but it does not explain the meaning, usage, or relationships of the 11 parameters. Only minimal context is provided, leaving the agent reliant on parameter titles alone.

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

Purpose5/5

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

The description uses a specific verb ('Deploy') and resource ('marketplace template'), and further specifies the deployment context ('existing project or a brand-new project created during the same flow'). This clearly distinguishes it from sibling tools like deploy_image or deploy_compose, which target different deployment resources.

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

Usage Guidelines4/5

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

The description provides clear usage context by stating it can target an existing or new project, and highlights a distinguishing feature: auto-resolution of secret-like env vars. However, it does not explicitly mention alternatives or exclusions, so it falls short of a 5.

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

detach_custom_domainA

Detach a custom domain from its app while keeping verification.

ParametersJSON Schema
NameRequiredDescriptionDefault
domain_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses one key behavioral trait ('keeping verification') but omits other important details such as side effects, whether the operation is reversible, or any required prerequisites. More context is needed for a mutation-like operation.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that concisely states the action and a key nuance. No wasted words.

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

Completeness3/5

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

For a simple one-parameter tool, the description is minimally adequate, but it lacks context on return values, error cases, or what happens to the domain's verification state in practice. The presence of an output schema may offload some return-value documentation, but the description still leaves room for more completeness.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It does not explain what 'domain_id' refers to or how to obtain it. The single parameter is named clearly in the schema but the description adds no additional semantic meaning beyond the obvious.

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

Purpose5/5

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

The description uses a specific verb 'Detach' with a clear resource 'a custom domain from its app', and adds a distinguishing behavioral detail 'while keeping verification'. This clearly differentiates it from siblings like attach_custom_domain and verify_custom_domain.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when detaching a domain but retaining verification) but does not explicitly state alternatives or exclusions. It does not mention other sibling tools that might be relevant (e.g., remove or update domain operations).

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

detach_node_from_projectA

Detach a dedicated node from a project. Active apps block detachment. Set confirm=true only after the user explicitly confirms this change.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
node_idYes
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that active apps block the operation and that user confirmation is required via the confirm flag. This adds meaningful operational context beyond the schema, though it does not cover reversibility or permissions.

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

Conciseness5/5

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

Two concise sentences with the action front-loaded and no extraneous words. The critical caveats (blocking and confirmation) are included efficiently.

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

Completeness4/5

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

The description is sufficient for a moderate-complexity detach operation: it states the action, a key blocking condition, and the confirmation requirement. The output schema likely documents the return value. It omits rare edge cases but is reasonably complete for typical usage.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains the confirm parameter ('only after the user explicitly confirms this change'), but project_id and node_id are only self-explanatory from their names. The confirm semantics are valuable, but the other parameters lack explanation.

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

Purpose5/5

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

The description clearly states the action ('Detach') and the resource ('a dedicated node from a project'), making it distinct from sibling tools like attach_node_to_project. No ambiguity in what the tool does.

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

Usage Guidelines4/5

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

Provides practical usage guidance with the blocking condition ('Active apps block detachment') and an explicit confirm flag instruction ('Set confirm=true only after the user explicitly confirms this change'). However, it does not explicitly name alternative tools or when to prefer them, so it falls short of a 5.

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

detect_custom_domain_providerB

Detect the likely DNS/domain provider for a custom domain from public NS records so the agent can confirm it with the user before showing tailored DNS steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. It discloses the data source ('public NS records'), which implies a read-only operation, and notes the result is 'likely', indicating probabilistic behavior. Yet it fails to mention potential errors, rate limits, or exact output structure. Some transparency is present but not exhaustive.

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

Conciseness5/5

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

The description is one sentence, front-loaded with the verb and resource, followed by context. No unnecessary words. It efficiently conveys both what the tool does and why it should be used.

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

Completeness4/5

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

For a single-parameter tool with a provided output schema, the description covers the main use case and context. It explains the purpose (detection) and the intended workflow (confirm before showing steps). It doesn't detail failure handling or return values, but the output schema likely covers that. Adequate overall.

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

Parameters2/5

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

With 0% schema description coverage, the description must compensate. It mentions 'custom domain' which gives a hint about the domain parameter's expected type (an apex domain, not a subdomain). However, it doesn't specify required format, whether schemes are allowed, or other constraints. Minimal added meaning beyond the parameter name.

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

Purpose4/5

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

The description clearly states the tool's function: detecting the DNS/domain provider for a custom domain using public NS records. The verb 'Detect' and specific resource make intent obvious. It doesn't explicitly distinguish from sibling tools like verify_custom_domain, but the action is conceptually distinct enough.

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

Usage Guidelines3/5

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

The description provides context on when to use the tool: before showing tailored DNS steps, and it advises confirming results with the user. However, it doesn't explicitly mention when not to use it or name alternatives among the many domain-related sibling tools. The guidance is implied rather than explicit.

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

estimate_computeA

Estimate the compute needed for a described workload and return a tailored PlugLayer offer link. This is the preferred first step before telling the user to purchase, reserve, or add more compute, and the agent should present the returned link as the user's next confirmation step.

ParametersJSON Schema
NameRequiredDescriptionDefault
use_caseNo
componentsNo
expected_requests_per_minuteNo
expected_monthly_active_usersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. It discloses the return value (offer link) and instructs the agent to present it as a confirmation step. However, it does not mention side effects, whether the operation is read-only, or if it creates a quote/reservation. This is a moderate gap for a tool that leads to purchase actions.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and each sentence meaningfully contributes. It avoids redundancy and communicates the tool's role and required agent behavior efficiently.

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

Completeness2/5

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

The description conveys the tool's purpose and output but omits parameter usage entirely and lacks behavioral details like side effects or prerequisites. Although an output schema exists, the input side is severely underdescribed; agents would not know what workload information to collect or how to populate the four parameters, making the description incomplete for correct invocation.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not mention any of the four parameters. The phrase 'described workload' implicitly points to the use_case parameter but does not name it or clarify how to fill components, expected_requests_per_minute, or expected_monthly_active_users. Agents receive no guidance on what values to provide, making effective invocation unlikely.

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

Purpose5/5

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

The description clearly states the verb 'estimate' with a specific resource ('compute needed for a described workload') and a concrete output ('tailored PlugLayer offer link'). It distinguishes itself from sibling compute tools by positioning itself as the 'preferred first step' before purchasing/reserving compute, which is a clear differentiation.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool: 'preferred first step before telling the user to purchase, reserve, or add more compute.' It also gives a clear instruction on the next action ('present the returned link as the user's next confirmation step'), providing both when-to-use and post-invocation guidance.

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

exec_app_terminalA

Run a shell command inside the user's own deployed app container and return the result. Uses a fixed 360-second backend timeout. Keep input at or below 10,000 characters and about 350 lines. This is limited to the caller's app pod only.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
commandYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It covers the core behavior (executes command, returns result), the fixed 360-second timeout, input limits (10,000 chars, ~350 lines), and the scope restriction to the caller's pod. Missing details like error handling or exit-code behavior, but the provided context is solid for a command execution tool.

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

Conciseness5/5

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

The description consists of three concise sentences, each adding distinct value: the main purpose, the timeout, and input/scope constraints. It is front-loaded with the verb+resource, and no words are wasted. The structure is ideal for quick parseability.

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

Completeness4/5

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

Given only two parameters and an output schema present, the description covers the essential behavioral and constraint information. It explains what the tool does, its limits, and its scope. It does not elaborate on working directory, shell type, or environment variables, but those are not critical for basic usage and may be implied or handled elsewhere. Overall, it is sufficiently complete for a command execution tool.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It implies that app_id identifies the app container and command is the shell command, but it does not explicitly map these schemas to their meanings. While it adds some semantic value beyond the bare schema titles, it lacks clear parameter-level elaboration, such as the format or allowed command syntax.

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

Purpose5/5

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

The description clearly states the primary action: 'Run a shell command inside the user's own deployed app container and return the result.' It specifies the resource (the app container) and distinguishes this from sibling tools like get_app_logs or restart_app by focusing on command execution. The scope is further clarified with 'limited to the caller's app pod only.'

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

Usage Guidelines4/5

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

The description provides clear context on when to use this tool: to run shell commands in the user's app container. It also gives practical guidelines via constraints (360-second timeout, input size limits), implying this is for short, bounded commands. However, it does not explicitly mention alternatives or contraindicate use for long-running tasks, so it falls short of a 5.

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

generate_github_actionsB

Generate a GitHub Actions workflow YAML that builds an OCI archive and uploads it to PlugLayer for the same app.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNo
app_idYes
repo_pathNo.
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must convey behavioral traits. It states the generated workflow's purpose but does not clarify that the tool itself only generates YAML (doesn't execute it), nor mention side effects or authentication needs.

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

Conciseness5/5

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

A single, front-loaded sentence contains the core action and context with no redundant words.

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

Completeness2/5

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

Given the 4-parameter schema with 0% coverage and no annotations, the description leaves significant gaps about required inputs and precise usage. The output schema exists but is not referenced, and sibling tools are not differentiated in terms of fit.

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

Parameters2/5

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

Schema descriptions are entirely absent (0% coverage), and the description does not explain any of the four parameters. Parameter names like app_id and project_id offer minimal hints, but repo and repo_path remain ambiguous.

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

Purpose5/5

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

The description clearly states the tool generates a GitHub Actions workflow YAML with specific build/upload behavior, distinguishing it from direct deployment tools like deploy_image or upload_image_archive_and_deploy.

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

Usage Guidelines2/5

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

No when-to-use or alternative guidance is provided. The description does not explain when to choose this over sibling deployment tools, nor any exclusions.

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

get_app_connection_env_varsA

Get env vars and connection fields for an app. Use this after provisioning so you can update dependent apps with the right URLs or connection strings.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It correctly implies a read-only operation via 'Get,' and adds the constraint that it should be used after provisioning. However, it does not explicitly state side-effect-free behavior, whether the values are sensitive, or any prerequisites beyond provisioning. For a retrieval tool with an output schema, this is adequate but not rich.

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

Conciseness5/5

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

The description is two sentences with no redundancy. The first sentence states the function, the second provides usage guidance. Every word earns its place, and it is appropriately sized for the tool's complexity.

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

Completeness4/5

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

Given the simple one-parameter tool with an output schema, the description covers purpose, usage context, and the nature of the result (URLs/connection strings). It doesn't mention error handling or edge cases, but for a straightforward getter, it is sufficiently complete. The description also helps differentiate it from other env-related tools in the sibling list.

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

Parameters3/5

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

The schema has one parameter 'app_id' with no description (0% coverage). The description does not directly explain the parameter, but the tool name and description make it obvious that app_id refers to the app whose env vars are fetched. For a single self-explanatory string parameter, this is minimally sufficient, especially since the description says 'for an app'.

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

Purpose5/5

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

The description clearly states the action: 'Get env vars and connection fields for an app.' This is a specific verb+resource combination that distinguishes it from related tools like get_database_connection_details (database-specific) or apply_app_env_vars (modifying env vars). The mention of 'connection fields' adds specificity beyond just 'get env vars.'

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

Usage Guidelines4/5

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

The description provides explicit context: 'Use this after provisioning so you can update dependent apps with the right URLs or connection strings.' This clearly indicates when to use it (after provisioning) and why, without naming alternative tools. It lacks explicit exclusions or mention of alternatives, but the context is clear enough for an agent to choose it appropriately.

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

get_app_logsD

Alias for get_logs() using app terminology.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNo
app_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, and the description carries no behavioral details. It does not disclose return format, pagination, side effects, authentication needs, rate limits, or any constraints. The phrase 'using app terminology' is too vague to inform behavior.

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

Conciseness2/5

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

While the description is short and readable, it is under-specified. One sentence that merely references another tool does not earn its place for a tool description; it lacks defining information. This is over-conciseness, not efficiency.

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

Completeness1/5

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

Given the presence of an output schema but zero annotations and zero parameter descriptions, the description is woefully incomplete. It fails to explain the tool's purpose, when to use it, parameter behavior, or return semantics. The description relies entirely on external knowledge of get_logs.

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

Parameters1/5

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

The schema has 0% description coverage with no parameter descriptions, and the description adds no meaning to `app_id` or `lines`. It does not explain that `app_id` is the app identifier or that `lines` controls the number of log lines. The description's 'app terminology' hint is insufficient to disambiguate parameters.

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

Purpose2/5

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

The description says 'Alias for get_logs() using app terminology.' This does not directly state what the tool does (e.g., 'retrieve application logs'); it only references another tool. For an agent, the action is unclear without prior knowledge of get_logs. This is close to a tautology, though it hints at app-specific logs.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like get_logs or get_database_logs. The word 'alias' implies it is interchangeable with get_logs, but it does not explain when one should be preferred over the other. No context, prerequisites, or exclusions are given.

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

get_apps_by_projectA

List apps for a specific project. Use this before a new deploy when the project may already contain the same app and you need to clarify update vs replace vs separate new app. If the project already has a similar app and the namespace is full, prefer update or replace flow instead of a brand-new app.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of indicating safety. The verb 'List' implies a read-only operation, which is helpful. However, it provides no other behavioral traits (e.g., whether it requires specific permissions, how it handles missing projects, or what fields are returned). Since it's a simple list operation, a score of 3 is appropriate—minimally transparent but not misleading.

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

Conciseness5/5

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

The description is three sentences, with the core purpose in the first sentence and additional guidance in the following sentences. Every sentence adds value; there is no redundancy or filler. It is front-loaded and easy to parse.

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

Completeness4/5

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

Given that an output schema exists (has output schema: true) and the tool has a single straightforward parameter, the description covers the essential aspects: what it does, when to use it, and decision-making guidance. The only gaps are the lack of explicit alternative tool names and minor behavioral details, but for a list operation with an output schema, this is mostly complete.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not elaborate on project_id beyond the phrase 'for a specific project,' which merely restates the parameter name. It fails to clarify the expected format (e.g., UUID, slug) or any constraints. For a single required parameter, the schema alone might be sufficient, but the rubric explicitly requires compensation when coverage is low, and the description does not provide it.

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

Purpose5/5

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

The description opens with 'List apps for a specific project,' providing a specific verb and resource scope. This clearly distinguishes it from sibling tools like list_projects (which lists projects) and list_deployments (which lists deployments). The additional context about using it before a deploy reinforces its unique purpose.

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

Usage Guidelines4/5

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

The description gives explicit when-to-use guidance: 'Use this before a new deploy when the project may already contain the same app.' It also provides a when-not scenario by advising 'prefer update or replace flow instead of a brand-new app' when a similar app exists and namespace is full. However, it does not name specific alternative tools, so it stops short of a full alternative reference.

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

get_compose_local_build_commandsA

Analyze a docker-compose.yml and return exact docker buildx, smoke-test, and OCI-export commands for any local-build services before they are uploaded to PlugLayer.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
compose_yamlYes
workspace_rootNo.
image_tag_prefixNopluglayer-compose

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description must carry full behavioral disclosure. The description states it 'return[s] exact commands,' implying it does not execute them, which is a useful behavioral hint. However, it does not explicitly state whether the tool is read-only, whether it modifies the compose file or any resources, or if it requires any special permissions. This leaves meaningful gaps in safety transparency.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core action ('Analyze') and the key output ('return exact commands'). Every word contributes meaning, with no redundant or filler content. It is appropriately concise and easy to parse quickly.

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

Completeness4/5

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

Given that an output schema is present (as indicated by 'Has output schema: true'), the description does not need to explain return values. It provides the main purpose, the input (compose_yaml), and the usage context ('before upload to PlugLayer'). However, it lacks elaboration on prerequisites (e.g., Docker installed, project access) or the meaning of 'local-build services,' leaving a minor gap for full completeness.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate by explaining parameter meanings. It does not mention any of the four parameters (project_id, compose_yaml, workspace_root, image_tag_prefix) beyond the generic reference to 'a docker-compose.yml.' The description adds no value for understanding these parameters, leaving the agent without guidance on how to populate them correctly.

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

Purpose5/5

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

The description clearly states the tool's function: it analyzes a docker-compose.yml and returns exact buildx, smoke-test, and OCI-export commands for local-build services. This specific verb+resource+scope distinguishes it from sibling tools like deploy_compose or analyze_compose_deploy_plan, which focus on deployment planning rather than command generation.

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

Usage Guidelines4/5

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

The phrase 'before they are uploaded to PlugLayer' provides important usage context, indicating this is a pre-upload preparation step. However, it does not explicitly state when to avoid using this tool or mention alternatives such as deploy_compose or analyze_compose_deploy_plan, so it lacks explicit exclusions or alternative guidance.

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

get_compute_summaryA

Show accessible compute. Pass project_id for a project-scoped view that includes the nodes attached to that project and per-node usage. If the user is still planning capacity, prefer estimate_compute() first, then use the returned offer link to purchase or request the right amount.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations, the description carries the burden. 'Show' implies read-only, and the explanation of project-scoped behavior adds transparency. It does not mention permissions or potential side effects, but none are expected for a read operation.

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

Conciseness5/5

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

Two tightly written sentences, front-loaded with purpose and parameter behavior, followed by usage guidance. No wasted words, every sentence earns its place.

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

Completeness5/5

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

The tool has an output schema, so return values are covered. The description sufficiently explains the tool's scope, the optional parameter's effect, and when to recommend an alternative. It is complete for the tool's complexity.

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

Parameters5/5

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

Schema has zero description coverage, but the description fully explains the project_id parameter: passing it yields a project-scoped view with node attachments and per-node usage. This adds concrete meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the tool shows accessible compute, with a specific scoping behavior when project_id is provided. It differentiates from sibling tools like estimate_compute by describing the project-scoped view including nodes and per-node usage.

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

Usage Guidelines5/5

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

Explicitly instructs to prefer estimate_compute() when the user is planning capacity, and to use get_compute_summary otherwise. This provides clear when-to-use vs alternative guidance.

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

get_current_userA

Show the authenticated PlugLayer user and roles from Authentik.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of indicating behavior. The verb "Show" implies a read-only operation, and "from Authentik" adds source context, but it does not explicitly state that there are no side effects, nor does it mention authentication requirements or what happens if not authenticated. For a simple getter, this is adequate but not fully transparent.

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

Conciseness5/5

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

The description is a single, front-loaded sentence: "Show the authenticated PlugLayer user and roles from Authentik." Every word earns its place; there is no redundant or vague wording.

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

Completeness4/5

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

For a zero-parameter read-only tool with an output schema, the description provides sufficient information about what the tool returns. It is concise and clear, but it could improve by mentioning how it differs from `get_user_context` or by explicitly noting the read-only nature. However, given the simplicity, it is largely complete.

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

Parameters4/5

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

The tool has zero parameters, so the baseline for this dimension is 4. The description appropriately adds no parameter information because there are none, and the schema already confirms this with an empty properties object.

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

Purpose4/5

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

The description uses a specific verb "Show" and specifies the resource "authenticated PlugLayer user and roles from Authentik", which clearly states what the tool does. It adds detail about roles, but does not explicitly differentiate from the sibling tool `get_user_context`, so it stops short of a 5.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as `get_user_context`. The description simply states what it shows without mentioning any conditions, prerequisites, or exclusions, leaving the agent to infer usage.

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

get_database_connection_detailsA

Get a provisioned database's connection strings, env vars, and docs so you can wire other apps automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry the burden of disclosing behavior. It describes what is returned (connection strings, env vars, docs) but does not explicitly state that it is a read-only operation, mention access prerequisites, or explain potential side effects. This is adequate for a getter but not fully transparent.

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

Conciseness5/5

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

The description is a single sentence, concise and front-loaded. Every word contributes meaning; no filler or redundancy.

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

Completeness5/5

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

For a simple one-parameter tool with an output schema, the description adequately covers what the tool does and why it might be used. The output schema handles return value details, so no further elaboration is necessary.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not elaborate on the database_id parameter beyond referring to 'a provisioned database.' It does not explain the ID format, how to obtain it, or what constitutes a valid input, leaving the agent with only the parameter name to infer meaning.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('a provisioned database's connection strings, env vars, and docs'), clearly distinguishing it from sibling tools like get_database_logs or get_app_connection_env_vars. The scope is precise and actionable.

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

Usage Guidelines4/5

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

Provides clear context ('so you can wire other apps automatically') indicating when this tool is useful. It does not explicitly name alternatives or exclusions, but the intent is sufficiently clear.

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

get_database_logsB

Get recent logs from a provisioned database.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNo
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It only says 'Get', implying a read operation, but does not mention permissions, output size, pagination, or any side effects. This lacks transparency beyond the obvious read-only nature.

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

Conciseness5/5

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

The description is a single concise sentence with no filler or repetition. It communicates the essential purpose efficiently.

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

Completeness3/5

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

The output schema exists, so return values are covered. However, the description lacks context about what 'recent' means, how many lines are returned, or how the database_id parameter should be obtained. It is minimally adequate for a simple read tool but leaves gaps in usage context.

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

Parameters1/5

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

Input schema has two parameters (database_id, lines) with zero description coverage. The description does not explain either parameter, failing to compensate for the schema's lack of detail. The word 'database' hints at database_id but does not clarify the 'lines' parameter or its default behavior.

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

Purpose5/5

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

The description clearly states the tool's function: retrieving logs from a database. It uses a specific verb ('Get'), a resource ('logs'), and a qualifier ('from a provisioned database') that distinguishes it from sibling tools like get_app_logs or get_logs.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or contrast with get_app_logs or get_logs, leaving the agent without decision-making information.

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

get_deployment_statusA

Get current app/deployment status and public URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
deployment_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. The verb 'Get' implies a read-only operation, which is helpful, but the description does not disclose any potential side effects, permission requirements, or what happens with an invalid deployment_id. It is adequate for a simple read operation but lacks explicit safety context.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no redundancy. It conveys the essential function ('Get current app/deployment status and public URL') and nothing more, making it highly efficient.

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

Completeness4/5

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

For a simple get-status tool with an output schema (which likely documents return values), the description is sufficient. It could be improved by explicitly connecting the deployment_id to the status query, but the tool's low complexity and the presence of an output schema mean the description does not need to explain much more.

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

Parameters3/5

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

The schema has 0% description coverage, and the description does not explain the deployment_id parameter's format or origin. However, the parameter name is self-explanatory, and the description's mention of 'app/deployment status' implies that the ID refers to a deployment. The baseline is low because coverage is 0%, but the single parameter is simple enough that the lack of additional explanation is not a major gap.

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

Purpose5/5

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

The description uses the specific verb 'Get' and identifies the resource as 'current app/deployment status and public URL', which clearly distinguishes it from sibling tools like list_deployments (which lists all deployments) and get_task_status (which tracks async tasks). The purpose is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus its alternatives. It does not say 'use this after deploying to check if the app is live' or 'use list_deployments to see all deployments'. The description lacks any contextual direction, leaving the agent to infer appropriate usage from the name.

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

get_domains_by_projectA

Alias for list_project_domains() using project-first wording. Use this before asking the user which domain they want so existing project domains can be offered as options.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation by referencing 'existing project domains', but it does not explicitly state safety, side effects, or error behavior. Calling it an alias delegates behavior to list_project_domains without additional disclosure.

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

Conciseness5/5

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

The description is two concise sentences. The first sentence establishes the alias, and the second provides actionable usage guidance. Every word earns its place, with no redundant or filler content.

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

Completeness4/5

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

For a simple alias function with an output schema present, the description adequately covers purpose and usage. It does not address error cases or prerequisites beyond the schema, but the provided context is sufficient for a get/list operation, and the output schema covers return values.

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

Parameters2/5

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

The schema has one required parameter (project_id) with no description (0% schema coverage). The description does not explain what project_id is or how it should be used, leaving the agent to infer meaning from the parameter name alone. This fails to compensate for the low schema coverage.

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

Purpose5/5

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

The description clearly states that this is an alias for list_project_domains(), identifying the action (list/get) and resource (project domains). It distinguishes itself from the sibling tool list_project_domains by explicitly noting the project-first wording, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: 'Use this before asking the user which domain they want so existing project domains can be offered as options.' It also names the underlying function (list_project_domains) as the canonical alternative, giving clear context for tool selection.

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

get_feedbackA

Get one feedback ticket owned by the authenticated PlugLayer user.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedback_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It adds the ownership constraint (authenticated user), but does not disclose behavior for missing IDs, response format, or error cases. For a simple read operation this is average but not comprehensive.

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

Conciseness5/5

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

A single sentence with no filler. It is front-loaded with the action and resource, making it immediately clear what the tool does.

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

Completeness4/5

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

An output schema exists and the tool is simple (one param, no nested objects). The description covers the core purpose and ownership scope. It lacks explicit usage alternatives but is otherwise complete given the low complexity.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain feedback_id beyond the schema's title. The parameter is self-explanatory from name, but the description adds no semantics such as format, source, or constraints, so it fails to compensate for the lack of schema documentation.

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

Purpose5/5

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

The description uses a specific verb and resource: "Get one feedback ticket owned by the authenticated PlugLayer user." It clearly distinguishes from siblings like list_my_feedback (which lists all) by focusing on a single ticket and adding the ownership scope.

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

Usage Guidelines4/5

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

The description implies usage context: use this when you have a specific feedback_id to retrieve one ticket. It does not explicitly exclude alternatives or mention list_my_feedback, but the single-ticket focus makes the intended use clear.

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

get_logsC

Get recent logs from an app.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNo
deployment_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of disclosing behavioral traits. It only states 'Get recent logs' without revealing whether the operation is read-only, any rate limits, the meaning of 'recent', or output specifics. This is insufficient for safe invocation.

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

Conciseness3/5

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

The description is brief and front-loaded, but it is under-specified. It is not wasteful, yet it omits essential usage and parameter context. While efficient, it misses opportunities to add value without being lengthy.

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

Completeness2/5

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

Given the lack of annotations and 0% parameter description coverage, the tool description should provide richer context. It does not mention the required deployment_id, the purpose of the lines limit, or how this differs from sibling log tools. An output schema exists, so return format is covered, but invocation semantics remain incomplete.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no explanation of the parameters. The phrase 'from an app' hints at deployment_id but doesn't explain the lines parameter or their roles. The description fails to compensate for the schema's lack of parameter descriptions.

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

Purpose4/5

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

The description clearly identifies the action ('Get') and resource ('recent logs from an app'). It is a specific, understandable statement. However, it does not distinguish this tool from sibling get_app_logs, which likely serves a nearly identical purpose, so it lacks sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like get_app_logs or get_database_logs. There is no mention of preferred contexts, exclusions, or trade-offs, leaving the selection decision entirely to the agent without further clues.

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

get_marketplace_templateA

Get one marketplace template, including env var requirements. Use this before template deployment so you can resolve secrets and choose project flow correctly.

ParametersJSON Schema
NameRequiredDescriptionDefault
template_id_or_slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It adds useful behavioral context by noting that the template includes env var requirements, aiding in resolving secrets and choosing project flow. However, it doesn't disclose potential errors, permissions, or confirm read-only behavior beyond the verb 'Get'.

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

Conciseness5/5

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

The description is just two sentences, both of which provide essential information—what the tool does and when to use it. No fluff or redundancy.

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

Completeness4/5

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

For a simple get operation with an output schema, the description is mostly complete. It states the purpose, the key output detail (env var requirements), and the usage context. It doesn't mention error behavior, but the output schema likely covers return structure. The main gap is no explicit parameter semantics, though the parameter name mitigates that.

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

Parameters3/5

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

Schema description coverage is 0%, and the description does not directly explain the parameter format. However, the parameter name 'template_id_or_slug' is self-explanatory, and the description's mention of 'one marketplace template' implies the parameter identifies which template. The description adds minimal semantic value beyond the schema.

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

Purpose4/5

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

The description clearly states the verb 'Get' and the resource 'one marketplace template', which distinguishes it from the sibling tools for listing all templates or deploying them. However, it does not explicitly mention the alternative tools by name, only implying the singular nature.

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

Usage Guidelines4/5

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

The description provides explicit 'when to use' guidance: 'Use this before template deployment'. This is clear context, though it doesn't mention when not to use or name alternative tools.

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

get_my_available_computeA

Show the current user's available compute in an end-user friendly format. When capacity is unclear, call estimate_compute() before recommending any purchase or allocation decision.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the output is end-user friendly and implies capacity might be ambiguous, but it does not disclose whether the operation is read-only, potential rate limits, or what 'available compute' means. This is insufficient for full transparency.

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

Conciseness5/5

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

The description is two sentences: the first clearly states the tool's purpose, the second adds a key usage guideline. Every sentence earns its place, with no fluff or redundancy.

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

Completeness4/5

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

For a no-parameter tool with an output schema, the description provides a clear purpose and a fallback action. It could elaborate on what 'end-user friendly format' entails, but the output schema likely covers return values, making the description sufficiently complete.

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

Parameters4/5

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

The tool has zero parameters with an empty schema, making schema description coverage 100%. As per the rubric, 0 params earns a baseline of 4, and there is no need for parameter explanation.

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

Purpose4/5

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

The description uses a specific verb ('show') and a specific resource ('current user's available compute') in an end-user friendly format, making the purpose clear. However, it does not explicitly distinguish itself from the sibling tool 'get_my_available_computes' or other compute-related tools, so it lacks sibling differentiation.

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

Usage Guidelines4/5

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

It gives explicit guidance to call estimate_compute() when capacity is unclear, providing a clear alternative and condition. However, it does not offer broader selection guidance for other compute-related siblings, so it's not a full when/when-not guide.

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

get_my_available_computesA

Alias for get_my_available_compute(). When the user has not sized their workload yet, estimate_compute() should usually come first.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. However, it only states it is an alias and provides usage advice; it does not describe what the tool returns, whether it is read-only, or any side effects. This leaves significant ambiguity for the agent.

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

Conciseness5/5

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

The description consists of two concise sentences: the first identifies the tool as an alias, and the second provides key usage guidance. There is no redundant information, and it is appropriately front-loaded with the alias relationship.

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

Completeness3/5

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

The description offers some contextual guidance (when to use estimate_compute first) but does not explain what 'available computes' are or how this tool relates to other compute-related siblings. Since an output schema exists, return value details are not required, but the tool's overall purpose and placement are only partially covered.

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

Parameters4/5

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

The tool has zero parameters, and the input schema is empty. According to the guidelines, a baseline of 4 is appropriate when there are no parameters because the description need not explain parameter details. The description adds no parameter information, but none is needed.

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

Purpose4/5

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

The description clearly states it is an alias for get_my_available_compute(), which specifies the action (get) and resource (available computes). It also distinguishes itself from estimate_compute by mentioning when that tool should come first. While it relies on familiarity with the singular form, the alias reference and tool name make the purpose discernible.

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

Usage Guidelines4/5

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

The description explicitly says that estimate_compute() should usually come first when the user has not sized their workload yet, providing a clear usage guideline relative to a sibling tool. It does not mention other alternatives like get_shared_compute_pricing or get_compute_summary, but the given guidance is specific and actionable.

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

get_my_projectsA

Alias for list_projects() using end-user wording.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing behavior. It states the tool is an alias, implying it behaves identically to list_projects(), which suggests a read-only listing operation. However, it does not provide details on outputs, pagination, or potential side effects, leaving room for ambiguity.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently communicates the tool's identity as an alias. It contains no unnecessary words and is appropriately concise for such a simple tool.

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

Completeness4/5

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

Given the tool's simplicity (zero parameters, output schema present), the description is adequate. It confirms the tool is an alias for list_projects(), which suggests it returns project data. The lack of a return value explanation is mitigated by the presence of an output schema.

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

Parameters4/5

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

The tool has zero parameters, and the input schema already reflects this with an empty properties object. The description adds nothing about parameters because there are none to explain, so the baseline of 4 applies.

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

Purpose4/5

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

The description clearly identifies this as an alias for list_projects(), making the action (listing projects) apparent through the reference to a known sibling tool. It distinguishes itself by noting it uses end-user wording, but does not directly state 'lists projects' as its own verb+resource.

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

Usage Guidelines2/5

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

No explicit guidance is given on when to use this tool versus the alternative list_projects(). The phrase 'using end-user wording' vaguely implies a user-facing context, but there is no clear directive or exclusion criteria to help the agent choose between the two.

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

get_projectA

Get project details for one of the authenticated user's projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description is the only source of behavioral disclosure. It adds the constraint that the project must belong to the 'authenticated user', which is useful context. However, it does not explain error handling, permission requirements, or what exactly 'details' includes, leaving gaps.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that delivers the core purpose without wordiness. Every word earns its place, and it is structured clearly with the verb and object first.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter) and the presence of an output schema, the description is minimally viable. It covers the basic purpose and ownership constraint, but lacks usage guidance and parameter semantics. It is complete enough for a trivial get-by-ID operation, but not exemplary.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate for the lack of parameter documentation. The description does not explicitly mention project_id, its format, or how it relates to the user's projects beyond the general phrase 'for one of the authenticated user's projects'. The parameter name is self-explanatory, but the description adds no meaningful semantic value beyond what the schema's property name already provides.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get project details' for a specific project belonging to the authenticated user. This distinguishes it from sibling tools like list_projects or get_my_projects, which imply listing multiple projects rather than retrieving a single one by ID.

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

Usage Guidelines3/5

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

The description implies usage when you have a project_id and need its details, but it does not explicitly mention alternatives or conditions for use. No exclusions are stated, so the guidance is minimal but not misleading.

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

get_shared_compute_pricingA

Show the admin-defined unit pricing for shared compute reservations plus the currently unreserved shared pool. Read-only: direct the user to the PlugLayer web app (Compute -> Add Compute -> Buy shared compute) to actually purchase a reservation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states the operation is read-only, which is a key behavioral trait, and further clarifies that purchasing is out of scope. This adds meaningful context beyond simply naming the tool's function.

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

Conciseness5/5

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

The description is exactly two sentences, with the core purpose front-loaded and no extraneous content. The second sentence adds valuable behavioral and follow-up guidance, making every word earn its place.

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

Completeness5/5

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

For a zero-parameter read-only tool with an output schema, the description fully covers what the tool does, what information it returns (pricing and unreserved pool), and what it does not do (purchase). This is complete and actionable for an AI agent.

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

Parameters4/5

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

The tool has zero parameters, so the schema covers everything (vacuously 100%). The description does not need to explain parameters, and the baseline for zero-parameter tools is 4.

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

Purpose5/5

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

The description clearly states the tool 'Show[s] the admin-defined unit pricing for shared compute reservations plus the currently unreserved shared pool.' It uses a specific verb and resource, and distinguishes from purchase-related actions by directing users to the web app for buying.

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

Usage Guidelines4/5

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

The description explicitly says 'Read-only' and instructs to 'direct the user to the PlugLayer web app' for purchasing, providing clear when-not-to-use guidance. It does not explicitly name alternative sibling tools, so it stops short of a 5.

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

get_task_statusB

Check async operation status, progress, result URL, or error.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the disclosure burden. It mentions the types of output (status, progress, result URL, error) but does not address read-only nature, polling behavior, side effects, or authentication requirements. For a simple status checker, this is adequate but minimal.

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

Conciseness5/5

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

The description is a single concise sentence that is front-loaded with the action and object. Every word adds value with no filler or repetition.

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

Completeness4/5

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

For a tool with one simple parameter and an output schema, the description is fairly complete. It covers the main return elements (status, progress, result URL, error). It does not mention how to obtain task_id or any integration context, but this is not critical for such a straightforward tool.

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

Parameters3/5

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

There is only one parameter, task_id, which is self-explanatory given the description. Schema description coverage is 0%, so the description must add meaning; it implies task_id is the identifier for the async operation but adds no format, type, or lifecycle context beyond the name.

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

Purpose4/5

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

The description clearly states the verb 'Check' and the resource 'async operation status', and expands on what is returned (status, progress, result URL, or error). It is specific enough to know what the tool does, though it does not explicitly distinguish it from sibling status tools like get_deployment_status or get_logs.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. No mention of prerequisites, exclusions, or typical scenarios for checking async operation status.

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

get_user_contextA

Load the caller's stored PlugLayer user context memory. Use this at the start of a session when prior project/app/domain preferences may matter.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description must carry the transparency burden. 'Load' implies a read operation, but it does not disclose behavior such as what happens when no stored context exists, whether a default is returned, or any side effects. This is a minimal but not misleading disclosure.

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

Conciseness5/5

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

The description is two sentences, with the action front-loaded ('Load the caller's stored PlugLayer user context memory') and a concise secondary sentence providing usage context. Every sentence earns its place with no wasted words.

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

Completeness4/5

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

For a simple zero-parameter getter with an output schema (though not shown), the description sufficiently covers purpose and usage context. It does not need to explain return values because an output schema is present, making it reasonably complete.

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

Parameters4/5

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

The tool has zero parameters, and the schema is empty with 100% coverage. The description adds no parameter semantics, but none are needed; the baseline of 4 for zero-parameter tools applies.

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

Purpose5/5

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

The description uses a specific verb ('Load') and identifies the resource ('stored PlugLayer user context memory'), clearly distinguishing it from siblings like get_current_user and update_user_context. It also hints at the resource's purpose, making the tool's function unambiguous.

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

Usage Guidelines4/5

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

The description gives explicit usage context: 'Use this at the start of a session when prior project/app/domain preferences may matter.' It does not explicitly mention when not to use it or name alternatives, but the guidance is clear and actionable.

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

inspect_local_github_repoA

Check whether the local repo exists, has git initialized, and points at a GitHub origin.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_pathNo.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description must carry the burden of behavioral disclosure. It implies a read-only check by using 'Check', and lists the exact conditions verified. However, it does not explicitly state that the tool makes no modifications, nor does it describe behavior when the repo does not exist or lacks a git origin.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys all necessary information without redundancy. Every word contributes value.

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

Completeness4/5

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

For a simple single-parameter tool, the description is fairly complete. An output schema exists, so return values don't need to be described. Minor gaps include lack of edge-case behavior (e.g., nonexistent path) and usage timing, but overall it is sufficient for an agent to understand the tool's core function.

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

Parameters2/5

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

The schema has 0% description coverage for the sole parameter `repo_path`. The description does not mention this parameter at all, leaving its semantics to be inferred from its name and default value. This fails to compensate for the lack of schema documentation.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Check') and resource ('local repo'), and enumerates three specific criteria (exists, git initialized, GitHub origin). This distinguishes it from sibling tools, which are all cloud/deployment focused.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusion cases. It is implied that this is a preflight check, but that is never stated explicitly.

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

list_attachable_project_nodesA

List the authenticated project owner's dedicated nodes and whether each is available, already attached here, or attached to another project. Use this when project compute is missing before a deploy.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the output categories (available, attached here, attached elsewhere) and implies authentication via 'authenticated project owner.' However, it does not explicitly state that the operation is read-only or mention any side effects, though 'List' strongly implies read-only behavior.

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

Conciseness5/5

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

The description is two sentences, each earning its place. The first sentence explains what the tool does, and the second provides usage context. No filler or repetition.

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

Completeness5/5

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

For a simple one-parameter tool with an output schema, the description is complete: it states the purpose, the exact output categories, and when to use it. The output schema covers return details, so the description does not need to explain them.

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

Parameters3/5

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

The schema has one parameter (project_id) with 0% description coverage. The description implies that project_id identifies the project being checked, but it does not explicitly define the parameter or its format. Since the parameter name is self-explanatory and the context is clear, the description partially compensates but not fully.

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

Purpose5/5

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

The description clearly states the tool lists the authenticated project owner's dedicated nodes and their attachment status (available, attached here, attached elsewhere). It distinguishes itself from sibling tools like list_nodes by focusing on project-specific attachable nodes and their statuses.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this when project compute is missing before a deploy,' which provides clear when-to-use context. It does not mention when not to use it or name alternatives, so it lacks exclusions or alternative guidance.

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

list_database_templatesA

List database-ready marketplace templates. Use this first when the user asks to provision a database through PlugLayer.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior2/5

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

With no annotations provided, the description must carry the behavioral disclosure burden. It only states the action without mentioning read-only nature, side effects, or required auth, leaving the agent to infer safety.

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

Conciseness5/5

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

Two concise sentences with front-loaded purpose and a clear usage directive. Every word earns its place.

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

Completeness4/5

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

The tool is simple with no parameters and an output schema, so the description covers purpose and usage sufficiently. Lacks a read-only hint, but this is a minor gap given the obvious list nature.

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

Parameters4/5

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

The input schema has no parameters, making schema coverage trivially 100%. The baseline for 0 parameters is 4, and no additional parameter explanation is needed.

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

Purpose5/5

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

The description states the function clearly as 'List database-ready marketplace templates', using a specific verb and resource. It distinguishes itself from sibling tools like list_marketplace_templates through the 'database-ready' qualifier and the explicit provisioning context.

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

Usage Guidelines4/5

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

Provides explicit guidance: 'Use this first when the user asks to provision a database through PlugLayer', which tells the agent when to invoke it. However, it doesn't name alternatives or give when-not conditions, so it falls short of a perfect 5.

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

list_deploymentsD

List apps. Optionally filter by project_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It provides no details about access requirements, rate limits, pagination, response scope, or any operational caveats.

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

Conciseness2/5

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

The description is only two sentences, but it is under-specified and misleading. Brevity is not conciseness when it fails to convey the essential purpose and context.

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

Completeness2/5

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

Despite having an output schema, the description is incomplete: it does not clarify the deployment/app distinction, and provides no differentiation from many sibling tools. This leaves the agent unable to confidently select the correct tool.

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

Parameters3/5

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

The description adds that project_id is an optional filter, which is not stated in the schema (which only provides type and default). This provides basic meaning, though it does not explain format or edge cases.

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

Purpose1/5

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

The description says 'List apps' but the tool is named list_deployments, which is misleading. It does not mention deployments at all, and sibling tools like get_apps_by_project suggest apps and deployments are different resources. This misidentification directly conflicts with the tool's name.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. It only mentions an optional filter, with no reference to sibling tools or exclusions.

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

list_marketplace_templatesA

List deployable marketplace templates. Use this before deploying a ready-made template through PlugLayer.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
categoryNo
test_stateNo
featured_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It accurately states the tool lists templates, implying a read-only operation, but does not disclose details like filtering behavior, pagination, or potential side effects. This is minimal but not misleading.

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

Conciseness5/5

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

The description is only two sentences, front-loaded with the core action, and every word adds value. It is concise and directly supports tool selection.

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

Completeness3/5

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

The description covers the primary use case and output schema exists, so return values are handled. However, with four optional parameters and no explanation of their semantics, especially test_state, the description leaves a clear gap for an agent needing to filter results.

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

Parameters1/5

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

Schema coverage is 0%, and the description provides no explanation of the parameters (search, category, test_state, featured_only). The agent cannot infer the meaning of test_state or how filtering works from the description, so it fails to compensate for the schema gap.

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

Purpose5/5

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

The description uses a specific verb and resource: "List deployable marketplace templates." It clearly distinguishes this tool from siblings like list_database_templates and get_marketplace_template by focusing on deployable templates and connecting to the deploy workflow.

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

Usage Guidelines4/5

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

The description gives explicit usage context: "Use this before deploying a ready-made template through PlugLayer." This tells the agent when to invoke it, though it does not 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.

list_my_feedbackA

List feedback submitted by the authenticated PlugLayer user.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It adds the useful trait that feedback is filtered to the authenticated user's own submissions, but it does not mention whether the operation is read-only, how the limit parameter affects results, or any other behavior. This is minimal but not completely silent.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the action and resource. Every word earns its place, with no redundancy or filler.

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

Completeness3/5

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

The tool is simple and has an output schema, so return values are covered. However, the description is incomplete regarding the 'limit' parameter's behavior and does not discuss pagination or ordering. It is adequate for a basic list operation but leaves some gaps.

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

Parameters2/5

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

The schema has one parameter (limit) with 0% description coverage, and the tool description does not mention it at all. Although the name 'limit' is self-explanatory, the description adds no elaboration or confirmation of its effect, missing the opportunity to compensate for the schema gap.

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

Purpose5/5

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

The description clearly states a specific verb ('List') and resource ('feedback') with an explicit scope ('submitted by the authenticated PlugLayer user'). This distinguishes it from siblings like submit_feedback and get_feedback, which have different purposes.

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

Usage Guidelines3/5

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

The description provides clear context that this tool lists feedback submitted by the current user, which implies when to use it. However, it does not explicitly mention alternatives or offer exclusion criteria, so it falls short of the 'explicit when/when-not' standard.

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

list_nodesA

List compute nodes accessible to the authenticated user. Pass project_id to list only the nodes backing that project (a dedicated node serves one project; shared nodes serve many projects at once).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It adds useful context about authentication scope and the dedicated/shared node relationship, but it does not disclose return format, pagination, ordering, or any other behavioral traits. For a read-only list tool, this is adequate but not rich.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the main purpose, and every word adds value. It efficiently covers the core function and the key parameter behavior without redundancy.

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

Completeness4/5

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

The tool is simple (one optional parameter) and an output schema exists, so return values need no explanation. The description covers the essential behavior, authentication scope, and parameter semantics. It could mention pagination or sorting, but for this scope the description is largely complete.

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

Parameters5/5

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

The input schema provides only the parameter name, type, and default, with 0% schema description coverage. The description fully compensates by explaining that passing project_id lists only nodes backing that project and clarifies the dedicated vs shared node distinction, which the schema lacks entirely.

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

Purpose5/5

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

The description clearly states the tool's action ('List compute nodes') and scope ('accessible to the authenticated user'), using a specific verb and resource. It also distinguishes behavior by describing project_id filtering and the dedicated vs shared node distinction, which helps separate it from sibling tools like list_attachable_project_nodes.

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

Usage Guidelines3/5

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

The description provides clear context for when to pass project_id (to filter to a project's nodes) but does not explicitly mention when to use this tool over alternatives such as list_attachable_project_nodes or list_my_available_compute. Usage is implied rather than explicitly contrasted.

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

list_pluglayer_compute_optionsA

List PlugLayer marketplace compute options the user can buy. Use this after estimate_compute() when you want real purchasable machine choices instead of abstract resource units.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
min_gpu_gbNo
min_ram_gbNo
tshirt_sizeNo
min_cpu_coresNo
min_storage_gbNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clarifies that the tool lists purchasable options (implying a read-only operation), but omits details about authentication, side effects, or filtering behavior. The absence of annotations raises the need for more context, yet the description is not contradictory or misleading.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the action verb 'List', and every word earns its place. It efficiently communicates the core purpose and the recommended usage context without redundancy.

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

Completeness4/5

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

For a simple read-only listing tool with an output schema, the description provides adequate context: what it lists and when to use it relative to estimate_compute. It doesn't explain filtering semantics or prerequisites, but the optional parameters are fairly self-evident and the output schema covers return structure. Slightly more detail on what 'compute options' entails would elevate it.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no parameter context. While parameter names like min_cpu_cores and min_ram_gb are self-explanatory, 'tags' and 'tshirt_size' remain vague and lack examples or format guidance. The description does not compensate for the schema's lack of parameter documentation.

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

Purpose5/5

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

The description clearly states the tool lists PlugLayer marketplace compute options that can be purchased. It also distinguishes itself from estimate_compute by contrasting real purchasable machines with abstract resource units, making its purpose specific and unambiguous.

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

Usage Guidelines5/5

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

It explicitly says to use this tool after estimate_compute() when real purchasable machine choices are needed instead of abstract resource units. This provides clear timing and relationship to an alternative, though it doesn't mention other siblings like get_my_available_compute.

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

list_project_domainsC

List custom domains for a project and show their verification state.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only says 'list' and 'show verification state,' implying a read operation, but it does not explicitly state it is read-only, whether it triggers any verification process, or any permissions needed.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler words. It efficiently conveys the core functionality.

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

Completeness3/5

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

The tool is simple, and the description covers the basic function. However, the lack of distinction from the similarly named sibling get_domains_by_project leaves a completeness gap for tool selection.

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

Parameters2/5

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

With 0% schema description coverage, the description should compensate for parameter meaning. It mentions 'for a project,' which indirectly relates to project_id, but provides no format, source, or additional context beyond the schema title.

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

Purpose4/5

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

The description clearly states the tool lists custom domains for a project and includes the verification state detail. However, it does not differentiate from the sibling tool get_domains_by_project, which appears to have a similar purpose.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus others. It does not mention alternatives, prerequisites, or scenarios where the tool is appropriate.

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

list_projectsB

List the authenticated user's projects.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations available, the description carries the full burden of behavioral disclosure. It implies a read-only operation via 'List' and scopes results to the authenticated user, but it does not explicitly state the absence of side effects, nor does it mention pagination, rate limits, or failure behavior. The disclosure is minimal.

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

Conciseness5/5

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

The description is a single, front-loaded sentence: 'List the authenticated user's projects.' It contains no filler and communicates the core function efficiently.

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

Completeness4/5

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

For such a simple tool with no parameters and an output schema present, the description is largely complete. However, the existence of a similarly named sibling (get_my_projects) creates ambiguity that is not resolved, slightly reducing completeness.

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

Parameters4/5

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

The input schema has zero parameters, so there is nothing to explain. The description correctly avoids adding unnecessary parameter detail, and the baseline for a zero-parameter tool is 4.

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

Purpose4/5

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

The description clearly states the action ('List') and the resource ('the authenticated user's projects'), making the tool's purpose unambiguous. However, it does not distinguish itself from the sibling tool get_my_projects, which appears to serve the same purpose.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as get_my_projects or list_nodes. There is no mention of preferred usage contexts, exclusions, or related tools.

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

list_registriesA

List registry destinations available to the current user.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full responsibility. It indicates a read operation and user-specific scoping, but does not disclose return format, pagination, ordering, or any side effects. Minimal behavioral context beyond the verb, but the list action implies non-destructive behavior.

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

Conciseness5/5

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

One terse sentence communicates the entire purpose without repetition or unnecessary detail.

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

Completeness4/5

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

For a zero-parameter tool with an output schema, the description is nearly complete. It clearly states what is listed and for whom. The only minor gap is the undefined term 'registry destinations', but output schema likely clarifies it.

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

Parameters4/5

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

The tool accepts zero parameters, so the schema fully covers all inputs. The description's scope mention ('current user') adds a small contextual note, but the baseline 4 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('List') and resource ('registry destinations'), and adds user scoping ('available to the current user'), making its purpose unambiguous and distinguishable from sibling list tools.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives, nor any exclusions or prerequisites. It only states the core action.

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

list_user_databasesA

List the authenticated user's databases, optionally filtered to one project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. The word 'List' implies a read-only operation and the scope is disclosed. However, it does not address error conditions, pagination, authorization specifics, or what happens with an invalid project_id.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the main action and includes the key optional filter. There is no unnecessary wording or repetition.

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

Completeness4/5

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

The tool is simple with one optional parameter and an output schema exists, so return values are documented elsewhere. The description covers the primary scope and filtering behavior, making it adequate for typical usage, though it does not mention edge cases like invalid project IDs or empty results.

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

Parameters4/5

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

The input schema has one optional parameter (project_id) with 0% description coverage. The description compensates by explaining that the parameter optionally filters results to one project, providing meaningful context beyond the bare field title.

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

Purpose5/5

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

The description uses a specific verb 'List' with a clear resource ('databases') and scope ('authenticated user's'), plus an optional filter ('to one project'). This distinguishes it from sibling tools that list projects, nodes, registries, and other resources.

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

Usage Guidelines4/5

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

The description clearly states when to use this tool: to list the authenticated user's databases, with optional project filtering. It does not explicitly mention when not to use it or name alternatives, but the context is clear enough for basic selection.

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

redeployA

Redeploy an existing app without changing its current slug. Confirm the exact app name with the user first and pass it here. Default to recreate to minimize temporary live compute usage; use rolling only when the user explicitly prefers lower-downtime rollout behavior.

ParametersJSON Schema
NameRequiredDescriptionDefault
deployment_idYes
redeploy_strategyNorecreate
confirmed_app_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: slug preservation, the need for user confirmation before execution, and the tradeoff between recreate and rolling strategies in terms of compute usage and downtime. It does not explicitly state destructiveness or permissions, but the confirmation requirement adds meaningful safety context.

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

Conciseness5/5

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

The description is three sentences, each earning its place. The first states purpose, the second gives a required interaction step, and the third explains strategy selection. It is front-loaded, concise, and free of filler.

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

Completeness4/5

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

Given the tool is a mutation with no annotations, the description covers the essential purpose, the confirmation requirement, and strategy guidance. The output schema likely covers return values. It does not explicitly mention prerequisites, side effects, or the meaning of redeploy in terms of the underlying deployment, but it is sufficiently complete for an experienced user.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains the `confirmed_app_name` parameter ('Confirm the exact app name with the user first and pass it here') and the `redeploy_strategy` parameter (default to `recreate`, use `rolling` for lower downtime). However, it does not explain `deployment_id`, leaving one of the three parameters without added meaning beyond its name.

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

Purpose5/5

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

The description clearly states the tool's function: 'Redeploy an existing app without changing its current slug.' This is a specific verb and resource, and the 'without changing its current slug' constraint distinguishes it from related tools like deploy_image or rollback. It also adds critical safety context with the confirmation requirement.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance: 'Confirm the exact app name with the user first and pass it here.' It also explains the redeploy strategy choice with 'Default to `recreate` to minimize temporary live compute usage; use `rolling` only when the user explicitly prefers lower-downtime rollout behavior.' However, it does not directly name alternative tools for when this tool should or shouldn't be used.

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

remove_appA

Remove one of the authenticated user's apps. This deletes the runtime workload and revokes its active routing while marking the app as removed in PlugLayer.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose significant behavioral traits: it deletes the runtime workload, revokes active routing, and marks the app as removed. This gives a clear picture of the destructive action, though it stops short of mentioning reversibility or side effects on associated resources.

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

Conciseness5/5

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

Two concise sentences with no filler. The first sentence delivers the core purpose, and the second adds essential behavioral detail. Excellent structure and economy.

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

Completeness4/5

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

For a single-parameter tool with an output schema, the description is mostly complete. It states the action, the ownership prerequisite, and the main effects. It could go a bit further to mention whether the action is reversible or what the output contains, but the output schema covers return values, so this is sufficient.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate for explaining the 'app_id' parameter. The description only refers to 'apps' generically and does not clarify what app_id should be, its format, or how to obtain it. The parameter name is self-explanatory, but the description adds little value beyond the schema.

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

Purpose4/5

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

The description clearly states the tool removes an app and specifies the effect (deletes runtime workload, revokes routing, marks as removed). However, it does not explicitly distinguish this from the sibling tool 'delete_app', which is likely similar, so it loses the top score.

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

Usage Guidelines3/5

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

The phrase 'one of the authenticated user's apps' implies the tool should only be used on apps the current user owns, providing an implicit usage context. No explicit guidance about when to use this over alternatives like delete_app is given, so a middle score is appropriate.

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

remove_databaseB

Remove one of the caller's provisioned databases, including its runtime workload and active routing.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the full burden of behavioral disclosure. It does reveal an important effect: removing the database also removes the runtime workload and active routing. However, it omits critical details like whether the action is irreversible or if data is permanently lost, which is significant for a destructive operation.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no redundant words. It is concise and to the point, though slightly terse for a destructive action, which could warrant a bit more detail without losing efficiency.

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

Completeness3/5

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

Given that this is a destructive tool with no annotations, the description covers the main scope of removal and the ownership constraint, but it does not address reversibility, prerequisites, or the impact on related resources (e.g., connected apps). The presence of an output schema reduces the need to describe return values, but the operational context remains incomplete.

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

Parameters3/5

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

The schema has only one parameter, 'database_id', and its description coverage is 0%. The parameter name is self-explanatory, and the description's phrase 'one of the caller's provisioned databases' implies which value to provide, but it does not explicitly describe the parameter's format, source, or required identifier.

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

Purpose4/5

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

The description specifies the action ('Remove'), the resource ('provisioned databases'), and the scope ('including its runtime workload and active routing'). It clearly states what the tool does, but it does not distinguish itself from the sibling tool 'delete_database', which likely serves a similar purpose.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. Given the presence of 'delete_database' as a sibling, the lack of any comparative or exclusionary context leaves the agent without clear direction on which tool to choose.

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

remove_projectA

Remove one of the authenticated user's projects. PlugLayer removes the project's apps first, then tears down the project and archives the record for recovery/history.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses key behaviors: apps are removed first, the project is torn down, and the record is archived for recovery/history. This adds meaningful side-effect context, though it could mention permissions or irreversibility more explicitly.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the core purpose followed by process details. No word is wasted, and every sentence contributes to understanding.

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

Completeness4/5

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

The description covers the removal process, side effects on apps, and archival behavior, which is fairly complete for a removal tool. The presence of an output schema reduces the need to explain return values. However, it does not address how this tool differs from the delete_project sibling, which is a completeness gap given the sibling list.

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

Parameters3/5

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

The schema has one parameter with 0% description coverage. The description adds the semantic constraint that the project must belong to the authenticated user, which is useful. However, it does not elaborate on how to obtain the project_id or provide examples, leaving the parameter only partially explained.

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

Purpose4/5

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

The description clearly states the tool removes one of the authenticated user's projects, using a specific verb and resource. It does not explicitly distinguish from the sibling tool delete_project, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives like delete_project. It implies the tool is for removing projects but does not clarify the difference (e.g., archival vs permanent deletion), which is a significant gap given the sibling context.

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

rename_projectA

Rename a PlugLayer project's display name.

This does not change the project's slug, Kubernetes namespace, or existing app URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_nameYes
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It clearly discloses the behavioral boundary (does not change slug, namespace, or URLs), but does not mention other aspects like validation rules, permissions, or reversibility. This is a moderate level of transparency that adds value but is not exhaustive.

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

Conciseness5/5

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

The description is concise (two sentences), front-loaded with the main action, and the second sentence adds crucial scope without unnecessary fluff. Every word contributes to understanding.

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

Completeness4/5

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

For a simple rename operation, the description is largely complete. It explains the scope of the change and what remains unaffected. The presence of an output schema (not shown) reduces the need to describe return values. Minor gaps like parameter details and potential side effects prevent a perfect score.

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

Parameters2/5

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

Schema description coverage is 0%, and the description compensates minimally. The parameter names ('project_id', 'new_name') are self-explanatory, but the description does not add details about constraints, format, or how they relate to the stated behavior beyond the word 'display name'. It fails to fully compensate for the lack of schema descriptions.

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

Purpose5/5

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

The description states a specific verb ('Rename') and resource ('a PlugLayer project's display name'), clearly distinguishing this tool from siblings like create_project or delete_project. It also clarifies what it does not change (slug, namespace, URLs), which further differentiates it from potential alternatives.

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

Usage Guidelines4/5

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

The description gives clear context for when to use this tool: when you need to change a project's display name. It also provides exclusions by stating what the operation does not affect (slug, Kubernetes namespace, existing app URLs), so users know not to use this tool for those changes.

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

restart_appA

Restart an app by queueing a redeploy. Default to recreate to optimize compute usage; use rolling only when lower downtime matters more than temporary headroom.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
redeploy_strategyNorecreate

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the transparency burden. It discloses that the operation is a 'queueing a redeploy' and explains trade-offs between strategies. However, it lacks details about side effects like app unavailability, permission requirements, or whether the operation is reversible. This is moderate transparency but not comprehensive.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the action, and every word adds value. It is concise and well-structured, with no redundant information.

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

Completeness4/5

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

For a tool with two parameters and an output schema, the description covers the essential usage context. It explains the redeploy strategy, which is the primary decision point. It does not discuss return values or potential errors, but the output schema likely handles that. The lack of explicit distinction from 'redeploy' prevents a perfect score, but the tool is adequately contextualized.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It explains 'redeploy_strategy' in detail, including the default behavior and when to choose alternatives. 'app_id' is not elaborated, but it is a standard identifier that can be inferred from its name and the tool's purpose. This adds meaningful value beyond the schema.

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

Purpose4/5

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

The description clearly states the tool's action: 'Restart an app by queueing a redeploy.' It identifies the resource (app) and the operation (restart via redeploy), which is specific. However, it does not explicitly differentiate from sibling tools like 'redeploy' or 'rollback', so it falls short of a 5.

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

Usage Guidelines4/5

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

The description provides clear guidance on when to use each strategy: default to 'recreate' for compute optimization, and use 'rolling' when lower downtime matters. This is actionable context for the main parameter. It does not mention when to use this tool over alternatives like 'redeploy', but the strategy guidance qualifies as clear context.

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

restart_databaseB

Restart a provisioned database by queueing its redeploy/restart flow.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It adds the key detail that the restart is queued (async) and refers to a 'provisioned' database, but it does not mention potential downtime, state requirements, or failure conditions. This is a minimal but non-contradictory disclosure.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no redundant or filler content. Every word contributes to understanding the action and its queued nature.

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

Completeness3/5

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

For a single-parameter tool with an output schema, the description is adequate but terse. It covers the core action and queueing behavior, but omits usage context and any side effects or prerequisites beyond 'provisioned'. Overall, it is a minimum-viable description.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention database_id at all. The only parameter is required, but its semantics are left to the schema's title, which is not enough compensation for the lack of description.

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

Purpose5/5

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

The description clearly states the tool restarts a provisioned database via a queued redeploy/restart flow. It uses a specific verb and resource, distinguishing it from sibling tools like restart_app or redeploy.

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

Usage Guidelines2/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives such as restart_app or redeploy. No exclusions or preferred scenarios are mentioned, leaving the agent to infer context from the tool name alone.

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

rollbackB

Roll back an app to a previous revision.

ParametersJSON Schema
NameRequiredDescriptionDefault
revisionNo
deployment_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the core action without revealing side effects, reversibility, permissions, or impact on the current deployment. For a mutation tool, this is insufficient transparency.

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

Conciseness5/5

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

The description is a single concise sentence that is front-loaded with the action. Every word earns its place, and there is no redundant filler. It is appropriately sized for the simplicity of the operation.

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

Completeness2/5

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

The tool is a mutation with no annotations, no parameter explanations, and minimal behavioral context. An output schema exists but does not reduce the need for usage context. Given the presence of many similar sibling tools, the description lacks enough detail for an agent to differentiate and safely invoke the operation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'previous revision,' which maps to the 'revision' parameter, but it does not clarify the meaning of a null revision or the role of deployment_id. Provides minimal additional semantics beyond the bare schema.

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

Purpose5/5

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

The description clearly states what the tool does: 'Roll back an app to a previous revision.' It uses a specific verb ('roll back') and resource ('app'), and specifies the action targets a previous revision. This differentiates it from sibling tools like restart_app or redeploy, which involve different operations.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when you need to revert to an earlier revision) but provides no explicit alternatives or exclusions. It does not mention how this differs from related tools like redeploy or restart_app, so the guidance is only implied.

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

submit_feedbackA

Submit safe, actionable product feedback for the authenticated user.

Use after explicit user requests, or automatically once after an actionable PlugLayer operation failure. Ask before submitting inferred, non-blocking improvement ideas. Never include credentials, environment values, private source, or full logs.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
categoryNobug
page_urlNo
page_pathNo
page_titleNo
descriptionYes
affected_toolNo
error_summaryNo
actual_behaviorNo
expected_behaviorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: feedback must be 'safe' and 'actionable', the tool operates for an authenticated user, it can be invoked automatically after failures, and it should ask before submitting inferred ideas. This is strong context, though it doesn't specify how 'safe' is enforced or what the submission outcome looks like.

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

Conciseness4/5

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

The description is concise and front-loaded with the core purpose, followed by usage and safety rules. Each sentence adds value with no fluff, though it is slightly longer than the minimal two-sentence ideal.

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

Completeness2/5

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

Given 10 parameters, no schema descriptions, and no annotations, the description is incomplete for effective invocation. It covers purpose and usage but lacks parameter-level details or a template for constructing feedback, especially for fields like page_url, error_summary, and affected_tool. The presence of an output schema helps with return values, but the input side remains underexplained.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not compensate by explaining any of the 10 parameters. It does not define title, description, category, or the various optional fields (e.g., affected_tool, error_summary), leaving the agent without guidance on how to populate them.

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

Purpose5/5

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

The description clearly states the action ('Submit') and the resource ('product feedback') for the authenticated user. It is distinct from sibling tools like list_my_feedback and get_feedback, which retrieve feedback, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: after explicit user requests, automatically after an actionable PlugLayer operation failure, and with an instruction to ask before submitting inferred, non-blocking ideas. It also includes content restrictions (never include credentials, environment values, private source, or full logs), which clarifies boundaries.

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

sync_database_env_to_appA

Update one deployed app's env vars using a provisioned database's concrete connection details, then restart the existing app.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
database_idYes
add_missing_connection_fieldsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosing side effects. It mentions the two main actions (update and restart) but doesn't specify whether existing env vars are overwritten or merged, nor the potential for downtime. This is a gap for a mutation tool.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core action and sequence.

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

Completeness3/5

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

The description covers the high-level task but omits important context such as side effects of env var replacement, precondition details, and the effect of the optional parameter. An output schema exists, but the description could still be more complete for safe invocation.

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

Parameters3/5

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

Schema descriptions are absent (0% coverage), but the description contextualizes database_id and app_id as the provisioned database and deployed app. The optional add_missing_connection_fields isn't explained in the description, though its name is relatively self-explanatory.

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

Purpose5/5

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

The description clearly states the specific action: updating one deployed app's env vars with a provisioned database's connection details and restarting the app. This distinguishes it from sibling tools like apply_app_env_vars or restart_app.

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

Usage Guidelines4/5

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

The description implies the usage scenario (sync DB connection info to an app and restart) and names the key resources. It doesn't explicitly state when not to use it, but the context is clear enough to differentiate from alternatives.

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

update_app_domainA

Update the app's default pluglayer.io route slug. Use this when the user chooses the built-in subdomain now and may switch to a custom domain later.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYes
route_slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states that the tool 'updates' the route slug, but does not disclose side effects (e.g., changing the app's URL, affecting existing links, or requiring specific permissions). This is insufficient for a mutation tool.

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

Conciseness5/5

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

Two concise, well-structured sentences: the first states the action, the second provides usage context. No wasted words.

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

Completeness3/5

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

The tool is simple with two parameters and has an output schema, so return values are covered. However, the description lacks details about the effect on the app's domain, prerequisites, or any behavioral nuances, leaving some gaps in completeness.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It indirectly refers to route_slug as the 'route slug' but does not clarify its format or how app_id is used. The description adds minimal value beyond parameter names; both parameters remain underspecified.

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

Purpose5/5

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

The description clearly identifies the action: updating the app's default pluglayer.io route slug. It distinguishes this from sibling tools like add_custom_domain or verify_custom_domain by specifically mentioning the built-in subdomain, making the purpose unambiguous.

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

Usage Guidelines4/5

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

It states an explicit 'Use this when...' condition, indicating the scenario for built-in subdomain usage with potential future custom domain. However, it does not mention alternatives or exclusion criteria (e.g., 'do not use for custom domains'), so it falls short of a 5.

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

update_database_accessA

Update a provisioned database's public TCP IP allowlist. Pass an empty list to allow all IPs again.

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYes
tcp_allowed_cidrsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the non-obvious empty-list reset behavior, but does not mention permissions, reversibility, or impact on existing connections. It adds some value but is not fully transparent for a mutation tool.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action and followed by the key behavioral note. Every word earns its place, with no redundancy or fluff.

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

Completeness3/5

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

The tool is simple and an output schema exists, so return values need not be described. However, as a mutation with no annotations, the description does not provide context on prerequisites or potential disruptions. The note about the empty-list behavior helps, but the overall context is somewhat minimal.

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

Parameters3/5

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

The schema has 0% description coverage. The description adds meaning to the tcp_allowed_cidrs parameter by explaining the empty-list behavior, but it does not explain the CIDR format or provide any additional context for database_id beyond its name.

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

Purpose5/5

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

The description clearly states the action (update), the resource (provisioned database's public TCP IP allowlist), and the scope (the allowlist). It distinguishes from sibling tools like create_database and get_database_connection_details by focusing on the allowlist update behavior.

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

Usage Guidelines3/5

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

The description implies usage for modifying the IP allowlist and explicitly mentions the empty-list behavior to allow all IPs. However, it does not provide explicit alternatives, prerequisites, or when-not-to-use scenarios, so the guidance is only implicit.

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

update_user_contextB

Update the caller's stored PlugLayer user context memory. Use this carefully for durable preferences, project/app mappings, prior decisions, and user-specific deployment habits.

ParametersJSON Schema
NameRequiredDescriptionDefault
mergeNo
context_patchYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

Without annotations, the description must convey behavioral traits. It mentions 'stored' and 'durable', implying persistence, and limits scope to the caller. However, it fails to disclose how the context_patch is applied (merge vs replace) or the effect of the 'merge' parameter, which is critical behavioral information for a mutation tool. The cautionary 'Use this carefully' hints at risks but does not explain them.

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

Conciseness5/5

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

The description is two concise sentences. The first sentence states the core purpose, and the second provides usage guidance. It is front-loaded, contains no redundant information, and every word earns its place.

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

Completeness2/5

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

The tool has moderate complexity (2 params, nested object) and an output schema, but the description lacks critical details about the patch format and merge semantics. The use-case list adds some context, but the absence of parameter explanation and merge behavior makes the description incomplete for an agent to use it confidently. The output schema may cover return values, but the input side remains under-specified.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate. It does not explain the context_patch object structure or the merge boolean parameter at all. While it lists example content types (preferences, mappings), it gives no guidance on how to structure the patch or when to set merge to false. This leaves the agent blind on how to construct valid calls.

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

Purpose5/5

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

The description clearly states the action: 'Update the caller's stored PlugLayer user context memory.' It identifies the resource (PlugLayer user context memory) and explains the intended use cases (durable preferences, project/app mappings, prior decisions, user-specific deployment habits), which also distinguishes it from the sibling get_user_context tool that retrieves context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool: 'Use this carefully for durable preferences, project/app mappings, prior decisions, and user-specific deployment habits.' This indicates appropriate contexts and implies caution for non-durable or transient information, though it does not explicitly contrast with alternatives like get_user_context or state 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.

upload_image_archive_and_deployA

Upload a locally built Docker/OCI image archive to PlugLayer. If the target app already exists in the project, upload to that app first and redeploy it; otherwise create a new app from the mirrored image.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNolatest
nameYes
portsNo
env_varsNo
replicasNo
cpu_limitNo500m
project_idYes
route_slugNo
registry_idNo
command_argsNo
memory_limitNo512Mi
compute_placementNopersonal
redeploy_strategyNorecreate
image_archive_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of disclosing behavior. It does reveal the key conditional behavior (redeploy existing app vs create new app), which is valuable. However, it does not disclose side effects like downtime, resource replacement, or how redeploy_strategy affects the process, leaving the agent with incomplete behavioral expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two sentences that front-load the primary action and then state the conditional logic. Every word adds value, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 14 parameters and no annotations, this description is incomplete. It covers the high-level workflow but omits parameter semantics, validation rules, and operational nuances such as what fields are required or how the redeploy strategy is used. The output schema exists but does not compensate for the lack of context around inputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter meanings. It only clarifies the image archive path and the target app name. Most parameters (ports, env_vars, replicas, cpu_limit, memory_limit, compute_placement, redeploy_strategy, route_slug, registry_id, command_args) remain unexplained, making it difficult for an agent to know what values to provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool uploads a locally built Docker/OCI image archive to PlugLayer and then either redeploys an existing app or creates a new one. It uses specific verbs ('upload', 'deploy') and distinguishes from siblings like deploy_image by emphasizing 'locally built' and the conditional redeploy/create behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: when you have a local Docker/OCI image archive to deploy. It implicitly differentiates from alternatives by specifying the source is a local archive, but it does not explicitly mention alternatives or exclusions such as using deploy_image for registry-based images.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_image_archive_and_redeploy_appB

Rebuild flow for existing apps: upload a newly built image archive, push it with a new tag, keep the current slug, and redeploy the existing app.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNolatest
app_idYes
registry_idNo
wait_secondsNo
redeploy_strategyNorecreate
image_archive_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, placing full burden on the description. It describes the sequence of actions but omits critical behavioral details such as whether the operation causes downtime, is reversible, or requires special permissions. The schema shows a 'redeploy_strategy' parameter, but the description does not explain its effect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence covering the main flow, front-loaded with 'Rebuild flow for existing apps'. It is concise and avoids repetition, though it could be structured as a list for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex deployment tool with 6 parameters and 0% schema coverage, the description is inadequate. It does not explain prerequisites, success/failure behavior, or the role of the wait/strategy parameters. Although an output schema exists, it cannot compensate for missing input semantics and usage guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only hints at 'image archive' and 'new tag', leaving 'registry_id', 'wait_seconds', 'redeploy_strategy', and 'app_id' unexplained. The phrase 'keep the current slug' loosely relates to 'app_id' or slug but is not explicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the flow: 'upload a newly built image archive, push it with a new tag, keep the current slug, and redeploy the existing app.' This distinguishes from sibling 'upload_image_archive_and_deploy' by specifying 'existing apps' and 'keep current slug'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for existing apps' signals when to use this tool, but it does not explicitly name alternatives or state when not to use it. It implies deployment of new images to existing apps, but lacks direct comparison with 'redeploy' or 'upload_image_archive_and_deploy'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_custom_domainA

Verify a custom domain after DNS is added. Pass provider_name and dns_zone so an existing GoDaddy apex record gets actionable www + forwarding recovery guidance.

ParametersJSON Schema
NameRequiredDescriptionDefault
dns_zoneNo
domain_idYes
provider_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It adds a specific behavior: passing provider_name and dns_zone yields actionable www + forwarding recovery guidance for an existing GoDaddy apex record. However, it does not disclose potential side effects, permissions, or failure modes, leaving the transparency incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact—two sentences that lead with the action, then provide a concrete scenario. No redundant wording, all information contributes to understanding the tool's use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return values are covered elsewhere. The description covers the core action, the precondition, and a specific use case, but omits details about the verification process (e.g., DNS propagation checks, synchronous vs async) and error conditions. Given no annotations, this is a moderate level of completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must add parameter meaning. It explicitly explains the role of provider_name and dns_zone in enabling GoDaddy recovery guidance. domain_id is required and self-explanatory from its title, but the description does not elaborate on it. This is helpful but not exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Verify a custom domain') and specifies the context ('after DNS is added'), which distinguishes it from sibling tools like add_custom_domain, attach_custom_domain, and detect_custom_domain_provider. The mention of GoDaddy apex record recovery guidance further narrows its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear timing ('after DNS is added') and recommends passing provider_name and dns_zone specifically for GoDaddy apex records. However, it does not explicitly state when not to use this tool or mention alternatives for non-GoDaddy providers, which would make it a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 70 tool updatesv0.1.5
    • First observedadd_custom_domain
    • First observedanalyze_compose_deploy_plan
    • First observedapply_app_env_vars
    • First observedattach_custom_domain
    • First observedattach_node_to_project
    • First observedcheck_database_slug_availability
    • First observedcheck_slug_availability
    • First observedcreate_database
    • First observedcreate_project
    • First observeddelete_app
    • First observeddelete_database
    • First observeddelete_deployment
    • First observeddelete_project
    • First observeddeploy_compose
    • First observeddeploy_image
    • First observeddeploy_marketplace_template
    • First observeddetach_custom_domain
    • First observeddetach_node_from_project
    • First observeddetect_custom_domain_provider
    • First observedestimate_compute
    • First observedexec_app_terminal
    • First observedgenerate_github_actions
    • First observedget_app_connection_env_vars
    • First observedget_app_logs
    • First observedget_apps_by_project
    • First observedget_compose_local_build_commands
    • First observedget_compute_summary
    • First observedget_current_user
    • First observedget_database_connection_details
    • First observedget_database_logs
    • First observedget_deployment_status
    • First observedget_domains_by_project
    • First observedget_feedback
    • First observedget_logs
    • First observedget_marketplace_template
    • First observedget_my_available_compute
    • First observedget_my_available_computes
    • First observedget_my_projects
    • First observedget_project
    • First observedget_shared_compute_pricing
    • First observedget_task_status
    • First observedget_user_context
    • First observedinspect_local_github_repo
    • First observedlist_attachable_project_nodes
    • First observedlist_database_templates
    • First observedlist_deployments
    • First observedlist_marketplace_templates
    • First observedlist_my_feedback
    • First observedlist_nodes
    • First observedlist_pluglayer_compute_options
    • First observedlist_project_domains
    • First observedlist_projects
    • First observedlist_registries
    • First observedlist_user_databases
    • First observedredeploy
    • First observedremove_app
    • First observedremove_database
    • First observedremove_project
    • First observedrename_project
    • First observedrestart_app
    • First observedrestart_database
    • First observedrollback
    • First observedsubmit_feedback
    • First observedsync_database_env_to_app
    • First observedupdate_app_domain
    • First observedupdate_database_access
    • First observedupdate_user_context
    • First observedupload_image_archive_and_deploy
    • First observedupload_image_archive_and_redeploy_app
    • First observedverify_custom_domain

TDQS

C2.7/5.0
Disambiguation2/5

Many tools are near-duplicates or aliases (e.g., list_projects/get_my_projects, remove_database/delete_database, remove_app/delete_deployment/delete_app, get_app_logs/get_logs, get_my_available_compute/get_my_available_computes). This creates ambiguity about which variant is canonical or whether behavior differs. The project/node/compute/deploy/domain surface has overlapping concepts that require careful reading.

Naming Consistency3/5

Most names use verb_noun (list_projects, deploy_image, get_compute_summary), but there are inconsistent patterns: aliases (delete_ vs remove_ vs get_ vs list_), mixed styles (get_apps_by_project vs list_project_domains, get_my_available_compute vs get_my_available_computes), and some verbs like 'check_' 'detect_' 'submit_' are fine but the overall pattern is not uniform.

Tool Count1/5

70 tools is excessive for a single MCP server. While the domain (deployments, databases, compute, domains, feedback) is broad, this count overwhelms an agent. Many tools are aliases or minor variants that could be consolidated into parameterized calls. This is far beyond a typical well-scoped server.

Completeness4/5

The surface covers core lifecycle operations for projects, apps, databases, compute, domains, and feedback, including status checks and env var management. Minor gaps exist (e.g., no explicit database update besides access restart/remove, no explicit project member management), but the main workflows are covered. Aliases actually help ensure no obvious dead ends for common terms.

Maintenance

ActivityActive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pluglayer/mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server