Skip to main content
Glama
plesk-deploy-mcp

plesk-deploy-mcp

Validate the deploy kit

validate_deploy_kit
Read-onlyIdempotent

Validates a Plesk deploy kit by syntax-checking scripts, parsing workflows, checking safety settings and secrets, and running release manager tests in a temporary folder.

Instructions

Checks the deploy kit in a project (deploy/plesk/ and .github/workflows/deploy-plesk.yml) without touching anything outside a temporary folder. It runs bash -n on every script, shellcheck if installed, a YAML parse of the workflows, and checks of the workflow’s safety settings (StrictHostKeyChecking=yes, the production environment, deploys never cancelled, the SSH key removed, read-only permissions, callable CI). It confirms that the release manager kept every safety check and that a backup runs before migrations, and scans for secrets (reporting file and line, never the value). It also runs the release manager’s test suite against the project’s own copy in a temporary folder, with stand-ins for pm2, node and the network. Use it after generate_deploy_kit writes the kit, and after any change to it.

Input Schema

NameRequiredDescriptionDefault
appNoThe app name, if deploy/plesk holds more than one *-deploy script
project_dirNoAbsolute path of the repository root. Defaults to the open project in Claude Code.
run_release_manager_testsNoRun the release manager suite (about 20 seconds)

Output Schema

NameRequiredDescriptionDefault
okYes
appNo
checksYes
project_dirYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, yet the description still adds substantial behavior: everything happens inside a temporary folder, mutations to the project are avoided, secrets are reported by file and line but never by value, and pm2/node/network are stubbed during tests. That is real context an agent could not infer from the hints.

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

Conciseness4/5

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

Front-loaded with the core action and scoping constraint, and nearly every clause adds a distinct fact. The fourth sentence is long and list-heavy, which slightly hurts scannability, but no sentence is filler.

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

Completeness5/5

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

An output schema exists, so return values needn't be explained; the description instead covers isolation, what is checked, and how secrets are handled. For a read-only validator with three optional parameters, that is everything an agent needs before calling it.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented in the schema, making a baseline 3 appropriate. The description only tangentially adds meaning, noting the release-manager suite runs against the project's own copy with stand-ins, which lightly contextualizes run_release_manager_tests but gives no new syntax or defaults.

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

Purpose5/5

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

States a specific verb and resource ("Checks the deploy kit in a project") and immediately names the exact artifacts inspected (deploy/plesk/ and .github/workflows/deploy-plesk.yml). The enumeration of checks (bash -n, shellcheck, YAML parse, safety settings, secret scan) makes it unmistakable next to siblings like generate_deploy_kit or deploy_status.

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

Usage Guidelines4/5

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

Gives explicit timing guidance: "Use it after generate_deploy_kit writes the kit, and after any change to it," which ties it to a specific sibling and workflow stage. It lacks an explicit when-not statement (e.g. don't use on a repo without a kit), so it falls just 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.