Skip to main content
Glama

deploy_project

DestructiveIdempotent

Deploy project files to a remote server using credentials loaded securely from the OS keychain or Vault, with dry-run diffs and confirmation before production changes.

Instructions

Deploy project files to a remote server using credentials securely loaded from macOS Keychain / Linux SecretService / Vault. Never requires or exposes passwords. Returns a JSON report: status, git branch/commit, warnings, added/modified/deleted files and any failed uploads or deletes.

Input Schema

NameRequiredDescriptionDefault
yesNoConfirm a production deployment. Leave false first: the call then stops with CONFIRMATION_REQUIRED (production) or DELETIONS_NEED_CONFIRMATION (server-only files would be deleted) and returns the diff; repeat it with yes=true once the diff has been reviewed.
app_urlNoPublic web URL of the target app for triggering remote PHP extraction bridge
dry_runNoSimulate deployment and calculate diff without uploading any files
projectYesThe name of the project to deploy (e.g. my-webapp)
zip_deployNoUse fast Zip packaging and remote PHP auto-extraction bridge (ideal for large codebases and vendor folders)
environmentNoTarget environment (e.g. production, staging)production
remote_scanNoCompare against a fresh scan of the server instead of the local state cache
force_branchNoDeploy even when the target's allowed_branches / require_clean policy blocks it

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, openWorldHint=true, and idempotentHint=true; the description adds genuinely non-redundant context about how credentials are obtained (Keychain/SecretService/Vault) and that passwords are never exposed. It also partially names destructive consequences ('deleted files', 'failed ... deletes'), but does not warn about server-only file deletion or the confirmation gate, which is the riskiest 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?

Three tightly packed sentences: action and scope first, security guarantee second, return payload third. No filler and no repetition of schema details.

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?

With no output schema, the description usefully enumerates the JSON report fields, and credentials handling is covered. The main missing element is the two-step confirmation flow and dry-run-first workflow, which are behavioral essentials for a destructive deployment tool, even though the schema hints at 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?

Schema description coverage is 100%, so every parameter is already well documented in the schema (including the important 'yes' confirmation semantics). The description adds no parameter-level meaning beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Deploy project files to a remote server') plus the credential source and return shape, so an agent immediately knows this is the mutation/deploy operation. It is clearly distinct from the list/show/test siblings, though it never explicitly contrasts with any of them.

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

Usage Guidelines2/5

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

The description gives no when-to-use/when-not-to-use guidance: it does not mention that a first call with yes=false returns CONFIRMATION_REQUIRED, nor when to prefer dry_run, remote_scan, or zip_deploy. That confirmation workflow exists only in the schema's 'yes' parameter text, not in the description, and force_branch's policy-override risk is unaddressed.

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