Skip to main content
Glama

BlackVeil DNS & Email Security Scanner

brand_audit_single

Run a full brand audit on a single target with optional standard/deep discovery depth, brand aliases, and caller-supplied candidate domains. Discovers brand-related domains, looks up registrar + registrant for each candidate, and classifies each into consolidated, real registrar-sprawl shadowIt, authorized vendor dependency, indeterminate, or impersonation relationships. Gated tier-wide by monthly BRAND_AUDIT_QUOTAS (free/agent=0, developer=50, partner=200, enterprise=500, owner=unlimited).

Input Schema

NameRequiredDescriptionDefault
viewNoOutput view mode. 'registrar_complement' produces a registrar-complement payload; requires enterprise tier. Default 'standard'.
depthNoDiscovery depth. standard is default; deep expands candidate seeding and enrichment fanout.
domainYesTarget domain to audit (e.g., apple.com).
formatNoInline output mode. Defaults to "both".
planner_modeNoPlanner mode for staged discovery fanout. observe emits metrics; enforce applies candidate-backed signal caps.
brand_aliasesNoOptional public brand aliases to seed, such as product or legal-entity labels.
force_refreshNoBypass cache and run a fresh check. Useful after DNS changes.
discovery_modeNoBrand-discovery pipeline mode. classic = legacy sweep; tiered = tenant/graph/evidence wrappers first (BlackVeil-internal).
min_confidenceNoDrop candidates whose combined confidence falls below this threshold (0-1, default 0.5).
candidate_domainsNoOptional candidate domains supplied by the caller for corroboration.
ownership_verifiedNoCaller attests that the target domain is owned or authorized for scanning. Required when discovery_mode is "tiered" and the caller is not an enterprise/owner/partner principal.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": {},
      -  "properties": {
      -    "category": {
      -      "type": "string"
      -    },
      -    "checkStatus": {
      -      "type": "string"
      -    },
      -    "findings": {
      -      "items": {
      -        "additionalProperties": {},
      -        "properties": {},
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "partial": {
      -      "type": "boolean"
      -    },
      -    "passed": {
      -      "type": "boolean"
      -    },
      -    "score": {
      -      "type": "number"
      -    },
      -    "verdictWithheld": {
      -      "type": "boolean"
      -    }
      -  },
      -  "required": [
      -    "category",
      -    "score",
      -    "passed",
      -    "findings"
      -  ],
      -  "type": "object"
      -}New value: +null
  3. Changed1 schema field changed
    • addedOutput schema / properties / verdictWithheld
      Added value: +{
      +  "type": "boolean"
      +}
  4. Changed2 schema fields changed
    • changedInput schema / properties / view / description
      Previous value: -"Output view mode. 'csc_complement' produces a CSC-tuned payload; requires enterprise tier. Default 'standard'."New value: +"Output view mode. 'registrar_complement' produces a registrar-complement payload; requires enterprise tier. Default 'standard'."
    • changedInput schema / properties / view / enum
      Previous value: -[
      -  "standard",
      -  "csc_complement"
      -]New value: +[
      +  "standard",
      +  "registrar_complement"
      +]
  5. Changed2 schema fields changed
    • addedOutput schema / properties / checkStatus
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / partial
      Added value: +{
      +  "type": "boolean"
      +}
  6. Changed1 schema field changed
    • addedInput schema / properties / force_refresh
      Added value: +{
      +  "description": "Bypass cache and run a fresh check. Useful after DNS changes.",
      +  "type": "boolean"
      +}
  7. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": {},
      +  "properties": {
      +    "category": {
      +      "type": "string"
      +    },
      +    "findings": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {},
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "passed": {
      +      "type": "boolean"
      +    },
      +    "score": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "category",
      +    "score",
      +    "passed",
      +    "findings"
      +  ],
      +  "type": "object"
      +}
  8. Changed2 schema fields changed
    • addedInput schema / properties / discovery_mode
      Added value: +{
      +  "description": "Brand-discovery pipeline mode. classic = legacy sweep; tiered = tenant/graph/evidence wrappers first (BlackVeil-internal).",
      +  "enum": [
      +    "classic",
      +    "tiered"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / ownership_verified
      Added value: +{
      +  "description": "Caller attests that the target domain is owned or authorized for scanning. Required when discovery_mode is \"tiered\" and the caller is not an enterprise/owner/partner principal.",
      +  "type": "boolean"
      +}
  9. Changed1 schema field changed
    • removedInput schema / properties / discovery_mode
      Removed value: -{
      -  "description": "Brand-discovery pipeline mode. classic = legacy sweep; tiered = tenant/graph/evidence wrappers first (BlackVeil-internal).",
      -  "enum": [
      -    "classic",
      -    "tiered"
      -  ],
      -  "type": "string"
      -}
  10. Changed1 schema field changed
    • addedInput schema / properties / discovery_mode
      Added value: +{
      +  "description": "Brand-discovery pipeline mode. classic = legacy sweep; tiered = tenant/graph/evidence wrappers first (BlackVeil-internal).",
      +  "enum": [
      +    "classic",
      +    "tiered"
      +  ],
      +  "type": "string"
      +}
  11. Changed1 schema field changed
    • addedInput schema / properties / view
      Added value: +{
      +  "description": "Output view mode. 'csc_complement' produces a CSC-tuned payload; requires enterprise tier. Default 'standard'.",
      +  "enum": [
      +    "standard",
      +    "csc_complement"
      +  ],
      +  "type": "string"
      +}
  12. Changed1 schema field changed
    • addedInput schema / properties / planner_mode
      Added value: +{
      +  "description": "Planner mode for staged discovery fanout. observe emits metrics; enforce applies candidate-backed signal caps.",
      +  "enum": [
      +    "off",
      +    "observe",
      +    "enforce"
      +  ],
      +  "type": "string"
      +}
  13. Changed3 schema fields changed
    • addedInput schema / properties / brand_aliases
      Added value: +{
      +  "description": "Optional public brand aliases to seed, such as product or legal-entity labels.",
      +  "items": {
      +    "maxLength": 64,
      +    "minLength": 2,
      +    "type": "string"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • addedInput schema / properties / candidate_domains
      Added value: +{
      +  "description": "Optional candidate domains supplied by the caller for corroboration.",
      +  "items": {
      +    "maxLength": 253,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "maxItems": 250,
      +  "type": "array"
      +}
    • addedInput schema / properties / depth
      Added value: +{
      +  "description": "Discovery depth. standard is default; deep expands candidate seeding and enrichment fanout.",
      +  "enum": [
      +    "standard",
      +    "deep"
      +  ],
      +  "type": "string"
      +}
  14. Added

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, and idempotentHint=false, so the safety burden is partly covered. The description adds genuinely non-obvious behavior beyond that: tier-wide BRAND_AUDIT_QUOTAS with per-tier numbers (free/agent=0 through owner unlimited), registrar+registrant enrichment, and classification into five relationship categories. It stops short of disclosing expected runtime or whether results are cached/persisted for the report siblings.

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 dense sentences, front-loaded with the action and followed by the pipeline and gating facts; little waste. The classification clause is a long noun list that could be tightened, but nothing is gratuitous.

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

Completeness4/5

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

With 11 parameters, no output schema, and an open-world scan, the description covers the important unknowns: what gets discovered, what gets looked up, what categories come back, and the quota gate. The absence of any statement about runtime, result retrieval, or interaction with the brand_audit_get_report/status siblings is the main remaining 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%, so all 11 parameters are already documented, and the description merely mirrors a subset (depth, brand aliases, candidate domains). It adds no interpretation for view, planner_mode, discovery_mode, or min_confidence beyond what the schema states, 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?

The description states a specific verb and resource ('Run a full brand audit on a single target') and enumerates the concrete outputs: discovery, registrar/registrant lookup, and classification into named relationship categories. It is clearly a single-target counterpart to the batch siblings, though the description itself never names brand_audit_batch_start as the alternative, relying on the tool name for that distinction.

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 context is only implied: 'single target' plus per-tier quota gating tells the agent roughly when this is affordable, and depth/ownership_verified hints at prerequisites. There is no explicit when-to-use vs brand_audit_batch_start, brand_audit_get_report, or discover_brand_domains, and no stated exclusions.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.