Skip to main content
Glama
canopy-labs

Featureflip

Official

List SDK keys

list_sdk_keys
Read-only

List SDK keys for a specific project environment to inspect their IDs, names, types, last four characters, and active status; full keys are never returned.

Instructions

List the SDK keys of one environment: id, name, type, last four characters, and whether each is active. The full key is never listed; it is shown once, when manage_sdk_key creates it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (default 20)
cursorNonext_cursor from a previous response
projectYesProject key
environmentYesEnvironment key, e.g. production

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsNo
_actionsNoCapability hints: which operations the authenticated caller may perform on this resource, each with allowed + optional reason. Computed from the caller's role and the resource's state. Injected at runtime; safe to ignore. Present only on top-level resource responses — nested occurrences (e.g. a rule inside a targeting-config response) do not carry it.
next_cursorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so safety is covered. The description adds a genuine behavioral fact beyond the annotations and schema: the full key is never returned and is visible only once at creation time. That is meaningful security-relevant context an agent needs before reporting results to a user.

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 short sentences: the first front-loads what is listed, the second carries the security caveat. No filler, no restatement of the tool name.

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

Completeness5/5

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

An output schema exists, so return values need no prose explanation. Between the scope statement, the field enumeration, and the full-key caveat, nothing an agent needs to call and interpret this tool correctly is missing.

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 project, environment, limit, and cursor are already documented in the schema. The description adds no extra syntax or format detail about those parameters, so the baseline 3 applies.

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?

States a specific verb (List) and resource (SDK keys), scopes it to "one environment", and enumerates the returned fields (id, name, type, last four characters, active status). It also names the sibling manage_sdk_key, so an agent can distinguish listing from creation without opening either schema.

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 scopes usage clearly to a single environment and explains the relationship with manage_sdk_key (the only place the full key appears). It does not spell out when-not to use this tool or mention pagination trade-offs, but the context is unambiguous for a list operation.

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