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

@proof-holdings/mcp-server

Official

start_user_domain_verification

Starts a self-service domain ownership verification session using DNS or HTTP challenges, so users can prove control of a domain.

Instructions

Start a self-service domain verification session. The user proves ownership of a domain via DNS or HTTP challenge.

ACCESS: needs a Proof account. Set PROOF_API_KEY and restart this server, or sign in with start_login — a session opens this tool — then call this tool again.

Input Schema

NameRequiredDescriptionDefault
domainYesDomain name to verify (e.g. example.com)
channelNoVerification channel (default: dns)

Output Schema

NameRequiredDescriptionDefault
domainYes
statusYes
channelYes
challengeYesWhat to publish: a TXT record (`dns`) or a file on the site (`http`)
expires_atYes
session_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.7.2
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "description": "A self-service domain verification session",
      +  "properties": {
      +    "challenge": {
      +      "additionalProperties": {},
      +      "description": "What to publish: a TXT record (`dns`) or a file on the site (`http`)",
      +      "properties": {
      +        "file_content": {
      +          "type": "string"
      +        },
      +        "file_path": {
      +          "type": "string"
      +        },
      +        "file_url": {
      +          "type": "string"
      +        },
      +        "instruction": {
      +          "type": "string"
      +        },
      +        "record_name": {
      +          "type": "string"
      +        },
      +        "record_type": {
      +          "type": "string"
      +        },
      +        "record_value": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "instruction"
      +      ],
      +      "type": "object"
      +    },
      +    "channel": {
      +      "type": "string"
      +    },
      +    "domain": {
      +      "type": "string"
      +    },
      +    "expires_at": {
      +      "type": "string"
      +    },
      +    "session_id": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "session_id",
      +    "domain",
      +    "channel",
      +    "status",
      +    "expires_at",
      +    "challenge"
      +  ],
      +  "type": "object"
      +}
  2. First observedv1.1.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false; the description goes further by disclosing the hard access prerequisite (Proof account, PROOF_API_KEY, restart or sign-in) and that this tool opens a session. That is genuine context an agent cannot get from the structured fields, though it does not say how long the session lives or what happens if one is already open.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short blocks: purpose first, then a clearly labeled ACCESS note. No wasted wording, and the most important fact (what the tool does) is front-loaded. The access sentence is slightly dense but earns its place as a prerequisite.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the access prerequisite is covered. But for a flow-opening tool in a crowded verification family, the description omits what the caller does next and how this differs from the other start_*_verification siblings, leaving a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (domain example, channel enum with dns/http) are already documented in the schema. The description's mention of 'DNS or HTTP challenge' mirrors the enum without adding format, defaults, or constraints beyond it, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource ('Start a self-service domain verification session') and adds the mechanism (DNS or HTTP challenge), which is more than a restatement of the name. However, it never distinguishes itself from close siblings like start_domain_verification or start_domain_email_verification, so an agent must infer whether 'self-service' is the sole differentiator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'the user proves ownership of a domain via DNS or HTTP challenge', and the colleague names start_login as an alternative path for obtaining access. But there is no explicit when-not guidance and no routing to the sibling that should be called after this one (check_user_domain_verification / get_user_domain_verification_status).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools