Skip to main content
Glama
@proof-holdings/mcp-server

@proof-holdings/mcp-server

Official

list_api_keys

Read-only

Retrieve metadata for all API keys tied to your authenticated Proof account without exposing secret key values.

Instructions

List all API keys for the authenticated account. Returns key metadata (not the secret key values).

ACCESS: needs a Proof account. Set PROOF_API_KEY and restart this server, or sign in with start_login — a session opens this tool — then call this tool again.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.7.2
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "data": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "created_at": {
      +            "type": "string"
      +          },
      +          "environment": {
      +            "type": "string"
      +          },
      +          "expires_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "last_used_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "prefix": {
      +            "type": "string"
      +          },
      +          "profile_id": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "replaced_key_ids": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "scopes": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "name",
      +          "prefix",
      +          "environment",
      +          "scopes",
      +          "profile_id",
      +          "expires_at",
      +          "created_at",
      +          "replaced_key_ids"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "data"
      +  ],
      +  "type": "object"
      +}
  2. First observedv1.1.0

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered, and the description adds genuinely useful context: auth prerequisites and the fact that secret key values are never returned. That caveat prevents an agent from expecting secrets in the response. Beyond that it discloses nothing about ordering, pagination, or what happens with revoked keys — though the output schema likely covers the return shape.

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?

Two short blocks with the purpose leading and the access prerequisite following; the critical 'not the secret key values' caveat is placed early. The ACCESS paragraph is operational rather than descriptive, but it carries real information an agent needs to succeed on first call.

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?

Everything an agent needs is present: what is listed, what is excluded from the response, the auth precondition with a recovery path, and an output schema that defines the return shape. The only missing piece is differentiation against the singular/usage sibling tools.

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 zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-param tool is 4. The description correctly implies no filtering or scoping arguments are accepted.

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 and resource — 'List all API keys for the authenticated account' — and clarifies the return scope ('key metadata (not the secret key values)'). It is distinguishable from siblings like create_api_key or revoke_api_key by the list verb, though it never explicitly contrasts with get_self_api_key or get_api_key_usage, which are the closest neighbours.

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 concrete prerequisite guidance: a Proof account is required, and it names two paths to satisfy that (set PROOF_API_KEY and restart, or sign in with start_login then re-call). It does not say when to prefer this over get_self_api_key or get_api_key_usage, so it stops short of full when/when-not routing.

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

Deploy Server

Other Tools