Skip to main content
Glama

AstraVerify Domain Trust Check

Domain Trust report (both scores)

get_report
Idempotent

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.

Input Schema

TableJSON 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

TableJSON Schema
NameRequiredDescriptionDefault
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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema 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"
      +}
  2. Changed2 schema 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"
      +  ]
      +}
  3. Changed2 schema 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"
      +}
  4. Changed4 schema 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"
  5. Changed39 schema 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"
      +]
  6. Changed1 schema 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"
      +}
  7. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources