Skip to main content
Glama

AstraVerify Domain Trust Check

Server Details

Email security and AI discoverability scores for any domain, with the exact record or tag to fix.

Ownership verified
Status
Healthy
Uptime
100.0% over 22 days
Last Tested
Transport
Streamable HTTP ยท MCP 2025-06-18
URL

TDQS

A4/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a distinct primary role (discoverability, email, crawler fetch, aggregate report, re-verify). However, check_discoverability mentions 'crawl access' and fetch_as_crawler shows what crawlers receive, so the crawler-access boundary between those two could cause some misselection.

Naming Consistency5/5

All five tools follow a consistent verb_noun snake_case pattern (check_*, fetch_*, get_*, verify_*). Names are predictable and readable throughout.

Tool Count5/5

Five tools is well-scoped for a domain trust checker: two component checks, a raw crawler fetch, an aggregate report, and a re-verify tool. Each earns its place with no redundancy.

Completeness4/5

The surface covers the core lifecycle of scan, report, and verify-fix across discoverability, email, and crawler access. Minor gaps exist, such as no history/list of prior reports or multi-domain batch check, but core workflows are covered.

Available Tools

5 tools
check_discoverabilityCheck discoverability (search and AI crawler readiness)
Read-onlyIdempotent
Inspect

Check whether search engines and AI assistants can crawl, read and quote this site. Use when the person asks about SEO basics, robots.txt, sitemaps, llms.txt, or whether Google, ChatGPT, Claude or Perplexity can see their site. Input: a bare domain like example.com. Returns a Discoverability score 0-100 broken into crawl access (25: robots.txt, plus what the edge actually serves to Googlebot, Bingbot, OAI-SearchBot, PerplexityBot, ClaudeBot and GPTBot), site plumbing (20: HTTPS, one canonical host, sitemap, real 404s), page metadata (20), structured data (20) and answer-engine readiness (15: llms.txt, a definitional opening, question-form headings). Every finding carries the exact file, tag or record to publish. It makes roughly 15 fetches over a few seconds - robots.txt, the sitemap, the root page, up to four pages listed in the sitemap, llms.txt, the preview image, one deliberately missing URL to see how 404s are handled, and the root page once as each of the six crawlers. It identifies itself as AstraVerifyBot, except on those six checks, where the point is to send the crawler's own user-agent. It fetches nothing off that domain and crawls no further. Cached 15 minutes. It changes nothing on the site. This is a separate scan from check_email_security and does not include it.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain to check, as the person gave it (no scheme, no path). Reserved names such as example.com are refused.
refreshNoForce a fresh scan instead of the cached result (rate limited)

Output Schema

ParametersJSON Schema
NameRequiredDescription
cdnNo
rawNoWhat the components add up to, before the cap
gradeYesA+ to F, or null alongside a null score
scoreYesOut of 100, exactly as astraverify.com shows it. Null when not_applicable or inconclusive is set.
cappedNo
domainYes
reasonNoWhy score is null, when it is
verdictNoOne sentence on what engines can do with the site
held_backNoPoints the cap holds back while a fix is open (89 cap) or a critical one is (69). Not taken from any component: sum(components.points) - held_back = score
componentsNo
open_fixesNoFindings above info level
report_urlNoThe report page for this domain on astraverify.com
request_idNoreq_... for this call. Quote it when reporting a problem with the result.
website_atNoWhen the domain asked about serves no website but its registrable domain does, that domain's discoverability result. The score belongs to `domain` here, not to the domain in the request.
not_checkedNoParts skipped in this scan
inconclusiveNoThe site could not be fetched, so the scan could not be completed. A failure to measure, not a finding about the site.
canonical_hostNo
not_applicableNoThe domain publishes no web address, so there is no website to assess. Not a low score: score and grade are null and there are no recommendations. verdict names the domain to scan instead.
recommendationsNo
cache_age_secondsNoAge of the result; 0 means it was scanned just now
verified_componentNoSet by verify_fix: the component re-checked
check_email_securityCheck email security (MX, SPF, DKIM, DMARC)
Read-onlyIdempotent
Inspect

Check whether anyone can send email as this domain, and whether its own mail reaches the inbox. Use when the person asks about email security, spoofing or phishing risk, SPF, DKIM or DMARC setup, or why their mail goes to spam. Input: a bare domain like example.com - no scheme, no path. Given a URL or an email address, extract the domain and say what you extracted. Subdomains score in their own right: mail from the apex is not evidence about mail.example.com. Returns an Email Security score 0-100 broken into MX (25), SPF (25), DKIM (20) and DMARC (30), the status of each published record, the mail provider identified from MX, and the exact DNS record to publish for every finding. DNS-only, so it answers in about a second; cached 15 minutes, and refresh is for when DNS has just changed. One caveat to pass on rather than hide: DKIM selectors cannot be enumerated from DNS. They are found by probing the selectors known for the mail provider plus a list of a few hundred common names. A provider that issues random selectors - Amazon SES and Postmark among them - can only be confirmed from a live email, so report DKIM as not found by probing, never as proof the domain does not sign.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain to check, as the person gave it (no scheme, no path). Reserved names such as example.com are refused.
refreshNoForce a fresh scan instead of the cached result (rate limited)

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawNoWhat the components add up to, before the cap
gradeYesA+ to F
scoreYesOut of 100, exactly as astraverify.com shows it
cappedNo
domainYes
null_mxNoThe domain declares that it sends and receives no mail
recordsNoDNS records found, keyed mx, spf, dkim, dmarc
providerNoMail provider detected from MX; null when not recognised
held_backNoPoints the cap holds back while a fix is open (89 cap) or a critical one is (69). Not taken from any component: sum(components.points) - held_back = score
componentsNo
open_fixesNoFindings above info level
report_urlNoThe report page for this domain on astraverify.com
request_idNoreq_... for this call. Quote it when reporting a problem with the result.
recommendationsNo
cache_age_secondsNoAge of the result; 0 means it was scanned just now
fetch_as_crawlerFetch the root page as a named crawler
Read-onlyIdempotent
Inspect

Show exactly what one named crawler receives from the domain's root page. Use when the person asks "what does Google see?" or "can ChatGPT read my site?", and whenever check_discoverability reports a crawl-access problem - this is the tool that explains such a result instead of restating it. robots.txt can read perfectly while a CDN or firewall returns 403 to one crawler and 200 to another, and only a real fetch shows that. Inputs: domain (bare, like example.com) and agent, exactly one of googlebot, bingbot, oai-searchbot, perplexitybot, claudebot, gptbot. Call it once per crawler to compare them. Returns the HTTP status, the full redirect chain, response headers, content type, the text that crawler would index, and flags for an outright block or a bot-challenge page - which is how cloaking becomes visible. One live fetch of the root page, nothing else, and it changes nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentYes
domainYesThe domain to check, as the person gave it (no scheme, no path). Reserved names such as example.com are refused.

Output Schema

ParametersJSON Schema
NameRequiredDescription
msNo
agentYes
chainNoRedirect hops
errorNo
labelNoThe crawler as its operator names it
titleNo
domainYes
statusNoHTTP status the crawler received
blockedNoThe response refused the crawler (403, 429 or similar)
extractNoThe text this crawler would index; null when the fetch failed
headersNo
challengeNoA bot-challenge page rather than the site
final_urlNo
request_idNoreq_... for this call. Quote it when reporting a problem with the result.
content_typeNo
get_reportDomain Trust report (both scores)
Idempotent
Inspect

Both AstraVerify scores for a domain, plus a shareable report link. Reach for this first on any broad question - "is my domain set up right?", "check my domain", "what should I fix first?" - and use the single-subject tools only once the person has narrowed it to email or to the website. Input: a bare domain like example.com. Returns the Email Security score, the Discoverability score, every open fix ranked critical then important then informational, and report_url. Work down that order. Some findings are marked as needing no action - a weak key the provider generates and the owner cannot replace, for instance - so do not present those as work. Unlike the other tools here, this one creates something: report_url is a snapshot of these findings saved to a new unlisted page at astraverify.com/r/..., and that page is what the person can send to whoever administers the domain. It opens later without rescanning, after the scan itself has aged out. Running the tool again on an unchanged scan returns the same page rather than a second one. Nothing is written anywhere the person owns.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain to check, as the person gave it (no scheme, no path). Reserved names such as example.com are refused.
refreshNoForce a fresh scan instead of the cached result (rate limited)

Output Schema

ParametersJSON Schema
NameRequiredDescription
domainYes
live_urlNoThe live page, which rescans when the result is stale
report_urlNoSaved snapshot (/r/<id>) that opens without a rescan; safe to share
request_idNoreq_... for this call. Quote it when reporting a problem with the result.
website_atNoWhen the domain asked about serves no website but its registrable domain does, that domain's discoverability result. The score belongs to `domain` here, not to the domain in the request.
email_securityYes
discoverabilityNo
recommendationsNoBoth scans, ranked by severity
discoverability_errorNo
email_cache_age_secondsNo
discoverability_cache_age_secondsNo
verify_fixRe-check one discoverability area after a fix
Read-onlyIdempotent
Inspect

Re-check a single discoverability component after the person has fixed it. Use only once check_discoverability has reported that component failing and the person says the fix is done - never speculatively. Without a previous scan to compare against it returns NOT_READY. Inputs: domain (bare, like example.com) and component, one of crawl, plumbing, metadata, structured, answer - the identifier from the earlier scan's findings. Returns that component re-measured and the updated Discoverability score, so you can tell the person plainly whether the change worked. Always a live re-fetch, never served from cache, which is exactly why it beats a second check_discoverability straight after an edit. It draws on the discoverability fresh-scan budget for that domain (30 an hour, counted across all callers), so use a full check_discoverability instead when several areas changed. It only re-reads public pages; it changes nothing on the site.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain to check, as the person gave it (no scheme, no path). Reserved names such as example.com are refused.
componentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
cdnNo
rawNoWhat the components add up to, before the cap
gradeYesA+ to F, or null alongside a null score
scoreYesOut of 100, exactly as astraverify.com shows it. Null when not_applicable or inconclusive is set.
cappedNo
domainYes
reasonNoWhy score is null, when it is
verdictNoOne sentence on what engines can do with the site
held_backNoPoints the cap holds back while a fix is open (89 cap) or a critical one is (69). Not taken from any component: sum(components.points) - held_back = score
componentsNo
open_fixesNoFindings above info level
report_urlNoThe report page for this domain on astraverify.com
request_idNoreq_... for this call. Quote it when reporting a problem with the result.
website_atNoWhen the domain asked about serves no website but its registrable domain does, that domain's discoverability result. The score belongs to `domain` here, not to the domain in the request.
not_checkedNoParts skipped in this scan
inconclusiveNoThe site could not be fetched, so the scan could not be completed. A failure to measure, not a finding about the site.
canonical_hostNo
not_applicableNoThe domain publishes no web address, so there is no website to assess. Not a low score: score and grade are null and there are no recommendations. verdict names the domain to scan instead.
recommendationsNo
cache_age_secondsNoAge of the result; 0 means it was scanned just now
verified_componentNoSet by verify_fix: the component re-checked

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Changedcheck_discoverability2 fields changed
      • addedOutput schema / properties / website_at / properties / components
        Added value: +{
        +  "description": "Component headlines only; scan this domain for the checks behind them",
        +  "items": {
        +    "properties": {
        +      "key": {
        +        "type": "string"
        +      },
        +      "max": {
        +        "type": "integer"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "points": {
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / website_at / properties / report_url
        Added value: +{
        +  "type": "string"
        +}
    • Changedget_report4 fields changed
      • addedOutput schema / properties / discoverability / properties / website_at / properties / components
        Added value: +{
        +  "description": "Component headlines only; scan this domain for the checks behind them",
        +  "items": {
        +    "properties": {
        +      "key": {
        +        "type": "string"
        +      },
        +      "max": {
        +        "type": "integer"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "points": {
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / discoverability / properties / website_at / properties / report_url
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / website_at / properties / components
        Added value: +{
        +  "description": "Component headlines only; scan this domain for the checks behind them",
        +  "items": {
        +    "properties": {
        +      "key": {
        +        "type": "string"
        +      },
        +      "max": {
        +        "type": "integer"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "points": {
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / website_at / properties / report_url
        Added value: +{
        +  "type": "string"
        +}
    • Changedverify_fix2 fields changed
      • addedOutput schema / properties / website_at / properties / components
        Added value: +{
        +  "description": "Component headlines only; scan this domain for the checks behind them",
        +  "items": {
        +    "properties": {
        +      "key": {
        +        "type": "string"
        +      },
        +      "max": {
        +        "type": "integer"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "points": {
        +        "type": "integer"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / website_at / properties / report_url
        Added value: +{
        +  "type": "string"
        +}
  2. 3 tool updates
    • Changedcheck_discoverability1 field changed
      • addedOutput schema / properties / website_at
        Added value: +{
        +  "description": "When the domain asked about serves no website but its registrable domain does, that domain's discoverability result. The score belongs to `domain` here, not to the domain in the request.",
        +  "properties": {
        +    "cache_age_seconds": {
        +      "type": "integer"
        +    },
        +    "domain": {
        +      "type": "string"
        +    },
        +    "grade": {
        +      "type": "string"
        +    },
        +    "open_fixes": {
        +      "type": "integer"
        +    },
        +    "score": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
    • Changedget_report2 fields changed
      • addedOutput schema / properties / discoverability / properties / website_at
        Added value: +{
        +  "description": "When the domain asked about serves no website but its registrable domain does, that domain's discoverability result. The score belongs to `domain` here, not to the domain in the request.",
        +  "properties": {
        +    "cache_age_seconds": {
        +      "type": "integer"
        +    },
        +    "domain": {
        +      "type": "string"
        +    },
        +    "grade": {
        +      "type": "string"
        +    },
        +    "open_fixes": {
        +      "type": "integer"
        +    },
        +    "score": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / website_at
        Added value: +{
        +  "description": "When the domain asked about serves no website but its registrable domain does, that domain's discoverability result. The score belongs to `domain` here, not to the domain in the request.",
        +  "properties": {
        +    "cache_age_seconds": {
        +      "type": "integer"
        +    },
        +    "domain": {
        +      "type": "string"
        +    },
        +    "grade": {
        +      "type": "string"
        +    },
        +    "open_fixes": {
        +      "type": "integer"
        +    },
        +    "score": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
    • Changedverify_fix1 field changed
      • addedOutput schema / properties / website_at
        Added value: +{
        +  "description": "When the domain asked about serves no website but its registrable domain does, that domain's discoverability result. The score belongs to `domain` here, not to the domain in the request.",
        +  "properties": {
        +    "cache_age_seconds": {
        +      "type": "integer"
        +    },
        +    "domain": {
        +      "type": "string"
        +    },
        +    "grade": {
        +      "type": "string"
        +    },
        +    "open_fixes": {
        +      "type": "integer"
        +    },
        +    "score": {
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    }
        +  },
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
  3. 5 tool updates
    • Changedcheck_discoverability1 field changed
      • addedOutput schema / properties / request_id
        Added value: +{
        +  "description": "req_... for this call. Quote it when reporting a problem with the result.",
        +  "type": "string"
        +}
    • Changedcheck_email_security1 field changed
      • addedOutput schema / properties / request_id
        Added value: +{
        +  "description": "req_... for this call. Quote it when reporting a problem with the result.",
        +  "type": "string"
        +}
    • Changedfetch_as_crawler1 field changed
      • addedOutput schema / properties / request_id
        Added value: +{
        +  "description": "req_... for this call. Quote it when reporting a problem with the result.",
        +  "type": "string"
        +}
    • Changedget_report2 fields changed
      • addedOutput schema / properties / discoverability / properties / request_id
        Added value: +{
        +  "description": "req_... for this call. Quote it when reporting a problem with the result.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / request_id
        Added value: +{
        +  "description": "req_... for this call. Quote it when reporting a problem with the result.",
        +  "type": "string"
        +}
    • Changedverify_fix1 field changed
      • addedOutput schema / properties / request_id
        Added value: +{
        +  "description": "req_... for this call. Quote it when reporting a problem with the result.",
        +  "type": "string"
        +}
  4. 1 tool update
    • Changedcheck_email_security2 fields changed
      • changedOutput schema / properties / provider / description
        Previous value: -"Mail provider detected from MX"New value: +"Mail provider detected from MX; null when not recognised"
      • changedOutput schema / properties / provider / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
  5. 4 tool updates
    • Changedcheck_discoverability2 fields changed
      • addedOutput schema / properties / held_back
        Added value: +{
        +  "description": "Points the cap holds back while a fix is open (89 cap) or a critical one is (69). Not taken from any component: sum(components.points) - held_back = score",
        +  "type": "integer"
        +}
      • changedOutput schema / properties / raw / description
        Previous value: -"Before the cap rules that hold the headline back while a fix is open"New value: +"What the components add up to, before the cap"
    • Changedcheck_email_security2 fields changed
      • addedOutput schema / properties / held_back
        Added value: +{
        +  "description": "Points the cap holds back while a fix is open (89 cap) or a critical one is (69). Not taken from any component: sum(components.points) - held_back = score",
        +  "type": "integer"
        +}
      • changedOutput schema / properties / raw / description
        Previous value: -"Before the cap rules that hold the headline back while a fix is open"New value: +"What the components add up to, before the cap"
    • Changedget_report4 fields changed
      • addedOutput schema / properties / discoverability / properties / held_back
        Added value: +{
        +  "description": "Points the cap holds back while a fix is open (89 cap) or a critical one is (69). Not taken from any component: sum(components.points) - held_back = score",
        +  "type": "integer"
        +}
      • changedOutput schema / properties / discoverability / properties / raw / description
        Previous value: -"Before the cap rules that hold the headline back while a fix is open"New value: +"What the components add up to, before the cap"
      • addedOutput schema / properties / email_security / properties / held_back
        Added value: +{
        +  "description": "Points the cap holds back while a fix is open (89 cap) or a critical one is (69). Not taken from any component: sum(components.points) - held_back = score",
        +  "type": "integer"
        +}
      • changedOutput schema / properties / email_security / properties / raw / description
        Previous value: -"Before the cap rules that hold the headline back while a fix is open"New value: +"What the components add up to, before the cap"
    • Changedverify_fix2 fields changed
      • addedOutput schema / properties / held_back
        Added value: +{
        +  "description": "Points the cap holds back while a fix is open (89 cap) or a critical one is (69). Not taken from any component: sum(components.points) - held_back = score",
        +  "type": "integer"
        +}
      • changedOutput schema / properties / raw / description
        Previous value: -"Before the cap rules that hold the headline back while a fix is open"New value: +"What the components add up to, before the cap"
  6. 5 tool updates
    • Changedcheck_discoverability11 fields changed
      • changedOutput schema / properties / canonical_host / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / cdn / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / description
        Previous value: -"The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where)"New value: +"The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where). Null when there is nothing to publish, for example \"turn on DKIM in your provider\"."
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / kind / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / label / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / name / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / note / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / type / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / value / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / where / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
    • Changedcheck_email_security9 fields changed
      • changedOutput schema / properties / recommendations / items / properties / fix / description
        Previous value: -"The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where)"New value: +"The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where). Null when there is nothing to publish, for example \"turn on DKIM in your provider\"."
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / kind / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / label / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / name / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / note / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / type / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / value / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / where / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
    • Changedfetch_as_crawler5 fields changed
      • changedOutput schema / properties / content_type / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / extract / description
        Previous value: -"The text this crawler would index"New value: +"The text this crawler would index; null when the fetch failed"
      • changedOutput schema / properties / extract / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / final_url / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / title / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedget_report39 fields changed
      • addedOutput schema / properties / discoverability / properties / canonical_host
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / discoverability / properties / cdn
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / discoverability / properties / grade / description
        Previous value: -"A+ to F"New value: +"A+ to F, or null alongside a null score"
      • changedOutput schema / properties / discoverability / properties / grade / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • addedOutput schema / properties / discoverability / properties / inconclusive
        Added value: +{
        +  "description": "The site could not be fetched, so the scan could not be completed. A failure to measure, not a finding about the site.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / discoverability / properties / not_applicable
        Added value: +{
        +  "description": "The domain publishes no web address, so there is no website to assess. Not a low score: score and grade are null and there are no recommendations. verdict names the domain to scan instead.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / discoverability / properties / not_checked
        Added value: +{
        +  "description": "Parts skipped in this scan",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / discoverability / properties / reason
        Added value: +{
        +  "description": "Why score is null, when it is",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / discoverability / properties / recommendations / items / properties / fix / description
        Previous value: -"The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where)"New value: +"The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where). Null when there is nothing to publish, for example \"turn on DKIM in your provider\"."
      • changedOutput schema / properties / discoverability / properties / recommendations / items / properties / fix / properties / kind / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / discoverability / properties / recommendations / items / properties / fix / properties / label / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / discoverability / properties / recommendations / items / properties / fix / properties / name / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / discoverability / properties / recommendations / items / properties / fix / properties / note / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / discoverability / properties / recommendations / items / properties / fix / properties / type / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / discoverability / properties / recommendations / items / properties / fix / properties / value / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / discoverability / properties / recommendations / items / properties / fix / properties / where / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / discoverability / properties / recommendations / items / properties / fix / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / discoverability / properties / score / description
        Previous value: -"Out of 100, exactly as astraverify.com shows it"New value: +"Out of 100, exactly as astraverify.com shows it. Null when not_applicable or inconclusive is set."
      • changedOutput schema / properties / discoverability / properties / score / type
        Previous value: -"integer"New value: +[
        +  "integer",
        +  "null"
        +]
      • addedOutput schema / properties / discoverability / properties / verdict / description
        Added value: +"One sentence on what engines can do with the site"
      • addedOutput schema / properties / discoverability / properties / verified_component
        Added value: +{
        +  "description": "Set by verify_fix: the component re-checked",
        +  "type": "string"
        +}
      • changedOutput schema / properties / email_security / properties / recommendations / items / properties / fix / description
        Previous value: -"The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where)"New value: +"The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where). Null when there is nothing to publish, for example \"turn on DKIM in your provider\"."
      • changedOutput schema / properties / email_security / properties / recommendations / items / properties / fix / properties / kind / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / email_security / properties / recommendations / items / properties / fix / properties / label / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / email_security / properties / recommendations / items / properties / fix / properties / name / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / email_security / properties / recommendations / items / properties / fix / properties / note / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / email_security / properties / recommendations / items / properties / fix / properties / type / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / email_security / properties / recommendations / items / properties / fix / properties / value / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / email_security / properties / recommendations / items / properties / fix / properties / where / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / email_security / properties / recommendations / items / properties / fix / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / description
        Previous value: -"The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where)"New value: +"The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where). Null when there is nothing to publish, for example \"turn on DKIM in your provider\"."
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / kind / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / label / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / name / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / note / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / type / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / value / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / where / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
    • Changedverify_fix11 fields changed
      • changedOutput schema / properties / canonical_host / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / cdn / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / description
        Previous value: -"The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where)"New value: +"The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where). Null when there is nothing to publish, for example \"turn on DKIM in your provider\"."
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / kind / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / label / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / name / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / note / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / type / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / value / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / properties / where / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • changedOutput schema / properties / recommendations / items / properties / fix / type
        Previous value: -"object"New value: +[
        +  "object",
        +  "null"
        +]
  7. 2 tool updates
    • Changedcheck_discoverability7 fields changed
      • changedOutput schema / properties / grade / description
        Previous value: -"A+ to F"New value: +"A+ to F, or null alongside a null score"
      • changedOutput schema / properties / grade / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • addedOutput schema / properties / inconclusive
        Added value: +{
        +  "description": "The site could not be fetched, so the scan could not be completed. A failure to measure, not a finding about the site.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / not_applicable
        Added value: +{
        +  "description": "The domain publishes no web address, so there is no website to assess. Not a low score: score and grade are null and there are no recommendations. verdict names the domain to scan instead.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / reason
        Added value: +{
        +  "description": "Why score is null, when it is",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / score / description
        Previous value: -"Out of 100, exactly as astraverify.com shows it"New value: +"Out of 100, exactly as astraverify.com shows it. Null when not_applicable or inconclusive is set."
      • changedOutput schema / properties / score / type
        Previous value: -"integer"New value: +[
        +  "integer",
        +  "null"
        +]
    • Changedverify_fix7 fields changed
      • changedOutput schema / properties / grade / description
        Previous value: -"A+ to F"New value: +"A+ to F, or null alongside a null score"
      • changedOutput schema / properties / grade / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • addedOutput schema / properties / inconclusive
        Added value: +{
        +  "description": "The site could not be fetched, so the scan could not be completed. A failure to measure, not a finding about the site.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / not_applicable
        Added value: +{
        +  "description": "The domain publishes no web address, so there is no website to assess. Not a low score: score and grade are null and there are no recommendations. verdict names the domain to scan instead.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / reason
        Added value: +{
        +  "description": "Why score is null, when it is",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / score / description
        Previous value: -"Out of 100, exactly as astraverify.com shows it"New value: +"Out of 100, exactly as astraverify.com shows it. Null when not_applicable or inconclusive is set."
      • changedOutput schema / properties / score / type
        Previous value: -"integer"New value: +[
        +  "integer",
        +  "null"
        +]
  8. 5 tool updates
    • Changedcheck_discoverability1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cache_age_seconds": {
        +      "description": "Age of the result; 0 means it was scanned just now",
        +      "type": "integer"
        +    },
        +    "canonical_host": {
        +      "type": "string"
        +    },
        +    "capped": {
        +      "type": "boolean"
        +    },
        +    "cdn": {
        +      "type": "string"
        +    },
        +    "components": {
        +      "items": {
        +        "description": "One scored area of the domain",
        +        "properties": {
        +          "enabled": {
        +            "type": "boolean"
        +          },
        +          "key": {
        +            "type": "string"
        +          },
        +          "max": {
        +            "type": "integer"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "points": {
        +            "type": "integer"
        +          },
        +          "summary": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "key",
        +          "name",
        +          "points",
        +          "max"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "domain": {
        +      "type": "string"
        +    },
        +    "grade": {
        +      "description": "A+ to F",
        +      "type": "string"
        +    },
        +    "not_checked": {
        +      "description": "Parts skipped in this scan",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "open_fixes": {
        +      "description": "Findings above info level",
        +      "type": "integer"
        +    },
        +    "raw": {
        +      "description": "Before the cap rules that hold the headline back while a fix is open",
        +      "type": "integer"
        +    },
        +    "recommendations": {
        +      "items": {
        +        "properties": {
        +          "component": {
        +            "type": "string"
        +          },
        +          "fix": {
        +            "description": "The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where)",
        +            "properties": {
        +              "kind": {
        +                "type": "string"
        +              },
        +              "label": {
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              },
        +              "note": {
        +                "type": "string"
        +              },
        +              "type": {
        +                "type": "string"
        +              },
        +              "value": {
        +                "type": "string"
        +              },
        +              "where": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "scan": {
        +            "enum": [
        +              "email",
        +              "discoverability"
        +            ],
        +            "type": "string"
        +          },
        +          "severity": {
        +            "enum": [
        +              "critical",
        +              "important",
        +              "info"
        +            ],
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "why": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "severity",
        +          "title"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "report_url": {
        +      "description": "The report page for this domain on astraverify.com",
        +      "type": "string"
        +    },
        +    "score": {
        +      "description": "Out of 100, exactly as astraverify.com shows it",
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "description": "One sentence on what engines can do with the site",
        +      "type": "string"
        +    },
        +    "verified_component": {
        +      "description": "Set by verify_fix: the component re-checked",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "domain",
        +    "score",
        +    "grade"
        +  ],
        +  "type": "object"
        +}
    • Changedcheck_email_security1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cache_age_seconds": {
        +      "description": "Age of the result; 0 means it was scanned just now",
        +      "type": "integer"
        +    },
        +    "capped": {
        +      "type": "boolean"
        +    },
        +    "components": {
        +      "items": {
        +        "description": "One scored area of the domain",
        +        "properties": {
        +          "enabled": {
        +            "type": "boolean"
        +          },
        +          "key": {
        +            "type": "string"
        +          },
        +          "max": {
        +            "type": "integer"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "points": {
        +            "type": "integer"
        +          },
        +          "summary": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "key",
        +          "name",
        +          "points",
        +          "max"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "domain": {
        +      "type": "string"
        +    },
        +    "grade": {
        +      "description": "A+ to F",
        +      "type": "string"
        +    },
        +    "null_mx": {
        +      "description": "The domain declares that it sends and receives no mail",
        +      "type": "boolean"
        +    },
        +    "open_fixes": {
        +      "description": "Findings above info level",
        +      "type": "integer"
        +    },
        +    "provider": {
        +      "description": "Mail provider detected from MX",
        +      "type": "string"
        +    },
        +    "raw": {
        +      "description": "Before the cap rules that hold the headline back while a fix is open",
        +      "type": "integer"
        +    },
        +    "recommendations": {
        +      "items": {
        +        "properties": {
        +          "component": {
        +            "type": "string"
        +          },
        +          "fix": {
        +            "description": "The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where)",
        +            "properties": {
        +              "kind": {
        +                "type": "string"
        +              },
        +              "label": {
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              },
        +              "note": {
        +                "type": "string"
        +              },
        +              "type": {
        +                "type": "string"
        +              },
        +              "value": {
        +                "type": "string"
        +              },
        +              "where": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "scan": {
        +            "enum": [
        +              "email",
        +              "discoverability"
        +            ],
        +            "type": "string"
        +          },
        +          "severity": {
        +            "enum": [
        +              "critical",
        +              "important",
        +              "info"
        +            ],
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "why": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "severity",
        +          "title"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "records": {
        +      "additionalProperties": {
        +        "items": {
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "description": "DNS records found, keyed mx, spf, dkim, dmarc",
        +      "type": "object"
        +    },
        +    "report_url": {
        +      "description": "The report page for this domain on astraverify.com",
        +      "type": "string"
        +    },
        +    "score": {
        +      "description": "Out of 100, exactly as astraverify.com shows it",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "domain",
        +    "score",
        +    "grade"
        +  ],
        +  "type": "object"
        +}
    • Changedfetch_as_crawler1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "agent": {
        +      "type": "string"
        +    },
        +    "blocked": {
        +      "description": "The response refused the crawler (403, 429 or similar)",
        +      "type": "boolean"
        +    },
        +    "chain": {
        +      "description": "Redirect hops",
        +      "items": {
        +        "properties": {
        +          "status": {
        +            "type": "integer"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "challenge": {
        +      "description": "A bot-challenge page rather than the site",
        +      "type": "boolean"
        +    },
        +    "content_type": {
        +      "type": "string"
        +    },
        +    "domain": {
        +      "type": "string"
        +    },
        +    "error": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "extract": {
        +      "description": "The text this crawler would index",
        +      "type": "string"
        +    },
        +    "final_url": {
        +      "type": "string"
        +    },
        +    "headers": {
        +      "additionalProperties": {
        +        "type": "string"
        +      },
        +      "type": "object"
        +    },
        +    "label": {
        +      "description": "The crawler as its operator names it",
        +      "type": "string"
        +    },
        +    "ms": {
        +      "type": "integer"
        +    },
        +    "status": {
        +      "description": "HTTP status the crawler received",
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "title": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "domain",
        +    "agent"
        +  ],
        +  "type": "object"
        +}
    • Changedget_report1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "discoverability": {
        +      "properties": {
        +        "cache_age_seconds": {
        +          "description": "Age of the result; 0 means it was scanned just now",
        +          "type": "integer"
        +        },
        +        "capped": {
        +          "type": "boolean"
        +        },
        +        "components": {
        +          "items": {
        +            "description": "One scored area of the domain",
        +            "properties": {
        +              "enabled": {
        +                "type": "boolean"
        +              },
        +              "key": {
        +                "type": "string"
        +              },
        +              "max": {
        +                "type": "integer"
        +              },
        +              "name": {
        +                "type": "string"
        +              },
        +              "points": {
        +                "type": "integer"
        +              },
        +              "summary": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "key",
        +              "name",
        +              "points",
        +              "max"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "domain": {
        +          "type": "string"
        +        },
        +        "grade": {
        +          "description": "A+ to F",
        +          "type": "string"
        +        },
        +        "open_fixes": {
        +          "description": "Findings above info level",
        +          "type": "integer"
        +        },
        +        "raw": {
        +          "description": "Before the cap rules that hold the headline back while a fix is open",
        +          "type": "integer"
        +        },
        +        "recommendations": {
        +          "items": {
        +            "properties": {
        +              "component": {
        +                "type": "string"
        +              },
        +              "fix": {
        +                "description": "The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where)",
        +                "properties": {
        +                  "kind": {
        +                    "type": "string"
        +                  },
        +                  "label": {
        +                    "type": "string"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  },
        +                  "note": {
        +                    "type": "string"
        +                  },
        +                  "type": {
        +                    "type": "string"
        +                  },
        +                  "value": {
        +                    "type": "string"
        +                  },
        +                  "where": {
        +                    "type": "string"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "scan": {
        +                "enum": [
        +                  "email",
        +                  "discoverability"
        +                ],
        +                "type": "string"
        +              },
        +              "severity": {
        +                "enum": [
        +                  "critical",
        +                  "important",
        +                  "info"
        +                ],
        +                "type": "string"
        +              },
        +              "tags": {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              "title": {
        +                "type": "string"
        +              },
        +              "why": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "id",
        +              "severity",
        +              "title"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "report_url": {
        +          "description": "The report page for this domain on astraverify.com",
        +          "type": "string"
        +        },
        +        "score": {
        +          "description": "Out of 100, exactly as astraverify.com shows it",
        +          "type": "integer"
        +        },
        +        "verdict": {
        +          "type": "string"
        +        }
        +      },
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "discoverability_cache_age_seconds": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "discoverability_error": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "domain": {
        +      "type": "string"
        +    },
        +    "email_cache_age_seconds": {
        +      "type": "integer"
        +    },
        +    "email_security": {
        +      "properties": {
        +        "cache_age_seconds": {
        +          "description": "Age of the result; 0 means it was scanned just now",
        +          "type": "integer"
        +        },
        +        "capped": {
        +          "type": "boolean"
        +        },
        +        "components": {
        +          "items": {
        +            "description": "One scored area of the domain",
        +            "properties": {
        +              "enabled": {
        +                "type": "boolean"
        +              },
        +              "key": {
        +                "type": "string"
        +              },
        +              "max": {
        +                "type": "integer"
        +              },
        +              "name": {
        +                "type": "string"
        +              },
        +              "points": {
        +                "type": "integer"
        +              },
        +              "summary": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "key",
        +              "name",
        +              "points",
        +              "max"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "domain": {
        +          "type": "string"
        +        },
        +        "grade": {
        +          "description": "A+ to F",
        +          "type": "string"
        +        },
        +        "open_fixes": {
        +          "description": "Findings above info level",
        +          "type": "integer"
        +        },
        +        "raw": {
        +          "description": "Before the cap rules that hold the headline back while a fix is open",
        +          "type": "integer"
        +        },
        +        "recommendations": {
        +          "items": {
        +            "properties": {
        +              "component": {
        +                "type": "string"
        +              },
        +              "fix": {
        +                "description": "The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where)",
        +                "properties": {
        +                  "kind": {
        +                    "type": "string"
        +                  },
        +                  "label": {
        +                    "type": "string"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  },
        +                  "note": {
        +                    "type": "string"
        +                  },
        +                  "type": {
        +                    "type": "string"
        +                  },
        +                  "value": {
        +                    "type": "string"
        +                  },
        +                  "where": {
        +                    "type": "string"
        +                  }
        +                },
        +                "type": "object"
        +              },
        +              "id": {
        +                "type": "string"
        +              },
        +              "scan": {
        +                "enum": [
        +                  "email",
        +                  "discoverability"
        +                ],
        +                "type": "string"
        +              },
        +              "severity": {
        +                "enum": [
        +                  "critical",
        +                  "important",
        +                  "info"
        +                ],
        +                "type": "string"
        +              },
        +              "tags": {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              "title": {
        +                "type": "string"
        +              },
        +              "why": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "id",
        +              "severity",
        +              "title"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "report_url": {
        +          "description": "The report page for this domain on astraverify.com",
        +          "type": "string"
        +        },
        +        "score": {
        +          "description": "Out of 100, exactly as astraverify.com shows it",
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "live_url": {
        +      "description": "The live page, which rescans when the result is stale",
        +      "type": "string"
        +    },
        +    "recommendations": {
        +      "description": "Both scans, ranked by severity",
        +      "items": {
        +        "properties": {
        +          "component": {
        +            "type": "string"
        +          },
        +          "fix": {
        +            "description": "The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where)",
        +            "properties": {
        +              "kind": {
        +                "type": "string"
        +              },
        +              "label": {
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              },
        +              "note": {
        +                "type": "string"
        +              },
        +              "type": {
        +                "type": "string"
        +              },
        +              "value": {
        +                "type": "string"
        +              },
        +              "where": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "scan": {
        +            "enum": [
        +              "email",
        +              "discoverability"
        +            ],
        +            "type": "string"
        +          },
        +          "severity": {
        +            "enum": [
        +              "critical",
        +              "important",
        +              "info"
        +            ],
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "why": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "severity",
        +          "title"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "report_url": {
        +      "description": "Saved snapshot (/r/<id>) that opens without a rescan; safe to share",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "domain",
        +    "email_security"
        +  ],
        +  "type": "object"
        +}
    • Changedverify_fix1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cache_age_seconds": {
        +      "description": "Age of the result; 0 means it was scanned just now",
        +      "type": "integer"
        +    },
        +    "canonical_host": {
        +      "type": "string"
        +    },
        +    "capped": {
        +      "type": "boolean"
        +    },
        +    "cdn": {
        +      "type": "string"
        +    },
        +    "components": {
        +      "items": {
        +        "description": "One scored area of the domain",
        +        "properties": {
        +          "enabled": {
        +            "type": "boolean"
        +          },
        +          "key": {
        +            "type": "string"
        +          },
        +          "max": {
        +            "type": "integer"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "points": {
        +            "type": "integer"
        +          },
        +          "summary": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "key",
        +          "name",
        +          "points",
        +          "max"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "domain": {
        +      "type": "string"
        +    },
        +    "grade": {
        +      "description": "A+ to F",
        +      "type": "string"
        +    },
        +    "not_checked": {
        +      "description": "Parts skipped in this scan",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "open_fixes": {
        +      "description": "Findings above info level",
        +      "type": "integer"
        +    },
        +    "raw": {
        +      "description": "Before the cap rules that hold the headline back while a fix is open",
        +      "type": "integer"
        +    },
        +    "recommendations": {
        +      "items": {
        +        "properties": {
        +          "component": {
        +            "type": "string"
        +          },
        +          "fix": {
        +            "description": "The exact change to publish: a DNS record (name, type, value) or a file or tag (kind, label, value, where)",
        +            "properties": {
        +              "kind": {
        +                "type": "string"
        +              },
        +              "label": {
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              },
        +              "note": {
        +                "type": "string"
        +              },
        +              "type": {
        +                "type": "string"
        +              },
        +              "value": {
        +                "type": "string"
        +              },
        +              "where": {
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "scan": {
        +            "enum": [
        +              "email",
        +              "discoverability"
        +            ],
        +            "type": "string"
        +          },
        +          "severity": {
        +            "enum": [
        +              "critical",
        +              "important",
        +              "info"
        +            ],
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "why": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "severity",
        +          "title"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "report_url": {
        +      "description": "The report page for this domain on astraverify.com",
        +      "type": "string"
        +    },
        +    "score": {
        +      "description": "Out of 100, exactly as astraverify.com shows it",
        +      "type": "integer"
        +    },
        +    "verdict": {
        +      "description": "One sentence on what engines can do with the site",
        +      "type": "string"
        +    },
        +    "verified_component": {
        +      "description": "Set by verify_fix: the component re-checked",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "domain",
        +    "score",
        +    "grade"
        +  ],
        +  "type": "object"
        +}
  9. 5 tool updates
    • First observedcheck_discoverability
    • First observedcheck_email_security
    • First observedfetch_as_crawler
    • First observedget_report
    • First observedverify_fix

Publisher details

Operator
AstraVerify ยท Publisher source
Vendor relationship
First-party ยท Publisher source
Trust center
Not available
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources