Skip to main content
Glama
canopy-labs

Featureflip

Official

Add, update, or remove a variation

manage_variation
Destructive

Add, update, or remove feature flag variations. Use key and value for add; variationId for update or remove. Removal fails if other flags depend on it.

Instructions

Manage a flag's variations. action=add requires key + value; action=update/remove require variationId (get ids via get_flag). Removing a variation fails with VARIATION_HAS_DEPENDENTS if other flags depend on it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyNoRequired for add; immutable afterwards
flagYes
nameNo
valueNoVariation value serialized as a string; required for add
actionYes
projectYes
descriptionNo
variationIdNoRequired for update/remove

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.6

TDQS

A4.1/5.0
Behavior4/5

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

With destructiveHint=true already signaling mutation risk, the description adds the VARIATION_HAS_DEPENDENTS failure mode and the dependency condition. It also discloses the need to obtain variationId via get_flag, which goes slightly beyond the annotation.

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?

At three sentences, the description is compact and front-loads the core action mapping. The opening sentence is somewhat redundant with the title, but the actionable conditional and failure-mode sentences earn their 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 description covers the action-dependent parameter requirements and a key failure mode, which is the main complexity of the tool. It does not describe the response shape or the semantics of optional fields like name/description, but the critical invocation knowledge is present.

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 only 38%, but the description mostly re-encodes what the schema already says for key, value, and variationId. It adds the useful 'get ids via get_flag' pointer but leaves name and description parameters unexplained, so it only partially compensates 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 states the tool manages a flag's variations and enumerates the three concrete actions (add/update/remove). It also differentiates from sibling tools by specifying action-specific requirements, making it unambiguous versus get_flag or update_flag.

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 context: use this tool to mutate variations, with action=add/update/remove. It points to get_flag as the source for variationId, which is an explicit prerequisite/alternative, though it does not state formal when-not-to-use exclusions.

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