MCP serverholdings.proof/mcp-server
One API, all things verified — control, delegation, human approval, anti-impersonation.
Overview
Score?
UNRATED 0.496
of what a free look can see, on 26 looks
Looks
26
last 4 hr ago
Tools
171
changed 2 days ago
More info
URL
api.proof.holdings/mcp
streamable-http
Says it is
proof-holdings 1.2.0
protocol 2025-06-18
In the record since
24 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.496 · highest on record 0.8561
Toolsfrom sha256:9d1ace2f5d…4e1ceb · +0 −0 2 days ago
| Tool | Schema |
|---|---|
| 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 enrollment deep link.
Agent |
input · no output |
| 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 phone (per-channel f |
input · no output |
| 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 (Claude Code: /mcp → |
input · no output |
| 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 Proof account. Aut |
input · no output |
| 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), or sign in with sta |
input · no output |
| 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 → Authenticate), then cal |
input · no output |
| 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. Authenticate this clien |
input · no output |
| 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 Code: /mcp → Authen |
input · no output |
| 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 client (Claude Code: |
input · no output |
| 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 (Claude Code: /mcp → Auth |
input · no output |
| claim_request_assets Claim shared assets from a completed verification request.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login |
input · no output |
| 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 account. Authentic |
input · no output |
| 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 Code: /mcp → Authenti |
input · no output |
| 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: needs a Proof account. |
input · no output |
| 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 a Proof account. Au |
input · no output |
| 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.
ACCESS: needs a Proof |
input · no output |
| 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 — FOR TELEGRAM AND |
input · no output |
| 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 context. Optionally bind t |
input · no output |
| 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 authorization before confirmat |
input · no output |
| 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 in Telegram, which r |
input · no output |
| 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 member's declared channe |
input · no output |
| 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 owner practices confir |
input · no output |
| 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 HITL config reference |
input · no output |
| 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 publishable signed token. The |
input · no output |
| 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 account. Authenticate thi |
input · no output |
| 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 config, you must c |
input · no output |
| 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 one the suspicious co |
input · no output |
| 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 wins, yields a single p |
input · no output |
| create_profile Create a new profile with optional display name, bio, avatar, business info, and theme settings.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authe |
input · no output |
| 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 verification flow with |
input · no output |
| create_user_request Create a new verification request to ask another user to share verified assets.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign |
input · no output |
| create_verification Create a new identity verification. Initiates a verification flow for an asset identifier (phone number, email, domain, social handle, wallet address, account, or Telegram bot).
A |
input · no output |
| 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.
ACCESS: needs a Proof a |
input · no output |
| 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".
ACCESS: needs a Proof |
input · no output |
| 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. Authenticate this clien |
input · no output |
| delete_domain Remove a domain from the account. This cannot be undone.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login — |
input · no output |
| 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 client (Claude Code: |
input · no output |
| delete_hitl_keys Delete the encryption keypair from a HITL config. WARNING: Existing ciphertexts will become permanently unreadable.
ACCESS: needs a Proof account. Authenticate this client (Claude |
input · no output |
| delete_profile Delete a profile by ID. Cannot delete the primary profile if it is the only one.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then c |
input · no output |
| delete_profile_template Delete a custom profile template, reverting to the default template for that channel and message type.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → |
input · no output |
| delete_template Delete a custom template, reverting to the default template for that channel and message type.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authent |
input · no output |
| 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 (Claude Code: /mcp |
input · no output |
| export_data Export all account data (GDPR Article 20 - Right to Data Portability). Rate limited to 1 export per 24 hours.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: |
input · no output |
| extend_request Extend the expiration time of a pending verification request.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_log |
input · no output |
| 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 calling start_2fa. Chec |
input · no output |
| 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 sign in with start_ |
input · no output |
| get_add_phone_status Check the status of an in-progress phone addition by session ID. Poll until terminal state.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authentica |
input · no output |
| 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 attribution context (attribut |
input · no output |
| 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 client (Claude Code |
input · no output |
| 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 this client (Claude C |
input · no output |
| 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: needs a Proof account |
input · no output |
| 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 (Claude Code: /mcp → A |
input · no output |
| 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: needs a Proof account. |
input · no output |
| 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 alone cannot read thi |
input · no output |
| get_default_templates Get all default message templates. These are the built-in templates used when no custom template is set.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp |
input · no output |
| 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 only as live as the |
input · no output |
| get_dns_providers Get metadata for all supported DNS providers, including required credential fields and documentation links.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: / |
input · no output |
| 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 client (Claude Code: |
input · no output |
| 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 → Authenticate), th |
input · no output |
| get_hitl_keys Get the encryption keypair for a HITL config. Returns public key, encrypted private key, KDF salt, and key ID (kid).
ACCESS: needs a Proof account. Authenticate this client (Claud |
input · no output |
| 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 CONFIRM ran on, and — on |
input · no output |
| 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 completes, per-channel s |
input · no output |
| 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. Authenticate this client (C |
input · no output |
| 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 rates, HITL counts, an |
input · no output |
| 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. Authenticate this clien |
input · no output |
| 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. Authenticate this clien |
input · no output |
| 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 — a live proof reads |
input · no output |
| 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 → Authenticate), then call this |
input · no output |
| 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. Authenticate this cl |
input · no output |
| 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. Never returns the key h |
input · no output |
| 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 (Claude Code: /mcp → Au |
input · no output |
| get_settings Get account settings: branding (business name, logo, colors, support email, email theme), the outbound webhook endpoint with its event subscriptions, and the default proof lifetime |
input · no output |
| get_subscription Get the current subscription details including plan, status, billing period, and usage limits.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authent |
input · no output |
| get_template Get a specific template by channel and message type. Returns the custom template if set, otherwise the default.
ACCESS: needs a Proof account. Authenticate this client (Claude Cod |
input · no output |
| 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 (Claude Code: /mcp |
input · no output |
| 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 → Authenticate), o |
input · no output |
| get_verification Get a verification by ID. Returns the full verification object including status, channel, and proof token if verified.
ACCESS: needs a Proof account. Authenticate this client (Cla |
input · no output |
| 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 Code: /mcp → Authen |
input · no output |
| 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 → Authenticate), then call this |
input · no output |
| 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 (Claude Code: /mcp |
input · no output |
| get_webhook_stats Get webhook delivery statistics including total deliveries, success/failure counts, and recent activity.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp |
input · no output |
| 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 their messenger iden |
input · no output |
| 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 (Claude Code: /mcp → Aut |
input · no output |
| list_assets List all verified assets for the authenticated user. Assets are verified identities (phones, emails, domains).
ACCESS: needs a Proof account. Authenticate this client (Claude Code |
input · no output |
| list_auth_sessions List all active authentication sessions for the current user. Shows session details including channel, user agent, and expiry. When called via API key, no session is marked as is_c |
input · no output |
| list_authorizations List authorizations with optional filters. Returns paginated results.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this to |
input · no output |
| 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 Proof account. Authen |
input · no output |
| 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_hint, e.g. +9••••••4171 |
input · no output |
| 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 Proof account. Aut |
input · no output |
| list_confirmations List confirmations with optional filters. Returns paginated results with status and HITL config filtering.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /m |
input · no output |
| 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 status records only |
input · no output |
| list_dns_credentials List all stored DNS provider credentials for the authenticated account. Returns credential metadata (not secret values).
ACCESS: needs a Proof account. Authenticate this client (C |
input · no output |
| list_domains List all domains for the authenticated account. Returns domain metadata including verification status.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → |
input · no output |
| list_emails List all email addresses associated with the authenticated account.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with sta |
input · no output |
| list_hitls List HITL configs with optional filters. Returns paginated results.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool |
input · no output |
| 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 → Authenticate), or sig |
input · no output |
| list_my_requests List verification requests created by the authenticated user.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_log |
input · no output |
| list_phones List all phone numbers associated with the authenticated account.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start |
input · no output |
| list_profile_templates List all templates for a profile. Returns templates organized by channel and message type, merged with defaults.
ACCESS: needs a Proof account. Authenticate this client (Claude Co |
input · no output |
| list_profiles List all profiles for the authenticated account. Returns all profiles including primary and secondary.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → |
input · no output |
| list_revoked_proofs Get the revocation list for offline proof validation. Returns a signed list of all revoked proof IDs, cacheable for 5 minutes. |
input · no output |
| list_templates List all custom message templates for the authenticated account. Returns templates organized by channel and message type.
ACCESS: needs a Proof account. Authenticate this client ( |
input · no output |
| list_verification_requests List verification requests with optional filters. Returns paginated results.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call |
input · no output |
| list_verifications List verifications with optional filters. Returns paginated results.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this too |
input · no output |
| list_verified_users List verified users grouped by external_user_id. Shows all verifications per user.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then |
input · no output |
| list_webhook_deliveries List webhook delivery attempts with pagination and filtering. Shows delivery status, response codes, and timestamps.
ACCESS: needs a Proof account. Authenticate this client (Claud |
input · no output |
| poll_chat_id_discovery Poll a chat ID discovery token. Returns the discovered Telegram chat ID, user ID, and username once the user interacts with the bot.
ACCESS: needs a Proof account. Authenticate th |
input · no output |
| preview_profile_template Preview a profile template with sample data before saving. Shows how the message will look with placeholder variables filled in.
ACCESS: needs a Proof account. Authenticate this c |
input · no output |
| preview_template Preview a template with sample data before saving. Shows how the message will look with placeholder variables filled in.
ACCESS: needs a Proof account. Authenticate this client (C |
input · no output |
| regenerate_api_key Regenerate an API key, issuing a new secret while keeping the same ID and settings. The old key stops working immediately. The new secret is returned ONLY in this response. Note: t |
input · no output |
| remove_circle_member Remove a member from a Circle. Deletes the member's channels and revokes any live authorizations that routed through them.
ACCESS: needs a Proof account. Authenticate this client |
input · no output |
| remove_circle_member_channel Remove a channel from a Circle member. Removing the last channel is allowed (the member simply becomes unreachable).
ACCESS: needs a Proof account. Authenticate this client (Claud |
input · no output |
| remove_email Remove an email address from the account by ID. May require 2FA verification for sensitive operations.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → |
input · no output |
| remove_phone Remove a phone number from the account by ID. May require 2FA verification for sensitive operations.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → A |
input · no output |
| render_auth_link Render an authorization or verification URL as a clickable link followed by a scannable QR code inside a fenced code block. This is a local computation tool — no HTTP request is ma |
input · no output |
| render_template Render a template with provided variables. Returns the fully rendered message content.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), |
input · no output |
| request_hitl_authorization Request authorization for a HITL config. Sends consent requests to all configured channels (Telegram/WhatsApp). Users must approve before confirmations can be sent.
Agent usage: T |
input · no output |
| resend_domain_email Resend the domain verification email. Rate limited to 3 requests per minute.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in |
input · no output |
| resend_email_otp Resend the OTP code for an in-progress email addition.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login — a |
input · no output |
| resend_verification Resend a verification message (email channel only). Generates and sends a new code.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), the |
input · no output |
| retry_webhook_delivery Retry a failed webhook delivery. Creates a new delivery attempt with the same payload to the configured endpoint.
ACCESS: needs a Proof account. Authenticate this client (Claude C |
input · no output |
| revoke_api_key Revoke an API key by ID. The key will immediately stop working. This action cannot be undone.
Agent usage: This operation requires 2FA. Before calling, complete the 2FA flow: (1) |
input · no output |
| revoke_asset Revoke a verified asset by ID. The asset will be marked as revoked and associated proofs will no longer validate.
ACCESS: needs a Proof account. Authenticate this client (Claude C |
input · no output |
| revoke_auth_session Revoke a specific authentication session by ID. When called via JWT, cannot revoke the current session. When called via API key, any session can be revoked.
ACCESS: needs a Proof |
input · no output |
| revoke_authorization Revoke an active or pending authorization. Only authorizations with status "active" or "pending" can be revoked.
ACCESS: needs a Proof account. Authenticate this client (Claude Co |
input · no output |
| revoke_delegation Revoke ONE delegation. The domain control proof and sibling delegations stay valid; the revocation is mirrored into the proof registry so the CRL, status list and public status loo |
input · no output |
| revoke_proof Revoke a proof by its public handle (ph_ctl_* / ph_dlg_*) or a verification ID — the same addresses get_proof_status takes. The proof token will no longer validate anywhere: the st |
input · no output |
| search Prefix-anchored global account search across six resource buckets (verification_requests, verifications, hitl, confirmations, authorizations, api_keys). Case-sensitive prefix match |
input · no output |
| send_account_email Deliver the verification email for an account-bootstrap session created with channel "email". Public endpoint (no API key required).
Why this is a separate call: create_account de |
input · no output |
| set_primary_email Set an email address as the primary email for the account.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login |
input · no output |
| set_primary_phone Set a phone number as the primary phone for the account.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login — |
input · no output |
| set_primary_profile Set a profile as the primary profile. The previous primary profile becomes secondary.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), t |
input · no output |
| setup_domain_email Set up email sending for a verified domain. Configures the domain for sending verification emails from a custom address.
ACCESS: needs a Proof account. Authenticate this client (C |
input · no output |
| share_request_email Send an email notification to the subject of a verification request.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with st |
input · no output |
| start_2fa Start a two-factor authentication challenge for a sensitive operation. Sends a verification code via the chosen channel. Returns a session ID, and for messaging channels: deep_link |
input · no output |
| start_2fa_for_action Start a 2FA challenge that grants the authenticated user permission to perform a sensitive action. The 2FA must complete on a channel DIFFERENT from the user's last login channel ( |
input · no output |
| start_add_email Start adding a new email address. Sends an OTP code to the email. Returns a session ID to verify with.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → |
input · no output |
| start_add_phone Start adding a new phone number. Uses reverse OTP: the system sends a message and the user replies. Returns a session ID, deep_link, qr_code (base64 PNG), and qr_text (UTF-8 text Q |
input · no output |
| start_domain_email_verification Start domain verification via corporate email. Sends a verification code to a standard admin email address at the domain.
ACCESS: needs a Proof account. Authenticate this client ( |
input · no output |
| start_domain_verification Start a B2B domain verification. Creates a verification record and returns DNS/HTTP instructions for the customer to complete.
ACCESS: needs a Proof account. Authenticate this cli |
input · no output |
| start_login Start a login session by sending an authentication challenge to the user's chosen channel (Telegram, WhatsApp, SMS, or email). Returns a session ID and, FOR TELEGRAM AND WHATSAPP O |
input · no output |
| start_user_domain_verification Start a self-service domain verification session. The user proves ownership of a domain via DNS or HTTP challenge.
ACCESS: needs a Proof account. Authenticate this client (Claude |
input · no output |
| submit_verification_code Submit an OTP/challenge code for a pending verification. Accepted ONLY where we delivered the code out-of-band to the party being verified: type "email", and type "domain" with cha |
input · no output |
| test_verify Auto-complete a verification in test mode (pk_test_* API keys only). Useful for testing flows without real OTP delivery.
ACCESS: needs a Proof account. Authenticate this client (C |
input · no output |
| trigger_verification Trigger a DNS/HTTP verification check for a pending domain verification.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this |
input · no output |
| update_circle Update a Circle's name. Only the display name is mutable — the profile/identity binding is create-only.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp |
input · no output |
| update_hitl Update a HITL config. Can change name, channels, or timeout.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. |
input · no output |
| update_my_profile Update the current user's primary profile. Supports display name, bio, avatar, theme, custom links, and verification display settings.
ACCESS: needs a Proof account. Authenticate |
input · no output |
| update_profile Update a profile by ID. Supports changing display info, theme, custom links, and verification display settings.
ACCESS: needs a Proof account. Authenticate this client (Claude Cod |
input · no output |
| update_profile_proofs Update which verified assets (proofs) are displayed on a specific profile. Controls visibility, privacy masking, ordering, and labels.
ACCESS: needs a Proof account. Authenticate |
input · no output |
| update_profile_template Create or update a custom template for a specific profile, channel, and message type.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), t |
input · no output |
| update_public_proofs Update which verified proofs are visible on the user's public profile, including visibility, masking, and display order.
ACCESS: needs a Proof account. Authenticate this client (C |
input · no output |
| update_settings Update account settings: branding, the outbound webhook endpoint with its event subscriptions, and the default proof lifetime. Setting the first webhook endpoint creates the signin |
input · no output |
| update_template Create or update a custom template for a specific channel and message type. Replaces the default template.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /m |
input · no output |
| upload_hitl_keys Upload an encryption keypair for a HITL config. The server validates the RSA-4096 public key and computes the key ID. Note: the encrypted_private_key is already encrypted client-si |
input · no output |
| validate_proof Validate a proof token online. Checks the token signature, expiry, and revocation status against the server, and optionally that the proof is about the identifier you expect. Publi |
input · no output |
| verify_2fa Submit a verification code to complete a 2FA challenge. Rate limited to 10 attempts per minute.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authen |
input · no output |
| verify_2fa_magic_link Complete a 2FA challenge using a magic link token (received via email). No code submission needed — the token itself is the proof.
ACCESS: needs a Proof account. Authenticate this |
input · no output |
| verify_delegation Verify a Proof of Delegation — the attestation that a domain authorized a specific agent artifact. Pass either the artifact's card (MCP server.json / A2A agent card) or a raw deleg |
input · no output |
| verify_delegations Batch-verify up to 50 Proof of Delegation artifacts in one call — the inventory half of the checker (h-proof-checker-mcp): re-check everything you already trust instead of one veri |
input · no output |
| verify_domain Trigger domain verification. Checks DNS records or other verification method to confirm domain ownership.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mc |
input · no output |
| verify_domain_with_credentials Verify a pending domain using previously stored DNS credentials. Use when credentials are already connected.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: |
input · no output |
| verify_email_otp Submit the OTP code to verify an email addition. Completes the add-email flow if the code is correct.
ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → |
input · no output |
| wait_for_2fa Poll a 2FA session until the user completes the challenge. Uses exponential backoff (2s initial, 1.5x, 30s max) with jitter.
Agent usage: Call this after start_2fa with the return |
input · no output |
| wait_for_account_creation Poll an account-bootstrap session until the user completes verification. Uses exponential backoff (2s initial, 1.5x, 30s max) with jitter.
Agent usage: Call this after create_acco |
input · no output |
| wait_for_chat_id_discovery Poll a chat ID discovery token until the user interacts with the Telegram bot. Uses exponential backoff (2s initial, 1.5x, 30s max) with jitter.
Agent usage: Call this after creat |
input · no output |
| wait_for_confirmation Poll a confirmation until the approver responds. Uses exponential backoff (2s initial, 1.5x, 30s max) with jitter.
Agent usage: Call this after create_confirmation with the return |
input · no output |
| wait_for_login Poll a login session until the user completes authentication. Uses exponential backoff (2s initial, 1.5x, 30s max) with jitter.
Agent usage: Call this after start_login with the r |
input · no output |
| wait_for_request Poll a verification request until it reaches a terminal state (completed, expired, or cancelled). Uses exponential backoff (2s initial, 1.5x, 30s max) with jitter.
ACCESS: needs a |
input · no output |
| wait_for_session Poll a session until it reaches a terminal state (verified, failed, or expired). Uses exponential backoff (2s initial, 1.5x, 30s max) with jitter.
ACCESS: needs a Proof account. A |
input · no output |
| wait_for_verification Poll a verification until it reaches a terminal state (verified, failed, expired, revoked, or cancelled). Uses exponential backoff (2s initial, 1.5x, 30s max) with jitter.
A multi |
input · no output |
Verify it yourself
npx teppi-check https://api.proof.holdings/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M24XY90B97KFDB4BY9SEF478