# Proof MCP server

Source: https://glimind.com/server/mcp-registry%2Fholdings.proof%2Fmcp-server
Registry id: `mcp-registry/holdings.proof/mcp-server`
Status: live (checked 2026-10-27T07:53:05.472Z)

## Measurements (30 days)

- Uptime: 99.98%
- Checks: 5050
- Outages (90 days): 1

## Install

```json
{
  "mcpServers": {
    "proof-mcp-server": {
      "type": "http",
      "url": "https://api.proof.holdings/mcp"
    }
  }
}
```

Claude Code:

```sh
claude mcp add --transport http proof-mcp-server https://api.proof.holdings/mcp
```

## Tools (167)

- `add_circle_member`: Add a pending member to a Circle by name, with an optional pre-declared WhatsApp phone. The Telegram chat id is captured later when the member taps the enrollme
- `add_circle_member_channel`: Declare a channel for a Circle member. Returns 409 if that channel type already exists on the member. The identifier is a Telegram chat id or an E.164 WhatsApp 
- `add_domain`: Add a new domain to verify ownership. Optionally specify email sending intent and verification method. ACCESS: needs a Proof account. Authenticate this client (
- `add_verification_provider`: Add an additional DNS provider for verification to an already-verified domain. Note: credentials will be visible in the AI conversation context. ACCESS: needs a
- `cancel_user_request`: Cancel a pending verification request. Only the creator can cancel. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), 
- `cancel_verification_request`: Cancel a pending verification request. Only pending requests can be cancelled. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Auth
- `check_domain_credentials`: Check if stored DNS credentials have access to a domain. Use before triggering verification to confirm the credentials work. ACCESS: needs a Proof account. Auth
- `check_domain_email_status`: Check the email sending setup status for a domain, including DNS record configuration progress. ACCESS: needs a Proof account. Authenticate this client (Claude 
- `check_domain_verification`: Check the status of a pending domain verification. Triggers a DNS/HTTP check and returns the updated status. ACCESS: needs a Proof account. Authenticate this cl
- `check_user_domain_verification`: Trigger a check on the domain verification challenge. Call after placing DNS record or HTTP file. ACCESS: needs a Proof account. Authenticate this client (Claud
- `claim_username`: Claim a unique username for the authenticated user's public profile. Usernames must be 3-30 characters, alphanumeric and underscores only. ACCESS: needs a Proof
- `confirm_domain_email_code`: Confirm domain email verification by submitting the code sent to the corporate email address. ACCESS: needs a Proof account. Authenticate this client (Claude Co
- `connect_cloudflare`: Connect a Cloudflare API token to a domain for automated DNS record management. Note: the API token will be visible in the AI conversation context. ACCESS: need
- `connect_dns_provider`: Connect a generic DNS provider to a domain using provider-specific credentials. Note: credentials will be visible in the AI conversation context. ACCESS: needs 
- `connect_godaddy`: Connect GoDaddy API credentials to a domain for automated DNS record management. Note: the API key and secret will be visible in the AI conversation context. AC
- `create_account`: Create an account-bootstrap session for agent-driven onboarding. Public endpoint (no API key required). Returns a session id, channel-specific instructions, and
- `create_api_key`: Create a new API key. The secret key value is returned ONLY in this response — store it securely. Note: the secret will be visible in the AI conversation contex
- `create_authorization`: Create a new authorization request. Authorizations grant permission to send confirmations to a user via a specific channel. The user must approve the authorizat
- `create_chat_id_discovery`: Create a Telegram chat ID discovery token. Returns a deep_link, qr_code (base64 PNG), and qr_text (UTF-8 text QR for terminal display). The user opens the link 
- `create_circle`: Create a Circle — a named group of trusted contacts (the people-primitive powering Proof-Me and Approvals-on-Circle). Optionally seed initial members; each memb
- `create_circle_member_drill`: Fire an on-demand Proof-Me drill against one enrolled member — a real cross-channel identity challenge carrying the scheduled-safety-check label (the account ow
- `create_confirmation`: Create a HITL confirmation request. Sends an approval request to the channels configured on the referenced HITL config. First response wins. Agent usage: The HI
- `create_delegation`: Create a delegation (Proof of Delegation): a control-proven domain authorizes a typed url/purl artifact for a set of capability scopes and receives a publishabl
- `create_dns_credential`: Store DNS provider credentials for automated domain verification. Note: credentials will be visible in the AI conversation context. ACCESS: needs a Proof accoun
- `create_hitl`: Create a HITL (Human-in-the-Loop) config. Defines which messaging channels receive approval requests and the default timeout. Agent usage: After creating a HITL
- `create_identity_challenge`: Create a Proof-Me cross-channel identity challenge (CONFIRM) for an enrolled Circle member. The account holder approves/denies on a channel different from the o
- `create_multi_channel_verification`: Create a multi-channel phone verification: one phone number challenged over several channels at once (OR / first-wins). The first channel the user completes win
- `create_profile`: Create a new profile with optional display name, bio, avatar, business info, email branding (theme, support email), and theme settings. ACCESS: needs a Proof ac
- `create_session`: Create a new phone verification session. Returns deep_link, qr_code (base64 PNG), and qr_text (UTF-8 text QR for terminal display). Sessions provide a hosted ve
- `create_user_request`: Create a new verification request to ask another user to share verified assets. Each asset is an object naming its type, e.g. { "type": "email" }. ACCESS: needs
- `create_verification`: Create a new identity verification. Initiates a verification flow for an asset identifier (phone number, email, domain, social handle, wallet address, account, 
- `create_verification_request`: Create a multi-asset verification request. Allows verifying multiple assets (phone, email, domain, social, wallet, account, telegram_bot) in a single flow. ACCE
- `delete_circle`: Archive a Circle (soft delete — sets status to archived). It stops appearing in the default list but is recoverable via list_circles with status="archived". ACC
- `delete_dns_credential`: Delete a stored DNS provider credential. Domains using this credential will need new credentials for automated verification. ACCESS: needs a Proof account. Auth
- `delete_domain`: Remove a domain from the account. Revokes every proof of the domain and every delegation issued from it (for good — re-adding the domain does not bring them bac
- `delete_domain_verification`: Delete a domain verification attempt that is not verified (pending, verifying or failed) — nothing is revoked. A verified domain, or one that needs re-verificat
- `delete_hitl`: Delete (archive) a HITL config. Sets status to archived. Cannot be used for new confirmations after deletion. ACCESS: needs a Proof account. Authenticate this c
- `delete_hitl_keys`: Delete the encryption keypair from a HITL config. WARNING: Existing ciphertexts will become permanently unreadable. ACCESS: needs a Proof account. Authenticate 
- `delete_profile`: Delete a project (profile). Revokes its API keys, archives the HITL setups and declines the pending requests created with its own keys, keeps its history but un
- `delete_template`: Delete a sub-account's (project's) custom template, reverting that project to the default template for the channel and message type. ACCESS: needs a Proof accou
- `export_authorizations`: Export authorizations as CSV or JSON. Supports date range and status filtering. Maximum 10,000 records. ACCESS: needs a Proof account. Authenticate this client 
- `export_data`: Export a complete copy of your account's data (GDPR Articles 15 and 20), or check on one. Owner only: sign in with start_login first (a connection with only an 
- `extend_request`: Extend the expiration time of a pending verification request. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sig
- `get_2fa_status`: 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 call
- `get_add_email_status`: Check the status of an in-progress email addition by session ID. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or 
- `get_add_phone_status`: Check the status of an in-progress phone addition by session ID. Poll until terminal state. Before calling this for a challenge you created, make sure your repl
- `get_api_key_usage`: Get per-API-key usage for a given key id: verification counts by type/channel/status, plus verification-request/confirmation/authorization totals, and attributi
- `get_asset`: Get a single verified asset by ID. Returns details including type, value, status, and verification timestamps. ACCESS: needs a Proof account. Authenticate this 
- `get_authorization`: Get an authorization by ID. Returns the current state of the authorization including status and usage statistics. ACCESS: needs a Proof account. Authenticate th
- `get_circle`: Get a Circle by ID. Returns the Circle including its members and per-member channel presence booleans (an identifier is NEVER returned — SEC-PM-006). ACCESS: ne
- `get_confirmation`: Get a confirmation by ID. Returns the full confirmation including status, response, and proof token. ACCESS: needs a Proof account. Authenticate this client (Cl
- `get_confirmation_approval_link`: Generate a fresh approval link for a pending confirmation. The link expiry inherits the confirmation timeout. Only works for pending confirmations. ACCESS: need
- `get_current_user`: Get the signed-in user's account details, plan and settings. Needs a login session: call start_login, then wait_for_login until it reports success. An API key a
- `get_default_templates`: Get all default message templates. These are the built-in templates a project sends when it has no custom template of its own. ACCESS: needs a Proof account. Au
- `get_delegation`: Get one of your delegations by Mongo id or ph_dlg_* handle. Returns the stored publishable token plus the DERIVED effective_status/is_valid — the delegation is 
- `get_dns_providers`: Get metadata for all supported DNS providers, including required credential fields and documentation links. ACCESS: needs a Proof account. Authenticate this cli
- `get_domain`: Get details of a specific domain by ID, including verification status, DNS records, and provider connections. ACCESS: needs a Proof account. Authenticate this c
- `get_hitl`: Get a HITL config by ID. Returns the config including channels, timeout, and status. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp 
- `get_hitl_keys`: Get the encryption keypair for a HITL config. With `hitl:read` it returns the public key, encrypted private key, KDF salt, and key ID (kid). A key holding `conf
- `get_identity_challenge`: Get a Proof-Me identity challenge by ID. Returns its status (pending, confirmed, denied, cancelled, failed, expired, revoked or suspended), the channel the CONF
- `get_multi_channel_verification_status`: Get the status of a multi-channel verification group by its group_id. Returns the aggregate status (pending/verified/expired), the winning_channel once one comp
- `get_my_profile`: Get the current user's primary profile. Returns profile details, theme, custom links, and public proof display settings. ACCESS: needs a Proof account. Authenti
- `get_platform_summary`: Get a one-call account snapshot: quota with end-of-month projection, request health (pending/completed/expired counts + success rate), per-channel completion ra
- `get_profile`: Get a specific profile by ID. Returns full profile details including theme, custom links, and verification display settings. ACCESS: needs a Proof account. Auth
- `get_profile_assets`: Get available verified assets that can be displayed on the user's profile. Returns assets eligible for public proof display. ACCESS: needs a Proof account. Auth
- `get_proof_status`: Get the status of a proof by its public handle (ph_ctl_* / ph_dlg_*) or a verification ID. Returns whether the proof is active, suspended, expired, or revoked —
- `get_request_by_reference`: Get a verification request by its reference ID (your unique identifier). ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authentica
- `get_request_proofs`: Get proof tokens for verified assets in a verification request. Returns proof tokens that can be used for offline verification. ACCESS: needs a Proof account. A
- `get_self_api_key`: Get the calling API key's own redacted metadata (id, name, key_prefix, environment, scopes, last_used_at, revoked_at, created_at) for agent self-inspection. Nev
- `get_session`: Get a session by ID. Returns the session status, verification details, and proof token if verified. ACCESS: needs a Proof account. Authenticate this client (Cla
- `get_settings`: Get account settings: the outbound webhook endpoint with its event subscriptions, and the default proof lifetime. Branding (name, logo, colour, email theme, sup
- `get_subscription`: Get the current subscription details including plan, status, billing period, and usage limits. ACCESS: needs a Proof account. Authenticate this client (Claude C
- `get_template`: Get the template a sub-account (project) sends for a channel and message type: its custom template if set (scope "project"), otherwise the default (scope "defau
- `get_usage`: Get usage metrics for the authenticated account. Shows verification counts, API calls, and quota usage. ACCESS: needs a Proof account. Authenticate this client 
- `get_user_domain_verification_status`: Get the current status of a domain verification session, including challenge details. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp
- `get_verification`: Get a verification by ID. Returns the full verification object including status, channel, and proof token if verified. Before calling this for a challenge you c
- `get_verification_request`: Get a verification request by ID. Returns the request with all its asset verification statuses. ACCESS: needs a Proof account. Authenticate this client (Claude 
- `get_verified_user`: Get a single verified user and their verifications by external user ID. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticat
- `get_webhook_delivery`: Get details of a single webhook delivery attempt including request/response payloads and retry history. ACCESS: needs a Proof account. Authenticate this client 
- `get_webhook_stats`: Get webhook delivery statistics including total deliveries, success/failure counts, and recent activity. ACCESS: needs a Proof account. Authenticate this client
- `invite_circle_member`: Mint a single-use enrollment invite for a Circle member. Returns Telegram + WhatsApp deep links and a QR code; the member taps the channel-matched link to bind 
- `list_api_keys`: List all API keys for the authenticated account. Returns key metadata (not the secret key values). ACCESS: needs a Proof account. Authenticate this client (Clau
- `list_assets`: List all verified assets for the authenticated user. Assets are verified identities (phones, emails, domains). ACCESS: needs a Proof account. Authenticate this 
- `list_auth_sessions`: List the current user's signed-in devices: every session that can still renew, idle ones included. Each shows its channel, user agent and expires_at, which is w
- `list_authorizations`: List authorizations with optional filters. Returns paginated results. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate)
- `list_circle_member_channels`: List a Circle member's channels. Returns channel metadata only (channel, status, verified_at) — an identifier is NEVER returned (SEC-PM-006). ACCESS: needs a Pr
- `list_circle_members`: List a Circle's members. Each member carries channel-presence booleans (has_telegram / has_whatsapp) and the masked phone they enrolled from (enrolled_phone_hin
- `list_circles`: List Circles with optional filters. Archived Circles are excluded by default; pass status="archived" to surface them. Returns paginated results. ACCESS: needs a
- `list_confirmations`: List confirmations with optional filters. Returns paginated results with status and HITL config filtering. ACCESS: needs a Proof account. Authenticate this clie
- `list_delegations`: List your own delegations with optional filters. Each item carries the DERIVED effective_status/is_valid beside its stored status — read effective_status, since
- `list_dns_credentials`: List all stored DNS provider credentials for the authenticated account. Returns credential metadata (not secret values). ACCESS: needs a Proof account. Authenti
- `list_domains`: List all domains for the authenticated account. Returns domain metadata including verification status. ACCESS: needs a Proof account. Authenticate this client (
- `list_emails`: List all email addresses associated with the authenticated account. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), 
- `list_hitls`: List HITL configs with optional filters. Returns paginated results. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), 
- `list_incoming_requests`: List incoming verification requests where the authenticated user is the subject. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Au
- `list_my_requests`: List verification requests created by the authenticated user. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sig
- `list_phones`: List all phone numbers associated with the authenticated account. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or
- `list_profiles`: List all profiles for the authenticated account. Returns all profiles including primary and secondary. ACCESS: needs a Proof account. Authenticate this client (
- `list_revoked_proofs`: Get the revocation list for offline proof validation. Returns a signed list of all revoked proof IDs. Reuse a fetched list for up to 5 minutes (its cache lifeti
- `list_templates`: List the custom message templates of one sub-account (project), organized by channel and message type. Templates belong to a project, not to the account: profil

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
