Skip to main content
Glama
ProofHoldings

@proof-holdings/mcp-server

Official

get_2fa_status

Read-only

Poll a 2FA session by ID to see whether it is verified, pending, or expired, so you can proceed or restart.

Instructions

Check the status of a 2FA session by session ID. Returns whether the challenge has been completed, is pending, or has expired.

Agent usage: Poll this after calling start_2fa. Check every few seconds. Terminal states: "verified" (proceed with protected operation), "expired" (restart with start_2fa). While "pending", the user has not yet entered their code.

Before calling this for a challenge you created, make sure your reply text already shows the user what to act on — the link itself, the SMS text and number, or a note to check their inbox; a link that appeared only in a tool result is one they never saw.

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

TableJSON Schema
NameRequiredDescriptionDefault
session_idYes2FA session ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.1/5.0
Behavior4/5

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

With readOnlyHint already covering the safety profile, the description still adds substantial behavioral context: polling cadence, the meaning of each terminal state, and the requirement that the caller's reply text must surface the link/SMS before polling. It does not quantify rate limits or backoff, but the cadence guidance goes well beyond the annotation.

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 purpose and return states, then usage, then auth access. Every paragraph is functional, though the 'Agent usage' block runs somewhat long relative to a single-parameter read tool.

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?

For a read-only single-param tool with no output schema, the description compensates well by enumerating the returned states and stating the Proof account/API-key prerequisite. It stops short of situating itself against the sibling set (verify_2fa, wait_for_2fa), which is the remaining completeness gap.

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% for the single session_id parameter, so the schema already carries the full parameter definition. The description adds only the tie-in to start_2fa ('a challenge you created') and no format or provenance details, so baseline 3 is correct.

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 precise verb and resource ('Check the status of a 2FA session by session ID') and enumerates the possible outcomes (completed, pending, expired). An agent can distinguish this from get_verification or get_proof_status without opening any 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?

Gives clear when-to-use context ('Poll this after calling start_2fa. Check every few seconds') and maps terminal states to next actions ('expired' → restart with start_2fa). It never mentions wait_for_2fa, a sibling that appears to serve the blocking alternative to polling, which leaves one routing decision to inference.

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