Skip to main content
Glama

List API keys

list_api_keys
Read-onlyIdempotent

Requires the admin scope or higher. Lists the project's API keys without plaintext values. Each has its non-secret prefix, scope (read, write or admin), created_by_key_id (the key that minted it, absent for a dashboard key; revoking a key revokes every key below it), last_used_at and last_used_surface (mcp, terraform or api; both absent when never used). last_used_surface comes from the caller-controlled User-Agent header: a hint, not proof of identity. A sign-in over MCP (OAuth) is granted read or write, never admin, so there it returns 403; an admin API key works.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare a read-only, idempotent, non-destructive read, so the bar is lower, yet the description adds substantial context: the admin-scope requirement, the 403 behavior for MCP OAuth sessions, the fact that plaintext values are omitted, the revocation-cascade semantics of created_by_key_id, and the caveat that last_used_surface is caller-controlled and only a hint. This is rich, non-obvious behavioral disclosure.

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?

Front-loaded with the auth prerequisite and every sentence carries information (return fields, revocation cascade, User-Agent caveat). It is a single dense block rather than a structured list of fields, which slightly hurts scannability, but there is no filler or repetition.

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?

There is no output schema, so the description must (and does) explain the returned fields: prefix, scope, created_by_key_id, last_used_at and last_used_surface, including when they are absent. Combined with the auth/403 behavior, an agent has everything needed to call and interpret this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so the baseline is 4. The description correctly does not invent parameter semantics, and the absence of any accepted input (e.g. no pagination/filter options) is consistent with the empty schema.

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+resource ('Lists the project's API keys') and immediately scopes what is returned ('without plaintext values'). This cleanly separates it from siblings create_api_key, revoke_api_key and regenerate_api_key. An agent knows exactly what operation this is.

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?

Gives a clear precondition ('Requires the admin scope or higher') and a key negative case: an MCP OAuth sign-in is granted read or write, never admin, so there it returns 403. It does not explicitly name sibling alternatives (e.g. create_api_key for minting), but the scope and auth conditions make the when-to-use context clear.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.