Skip to main content
Glama

set_target_option

Idempotent

Change one safety or behavior option for an existing deployment target in projects.yaml, such as delete_missing or allowed_branches.

Instructions

Change one safety/behaviour option of an existing deployment target in projects.yaml. Options: delete_missing (owned = default, only delete files deployctl itself deployed; all; none), allowed_branches (list of branch names), require_clean (bool), insecure_tls (bool), post_deploy_delete (list of file patterns), app_url (string), zip_deploy (bool).

Input Schema

NameRequiredDescriptionDefault
valueNoNew value; null removes the option so the default applies
optionYesOption to change
projectYesProject name
environmentNoEnvironment name (default: production)production

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true, destructiveHint=false and openWorldHint=false, and the description goes beyond them by explaining what each option value means, including that delete_missing=owned is the default and only removes files deployctl itself deployed. It stops short of saying when the setting takes effect (next deploy vs. immediately) or whether values are validated, which is the one behavioral gap left for a config mutation.

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

Conciseness5/5

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

Two sentences: the action and scope first, then a compact option-to-type mapping. No filler, and the densest information (the option list) is placed after the statement of purpose.

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 must carry the load, and it does for purpose, target, storage location and value semantics. The remaining omission is what happens after the write (does the change require a subsequent deploy_project to take effect, what does the call return), which is a meaningful but modest gap for a simple config setter.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, and the description earns above that by adding semantics the enum alone lacks: delete_missing's three levels with their default, allowed_branches as branch names, post_deploy_delete as file patterns, and the type of each other option. It adds nothing for project, environment or value, but the schema already covers those.

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?

Names a specific verb and resource ("Change one safety/behaviour option of an existing deployment target") and pins the storage location (projects.yaml), which no sibling touches. It is clearly distinguishable from list_projects, deploy_project, show_project and set_remote_path.

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 "an existing deployment target" implies the project must already exist, and "Change one ... option" implies one option per call. But there is no explicit when-to-use/when-not, no mention that this does not deploy, and no pointer to deploy_project to apply the change. Usage is inferred rather than stated.

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