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

@proof-holdings/mcp-server

Official

list_confirmations

Read-only

Retrieve paginated confirmations and filter them by status, HITL config, date range, or sub-account profile to review human approval requests.

Instructions

List confirmations with optional filters. Returns paginated results with status, HITL config and sub-account (profile_id) filtering.

ACCESS: needs a Proof account. Set PROOF_API_KEY and restart this server, then call this tool again. start_login does NOT open this tool.

Input Schema

NameRequiredDescriptionDefault
pageNoPage number
limitNoItems per page
statusNoFilter by confirmation status
hitl_idNoFilter by HITL config ID
end_dateNoOnly confirmations created on or before this instant (ISO 8601)
profile_idNoOnly this sub-account's confirmations (sent through its HITL configs or created by its keys)
start_dateNoOnly confirmations created on or after this instant (ISO 8601)

Output Schema

NameRequiredDescriptionDefault
dataYes
paginationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv1.7.2
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / end_date
      Added value: +{
      +  "description": "Only confirmations created on or before this instant (ISO 8601)",
      +  "format": "date-time",
      +  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +  "type": "string"
      +}
    • addedInput schema / properties / page / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / profile_id
      Added value: +{
      +  "description": "Only this sub-account's confirmations (sent through its HITL configs or created by its keys)",
      +  "pattern": "^[0-9a-fA-F]{24}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / start_date
      Added value: +{
      +  "description": "Only confirmations created on or after this instant (ISO 8601)",
      +  "format": "date-time",
      +  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +  "type": "string"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "description": "Paginated list of confirmations",
      +  "properties": {
      +    "data": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "created_at": {
      +            "type": "string"
      +          },
      +          "hitl_id": {
      +            "allOf": [
      +              {
      +                "type": "string"
      +              },
      +              {}
      +            ]
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "message": {
      +            "type": "string"
      +          },
      +          "proof_token": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "resends": {
      +            "items": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "actor": {
      +                  "additionalProperties": {},
      +                  "properties": {
      +                    "api_key_id": {
      +                      "type": [
      +                        "string",
      +                        "null"
      +                      ]
      +                    },
      +                    "kind": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "kind",
      +                    "api_key_id"
      +                  ],
      +                  "type": "object"
      +                },
      +                "at": {
      +                  "type": "string"
      +                },
      +                "channels": {
      +                  "items": {
      +                    "additionalProperties": {},
      +                    "properties": {
      +                      "recipient": {
      +                        "type": "string"
      +                      },
      +                      "type": {
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "type",
      +                      "recipient"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "type": "array"
      +                }
      +              },
      +              "required": [
      +                "at",
      +                "actor",
      +                "channels"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "resolved_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "response": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "action": {
      +                    "type": "string"
      +                  },
      +                  "at": {
      +                    "type": "string"
      +                  },
      +                  "authorization_id": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "channel": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "decided_by": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "kid": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "public_key": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "signature": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "signed_input": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "text": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "action",
      +                  "at"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "status": {
      +            "type": "string"
      +          },
      +          "timeout_at": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "updated_at": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "hitl_id",
      +          "message",
      +          "status",
      +          "created_at",
      +          "updated_at"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "pagination": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "limit": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "page": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "total": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "total_pages": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "page",
      +        "limit",
      +        "total",
      +        "total_pages"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "data",
      +    "pagination"
      +  ],
      +  "type": "object"
      +}
  2. First observedv1.1.0

TDQS

A3.8/5.0
Behavior4/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, but the description adds real context the schema cannot: results are paginated and the tool is gated on an API key with a restart step, plus the explicit warning that start_login does not unlock it. Return shape detail is unnecessary because an output schema exists.

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?

Purpose is front-loaded in the first clause, and the access block is clearly separated and actionable. The second sentence partly repeats the filter list already implied by the first sentence, which is minor redundancy rather than bloat.

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?

With seven all-optional parameters, full schema coverage, an output schema, and readOnly annotations, the remaining burden on the description is purpose plus access gating, both of which it delivers. Nothing an agent needs to invoke this read-only listing 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 page, limit, status, hitl_id, profile_id, and the date bounds are already fully documented with formats and enums. The description merely restates that status, HITL config, and profile_id are filters, adding no syntax, default, or interplay guidance beyond the schema.

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?

The description opens with a specific verb and resource ("List confirmations") and notes that all filters are optional, which distinguishes it from the singular get_confirmation sibling. It does not explicitly name which sibling to use instead when the agent already has an ID, leaving that inference to the reader.

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?

It gives one genuinely useful usage rule: the tool requires a Proof account configured via PROOF_API_KEY and is explicitly NOT unlocked by start_login, which prevents a plausible wrong path. However, it says nothing about when to prefer this listing over get_confirmation or wait_for_confirmation, or whether pagination should be iterated.

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