Skip to main content
Glama
canopy-labs

Featureflip

Official

Wrap a feature in a new flag

wrap_feature

Create a Boolean feature flag and get an SDK snippet to guard new code. The flag starts disabled; enable it later with toggle_flag.

Instructions

Create a Boolean feature flag and get back the SDK code snippet to guard the new code path with it. Returns the snippet only — apply the edit yourself. The flag starts DISABLED in every environment; enable it with toggle_flag when ready.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYesFlag key, e.g. new-checkout
nameNoDisplay name; defaults to the key
tagsNo
projectYesProject key
languageYesSDK language of the codebase being edited
descriptionNoWhat this flag guards
idempotency_keyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.6

TDQS

A4.2/5.0
Behavior4/5

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

Beyond destructiveHint=false, the description reveals that a flag is actually created, that the tool returns only the snippet and does not modify code, and that the flag starts disabled in all environments. This is valuable behavioral context for an agent. It doesn't cover idempotency or conflict behavior, but there is no contradiction with annotations.

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 short sentences front-load the core behavior, then state the snippet-only constraint and the initial disabled state with the enablement path. No filler or redundant restatement.

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 7-param tool with no output schema, the description covers the essential call outcome (create flag, get snippet), the manual edit step, and the disabled initial state with enablement path. It omits snippet format and conflict/idempotency behavior, but the schema plus annotations cover enough for confident 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?

The description doesn't explain any parameters; the schema carries most of the meaning, with descriptions for key, name, project, language, and description, leaving tags and idempotency_key undocumented. At 71% coverage, the description doesn't compensate for the missing two but the schema is largely sufficient.

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 names a concrete action ('Create a Boolean feature flag') and a differentiating deliverable ('SDK code snippet'), and clarifies the flag's disabled initial state. This clearly separates it from sibling create_flag even without naming it.

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 the context for use — wrapping a new code path — and explicitly says the agent must apply the snippet itself, plus points to toggle_flag for later enablement. It doesn't enumerate exclusions versus create_flag, but the context is clear enough.

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