Skip to main content
Glama

BlackVeil DNS & Email Security Scanner

brand_audit_batch_start

Enqueue an async brand audit across up to 50 target domains with optional standard/deep discovery depth, brand aliases, and caller-supplied candidate domains. Returns { auditId, queuedAt, targetCount, etaSeconds } immediately; poll with brand_audit_status and fetch results with brand_audit_get_report once complete. Each target consumes 1 unit of the monthly BRAND_AUDIT_QUOTAS budget.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "domains": "<domains>"
    },
    "name": "brand_audit_batch_start"
  }
}

Input Schema

NameRequiredDescriptionDefault
viewNoOutput view: 'standard' (default) or 'registrar_complement' (enterprise tier only).
depthNoDiscovery depth. standard is default; deep expands candidate seeding and enrichment fanout.
formatNoInline output mode. Defaults to "both".
domainsYesDomains to audit (max 50 per batch). Duplicates are merged.
planner_modeNoDiscovery planner: observe emits metrics; enforce applies candidate-backed signal caps.
brand_aliasesNoOptional public brand aliases to seed, such as product or legal-entity labels.
discovery_modeNoDiscovery pipeline: classic = legacy sweep; tiered = tenant/graph/evidence lookups first.
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_verifiedNoAttest you own or may scan these domains. Required for "tiered" unless enterprise/owner/partner.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / discovery_mode / description
      Previous value: -"Brand-discovery pipeline mode. classic = legacy sweep; tiered = tenant/graph/evidence wrappers first (BlackVeil-internal)."New value: +"Discovery pipeline: classic = legacy sweep; tiered = tenant/graph/evidence lookups first."
    • changedInput schema / properties / ownership_verified / description
      Previous value: -"Caller attests that the target domains are owned or authorized for scanning. Required when discovery_mode is \"tiered\" and the caller is not an enterprise/owner/partner principal."New value: +"Attest you own or may scan these domains. Required for \"tiered\" unless enterprise/owner/partner."
    • changedInput schema / properties / planner_mode / description
      Previous value: -"Planner mode for staged discovery fanout. observe emits metrics; enforce applies candidate-backed signal caps."New value: +"Discovery planner: observe emits metrics; enforce applies candidate-backed signal caps."
    • changedInput schema / properties / view / description
      Previous value: -"Output view mode. 'registrar_complement' produces a registrar-complement payload; requires enterprise tier. Default 'standard'."New value: +"Output view: 'standard' (default) or 'registrar_complement' (enterprise tier only)."
  2. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  3. 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
  4. Changed1 schema field changed
    • addedOutput schema / properties / verdictWithheld
      Added value: +{
      +  "type": "boolean"
      +}
  5. 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"
      +]
  6. Changed2 schema fields changed
    • addedOutput schema / properties / checkStatus
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / partial
      Added value: +{
      +  "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. Changed1 schema field changed
    • addedInput schema / properties / ownership_verified
      Added value: +{
      +  "description": "Caller attests that the target domains are 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
    • 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"
      +}
  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 / 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"
      +}
  12. 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"
      +}
  13. Added

TDQS

A4.3/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: the call returns { auditId, queuedAt, targetCount, etaSeconds } immediately, it is asynchronous, and each target burns 1 unit of the monthly BRAND_AUDIT_QUOTAS budget. That quota disclosure is the kind of cost signal annotations (readOnly=false, destructive=false, idempotent=false) cannot convey. It does not cover failure modes or what happens when the quota is exhausted.

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

Conciseness5/5

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

Three dense sentences with zero filler: capability and limits first, then the lifecycle handoff, then the cost model. The most decision-relevant facts (batch cap, async, quota) are front-loaded.

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

Completeness5/5

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

For a 10-parameter asynchronous mutation with no output schema, the description supplies the return shape, the polling contract, and the budget implications — the exact gaps an agent would otherwise hit. Nothing essential to invoking or sequencing it is missing.

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 the enum semantics for depth, view, planner_mode, discovery_mode, min_confidence, ownership_verified, and candidate_domains are already documented in structured data. The description echoes the depth and alias concepts without adding format or interaction detail (e.g. how depth interacts with quota cost). Baseline 3 is appropriate.

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

Purpose5/5

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

Opens with a specific verb+resource ('Enqueue an async brand audit') and states scope ('across up to 50 target domains') plus the optional knobs that shape it. An agent can distinguish this from brand_audit_single (single-domain) and the batch_scan family without opening any schema.

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

Usage Guidelines4/5

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

Explicitly names the follow-up tools and when to call them: poll with brand_audit_status, then fetch results with brand_audit_get_report 'once complete'. It stops short of stating when NOT to use this versus brand_audit_single or batch_scan_start, so it is clear context without full 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.