Developer tools and code
proof
proof was answering at the last check. Checked on 2026-10-05 (daily check).
One API, all things verified - control, delegation, human approval, anti-impersonation.
Agents use servers like this to work with code, issues, builds and databases.
80 read-only48 change data43 high risk
https://api.proof.holdings/mcp
Follow (RSS): status changes, tool-list changes, new advisories and owner verification, in any feed reader.
Tools
171 tools: 80 read-only, 48 change data, 43 high risk (delete, pay, send or run code).
- read-only
- Only reads or looks things up. Safe for an agent to call on its own.
- changes data
- Creates, edits or sends something. Worth a person's approval the first time.
- high risk
- Can delete, pay, send on your behalf or run code. Hard or impossible to undo.
Connecting costs an agent about 45,041 tokens of tool definitions and a 1,339 ms handshake.
- high risk
cancel_verification_requestCancel a pending verification request. Only pending requests can be cancelled. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
revoke_proofRevoke 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 status endpoint, the public validator, the revocation list and the Token Status List all report it revoked. This action... - high risk
revoke_assetRevoke 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 Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
revoke_auth_sessionRevoke 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 account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT ... - high risk
update_settingsUpdate account settings: branding, the outbound webhook endpoint with its event subscriptions, and the default proof lifetime. Setting the first webhook endpoint creates the signing secret and returns it in this response; the value is returned only when this call created or rotated it, so record ... - high risk
update_templateCreate 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: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
delete_templateDelete 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 → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
create_profileCreate 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 → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
update_profileUpdate a profile by ID. Supports changing display info, theme, custom links, and verification display settings. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
delete_profileDelete 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 call this tool again. start_login does NOT open this tool. - high risk
set_primary_profileSet a profile as the primary profile. The previous primary profile becomes secondary. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
update_profile_templateCreate 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), then call this tool again. start_login does NOT open this tool. - high risk
delete_profile_templateDelete 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 → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
update_profile_proofsUpdate which verified assets (proofs) are displayed on a specific profile. Controls visibility, privacy masking, ordering, and labels. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
update_my_profileUpdate the current user's primary profile. Supports display name, bio, avatar, theme, custom links, and verification display settings. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
remove_emailRemove 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 → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - high risk
set_primary_emailSet 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 - a session opens this tool - then call this tool again. - high risk
remove_phoneRemove 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 → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - high risk
set_primary_phoneSet 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 - a session opens this tool - then call this tool again. - high risk
create_api_keyCreate 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 the key to a sub-account (project) via profile_id - outbound messages sent with the key are then branded as that proje... - high risk
revoke_api_keyRevoke 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) call start_2fa with action_type "api_key_revoke", (2) wait for user to verify the code, (3) poll get_2fa_status until ... - high risk
regenerate_api_keyRegenerate 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: the secret will be visible in the AI conversation context. Agent usage: This operation requires 2FA. Before calling, c... - high risk
delete_domainRemove 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 - a session opens this tool - then call this tool again. - high risk
connect_cloudflareConnect 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. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool -... - high risk
connect_godaddyConnect 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 account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens t... - high risk
connect_dns_providerConnect 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. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - t... - high risk
add_verification_providerAdd 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. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - th... - high risk
verify_domain_with_credentialsVerify a pending domain using previously stored DNS credentials. Use when credentials are already connected. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - high risk
create_dns_credentialStore DNS provider credentials for automated domain verification. Note: credentials will be visible in the AI conversation context. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this ... - high risk
delete_dns_credentialDelete a stored DNS provider credential. Domains using this credential will need new credentials for automated verification. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool ag... - high risk
cancel_user_requestCancel 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 start_login - a session opens this tool - then call this tool again. - high risk
update_public_proofsUpdate 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 (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - high risk
create_authorizationCreate a new authorization request. Authorizations grant permission to send confirmations to a user via a specific channel. The user must approve the authorization before confirmations can be sent. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then ca... - high risk
revoke_authorizationRevoke an active or pending authorization. Only authorizations with status "active" or "pending" can be revoked. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
update_hitlUpdate 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. start_login does NOT open this tool. - high risk
delete_hitlDelete (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: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
upload_hitl_keysUpload 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-side with the user's password - the server never sees the password. ACCESS: needs a Proof account. Authenticate this cl... - high risk
delete_hitl_keysDelete the encryption keypair from a HITL config. WARNING: Existing ciphertexts will become permanently unreadable. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
update_circleUpdate a Circle's name and/or owner name. Omitted fields are left unchanged; the profile/identity binding is create-only. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
delete_circleArchive 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 account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT ... - high risk
remove_circle_memberRemove 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 (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
remove_circle_member_channelRemove 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 (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - high risk
revoke_delegationRevoke 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 lookup all see it. Idempotent: a repeat revoke answers success with the same body, both here and through revoke_proof wi... - changes data
create_verificationCreate a new identity verification. Initiates a verification flow for an asset identifier (phone number, email, domain, social handle, wallet address, account, or Telegram bot). Agent usage: pass the asset `type`, the delivery `channel`, and the `identifier` (e.g. type "phone", channel "sms", ide... - changes data
trigger_verificationTrigger 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 tool again. start_login does NOT open this tool. - changes data
submit_verification_codeSubmit 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 channel "email". Any other pair answers 400 unsupported_for_type and completes elsewhere - use trigger_verification (POS... - changes data
resend_verificationResend a verification message (email channel only). Generates and sends a new code. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - changes data
test_verifyAuto-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 (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - changes data
start_domain_verificationStart 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 client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - changes data
check_domain_verificationCheck 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: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - changes data
create_multi_channel_verificationCreate 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 proof token, and cancels the losing siblings. Exactly one proof is billed, at the winning channel's completion - not o... - changes data
create_verification_requestCreate 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 account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT o... - changes data
create_sessionCreate 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 callbacks. Agent usage: After creating a session, pass the response's `deep_link` to render_auth_link so the user ca... - changes data
export_dataExport 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: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - changes data
retry_webhook_deliveryRetry 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 Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - changes data
start_add_emailStart 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 → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - changes data
verify_email_otpSubmit 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 → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - changes data
resend_email_otpResend 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 session opens this tool - then call this tool again. - changes data
start_add_phoneStart adding a new phone number by reverse OTP: the user starts the exchange themselves and nothing is sent before they do; the response's `instructions` field says what they do (on telegram the bot then asks them to tap a button that shares their number). Returns a session ID; on telegram/whatsa... - changes data
start_2faStart 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, qr_code (base64 PNG), and qr_text (UTF-8 text QR for terminal display). Agent usage - full 2FA flow: (1) Call start... - changes data
verify_2faSubmit 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 → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - changes data
verify_2fa_magic_linkComplete 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 client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this t... - changes data
add_domainAdd 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 → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - changes data
verify_domainTrigger domain verification. Checks DNS records or other verification method to confirm domain ownership. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - changes data
start_domain_email_verificationStart 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 (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - changes data
confirm_domain_email_codeConfirm domain email verification by submitting the code sent to the corporate email address. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - changes data
resend_domain_emailResend 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 with start_login - a session opens this tool - then call this tool again. - changes data
setup_domain_emailSet 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 (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - changes data
create_user_requestCreate 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 in with start_login - a session opens this tool - then call this tool again. - changes data
claim_request_assetsClaim 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 - a session opens this tool - then call this tool again. - changes data
extend_requestExtend 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_login - a session opens this tool - then call this tool again. - changes data
share_request_emailSend 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 start_login - a session opens this tool - then call this tool again. - changes data
start_user_domain_verificationStart 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 Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - changes data
check_user_domain_verificationTrigger 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 → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - changes data
claim_usernameClaim 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. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then cal... - changes data
create_confirmationCreate 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 referenced by hitl_id must be authorized before you can create confirmations. If this returns a 403 or "not authorized" error, ... - changes data
get_confirmation_approval_linkGenerate 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. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this... - changes data
create_hitlCreate 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 call request_hitl_authorization before it can be used with create_confirmation. For Telegram channels, use create_chat_... - changes data
request_hitl_authorizationRequest authorization for a HITL config. Sends consent requests to all configured channels (Telegram/WhatsApp). Users must approve before confirmations can be sent. Agent usage: This must be completed before create_confirmation will work for this HITL config. The consent request is DELIVERED to e... - changes data
create_chat_id_discoveryCreate 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 reveals their chat ID for HITL config setup. Agent usage: pass the response's `deep_link` to render_auth_link so the u... - changes data
create_identity_challengeCreate 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 contact reached the member on. Agent usage: poll get_identity_challenge with the returned ID until it leaves pending (c... - changes data
create_circleCreate 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 channels are stored so they can be invited to enroll. Agent usage: after creating a Circle, add members with add_circle_mem... - changes data
add_circle_memberAdd 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 usage: after adding a member, call invite_circle_member to mint the single-use enrollment link the member taps to bin... - changes data
invite_circle_memberMint 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 identity to the Circle. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then ... - changes data
create_circle_member_drillFire 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 confirming). Complements the automated daily drill + monthly reinforcement sweeps. ACCESS: needs a Proof account. Authentic... - changes data
add_circle_member_channelDeclare 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 format validated server-side). ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authentica... - changes data
create_delegationCreate 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 attestation is that the domain's controller authorized this artifact - nothing more; it says nothing about the artifa... - changes data
start_loginStart 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 ONLY, deep_link, qr_code (base64 PNG) and qr_text (UTF-8 text QR for terminal display); on sms it returns sms_message ... - changes data
create_accountCreate 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 WHATSAPP ONLY - deep_link, qr_code (base64 PNG) and qr_text (UTF-8 text QR). The endpoint is safe to call regardless ... - changes data
send_account_emailDeliver 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 deliberately sends NOTHING. A message from proof.holdings arriving in someone's inbox is an act with a person on the oth... - changes data
start_2fa_for_actionStart 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 (the backend enforces this). On success a grant is stored keyed by the user id and action_type; middleware on the prot... - read-only
get_verificationGet a verification by ID. Returns the full verification object including status, channel, and proof token if verified. 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 th... - read-only
list_verificationsList verifications with optional filters. Returns paginated results. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
list_verified_usersList 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 call this tool again. start_login does NOT open this tool. - read-only
get_verified_userGet 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 tool again. start_login does NOT open this tool. - read-only
wait_for_verificationPoll 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-channel verification that lost the race is "cancelled" and one whose proof was withdrawn is "revoked"; both are final... - read-only
get_multi_channel_verification_statusGet 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 statuses, and the proof token (with expires_at) when the group is verified. Before calling this for a challenge you cr... - read-only
get_verification_requestGet 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 → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_request_proofsGet 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 client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
list_verification_requestsList verification requests with optional filters. Returns paginated results. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_request_by_referenceGet 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 tool again. start_login does NOT open this tool. - read-only
wait_for_requestPoll 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 Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login do... - read-only
validate_proofValidate 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. Public endpoint - no API key required. - read-only
get_proof_statusGet 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 "active". ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this ... - read-only
list_revoked_proofsGet 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 lifetime), then fetch it again to see new revocations; if you cannot, its signature stays verifiable offline for 1 hour. - read-only
get_sessionGet 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 → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
wait_for_sessionPoll a session until it reaches a terminal state (verified, failed, or expired). Uses exponential backoff (2s initial, 1.5x, 30s max) with jitter. 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 n... - read-only
list_assetsList all verified assets for the authenticated user. Assets are verified identities (phones, emails, domains). ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_assetGet 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: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_current_userGet 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 this - for the key's own account use get_self_api_key or get_settings. ACCESS: needs a Proof account. Authenticate this ... - read-only
list_auth_sessionsList 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_current. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this to... - read-only
get_usageGet 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 → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_platform_summaryGet 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, and active API key count. The same data the dashboard home renders. The hitl_channels sub-object requires the hitl:read... - read-only
get_settingsGet account settings: branding (business name, logo, colors, support email, email theme), the outbound webhook endpoint with its event subscriptions, and the default proof lifetime. The webhook signing secret is NOT returned to an API key - the response reports webhook.secret_set instead, and the... - read-only
searchPrefix-anchored global account search across six resource buckets (verification_requests, verifications, hitl, confirmations, authorizations, api_keys). Case-sensitive prefix match over indexed plaintext fields only; recipient identifiers are masked. Results are scoped to the authenticated accoun... - read-only
get_self_api_keyGet 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 hash or full secret. Requires API-key auth - a JWT session has no single-key context (returns 400 api_key_required). A... - read-only
get_api_key_usageGet per-API-key usage for a given key id: verification counts by type/channel/status, plus verification-request/confirmation/authorization totals, and attribution context (attribution_cutoff_at, attributed_fraction). Counts only - no recipient identifiers. Scoped to the authenticated account; an ... - read-only
list_templatesList all custom message templates for the authenticated account. Returns templates organized by channel and message type. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_default_templatesGet 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 → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_templateGet 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 Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
preview_templatePreview 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 (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
render_templateRender a template with provided variables. Returns the fully rendered message content. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_webhook_statsGet webhook delivery statistics including total deliveries, success/failure counts, and recent activity. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
list_webhook_deliveriesList webhook delivery attempts with pagination and filtering. Shows delivery status, response codes, and timestamps. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_webhook_deliveryGet 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 → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_subscriptionGet the current subscription details including plan, status, billing period, and usage limits. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
list_profilesList all profiles for the authenticated account. Returns all profiles including primary and secondary. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_profileGet a specific profile by ID. Returns full profile details including theme, custom links, and verification display settings. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
list_profile_templatesList 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 Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
preview_profile_templatePreview 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 client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_my_profileGet 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 (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_profile_assetsGet 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 client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
list_emailsList all email addresses associated with the authenticated account. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - read-only
get_add_email_statusCheck 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_login - a session opens this tool - then call this tool again. - read-only
list_phonesList 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_login - a session opens this tool - then call this tool again. - read-only
get_add_phone_statusCheck 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 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 appe... - read-only
list_api_keysList 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 → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - read-only
get_2fa_statusCheck 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... - read-only
wait_for_2faPoll 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 returned session_id. Terminal states: "verified" (challenge completed - proceed with the protected operation), "expired" (of... - read-only
list_domainsList all domains for the authenticated account. Returns domain metadata including verification status. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - read-only
get_domainGet 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: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - read-only
get_dns_providersGet metadata for all supported DNS providers, including required credential fields and documentation links. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - read-only
check_domain_credentialsCheck 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 client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool ag... - read-only
check_domain_email_statusCheck the email sending setup status for a domain, including DNS record configuration progress. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - read-only
list_dns_credentialsList all stored DNS provider credentials for the authenticated account. Returns credential metadata (not secret values). ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - read-only
list_my_requestsList verification requests created by the authenticated user. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - read-only
list_incoming_requestsList incoming verification requests where the authenticated user is the subject. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - read-only
get_user_domain_verification_statusGet the current status of a domain verification session, including challenge details. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), or sign in with start_login - a session opens this tool - then call this tool again. - read-only
get_authorizationGet 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 Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
list_authorizationsList authorizations with optional filters. Returns paginated results. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
export_authorizationsExport 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 → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_confirmationGet 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 → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
list_confirmationsList confirmations with optional filters. Returns paginated results with status and HITL config filtering. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
wait_for_confirmationPoll 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 returned confirmation ID. Terminal states: "approved" (action authorized - check the proof_token), "denied" (action rejected... - read-only
get_hitlGet 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), then call this tool again. start_login does NOT open this tool. - read-only
list_hitlsList HITL configs with optional filters. Returns paginated results. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
poll_chat_id_discoveryPoll a chat ID discovery token. Returns the discovered Telegram chat ID, user ID, and username once the user interacts with the bot. 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 no... - read-only
wait_for_chat_id_discoveryPoll 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 create_chat_id_discovery. Present the discovery response's `deep_link` with render_auth_link first, then poll with the retu... - read-only
get_hitl_keysGet 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 `confirmations:create` without `hitl:read` receives only `public_key` and `kid` - what a confirmation message is sealed to, never the private-... - read-only
get_identity_challengeGet 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 - once the person being checked decided - the proof token and its proof_id. Poll this for resolution. ACCESS: needs a Pro... - read-only
list_circlesList Circles with optional filters. Archived Circles are excluded by default; pass status="archived" to surface them. Returns paginated results. ACCESS: needs a Proof account. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
get_circleGet 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. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open th... - read-only
list_circle_membersList 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) - a full identifier is NEVER returned (SEC-PM-006). ACCESS: needs a Proof account. Authenticate this client (Claude... - read-only
list_circle_member_channelsList 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. Authenticate this client (Claude Code: /mcp → Authenticate), then call this tool again. start_login does NOT open this tool. - read-only
list_delegationsList 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 whether the owner revoked the delegation themselves, so a delegation still reads active there after its domain contr... - read-only
get_delegationGet 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 control proof it stands on (a revoked, suspended or expired domain proof invalidates it) and never outlives its own e... - read-only
verify_delegationVerify 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 delegation token, PLUS two facts you established yourself: the artifact identity you resolved (the package you are install... - read-only
verify_delegationsBatch-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 verify_delegation call per artifact. Each item takes the same shape verify_delegation requires (card XOR token, delegate,... - read-only
wait_for_loginPoll 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 returned session ID. Terminal states: "verified" (login succeeded - this server keeps the session for this connection a... - read-only
wait_for_account_creationPoll 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_account with the returned session id. Terminal states: "verified" (this server keeps the session for this connection; the ... - read-only
render_auth_linkRender 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 made. Its output comes back to you, not to the user: copy the link, and the QR block inside its fence, into your reply....
Levels are automated estimates from each tool's public name, description and annotations, and can be wrong. Descriptions as the server publishes them.
Trust and supply chain
No owner has verified this server yet.
Ships as the npm package @proof-holdings/mcp-server, version 1.2.0. No OSV advisory for that version (checked 2026-10-05).
From the checks: The tool list costs more than 10,000 tokens to load; A tool description is over 2,000 characters.
Tool list changed on: 2026-10-04.
Status
Newest check: answered with tools, from the daily check, 2026-10-05, 1,339 ms.
From one check a day over the last 4 days. Servers whose owner verified them are checked every 5 minutes. Sign-in and payment answers count as up.
Last 30 days
2026-09-062026-10-05
answered with toolssign-in or payment askednot answeringnot checkedtool list changed
Compare: the most reliable servers in Developer tools and code, ranked by days answering.
Badge
Live: status, days reachable, the tokens its tool list costs an agent. For a README:
[](https://7it.co.il/7maps/s/api.proof.holdings/mcp)
Other styles: add ?style=uptime (30-day uptime), ?style=stars (agents’ rating) or ?style=verified (owner mark) to the image address, or ?style=top (shows "top 10%" when the server ranks in the top tenth of its category by days answering; otherwise the standard badge).
Is this badge genuine? Anyone can check what a genuine badge for this server says right now: /7maps/verify/badge?server=api.proof.holdings%2Fmcp (add the same &style= for another style).
Own this server? Verify that it is yours.
Status widget
A live status card for a status page, docs or a dashboard: current status, the 30-day strip, uptime and handshake time.
Script (renders where it is placed, in its own shadow DOM):
<script src="https://7it.co.il/7maps/widget/api.proof.holdings/mcp.js" async></script>
Or an iframe:
<iframe src="https://7it.co.il/7maps/widget/api.proof.holdings/mcp" title="7Maps status" width="360" height="176" style="border:0;max-width:100%" loading="lazy"></iframe>
The widget is drawn only from 7it.co.il. Is a status shown elsewhere genuine? Check it: /7maps/verify/badge?server=api.proof.holdings%2Fmcp.
Add ?theme=light or ?theme=dark to either address (default: follows the visitor's setting). Refreshed every 5 minutes. Open the card · script.
For AI agents
Before connecting, an agent can ask 7Maps for this server's full condition, every tool's risk level and what changed since a person approved it: the road_conditions, watch and route tools on https://7it.co.il/7maps/mcp, paid per call in USDC via x402. About 7Maps.
7Maps by 7IT maps the MCP servers AI agents use, from public listings. Observations with a date, not a judgement. Methodology · How we collect, and opting out.