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

@proof-holdings/mcp-server

Official

get_session

Read-only

Retrieve a session by ID to check its status, verification details, and proof token when verified; use it to confirm whether a session has completed verification.

Instructions

Get a session by ID. Returns the session status, verification details, and proof token if verified.

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
idYesSession ID

Output Schema

NameRequiredDescriptionDefault
idNoSession id
proofNoProof token after successful verification
statusNo
channelNoHow the person proves the number: `telegram` or `whatsapp` (the bot reads the number from their account), or `sms` (they text a short code from the number to one of ours).
created_atNo
verified_atNoOnce `verified`
phone_numberNoThe proven number (once `verified`)
verification_idNoThe verification record created on completion (once `verified`)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.7.2
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "channel": {
      +      "description": "How the person proves the number: `telegram` or `whatsapp` (the bot reads the number from their account), or `sms` (they text a short code from the number to one of ours)."
      +    },
      +    "created_at": {},
      +    "id": {
      +      "description": "Session id"
      +    },
      +    "phone_number": {
      +      "description": "The proven number (once `verified`)"
      +    },
      +    "proof": {
      +      "description": "Proof token after successful verification"
      +    },
      +    "status": {},
      +    "verification_id": {
      +      "description": "The verification record created on completion (once `verified`)"
      +    },
      +    "verified_at": {
      +      "description": "Once `verified`"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv1.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so safety is covered, and the description adds real operational context: a Proof account is required, PROOF_API_KEY must be set with a server restart before retrying. That is exactly the kind of auth/prerequisite disclosure that annotations cannot express. Minor gap: nothing about behavior when the session ID is unknown or the session is unverified beyond the conditional "if verified".

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 paragraphs, front-loaded with the purpose and return contents, with the access prerequisite isolated so it is easy to scan. Nothing is redundant, though the ACCESS block reads as setup instructions rather than tool semantics.

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?

A one-parameter read tool with an output schema and readOnlyHint has little it must explain, and the description covers purpose, return shape, and the auth prerequisite that would otherwise cause a silent failure. Only the sibling-selection question (get_session vs wait_for_session) is left unanswered.

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 coverage is 100% with a single required `id` string, so the schema already carries the parameter meaning. The description only echoes it as "by ID" and adds no format, prefix, or lookup guidance. Baseline 3 applies.

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?

"Get a session by ID" is a specific verb+resource, and the second sentence enumerates what comes back (status, verification details, proof token). It does not explicitly distinguish itself from sibling readers like wait_for_session or list_auth_sessions, so it stops short of a 5.

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?

Provides a concrete negative routing hint — "start_login does NOT open this tool" — which preempts a likely agent mistake, plus the prerequisite for making the call work at all. It never names the alternative tool to use when the session is not yet ready (e.g. wait_for_session), so it is clear context rather than full when/when-not coverage.

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