Skip to main content
Glama
canopy-labs

Featureflip

Official

Create feature flag

create_flag

Create a Boolean, String, Number, or Json feature flag across every project environment, disabled by default, so agents can control rollouts and targeting.

Instructions

Create a feature flag. type is one of Boolean|String|Number|Json. Boolean flags get true/false variations automatically; for other types pass initialVariations. The flag is created in every environment of the project (disabled).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYesUnique flag key, e.g. checkout-v2
nameYes
tagsNo
typeYes
projectYesProject key
ownerEmailNoOptional owner: the email of an active member (Pro plan and above, see set_flag_owner). Omitted, a personal access token makes its own user the owner and a service token leaves the flag unowned
descriptionNo
expiresAtUtcNoOptional date (YYYY-MM-DD, end of that UTC day) or ISO-8601 timestamp the flag is expected to be removed by (see set_flag_expiry)
idempotency_keyNoIdempotency-Key header for safe retries
clientSideVisibleNoExpose to client-side SDKs (browser/mobile)
initialVariationsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.1.9
    • changedInput schema / properties / expiresAtUtc / description
      Previous value: -"Optional ISO-8601 UTC instant the flag is expected to be removed by (see set_flag_expiry)"New value: +"Optional date (YYYY-MM-DD, end of that UTC day) or ISO-8601 timestamp the flag is expected to be removed by (see set_flag_expiry)"
    • addedInput schema / properties / ownerEmail
      Added value: +{
      +  "description": "Optional owner: the email of an active member (Pro plan and above, see set_flag_owner). Omitted, a personal access token makes its own user the owner and a service token leaves the flag unowned",
      +  "type": "string"
      +}
  2. Changed1 schema field changedv0.1.8
    • addedInput schema / properties / expiresAtUtc
      Added value: +{
      +  "description": "Optional ISO-8601 UTC instant the flag is expected to be removed by (see set_flag_expiry)",
      +  "type": "string"
      +}
  3. First observedv0.1.6

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only supply destructiveHint=false, so the description carries most of the burden and delivers real value: the flag is created in every environment and starts disabled, and Boolean flags auto-generate true/false variations. It omits return shape, key-conflict behavior, and permission requirements.

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?

Three tight sentences with the verb+resource front-loaded, then type semantics, then environment behavior. The only minor redundancy is restating the enum values already in the schema.

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

Completeness3/5

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

For an 11-parameter create tool with no output schema and thin annotations, the description covers the key creation semantics but leaves gaps around conflict/duplicate handling, default idempotency behavior, and the created resource's identity.

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?

At 55% schema coverage, the description adds genuine cross-parameter meaning: type drives whether initialVariations is needed, and it restates the type enum. However the remaining parameters (name, tags, description, and the rest) get no added semantic detail, so it only partly compensates.

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+resource ('Create a feature flag') that is immediately distinguishable from sibling mutations like update_flag, toggle_flag, and delete_flag. It does not explicitly name a sibling to contrast against, so it stops short of a 5.

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?

Usage is implied by the verb (this is the tool for making a new flag), and it gives one conditional hint ('for other types pass initialVariations'). It offers no explicit when-to-use/when-not guidance versus update_flag or any alternative.

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