list_keys
GET /v1/agent/keys — list active API key metadata (never plaintext).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
GET /v1/agent/keys — list active API key metadata (never plaintext).
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Changes observed during successful MCP inspections. Dates show when Glama detected each change.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses two important behaviors: it lists only 'active' keys and it never returns plaintext keys, only metadata. Since no annotations are provided, the description carries the full burden, and it covers the key security aspect. It does not mention side effects or response format, but for a read-only list operation, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that leads with the HTTP method and endpoint, then states the action and a critical constraint. Every word earns its place, and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list operation, the description covers the essential purpose and a key restriction (no plaintext). It does not specify the exact metadata fields or response structure, but given the tool's simplicity and the absence of an output schema, the description is adequate for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no semantics. The description adds context about the output (metadata, not plaintext), which informs what the tool returns. With the baseline for 0 params being 4, this is a solid score given the description complements the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('list') and resource ('active API key metadata'), and clearly distinguishes from mutation siblings like create_key and revoke_key by emphasizing it only lists metadata and never plaintext. This is a clear, specific purpose with no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool – when you need to view active API keys – but does not explicitly contrast it with alternatives or state when not to use it. However, given the sibling set includes create and revoke operations, the purpose is unambiguous enough that an agent can infer usage without further guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Several video tools are effectively duplicates: generate_video and video_queue both target POST /v1/video/queue, while get_generation_status and video_retrieve both call POST /v1/video/retrieve. The non-video tools are distinct, but these overlapping boundaries make it hard for an agent to choose the correct variant.
Tool names are uniformly snake_case and many follow a verb_noun pattern such as create_key, list_keys, and get_models. However, the video tools use an object-first video_* pattern, and names like agent_me, chat_completions, and funding_instructions break the dominant convention.
At 18 tools, the surface is on the heavy side, and the count is inflated by lower-level variants that duplicate agent-facing tools such as video_queue vs generate_video and video_retrieve vs get_generation_status. A leaner set could consolidate these while still covering account, key, model, image, and video workflows.
The set covers the account/key lifecycle, funding and price controls, model discovery, chat, image generation, and a full video quote/queue/status/retrieve/cleanup flow. It also provides request-trace recovery and capacity checks, so agents have no obvious dead ends for the stated domain.